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