《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于PIC16F627單片機(jī)的可調(diào)倒計(jì)時(shí)提醒器設(shè)計(jì)
基于PIC16F627單片機(jī)的可調(diào)倒計(jì)時(shí)提醒器設(shè)計(jì)
電子發(fā)燒友
摘要: 本可調(diào)倒計(jì)時(shí)提醒器具有:電路簡(jiǎn)潔,、顯示醒目,、定時(shí)準(zhǔn)確、制作容易、可調(diào)倒計(jì)0~99分鐘,,使用方便的優(yōu)點(diǎn),。它既有制作的趣味性,,又有使用的實(shí)用性,。一、硬件電路如圖1所示,,電源變壓器T1將AC220V市電變換為AC9V交流電壓后,,經(jīng)D1~D4整流、C4濾波,、U2MC7805(或LM7805)穩(wěn)壓后,,得到5V直流電壓,為整機(jī)供電,。主控芯片為PIC16F627單片機(jī),,其每個(gè)端口的拉電流或灌電流可達(dá)25mA,無需外加三極管,,就可以直接驅(qū)動(dòng)LED數(shù)碼管,。設(shè)PIC16F627的RB口為輸出,其中RB0~RB6用于數(shù)碼管的段驅(qū)動(dòng),,因選用的是LG5621BH共陽數(shù)碼管,,故只有當(dāng)RBO~RB6輸出低電平時(shí),數(shù)碼管才能被點(diǎn)亮,,RB7口用于控制蜂鳴器,,三極管Q3(S8050)作驅(qū)動(dòng)放大,只有在RB7輸出高電平時(shí),,蜂鳴器才能鳴響報(bào)警。設(shè)RA0~RA2為輸出口,,其中RA0,、RAI用于數(shù)碼管的位驅(qū)動(dòng),輸出為低電平使能;RA2用于數(shù)碼管的小數(shù)點(diǎn)位驅(qū)動(dòng),,低電平使能,,用作定時(shí)器工作指示燈,當(dāng)定時(shí)器工作時(shí),,數(shù)碼管的小數(shù)點(diǎn)位以2s的頻率閃爍,。設(shè)RA5、RA4,、RA3為輸入口,,RR4、RR5,、R6為RA5,、RA4,、RA3口的上拉電阻。在RA5,、RA4,、R
Abstract:
Key words :

  本可調(diào)倒計(jì)時(shí)提醒器具有:電路簡(jiǎn)潔、顯示醒目,、定時(shí)準(zhǔn)確,、制作容易、可調(diào)倒計(jì)0~99 分鐘,,使用方便的優(yōu)點(diǎn),。它既有制作的趣味性,又有使用的實(shí)用性,。

  一,、硬件電路

  如圖1所示,電源變壓器T1將AC220V市電變換為AC9V交流電壓后,,經(jīng)D1~D4整流,、C4濾波、U2MC7805(或LM7805)穩(wěn)壓后,,得到5V直流電壓,,為整機(jī)供電。

  主控芯片為PIC16F627單片機(jī),,其每個(gè)端口的拉電流或灌電流可達(dá)25mA,,無需外加三極管,就可以直接驅(qū)動(dòng)LED數(shù)碼管,。

  設(shè)PIC16F627的RB口為輸出,,其中RB0~RB6用于數(shù)碼管的段驅(qū)動(dòng),因選用的是LG5621BH共陽數(shù)碼管,,故只有當(dāng)RBO~RB6輸出低電平時(shí),,數(shù)碼管才能被點(diǎn)亮,RB7口用于控制蜂鳴器,,三極管Q3(S8050)作驅(qū)動(dòng)放大,,只有在RB7輸出高電平時(shí),蜂鳴器才能鳴響報(bào)警,。設(shè)RA0~RA2為輸出口,,其中RA0、RAI用于數(shù)碼管的位驅(qū)動(dòng),,輸出為低電平使能;RA2用于數(shù)碼管的小數(shù)點(diǎn)位驅(qū)動(dòng),,低電平使能,用作定時(shí)器工作指示燈,當(dāng)定時(shí)器工作時(shí),,數(shù)碼管的小數(shù)點(diǎn)位以2s的頻率閃爍,。設(shè)RA5、RA4,、RA3為輸入口,,RR4、RR5,、R6為RA5,、RA4、RA3口的上拉電阻,。在RA5,、RA4、RA3口上接有按鍵開關(guān)S1~S3,。S1為啟動(dòng)/報(bào)警解除鍵;S2為十位數(shù)預(yù)置調(diào)整鍵,,按一次該鍵,定時(shí)器的十位數(shù)減1,,減到0時(shí)再按一下該鍵,,數(shù)值回到了9,如此循環(huán)顯示;S3為定時(shí)器個(gè)位數(shù)預(yù)置調(diào)整鍵,,調(diào)整方法與S2相同,。至此,PIC16F627單片機(jī)的所有端口都用上了,。

  定時(shí)器功能:定時(shí)器初始上電時(shí),,兩位數(shù)碼管顯示99,并處于待機(jī)狀態(tài),。此時(shí),,如按一下個(gè)位定時(shí)數(shù)預(yù)置鍵S3,個(gè)位數(shù)碼管顯示值減1,,如按一下S2,,則十位數(shù)碼管顯示值減小1。

  S1為啟動(dòng)/報(bào)警解除鍵,。按動(dòng)S1,定時(shí)器進(jìn)入工作狀態(tài),,倒計(jì)時(shí)開始(定時(shí)時(shí)間為分鐘),,定時(shí)時(shí)長(zhǎng)從數(shù)碼管當(dāng)前的顯示值開始倒計(jì)時(shí)。在倒計(jì)時(shí)期間,,數(shù)碼管的小數(shù)點(diǎn)dp位以2s的頻率閃爍,,并且每過一分鐘,個(gè)位顯示值減1;每過10分鐘,十位顯示值減1,,當(dāng)數(shù)碼管顯示值減至00后,,再過60秒,蜂鳴器開始報(bào)警,。在報(bào)警期間,,數(shù)碼管始終顯示00,直至再次按下S1鍵,,蜂鳴器才會(huì)停止報(bào)警,,數(shù)碼管顯示上次預(yù)置的定時(shí)時(shí)間。

  在倒計(jì)時(shí)期間內(nèi),,按鍵S1~S3均被屏蔽,,不能使能。

  

可調(diào)倒計(jì)時(shí)提醒器 www.elecfans.com

 

  二,、程序設(shè)計(jì)

  1.程序流程主程序流程如圖2 (略)所示,。1 分鐘定時(shí)子程序流程如圖3 (略)所示。數(shù)碼管顯示子程序流程如圖4(略)所示,。

  2.程序設(shè)計(jì)要點(diǎn)

  (1)本定時(shí)器使用PIC16F627 的定時(shí)器模塊TM10 做成50ms 定時(shí)中斷,,再用寄存器的遞減、判零語句“DECFSZ F”判斷是否到20 次中斷來確定顯示到1 分鐘沒有,,未到1 分鐘,,繼續(xù)顯示當(dāng)前的數(shù)碼值,到1 分鐘,,當(dāng)前顯示的數(shù)碼值減1 后再顯示1 分鐘??,,這樣,每過1 分鐘數(shù)碼管個(gè)位顯示值減1,,每過10 分鐘,,數(shù)碼管十位顯示值減1,直到兩位數(shù)碼管的顯示值減到00 為止,。

  (2)定時(shí)器如何區(qū)分在程序設(shè)計(jì)中,,用一個(gè)寄存器的標(biāo)志位區(qū)分預(yù)置顯示程序和定時(shí)工作顯示程序。該標(biāo)志位為0,,執(zhí)行預(yù)置顯示程序;為1,,執(zhí)行定時(shí)器工作程序。

  (3)按鍵的防抖動(dòng)問題,,機(jī)械按鍵在按下和抬起的瞬間均存在著多次接通與斷開的情況,,本程序使用軟件來解決按鍵防抖問題。具體方法是,,在按鍵按下和抬起的過程中均加有延時(shí)程序,,一般延時(shí)時(shí)間以10ms 左右為宜,。

  (4)周用顯示查表程序,用查表法作數(shù)碼管的數(shù)碼值顯示可使軟,、硬件設(shè)計(jì)變得更加簡(jiǎn)潔,、易懂。但本定時(shí)器設(shè)計(jì)中把數(shù)碼管的小數(shù)點(diǎn)位用作了“工作指示燈”,,又由于數(shù)碼管采用的是“動(dòng)態(tài)掃描”的方式點(diǎn)亮的,,所以此查表碼非彼查表碼,即查表碼發(fā)生了變化,。右邊為本項(xiàng)目共陽極數(shù)碼所用的查表程序的碼表,。

  如將碼表的值顛倒書寫,即將RETLW 0X40 寫在最前面,,RETLW 0X10 寫在最后面,,則本定時(shí)器就變成“正”定時(shí)器了。

  三,、程序燒寫注意事項(xiàng)

  燒寫程序時(shí),,一定要注意編程器的“配置位”設(shè)置,否則可能導(dǎo)致程序不能正常運(yùn)行等問題,。


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。