用EPROM 2732制作彩灯控制器,EPROM2732 Lantern controller
关键字:ROM2732,彩灯控制电路图
用普通集成电路和元器件制作的灯效发生器仅能产生两三种灯效,用微控制器制作的灯效发生器虽然可以产生许多种不同的灯效,但电路复杂,制作成本也较高。
这里采用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”表示允许,“l”表示禁止。这样,在BD6输出“O”时,只要数据脚输出“l”,相应的LED便能发出红光或绿光;BD7连接IC7和IC8的允许脚EN,当它为“0”时,便可使L,ED发出绿光或红光;如果BI)6和BD7都同时设为“O”,则可使数据脚来的“l”驱动相应的LED发出黄光;如果将BD6和BD7都设为“1”,则三色缓冲器被禁止,LED由于正极处于高阻状态而全部不发光,这时计数器复位,地址返回原始状态,光效变化规律又从头开始。
![用EPROM 2732制作彩灯控制器电路图EPROM2732 Lantern controller](/pic/201109/24/2011924121233232.gif) .
BD6和BD7为“11”时的复位功能可以使编程简化,编程时可以根据光效图案的实际需求将4k字节的EPROM地址填人桕应的二进制数据,不用的地址空间不要求全部填满,只要在最后两位BD6和BD7填上“11”,便可返回至原始地址。
附表是跑动光效的具体实例,表中只列出了开始14个顺序地址中的数据内容。可以看到,数据中每个地址中只有1个为“1”,BD6为“0”,BD7为“l”,表示14只LED中每次只有一只LED发红光或绿光。14个地址后面的其他地址可以根据所需的光效编人其他数据。上述14个地址中的“l”使相应的LED发光,并随着时钟脉冲的推进,使发光的LED逐个位移呈跑动光效。
如果想改变灯光变化的速度,只需要将地址中的数据写入下一个地址即可,每重复写一次便可使灯光变化速度降低一个时钟周期。例如,若时钟为1秒,则重写一次,光效速度便降低为2秒,再重写一次,光效速度变为3秒。
事实上我们可以根据各种光效花样编入更多的数据内容。4k地址空间的EPROM为多彩的灯效编程提供了非常有利的条件。
前面已经说过,如果你不想用足4k空间,只需要在最终的地址将BD6和BD7写入“ll”便可使电路复位,一切便从头开始。
地址(十六进制) |
数据(二进制) |
AD0 |
ADl |
AD2 |
AD3 |
AD4 |
AD5 |
AD6 |
AD7 |
BD0 |
BD1 |
BD2 |
BD3 |
BD4 |
BD5 |
BD6 |
BD7 |
000 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
001 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
002 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
003 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
004 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
005 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
006 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
007 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
008 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
009 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
00A |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
00B |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
00C |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
00D |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
|