仝敏
(陕西国防工业职业技术学院,陕西 西安 710300)
流水灯是指将多个LED 灯组成的灯串按顺序依次点亮,反复循环,流水灯在实际生活中得到了广泛的应用,例如,使用单片机实现广告牌、舞台等控制。对于流水灯的控制可以选用单片机作为控制元件,本次设计选用Keil uvision2作为开发环境,使用C 语言进行编程,以AT89C51 单片机的P2 端口为控制端口,使用四种编程方法实现8 位LED 的依次闪烁。
本次设计选用AT89C51 单片机作为控制元件,共计控制8 个LED,8 个LED 的排列顺序为自右向左分别为D1、D2、D3、D4、D5、D6、D7、D8,其闪烁顺序为D1、D2、D3、D4、D5、D6、D7、D8, 实 现D1 至D8 逐次亮灭。其工作过程如图1 所示。
图1 流水灯的工作过程
本次设计选用四种编程方法,分别使用位定义、移位运算符、循环移位函数以及数组实现流水灯程序的编写。
方法1:使用位定义(图2)。
图2 位定义实现流水灯
方法2:使用移位运算符(图3)。
图3 移位运算符实现流水灯
方法3:使用循环移位函数(图4)。
图4 循环移位函数实现流水灯
方法4:使用数组(图5)。
图5 数组实现流水灯
本设计以AT89C51 为核心,根据设计要求实现8 个LED发光二极管的闪烁控制,在proteus 中对四种编程方法进行验证,四种编程方法均可实现。