用PIC單片機制作的電源定時插座
數(shù)碼管顯示子程序流程圖如4 所示。
圖4 數(shù)碼管顯示子程序流程
按鍵提示音子程序段如下,供參考。
;------ 按鍵提示音子程序開始-----;
FMQ
; 蜂鳴器提示音子程序
BSF PORTB,7
;RB7> 端口輸出高電平,使Q4 導(dǎo)通,蜂鳴器LS1 鳴響。
CALL DELAY_0.2S
; 調(diào)用0.2S 延時子程序,讓蜂鳴器響0.2S.
BCF PORTB,7
;RB7> 輸出低電平,讓Q4 截止,蜂鳴器關(guān)閉
RETURN
; 蜂鳴器子程序返回。
;----- 按鍵提示音子程序結(jié)束------;
程序設(shè)計要點:1) 本定時器使用了PIC16F627 的一個定時器模塊TMI0,并用TMI0 做了50mS 定時中斷,再用寄存器遞減、判零語句:
DECFSZ F判斷20×60 次中斷到了與否來確定顯示1 分鐘時間的界限,1 分鐘未到,繼續(xù)顯示當(dāng)前的數(shù)碼值,1 分鐘到了,從當(dāng)前顯示的數(shù)碼值減1后在顯示1 分鐘……,這樣:每過1 分鐘數(shù)碼管個位顯示值就減1,每過10 分鐘,十位數(shù)碼管顯示值就減1,直到兩位數(shù)碼管的顯示值減到00為止。2)定時器如何區(qū)分:預(yù)置顯示程序和定時工作顯示程序。在此程序設(shè)計中是用了一個寄存器的標(biāo)志位加以區(qū)分的,標(biāo)志位為0,執(zhí)行預(yù)置顯示程序;標(biāo)志位為1,執(zhí)行定時器工做程序。
3)按鍵的防抖動問題,機械按鍵在按下和抬起的瞬間均存在著多次接通與斷開的情況,加之單片機執(zhí)行程序的速度非常之快,即在瞬間(1μS 時間內(nèi))即可檢測到開關(guān)的閉合與斷開的狀態(tài),故而,必須要做好S1-S3 按鍵開關(guān)的防抖問題,防抖使用軟件來解決,具體方法是在按鍵按下和抬起的過程中均加有延時程序,一般延時時間取10mS 左右為宜,這樣即解決了按鍵的防抖問題,又不至于讓人感覺按鍵反映的速度太慢。4)調(diào)用顯示查表程序,用查表法作數(shù)碼管的數(shù)碼值顯示是程序設(shè)計中慣用的手段之一,它可使軟、硬件設(shè)計變得更加的簡潔、易懂。但本定時器設(shè)計中把數(shù)碼管的小數(shù)點位用作了工作指示燈,又由于數(shù)碼管采用的是動態(tài)掃描的方法點亮工作的,查表碼會發(fā)生了變化。以下列出了本項目此共陽極數(shù)碼所用的查表程序的碼表見表1.
表1
如將碼表的值顛倒書寫:RETLW 0X40 寫在最前面;RETLW 0X10 寫在最后面,則本定時插座就變成了正定時插座了。
程序在總體設(shè)計上是以模塊化為主,這樣讀起來思路較易清晰,流程更加明確。
元器件選擇:電路中電源變壓器T1 要選用功率大于3W、次級輸出電壓為AC12V ~ AC15V 的變壓器,這樣才能保證在繼電器工作時不至于使T1次級輸出的DC 電壓降的太低而影響單片機的正常工作。LS1 選擇5V 有源蜂鳴器。J1 也可以選擇其它型號的產(chǎn)品,J1 線圈工作電壓高,其工作電流就小,對電路電壓降低值影響就小,J1 觸點電流應(yīng)選擇大于10A 為宜,避免該定時插座在帶動大的交流負(fù)載時觸點被燒蝕的可能性。數(shù)碼管選用2 位一體近日筆者發(fā)現(xiàn),一些人在農(nóng)村的街頭巷尾、集貿(mào)市場高聲叫賣高效電子節(jié)能器.據(jù)商販宣稱:這種高科技產(chǎn)品獲得國家專利,每只可帶負(fù)載1500~3000W.價格便宜,一個只有十塊錢,一般的家庭用1 個就行了,如果家里的電器多的可多買。好用且使用方便,買回家后,只需將電子節(jié)能器的兩腳插頭插在家中任意兩眼插座上,即可節(jié)電30~50%,甚至更多。
為了讓圍觀者相信該電子節(jié)能器的節(jié)電效果,商販還在現(xiàn)場做演示。演示的方法是:把100W 的燈泡接在一個電表上,接通電源后,電表飛快地轉(zhuǎn)動。
然后商販又把電子節(jié)能器插在事先準(zhǔn)備好的插座上,電表鋁盤轉(zhuǎn)速立即慢了一半還多。一些村民親眼看了后,對電子節(jié)能器能節(jié)電的效果深信不疑。
紛紛索要產(chǎn)品介紹,使用說明書,詢問使用方法,許多人解囊掏錢購買。這種電子節(jié)能器真的能節(jié)電嗎?
為弄個究竟,筆者買回一只電子節(jié)能器進行了作 者街頭叫賣的電子節(jié)能器能節(jié)電嗎?
馬祥琴化的共陽極數(shù)碼管。晶振選用4MHz 的。
安裝、制作、調(diào)試時要注意:由于電路中有AC220V 電壓接入,建議定時插座在調(diào)試階段暫時不接插座JP1 的AC220V 電壓,以策人身安全。待程序調(diào)試通過后在將AC220V 電壓接通,保證整機的調(diào)試階段是在安全電壓下進行的。電路中元件沒有特殊要求,保證安裝、焊接的正確性就可以了,PIC16F627 芯片要裝在IC 插座中,以便于隨時取下重新燒寫程序。
程序燒寫:文章附帶的(。hex)文件讀者可直接用來將其燒錄到PIC16F627 芯片中。燒寫程序中一定要注意編程器的配置位設(shè)置,它在PIC 單片機中起到舉足輕重的作用,萬萬不可忽視。
性能分析:
本定時插座1 小時產(chǎn)生的時間誤差約8S,這個定時插座定時精準(zhǔn)度不高是數(shù)碼管動態(tài)顯示和 TMI0 中斷相互影響,TMI0 溢出時要等程序做完才發(fā)生中斷,就會有延遲誤差,對于我們?nèi)粘I钪幸话闶褂茫涠〞r的精度也算是足夠高的了。
編者后記:作者提出了PIC 定時器如何減小誤差的問題,希望愛好者給出出主意。如果把掃描定時和計時定時結(jié)合起來,每5ms 中斷一次,中斷200 次計一分鐘,是否能改善?
蜂鳴器相關(guān)文章:蜂鳴器原理
評論