基于PIC16F627單片機的可調倒計時(shí)提醒器軟硬件設計
本可調倒計時(shí)提醒器具有:電路簡(jiǎn)潔、顯示醒目、定時(shí)準確、制作容易、可調倒計0~99 分鐘,使用方便的優(yōu)點(diǎn)。它既有制作的趣味性,又有使用的實(shí)用性。
本文引用地址:http://dyxdggzs.com/article/172022.htm一、硬件電路
如圖1所示,電源變壓器T1將AC220V市電變換為AC9V交流電壓后,經(jīng)D1~D4整流、C4濾波、U2MC7805(或LM7805)穩壓后,得到5V直流電壓,為整機供電。
主控芯片為PIC16F627單片機,其每個(gè)端口的拉電流或灌電流可達25mA,無(wú)需外加三極管,就可以直接驅動(dòng)LED數碼管。
設PIC16F627的RB口為輸出,其中RB0~RB6用于數碼管的段驅動(dòng),因選用的是LG5621BH共陽(yáng)數碼管,故只有當RBO~RB6輸出低電平時(shí),數碼管才能被點(diǎn)亮,RB7口用于控制蜂鳴器,三極管Q3(S8050)作驅動(dòng)放大,只有在RB7輸出高電平時(shí),蜂鳴器才能鳴響報警。設RA0~RA2為輸出口,其中RA0、RAI用于數碼管的位驅動(dòng),輸出為低電平使能;RA2用于數碼管的小數點(diǎn)位驅動(dòng),低電平使能,用作定時(shí)器工作指示燈,當定時(shí)器工作時(shí),數碼管的小數點(diǎn)位以2s的頻率閃爍。設RA5、RA4、RA3為輸入口,RR4、RR5、R6為RA5、RA4、RA3口的上拉電阻。在RA5、RA4、RA3口上接有按鍵開(kāi)關(guān)S1~S3。S1為啟動(dòng)/報警解除鍵;S2為十位數預置調整鍵,按一次該鍵,定時(shí)器的十位數減1,減到0時(shí)再按一下該鍵,數值回到了9,如此循環(huán)顯示;S3為定時(shí)器個(gè)位數預置調整鍵,調整方法與S2相同。至此,PIC16F627單片機的所有端口都用上了。
定時(shí)器功能:定時(shí)器初始上電時(shí),兩位數碼管顯示99,并處于待機狀態(tài)。此時(shí),如按一下個(gè)位定時(shí)數預置鍵S3,個(gè)位數碼管顯示值減1,如按一下S2,則十位數碼管顯示值減小1。
S1為啟動(dòng)/報警解除鍵。按動(dòng)S1,定時(shí)器進(jìn)入工作狀態(tài),倒計時(shí)開(kāi)始(定時(shí)時(shí)間為分鐘),定時(shí)時(shí)長(cháng)從數碼管當前的顯示值開(kāi)始倒計時(shí)。在倒計時(shí)期間,數碼管的小數點(diǎn)dp位以2s的頻率閃爍,并且每過(guò)一分鐘,個(gè)位顯示值減1;每過(guò)10分鐘,十位顯示值減1,當數碼管顯示值減至00后,再過(guò)60秒,蜂鳴器開(kāi)始報警。在報警期間,數碼管始終顯示00,直至再次按下S1鍵,蜂鳴器才會(huì )停止報警,數碼管顯示上次預置的定時(shí)時(shí)間。
在倒計時(shí)期間內,按鍵S1~S3均被屏蔽,不能使能。

二、程序設計
1.程序流程主程序流程如圖2 (略)所示。1 分鐘定時(shí)子程序流程如圖3 (略)所示。數碼管顯示子程序流程如圖4(略)所示。
2.程序設計要點(diǎn)
(1)本定時(shí)器使用PIC16F627 的定時(shí)器模塊TM10 做成50ms 定時(shí)中斷,再用寄存器的遞減、判零語(yǔ)句“DECFSZ F”判斷是否到20 次中斷來(lái)確定顯示到1 分鐘沒(méi)有,未到1 分鐘,繼續顯示當前的數碼值,到1 分鐘,當前顯示的數碼值減1 后再顯示1 分鐘??,這樣,每過(guò)1 分鐘數碼管個(gè)位顯示值減1,每過(guò)10 分鐘,數碼管十位顯示值減1,直到兩位數碼管的顯示值減到00 為止。
(2)定時(shí)器如何區分在程序設計中,用一個(gè)寄存器的標志位區分預置顯示程序和定時(shí)工作顯示程序。該標志位為0,執行預置顯示程序;為1,執行定時(shí)器工作程序。
(3)按鍵的防抖動(dòng)問(wèn)題,機械按鍵在按下和抬起的瞬間均存在著(zhù)多次接通與斷開(kāi)的情況,本程序使用軟件來(lái)解決按鍵防抖問(wèn)題。具體方法是,在按鍵按下和抬起的過(guò)程中均加有延時(shí)程序,一般延時(shí)時(shí)間以10ms 左右為宜。
(4)周用顯示查表程序,用查表法作數碼管的數碼值顯示可使軟、硬件設計變得更加簡(jiǎn)潔、易懂。但本定時(shí)器設計中把數碼管的小數點(diǎn)位用作了“工作指示燈”,又由于數碼管采用的是“動(dòng)態(tài)掃描”的方式點(diǎn)亮的,所以此查表碼非彼查表碼,即查表碼發(fā)生了變化。右邊為本項目共陽(yáng)極數碼所用的查表程序的碼表。
如將碼表的值顛倒書(shū)寫(xiě),即將RETLW 0X40 寫(xiě)在最前面,RETLW 0X10 寫(xiě)在最后面,則本定時(shí)器就變成“正”定時(shí)器了。
三、程序燒寫(xiě)注意事項
燒寫(xiě)程序時(shí),一定要注意編程器的“配置位”設置,否則可能導致程序不能正常運行等問(wèn)題。
評論