這算是51單片機(jī)學(xué)習(xí)的一個(gè)入門知識(shí)點(diǎn)了,必須掌握的。
實(shí)現(xiàn)功能如下:
- 默認(rèn)上電運(yùn)行0-9循環(huán)顯示
- 按左移/右移/上移/下移按鍵時(shí),0-9按照對(duì)應(yīng)的方向移動(dòng)顯示
- 按復(fù)位鍵時(shí),恢復(fù)循環(huán)顯示模式
關(guān)鍵點(diǎn)在于:
- 點(diǎn)陣數(shù)據(jù)。有些初學(xué)者點(diǎn)陣數(shù)據(jù)都是網(wǎng)上找的,根本不知道為什么這些數(shù)據(jù)就能顯示0,1,2……這個(gè)一定要自己琢磨明白的,我這里就不多贅述了。明白原理后,這里推薦個(gè)方便的轉(zhuǎn)換數(shù)據(jù)工具:PCtoLCD2002,可以將想要顯示的字或者圖片轉(zhuǎn)換成對(duì)應(yīng)的數(shù)組代碼。
- 循環(huán)顯示是最簡(jiǎn)單的,明白了點(diǎn)陣數(shù)據(jù)的來(lái)歷之后,將數(shù)組中的數(shù)據(jù)一個(gè)個(gè)順序調(diào)用就可以了。
- 上下左右移動(dòng),關(guān)鍵在于上一個(gè)字符的第一(或最后一)行(或列)消失的時(shí)候,下一個(gè)字符對(duì)應(yīng)的行(或列)要同時(shí)出現(xiàn)。這個(gè)大家看對(duì)應(yīng)的代碼自己改動(dòng)其中的數(shù)字體驗(yàn)一下就明白了。
- 每個(gè)顯示控制的子函數(shù)中都有好幾個(gè)break,這是檢測(cè)是否有按鍵按下,以便及時(shí)響應(yīng)的處理。當(dāng)然這并不是最優(yōu)的解決方法,大家可以找一下其他更好的方法。
Proteus原檔我就不放了,不同版本的可能會(huì)有些問(wèn)題。有需要的,可以在Proteus上照抄原理圖,再把代碼復(fù)制進(jìn)去實(shí)際操作一下。
有問(wèn)題歡迎評(píng)論區(qū)提問(wèn),謝謝!
閱讀全文