本電子鐘采用PIC16C55單片機(jī)控制,適于溫室的定時(shí)恒溫或自來(lái)水的定時(shí)定壓控制等,。PIC16C55單片機(jī)工作電壓為2.5~6.25V,,功耗低,、驅(qū)動(dòng)能力強(qiáng)。本電子鐘可以控制一路負(fù)載在24小時(shí)內(nèi)的3次開(kāi)/關(guān),;一個(gè)雙限觸發(fā)的定時(shí)輸出口,既可接傳統(tǒng)的功率保持型繼電器,,也可接脈沖繼電器,。本機(jī)用四位LED數(shù)碼管掃描式顯示,還有消隱(省電)工作方式,,使用起來(lái)非常靈活,、方便?! ?br />
一,、 工作原理
電子鐘電路見(jiàn)圖1。RB7口是定時(shí)指示端,,在定時(shí)開(kāi)期間輸出高電平,,驅(qū)動(dòng)V1發(fā)光,該口也可經(jīng)緩沖作定時(shí)輸出口,;RB6是雙限觸發(fā)控制的定時(shí)輸出口,,其工作方式是:在RB7高電平期間,若RB1為高電平,,則RB6輸出高電平,;若RB0為高電平,RB6輸出低電平,;若RB1,、RB0同為低電平,RB6保持原態(tài),;同為高電平時(shí),,RB6輸出低電平。RB5,、RB4用于驅(qū)動(dòng)脈沖繼電器,,RB6上升沿觸發(fā)RB5輸出高電平開(kāi)脈沖;在RB6下降沿觸發(fā)RB4時(shí),,RB4端輸出高電平關(guān)脈沖,,開(kāi)/關(guān)脈沖的持續(xù)時(shí)間均為125ms。
圖 1
RB3是消隱控制器,,接高電平(即SK1閉合)時(shí),,顯示屏及秒閃正常;否則,,顯示消隱,。顯示消隱時(shí),,時(shí)鐘及各控制邏輯都正常運(yùn)行,如忽略RB4至RB7各口的驅(qū)動(dòng)電流,,則在3V供電時(shí),,整機(jī)電流不足20μA,即兩節(jié)5號(hào)電池可用數(shù)月!RB2選擇數(shù)碼管極性,,RB2為低電平,,使用共陰LED;RB2為高電平,,則用共陽(yáng)LED,。數(shù)碼管的極性是在上電初始化時(shí),根據(jù)RB2口狀態(tài)確定的,,工作過(guò)程中改變RB2的電平則不起作用,。
本機(jī)設(shè)S1~S4四個(gè)按鍵,,S1是功能選擇鍵,,S2是小時(shí)增量調(diào)整,S3是分鐘增量,,S4用于分鐘減量調(diào)節(jié),,其使用方法為:
上電時(shí),RB5至RB7均為低電平,,RB4端送出一個(gè)關(guān)脈沖,,使SK1閉合,整機(jī)正常顯示,、工作,,RC7口送出秒閃脈沖,RC6~RC0送字段碼,。RA3~RA0分別為10時(shí),、時(shí)、10分,、分位的位碼輸出,。這時(shí),按一下S2或S3(時(shí)增量/分增量鍵),,可使RB7端置位或復(fù)位,。
在正常走時(shí)期間,,秒閃正常,;在校對(duì)或設(shè)置定時(shí)時(shí),秒停閃,。例如:在正常走時(shí)期間,,按一下S1鍵,,秒閃停止,屏幕顯示J-,,表示可以校對(duì)時(shí)間,。這時(shí)再按S2~S4中任一鍵,屏幕顯示現(xiàn)在時(shí)間,,但秒不閃,,此刻可按S2~S4校對(duì)時(shí)鐘。再次按S1,,屏幕顯示1∪,表示可以設(shè)定第一次開(kāi)時(shí)間,,此時(shí)按S2~S4對(duì)時(shí)間進(jìn)行查看及設(shè)置,。繼續(xù)按S1,系統(tǒng)顯示1∩,,表示可設(shè)置第一次關(guān)時(shí)間……依次進(jìn)行,。設(shè)置好系統(tǒng)及3次開(kāi)關(guān)時(shí)間后,整機(jī)回到正常顯示狀態(tài),,秒閃恢復(fù),。
如欲取消某次開(kāi)/關(guān)定時(shí),,只需把該次的開(kāi)與關(guān)時(shí)間設(shè)置成相同值即可,。
筆者曾把該時(shí)鐘用于定時(shí)定壓供水控制系統(tǒng),,RB6端用于驅(qū)動(dòng)繼電器(也可用RB5與RB4兩端驅(qū)動(dòng)脈沖繼電器),,RB1端接水壓(水位)的低限輸入,RB0端接高限輸入,,設(shè)置好定時(shí),,一個(gè)簡(jiǎn)易的定時(shí)定壓自動(dòng)供水系統(tǒng)即告完成?! ?br />
二,、 編程技巧
PIC16C55單片機(jī)程序存儲(chǔ)器只有512字節(jié),加上采用外接32768Hz晶體振蕩方式,,時(shí)鐘速度較低,,因此,統(tǒng)籌好系統(tǒng)的工作時(shí)序與人機(jī)界面之間的關(guān)系是軟件設(shè)計(jì)成敗的關(guān)鍵,。本機(jī)編程采用如下方案:軟件工作流程見(jiàn)附圖2,。
圖 2
PIC16C55單片機(jī)的一個(gè)機(jī)器周期是4個(gè)時(shí)鐘周期,不難算出,,本系統(tǒng)中每秒有8192個(gè)機(jī)器周期,。在編制軟件時(shí),,先設(shè)定單片機(jī)內(nèi)部定時(shí)計(jì)數(shù)器F1的計(jì)數(shù)方式為機(jī)器周期的64分頻。這樣,,每當(dāng)F1溢出時(shí),,系統(tǒng)遞加2秒。平時(shí),,系統(tǒng)每128個(gè)機(jī)器周期內(nèi)用RC口與RA口驅(qū)動(dòng)掃描一次顯示屏,,可保證每秒內(nèi)掃描64次顯示屏,基本上無(wú)閃爍感,。而128個(gè)機(jī)器周期正是F1的第0位(為便于敘述以下簡(jiǎn)記為F10)每次下降沿的間隔時(shí)間,,我們可以編一段程序,當(dāng)F10的下降沿到來(lái)時(shí),,掃描一次顯示屏,,每當(dāng)F1的低4位為全0時(shí)(125ms一次)使系統(tǒng)檢測(cè)一次RB口與按鍵狀態(tài),并進(jìn)行相關(guān)處理,,部分相關(guān)程序如下:
WAIT BTFSC 1,,0 ;等待F10的下降沿,,編程時(shí)
GOTO WAIT ,;要保證每次下降沿前到此
MOVFW 1
SKPNZ
GOTO CLOCK ;F1=0,,滿2秒,,轉(zhuǎn)時(shí)鐘處理
ANDLW 0FH ,;屏蔽F1高4位
SKPZ
GOTO DISPLAY,;F1低4位不為0,轉(zhuǎn)顯示
MOVLW 0C0H ,;滿125mS,,使RB口脈沖復(fù)位
ANDWF 6,1
MOVLW 0FH ,;檢測(cè)按鍵
TRIS 7
MOVFW 7
ANDLW 0FH?。槐A舭存I數(shù)據(jù)
SKPZ
GOTO AN ??;有鍵值,轉(zhuǎn)按鍵處理
DISPLAY …… ,;顯示掃描,,定時(shí)管理RB口
CLOCK …… ;時(shí)鐘,,定時(shí)處理程序
AN …… ,;按鍵管理程序