用普通集成电路和元器件制作的灯效发生器仅能产生两三种灯效,用微控制器制作的灯效发生器虽然可以产生许多种不同的灯效,但电路复杂,制作成本也较高。这里采用EPROM 2732制作的灯效发生器,可以产生具有各种不同闪烁速度的多花样多彩色灯效,制作成本也很低廉。


一、电路原理

电路(见上图)采用8块IC芯片和14只三色LED。其中两块EPROM用来写入产生不同灯效的程序,IC1A和IC1B产生时钟信号,供12级二进制数计数器IC2产生:EPROM的地址信息。

2732的地址空间为4k字节,每块提供8位数据输出。要输出16位数据需要使用两块2732,并将其地址线并联。16位数据线中的14位用于经4块三态缓冲驱动器74HC244(IC5~IC8)驱动14只三色LED,剩下的2位用来控制LED的发光色彩。
     当IC4的BD6或BD7脚中一个为“0”时。LED发红光或绿光,两个均为“0”时发黄光,两个均为“1”时,计数器IC2通过IC1C、IC1D复位,灯效重复显示。

     编写LED闪光花样程序时,以E一PROM 14个输出数据中的“1”表示LED发光,以“0”表示LED不发光。另外,剩下的两个数据输出脚BD6连接至IC5和IC6的允许脚EN(①和(19)脚),“0”表示允许,“1”表示禁止。这样,在BD6输出“0”时,只要数据脚输出“1”,相应的LED便能发出红光或绿光;BD7连接IC7和IC8的允许脚EN,当它为“0”时,便可使L,ED发出绿光或红光;如果BI)6和BD7都同时设为“0”,则可使数据脚来的“1”驱动相应的LED发出黄光;如果将BD6和BD7都设为编写LED闪光花样程序时,以E一PROM 14个输出数据中的“1”表示LED发光,以“0”表示LED不发光。另外,剩下的两个数据输出脚BD6连接至IC5和IC6的允许脚EN(①和(19)脚),“0”表示允许,“1”表示禁止。这样,在BD6输出“0”时,只要数据脚输出“1”,相应的LED便能发出红光或绿光;BD7连接IC7和IC8的允许脚EN,当它为“0”时,便可使L,ED发出绿光或红光;如果BI)6和BD7都同时设为“0”,则可使数据脚来的“1”驱动相应的LED发出黄光;如果将BD6和BD7都设为“1”,则三色缓冲器被禁止,LED由于正极处于高阻状态而全部不发光,这时计数器复位,地址返回原始状态,光效变化规律又从头开始。

BD6和BD7为“11”时的复位功能可以使编程简化,编程时可以根据光效图案的实际需求将4k字节的EPROM地址填人桕应的二进制数据,不用的地址空间不要求全部填满,只要在最后两位BD6和BD7填上“11”,便可返回至原始地址。
附表是跑动光效的具体实例,表中只列出了开始14个顺序地址中的数据内容。可以看到,数据中每个地址中只有1个为“1”,BD6为“0”,BD7为“1”,表示14只LED中每次只有一只LED发红光或绿光。14个地址后面的其他地址可以根据所需的光效编人其他数据。上述14个地址中的“l”使相应的LED发光,并随着时钟脉冲的推进,使发光的LED逐个位移呈跑动光效。
如果想改变灯光变化的速度,只需要将地址中的数据写入下一个地址即可,每重复写一次便可使灯光变化速度降低一个时钟周期。例如,若时钟为1秒,则重写一次,光效速度便降低为2秒,再重写一次,光效速度变为3秒。
事实上我们可以根据各种光效花样编入更多的数据内容。4k地址空间的EPROM为多彩的灯效编程提供了非常有利的条件。前面已经说过,如果你不想用足4k空间,只需要在最终的地址将BD6和BD7写入“11”便可使电路复位,一切便从头开始。