第37節(jié):數(shù)碼管作為儀表盤顯示跑馬燈的方向,速度和運(yùn)行狀態(tài)
從業(yè)近十年!手把手教你單片機(jī)程序框架 第37講
開場(chǎng)白:
我在第24節(jié)中講過(guò)按鍵控制跑馬燈的方向,速度和運(yùn)行狀態(tài)的項(xiàng)目程序,只可惜那個(gè)程序不能直觀地顯示運(yùn)行中的三種狀態(tài),這節(jié)我決定在24節(jié)的基礎(chǔ)上,增加一個(gè)數(shù)碼管顯示作為類似汽車儀表盤的界面,實(shí)時(shí)顯示跑馬燈的方向,速度,和運(yùn)行狀態(tài)。
這一節(jié)要教會(huì)大家一個(gè)知識(shí)點(diǎn):繼續(xù)加深理解運(yùn)動(dòng),按鍵與數(shù)碼管三者之間的關(guān)聯(lián)程序框架。
具體內(nèi)容,請(qǐng)看源代碼講解。
(1)硬件平臺(tái):
基于朱兆祺51單片機(jī)學(xué)習(xí)板。用S1鍵作為控制跑馬燈的方向按鍵,S5鍵作為控制跑馬燈方向的加速度按鍵,S9鍵作為控制跑馬燈方向的減速度按鍵,S13鍵作為控制跑馬燈方向的啟動(dòng)或者暫停按鍵。記得把輸出線P0.4一直輸出低電平,模擬獨(dú)立按鍵的觸發(fā)地GND。
(2)實(shí)現(xiàn)功能:
跑馬燈運(yùn)行:第1個(gè)至第8個(gè)LED燈一直不亮。在第9個(gè)至第16個(gè)LED燈,依次逐個(gè)亮燈并且每次只能亮一個(gè)燈。每按一次獨(dú)立按鍵S13鍵,原來(lái)運(yùn)行的跑馬燈會(huì)暫停,原來(lái)暫停的跑馬燈會(huì)運(yùn)行。用S1來(lái)改變方向。用S5和S9來(lái)改變速度,每按一次按鍵的遞增或者遞減以10為單位。
數(shù)碼管顯示:本程序只有1個(gè)窗口,這個(gè)窗口分成3個(gè)局部顯示。8,7,6位數(shù)碼管顯示運(yùn)行狀態(tài),啟動(dòng)時(shí)顯示“on”,停止時(shí)顯示“oFF”。5位數(shù)碼管顯示數(shù)碼管方向,正向顯示“n”,反向顯示“U”。4,3,2,1位數(shù)碼管顯示速度。數(shù)值越大速度越慢,最慢的速度是550,最快的速度是50。
(3)源代碼講解如下:
總結(jié)陳詞:
前面花了大量的章節(jié)在講數(shù)碼管顯示,按鍵,運(yùn)動(dòng)的關(guān)聯(lián)程序框架,從下一節(jié)開始,我將會(huì)用八節(jié)內(nèi)容來(lái)講我常用的串口程序框架,內(nèi)容非常精彩和震撼,思路非常簡(jiǎn)單而又實(shí)用。欲知詳情,請(qǐng)聽(tīng)下回分解-----判斷數(shù)據(jù)尾來(lái)接收一串?dāng)?shù)據(jù)的串口通用程序框架。