刷新的过程为12条阴极驱动线依次接通,12条阳极驱动线输出阴极驱动线所在的LED的状态。由于LED只有1/12的时间通电,因此我们使用了很高的驱动电流。用人的眼睛观察,LED的亮度并不会受到影响。
4LED状态的控制
我们在电路中使用了廉价的AT89C52单片机,其硬件资源很有限。在本应用中有144个石英晶体的状态要保存。而单片机仅仅有256字节的内存,如何合理使用有限的内存是编程中需要解决的主要问题之一。
共解决方案为:
a.使用汇编语言编制控制程序,这样可以精确地控制内存的使用;
b.使用半个字节(4位)代表一个石英晶体的8个状态,使用72个字节就可表示144个石英晶体的所有状态;
c.刷新LED的子程序将读取到的石英晶体状态转换成LED的状态输出。
5LED的状态跟随机械运动
因为机械在不停的运动,因为对应的LED显示也必须跟着变化。同时,测试电脑传来的测试结果必须实时记录并显示在石英晶体对应的LED上,如果机械结构的每次运动,就在内存中调整一次与LED对应的状态值,必然会有较大的CPU运算开销。同时,同一个石英晶体的测试结果在内存中的位置在不停的变动,使得测试结果的更新算法用汇编语言不好实现。其采取的办法是,每个石英晶体的测试结果在内存中的位置是固定的。但在刷新LED的状态时,读取测试结果的开始位置是变化的。当刷新子程序从第二组LED状态数据开始读取时。电路扳上的第一组LED的状态指示第二个石英晶体的测试结果,其他的LED的状态也依次提前一个。从外观上看所有LED的指示状态向前移动了一个位置。
Fanuc Master Board M# A16B-1010-0050/11B ~Repaired~
Northstar Hollow Shaft Digital Tachometer RIM Tach HS85
Leukhardt PLC Controller M# DEASY-DK ~NIB SURPLUS~
SE Modicon Adapter Card M# 416NHM30030 ~NIB Sur.~
SE Modicon Kit, MB + Adapter M# AM-SA85-030 ~NIB SUR.~
SE Modicon Controller M# PC-0984-381 NEW ~NNB SUR.~
Atlas Copco Power Supply M# 4240 0311 80 ~USED~
Microscan Scanner M# FIS-0860-0001 NEW ~NIB SURPLUS~
Kuka Robotics Power Module Model No. 00-103-493KUKA
Allen Bradley Smart Linear Sensor M# 2804-NL2 ~US~
Datalogic Laser Beam Scanner M# DS50AF-102 ~REPAIRED~
Whedco Power Supply M# 78004654 ~REPAIRED SURPLUS~