《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > PIC16C55單片機(jī)控制多用電子鐘
PIC16C55單片機(jī)控制多用電子鐘
摘要: 本電子鐘采用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)非常靈活、方便,。
關(guān)鍵詞: PIC PIC16C55 電子鐘
Abstract:
Key words :

       本電子鐘采用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的電平則不起作用?! ?br />
       本機(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ù)位,?! ?br />
       在正常走時(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ù)?! ?br />
       如欲取消某次開(kāi)/關(guān)定時(shí),,只需把該次的開(kāi)與關(guān)時(shí)間設(shè)置成相同值即可?! ?br />
       筆者曾把該時(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)記為F10)每次下降沿的間隔時(shí)間,我們可以編一段程序,,當(dāng)F10的下降沿到來(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    ,;等待F10的下降沿,,編程時(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 ,;保留按鍵數(shù)據(jù)
      SKPZ
      GOTO AN ?。挥墟I值,,轉(zhuǎn)按鍵處理
DISPLAY ……      ,;顯示掃描,定時(shí)管理RB口
CLOCK    ……      ,;時(shí)鐘,定時(shí)處理程序
AN    ……      ,;按鍵管理程序

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