仝敏
(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院,陜西 西安 710300)
流水燈是指將多個LED 燈組成的燈串按順序依次點亮,反復(fù)循環(huán),流水燈在實際生活中得到了廣泛的應(yīng)用,例如,使用單片機實現(xiàn)廣告牌、舞臺等控制。對于流水燈的控制可以選用單片機作為控制元件,本次設(shè)計選用Keil uvision2作為開發(fā)環(huán)境,使用C 語言進行編程,以AT89C51 單片機的P2 端口為控制端口,使用四種編程方法實現(xiàn)8 位LED 的依次閃爍。
本次設(shè)計選用AT89C51 單片機作為控制元件,共計控制8 個LED,8 個LED 的排列順序為自右向左分別為D1、D2、D3、D4、D5、D6、D7、D8,其閃爍順序為D1、D2、D3、D4、D5、D6、D7、D8, 實 現(xiàn)D1 至D8 逐次亮滅。其工作過程如圖1 所示。
圖1 流水燈的工作過程
本次設(shè)計選用四種編程方法,分別使用位定義、移位運算符、循環(huán)移位函數(shù)以及數(shù)組實現(xiàn)流水燈程序的編寫。
方法1:使用位定義(圖2)。
圖2 位定義實現(xiàn)流水燈
方法2:使用移位運算符(圖3)。
圖3 移位運算符實現(xiàn)流水燈
方法3:使用循環(huán)移位函數(shù)(圖4)。
圖4 循環(huán)移位函數(shù)實現(xiàn)流水燈
方法4:使用數(shù)組(圖5)。
圖5 數(shù)組實現(xiàn)流水燈
本設(shè)計以AT89C51 為核心,根據(jù)設(shè)計要求實現(xiàn)8 個LED發(fā)光二極管的閃爍控制,在proteus 中對四種編程方法進行驗證,四種編程方法均可實現(xiàn)。