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