摘 要:本論文采用protus仿真軟件和keil編程軟件,設(shè)計(jì)了以AT89C51單片機(jī)為核心控制單元,以8位發(fā)光二極管設(shè)計(jì)輸出電路,以按鈕電路組成輸入電路,實(shí)現(xiàn)按鈕按下時(shí),流水燈的在2種狀態(tài)之間任意切換的效果,通過軟硬件仿真驗(yàn)證設(shè)計(jì)的合理性和正確性。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);protus;流水燈;狀態(tài)切換
1 緒論
單片機(jī)技術(shù)是計(jì)算機(jī)技術(shù)的一個(gè)重要分支,其應(yīng)用領(lǐng)域極其廣泛,已逐漸滲透至各個(gè)領(lǐng)域,流水燈技術(shù)的應(yīng)用使我們所生活的環(huán)境得到進(jìn)一步的美化,例如城市亮化工程上燈光控制;色彩斑斕的霓虹燈廣告牌里的燈光控制、流水控制;舞臺(tái)設(shè)計(jì)的燈光和音響控制;廣告設(shè)計(jì)的文字顯示以及燈光顯示等等。本文以AT89C51單片機(jī)P0、P1口應(yīng)用為核心,構(gòu)造流水燈的硬件設(shè)計(jì)和軟件編程,從而實(shí)現(xiàn)8位流水燈在兩種狀態(tài)之間任意切換的效果。
2 系統(tǒng)設(shè)計(jì)
2.1 任務(wù)目標(biāo)
流水燈是指一組在控制系統(tǒng)的控制下按照設(shè)定的順序和時(shí)間來發(fā)亮和熄滅的燈。本文以AT89C51單片機(jī)的P1.0口的按鈕S1控制P0口的發(fā)光二極管的狀態(tài),若按動(dòng)按鈕的次數(shù)是偶數(shù)時(shí),進(jìn)入流水燈第一種狀態(tài):依次點(diǎn)亮D1至D8,若再次按下按鈕,按按鈕的次數(shù)由偶數(shù)變?yōu)槠鏀?shù),則進(jìn)入第二種狀態(tài):D1、D3、D5、D7亮,D2、D4、D6、D8滅,延時(shí)一段時(shí)間,D2、D4、D6、D8亮,D1、D3、D5、D7滅,如此循環(huán),并用keil編程軟件和protus仿真軟件對(duì)以上進(jìn)行仿真。
2.2 硬件設(shè)計(jì)
流水燈的硬件電路由3部分組成,第一部分是單片機(jī)模塊—-單片機(jī)AT89C51,第二部分是輸出模塊—8個(gè)發(fā)光二極管組成的負(fù)載電路,第三部分是輸入模塊—按鈕組成的電路。在該項(xiàng)目中,共用到下表所列的元器件。
輸出部分電路:發(fā)光二極管采用共陽極接法,陰極通過限流電阻R與+5v電源連接,陰極連接到單片機(jī)的P0口的引腳上。要實(shí)現(xiàn)發(fā)光二極管的點(diǎn)亮,考慮到二極管的單向?qū)щ娦裕鬚0口輸出低電平,二極管點(diǎn)亮,若P0口輸出高電平,則二極管熄滅。
輸入電路部分:在P1.0接控制電路,按下S1鍵時(shí),P1.0引腳接地,所以P1.0引腳電平被降為低電平,因此,可以通過檢測(cè)P1.0引腳的電平判斷按鍵S1是否按下。
2.3 軟件設(shè)計(jì)
其中k的值通過按鍵S1控制,每按下S1時(shí),k就自增1;當(dāng)k%2=0時(shí),說明k為偶數(shù),執(zhí)行流水燈依次點(diǎn)亮的程序,當(dāng)k%2=1時(shí),說明k為奇數(shù),執(zhí)行流水燈4亮4滅閃爍的程序。若需要在3種狀態(tài)之間切換,則對(duì)3求余即可,以此類推。
按下按鍵時(shí),通常都會(huì)有抖動(dòng),表面上看來是按按鍵一次,但是因?yàn)榘存I的抖動(dòng),單片機(jī)會(huì)判斷出按按鍵很多次,從而輸入不可控。此問題可以用“軟件消抖”來解決。當(dāng)?shù)谝淮螜z測(cè)到按鍵按下時(shí),不采取動(dòng)作,延時(shí)一段時(shí)間后,按鍵按下信號(hào)依然存在,則認(rèn)為按鍵被按下,再執(zhí)行相應(yīng)的動(dòng)作。
3 總結(jié)
本論文以AT89C51單片機(jī)為主控芯片,以8個(gè)發(fā)光二極管為載體,設(shè)計(jì)流水燈的硬件電路和軟件程序,通過keil和Protus軟件仿真對(duì)結(jié)果進(jìn)行驗(yàn)證,達(dá)到了預(yù)期的效果。
參考文獻(xiàn):
[1]王東鋒,王會(huì)良,董冠強(qiáng).單片機(jī)C語言應(yīng)用100例.電子工業(yè)出版社,2009,07.
[2]吳文兵,脫建智.基于51單片機(jī)的流水燈的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2016(08):258.
作者簡(jiǎn)介:范昭君(1987-),女,碩士,講師,研究方向?yàn)橹悄軝C(jī)器人。