仝敏
(陜西國防工業職業技術學院,陜西 西安 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 中對四種編程方法進行驗證,四種編程方法均可實現。