PIC16F627 單片機端口的設置:
單片機的RA 有6 個I/O 端口,用RA《5 :0》
表示。本應用中RA0-RA2 設置為輸出端口;其中RA0、RA1 端口分別用于兩個數(shù)碼管的“個位”和“十位”的“位碼”驅(qū)動,RA2 用于控制三極管Q3 的b 極工作,連帶控制繼電器J1 觸點的閉合與否,進而,控制了定時插座JP1 的AC220V輸出電壓的有無。RA3 端口設置為輸入/ 輸出分時二重復用工作狀態(tài):①作輸入端口時:用作定時插座的“個位定時時間預置調(diào)整鍵”;②作輸出端口時:用于驅(qū)動LED1 發(fā)光二極管做為本定時插座的工作指示燈。在定時插座沒有進入定時輸出供電的情況下,RA3 作為輸入端口,保持了用于設置定時器的個位數(shù)碼預置數(shù)的設置功能;在插座工作輸出電壓的情況下,RA3 轉(zhuǎn)換為輸出端口,用于驅(qū)動LED1 作為插座的工作指示燈。
RA4 端口設置為輸入端口,用于定時時間的十位數(shù)值預置調(diào)整鍵。RA5 端口為輸入端口,與之相接的按鈕開關S1 為“啟動/ 報警解除按鍵”。
RB 端口的設置:電路中PIC16F627 的RB 端口設置為輸出端口。其中RB0-RB6 端口分別用于LED 數(shù)碼管的“a-g”7 個“段碼”的驅(qū)動,因這里選用的是LG5621BH(紅色)共陽極LED 數(shù)碼管,故而,只有當RB0-RB6 端口輸出“低電平”時,LED 數(shù)碼管所對應的“a-g”碼段才能被點亮。RB7 端口用于驅(qū)動有源蜂鳴器,在RB7端口輸出高電平時,該高電平電壓通過1k 電阻R9 加至三極管Q4 的b 極上,Q4 導通,蜂鳴器鳴響報警。
電源定時插座功能:定時插座初始上電時,兩位數(shù)碼管顯示值為:“99”,并處于停止走時的待機狀態(tài),其輸出插孔JP1 沒有電壓輸出。要是此時按下個位定時時間數(shù)值預置調(diào)整鍵S3,則個位數(shù)碼管從當前的顯示值減小“1”個數(shù),如,第一次按下S3 并且釋放按鍵后,個位數(shù)碼管顯示值由“9”變?yōu)椤?”,再按一次S3,顯示值變?yōu)椤?”,……直至顯示值變?yōu)椤?”,再從“0”回到“9”往復循環(huán)顯示。
十位定時時間預置調(diào)整按鍵S2 功能與S3 相同,只不過每按動S2 一次,并且釋放后,十位數(shù)碼管顯示值減小“1”,同樣,顯示值也是從9 → 8 → 7 →…→ 0 → 9 往復循環(huán)顯示。S1 為啟動/ 報警解除鍵。
當?shù)谝淮伟磩覵1 按鈕時,定時插座進入工作狀態(tài):
RA2 端口輸出高電平,此高電平經(jīng)過1K 限流電阻R8 加在三極管Q3 基極b 上,Q3 導通,繼電器J1 吸合,J1 的①、④ 觸點閉合,AC220V 交流市電的“火線”L 經(jīng)繼電器的定、動觸點④、①加至本插座的輸出JP1 的L 端口,從而JP1 插孔輸出AC220V 交流電壓,同時交流電壓輸出指示燈LED2 被點亮,表示插座有AC220V 電壓輸出。
同時,定時時間以倒計時的方式開始計時、遞減,定時時間為分鐘,定時時長從數(shù)碼管當前的顯示值開始到顯示00 結(jié)束。在倒計時的時間范圍內(nèi),LED1 工作指示燈開始以2S 的頻率閃爍點亮、熄滅一次,并且每過一分鐘,數(shù)碼管的個位顯示值遞減“1”個數(shù);每過10 分鐘,數(shù)碼管的十位顯示值減“1”,當數(shù)碼管顯示值為“00”時,再過60 秒鐘, 輸出插孔JP1 斷電,AC220V 輸出電壓指示燈LED2 同時熄滅;蜂鳴器開始報警鳴響。
在蜂鳴器報警其間內(nèi),數(shù)碼管始終顯示“00”值不變、LED1 工作指示燈停止閃爍,并且處于常亮狀態(tài)。直至再次按下S1 按鍵時蜂鳴器才能停止報警;數(shù)碼管顯示值跳回到上一次預置的定時時間的數(shù)值上,LED1 熄滅。
在倒計器的定時時間范內(nèi),S1 ~ S3 按鍵功能均被屏蔽、失效,不能使能。
程序設計要點:程序設計包括PIC16F627 初始化程序,主程序,1 分鐘定時中斷子程序,蜂鳴器提示音子程序,查數(shù)碼表子程序等組成。
本程序設計中,LED1 閃爍點亮速度設置不宜太快或太慢,LED1 閃爍點亮速度太快,會使人看了后心理產(chǎn)生太“忙碌”, 感受心慌,閃爍的太慢又經(jīng)C1 濾波、MC7805 穩(wěn)壓、C3、C2 高、低頻濾波后得到穩(wěn)定的DC5V 直流電壓作為整機的工作電源。
本電源定時插座的主控MCU 芯片為PIC16F627 單片機。PIC16F 系列單片機優(yōu)點之一是:
端口驅(qū)動電流大,每個端口的拉電流或者灌電流均大于20mA,這樣用它的端口驅(qū)動能力就可以直接驅(qū)動LED 數(shù)碼管了,無需在加驅(qū)動三極管,使得該插座的硬件電路設計變得十分簡潔。
PIC16F627 單片機端口的設置:
單片機的RA 有6 個I/O 端口,用RA《5 :0》
表示。本應用中RA0-RA2 設置為輸出端口;其中RA0、RA1 端口分別用于兩個數(shù)碼管的“個位”和“十位”的“位碼”驅(qū)動,RA2 用于控制三極管Q3 的b 極工作,連帶控制繼電器J1 觸點的閉合與否,進而,控制了定時插座JP1 的AC220V輸出電壓的有無。RA3 端口設置為輸入/ 輸出分時二重復用工作狀態(tài):①作輸入端口時:用作定時插座的“個位定時時間預置調(diào)整鍵”;②作輸出端口時:用于驅(qū)動LED1 發(fā)光二極管做為本定時插座的工作指示燈。在定時插座沒有進入定時輸出供電的情況下,RA3 作為輸入端口,保持了用于設置定時器的個位數(shù)碼預置數(shù)的設置功能;在插座工作輸出電壓的情況下,RA3 轉(zhuǎn)換為輸出端口,用于驅(qū)動LED1 作為插座的工作指示燈。
RA4 端口設置為輸入端口,用于定時時間的十位數(shù)值預置調(diào)整鍵。RA5 端口為輸入端口,與之相接的按鈕開關S1 為“啟動/ 報警解除按鍵”。
RB 端口的設置:電路中PIC16F627 的RB 端口設置為輸出端口。其中RB0-RB6 端口分別用于LED 數(shù)碼管的“a-g”7 個“段碼”的驅(qū)動,因這里選用的是LG5621BH(紅色)共陽極LED 數(shù)碼管,故而,只有當RB0-RB6 端口輸出“低電平”時,LED 數(shù)碼管所對應的“a-g”碼段才能被點亮。RB7 端口用于驅(qū)動有源蜂鳴器,在RB7端口輸出高電平時,該高電平電壓通過1k 電阻R9 加至三極管Q4 的b 極上,Q4 導通,蜂鳴器鳴響報警。
電源定時插座功能:定時插座初始上電時,兩位數(shù)碼管顯示值為:“99”,并處于停止走時的待機狀態(tài),其輸出插孔JP1 沒有電壓輸出。要是此時按下個位定時時間數(shù)值預置調(diào)整鍵S3,則個位數(shù)碼管從當前的顯示值減小“1”個數(shù),如,第一次按下S3 并且釋放按鍵后,個位數(shù)碼管顯示值由“9”變?yōu)椤?”,再按一次S3,顯示值變?yōu)椤?”,……直至顯示值變?yōu)椤?”,再從“0”回到“9”往復循環(huán)顯示。
十位定時時間預置調(diào)整按鍵S2 功能與S3 相同,只不過每按動S2 一次,并且釋放后,十位數(shù)碼管顯示值減小“1”,同樣,顯示值也是從9 → 8 → 7 →…→ 0 → 9 往復循環(huán)顯示。S1 為啟動/ 報警解除鍵。
當?shù)谝淮伟磩覵1 按鈕時,定時插座進入工作狀態(tài):
RA2 端口輸出高電平,此高電平經(jīng)過1K 限流電阻R8 加在三極管Q3 基極b 上,Q3 導通,繼電器J1 吸合,J1 的①、④ 觸點閉合,AC220V 交流市電的“火線”L 經(jīng)繼電器的定、動觸點④、①加至本插座的輸出JP1 的L 端口,從而JP1 插孔輸出AC220V 交流電壓,同時交流電壓輸出指示燈LED2 被點亮,表示插座有AC220V 電壓輸出。
同時,定時時間以倒計時的方式開始計時、遞減,定時時間為分鐘,定時時長從數(shù)碼管當前的顯示值開始到顯示00 結(jié)束。在倒計時的時間范圍內(nèi),LED1 工作指示燈開始以2S 的頻率閃爍點亮、熄滅一次,并且每過一分鐘,數(shù)碼管的個位顯示值遞減“1”個數(shù);每過10 分鐘,數(shù)碼管的十位顯示值減“1”,當數(shù)碼管顯示值為“00”時,再過60 秒鐘, 輸出插孔JP1 斷電,AC220V 輸出電壓指示燈LED2 同時熄滅;蜂鳴器開始報警鳴響。
在蜂鳴器報警其間內(nèi),數(shù)碼管始終顯示“00”值不變、LED1 工作指示燈停止閃爍,并且處于常亮狀態(tài)。直至再次按下S1 按鍵時蜂鳴器才能停止報警;數(shù)碼管顯示值跳回到上一次預置的定時時間的數(shù)值上,LED1 熄滅。
在倒計器的定時時間范內(nèi),S1 ~ S3 按鍵功能均被屏蔽、失效,不能使能。
程序設計要點:程序設計包括PIC16F627 初始化程序,主程序,1 分鐘定時中斷子程序,蜂鳴器提示音子程序,查數(shù)碼表子程序等組成。
本程序設計中,LED1 閃爍點亮速度設置不宜太快或太慢,LED1 閃爍點亮速度太快,會使人看了后心理產(chǎn)生太“忙碌”, 感受心慌,閃爍的太慢又會使人疑惑定時插座是否在走動、工作,以每2S鐘的頻率點亮、熄滅一次為妥。另外電路中增加了LED2 作為AC220V 輸出電源指示燈,當定時插座工作時,LED2 點亮,表示JP1 插孔有AC220V電壓輸出;LED2 熄滅則表示電源JP1 插孔無AC220V 電壓輸出,以示確認插孔有否AC 電壓輸出。
PIC16F627 單片機初始化程序如下。
;*****【PIC16F627 初始化程序】***************
START
BCF STATUS,6
BSF STATUS,5
; 置STAUUS 寄存器的RP1=0,RPO=1
MOVLW 0
MOVWF TRISB
; 設B 口為輸出
MOVLW 0F8H
MOVWF TRISA
; 設A 口的R2-R0 位為輸出
; 設A 口的R5-R3 位為輸入
MOVLW 07H
MOVWF OPTION_REG
; 設置選項寄存器分頻器:TMR0
; 分頻比值設為:1 :256
BCF STATUS,5
MOVLW 07H
MOVWF CMCON
; 置數(shù)07H 到CMCON
; 關閉16F627 內(nèi)部比較器
MOVLW 0
MOVWF PORTB
; 清B 口
;---------- 以下為開中斷設置--------
MOVLW 0A0H
MOVWF INTCON
; 開TMR0 中斷使能位
; 和全局中斷使能位
BCF INTCON,T0IF
MOVLW TMR0_B
; 清TMR0 中斷標志為
MOVWF TMR0
; 向TMR0 賦初值
; 并啟動TMR0 定時器
;*******【初始化程序結(jié)束】*********************
評論
查看更多