第47節(jié):操作AT24C02時,利用“一氣呵成的定時器延時”改善數(shù)碼管的閃爍現(xiàn)象
從業(yè)近十年!手把手教你單片機程序框架 第47講
開場白:
上一節(jié)在按鍵更改參數(shù)時,會出現(xiàn)短暫明顯的數(shù)碼管閃爍現(xiàn)象。這節(jié)通過教大家使用新型延時函數(shù)可以有效的改善閃爍現(xiàn)象。要教會大家三個知識點:
第一個:如何編寫一氣呵成的定時器延時函數(shù)。
第二個:如何編寫檢查EEPROM芯片是否存在短路,虛焊或者芯片壞了的監(jiān)控程序。
第三個:經(jīng)過網(wǎng)友“cjseng”的提醒,我建議大家以后在用EEPROM芯片時,如果單片機IO口足夠多,WP引腳應該專門接一個IO口,并且加一個上拉電阻,需要更改EEPROM存儲數(shù)據(jù)時置低,其他任何一個時刻都置高,這樣可以更加有效地保護EEPROM內(nèi)部數(shù)據(jù)不會被意外更改。
具體內(nèi)容,請看源代碼講解。
(1)硬件平臺:
基于朱兆祺51單片機學習板。舊版的朱兆祺51學習板在硬件上有一個bug,AT24C02的第8個引腳VCC懸空了!!!,讀者記得把它飛線連接到5V電源處。新版的朱兆祺51學習板已經(jīng)改過來了。
(2)實現(xiàn)功能:
4個被更改后的參數(shù)斷電后不丟失,數(shù)據(jù)可以保存,斷電再上電后還是上一次最新被修改的數(shù)據(jù)。如果AT24C02短路,虛焊,或者壞了,系統(tǒng)可以檢查出來,并且蜂鳴器會間歇性鳴叫報警。按更改參數(shù)按鍵時,數(shù)碼管比上一節(jié)大大降低了閃爍現(xiàn)象。
顯示和獨立按鍵部分根據(jù)第29節(jié)的程序來改編,用朱兆祺51單片機學習板中的S1,S5,S9作為獨立按鍵。
一共有4個窗口。每個窗口顯示一個參數(shù)。
第8,7,6,5位數(shù)碼管顯示當前窗口,P-1代表第1個窗口,P-2代表第2個窗口,P-3代表第3個窗口,P-4代表第1個窗口。
第4,3,2,1位數(shù)碼管顯示當前窗口被設置的參數(shù)。范圍是從0到9999。S1是加按鍵,按下此按鍵會依次增加當前窗口的參數(shù)。S5是減按鍵,按下此按鍵會依次減少當前窗口的參數(shù)。S9是切換窗口按鍵,按下此按鍵會依次循環(huán)切換不同的窗口。
(3)源代碼講解如下:
總結陳詞:
下一節(jié)開始講關于單片機驅動實時時鐘芯片的內(nèi)容,欲知詳情,請聽下回分解-----利用DS1302做一個實時時鐘 。