流水灯又叫跑马灯,简单的应用电路是采用8只灯泡,依次点亮达到流水灯效果。流水灯是最基本的单片机I/O接口输出控制,该项目设计也是彩灯控制器产品开发的基础。
1.参考电路
流水灯控制电路如图3-6所示,单片机的P0接口通过连接上拉电阻方式提高引脚高电平驱动能力。P0接口输出高电平时,对应引脚的LED被点亮。电路采用Proteus软件设计,用于程序仿真。
图3-6 流水灯控制电路原理
2.程序设计(www.xing528.com)
特殊功能寄存器P0一共有8位,因此P0寄存器可一次存放1B的数据,寄存器的每位输出对应P0.0~P0.7引脚,其中P0.0为P0的低位引脚,P0.7为高位引脚。P0引脚输出高低电平与寄存器P0存放数据一致,如程序中,P0=0x01时,则只有P0.0输出高电平,其他引脚输出低电平。为了实现流水灯效果,程序设计要P0的8个引脚依次输出高电平。如先让P0=0x01,LED1点亮,然后让P0=0x02,LED2点亮,依次往下操作,当P0=0x80时,LED8点亮。每次点亮一只LED后,通过延时函数调整下一个LED被点亮的时间间隔。具体程序如下:
通过电路仿真,LED可以实现从右到左的依次点亮,但此程序看起来很笨,并且功能单一,我们可以考虑采用数组实现。如把P0的8个取值放在一个数组里,这样就可以通过数组取值达到LED流水灯显示效果。可将上述程序修改为
该程序与原程序仿真运行结果是一样的,但利用数组精简了程序的冗余项,更加符合软件的编程思想。读者也可以增加数组元素,设定不同的显示方式,增加流水灯的花样。如果把本项目的LED位置换成光电晶闸管电路,利用单片机间接驱动交流220V彩灯负载,即可实现彩灯控制。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。