<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 用PIC單片機制作的電源定時(shí)插座

用PIC單片機制作的電源定時(shí)插座

作者: 時(shí)間:2012-08-21 來(lái)源:網(wǎng)絡(luò ) 收藏

十位時(shí)間預置調整按鍵S2 功能與S3 相同,只不過(guò)每按動(dòng)S2 一次,并且釋放后,十位數碼管顯示值減小1,同樣,顯示值也是從9 → 8 → 7 →…→ 0 → 9 往復循環(huán)顯示。S1 為啟動(dòng)/ 報警解除鍵。

當第一次按動(dòng)S1 按鈕時(shí),進(jìn)入工作狀態(tài):

RA2 端口輸出高電平,此高電平經(jīng)過(guò)1K 限流電阻R8 加在三極管Q3 基極b 上,Q3 導通,繼電器J1 吸合,J1 的①、④ 觸點(diǎn)閉合,AC220V 交流市電的火線(xiàn)L 經(jīng)繼電器的定、動(dòng)觸點(diǎn)④、①加至本的輸出JP1 的L 端口,從而JP1 插孔輸出AC220V 交流電壓,同時(shí)交流電壓輸出指示燈LED2 被點(diǎn)亮,表示有AC220V 電壓輸出。

同時(shí),時(shí)間以倒計時(shí)的方式開(kāi)始計時(shí)、遞減,定時(shí)時(shí)間為分鐘,定時(shí)時(shí)長(cháng)從數碼管當前的顯示值開(kāi)始到顯示00 結束。在倒計時(shí)的時(shí)間范圍內,LED1 工作指示燈開(kāi)始以2S 的頻率閃爍點(diǎn)亮、熄滅一次,并且每過(guò)一分鐘,數碼管的個(gè)位顯示值遞減1個(gè)數;每過(guò)10 分鐘,數碼管的十位顯示值減1,當數碼管顯示值為00時(shí),再過(guò)60 秒鐘, 輸出插孔JP1 斷電,AC220V 輸出電壓指示燈LED2 同時(shí)熄滅;蜂鳴器開(kāi)始報警鳴響。

在蜂鳴器報警其間內,數碼管始終顯示00值不變、LED1 工作指示燈停止閃爍,并且處于常亮狀態(tài)。直至再次按下S1 按鍵時(shí)蜂鳴器才能停止報警;數碼管顯示值跳回到上一次預置的定時(shí)時(shí)間的數值上,LED1 熄滅。

在倒計器的定時(shí)時(shí)間范內,S1 ~ S3 按鍵功能均被屏蔽、失效,不能使能。

程序設計要點(diǎn):程序設計包括16F627 初始化程序,主程序,1 分鐘定時(shí)中斷子程序,蜂鳴器提示音子程序,查數碼表子程序等組成。

本程序設計中,LED1 閃爍點(diǎn)亮速度設置不宜太快或太慢,LED1 閃爍點(diǎn)亮速度太快,會(huì )使人看了后心理產(chǎn)生太忙碌, 感受心慌,閃爍的太慢又經(jīng)C1 濾波、MC7805 穩壓、C3、C2 高、低頻濾波后得到穩定的DC5V 直流電壓作為整機的工作。

定時(shí)插座的主控MCU 芯片為16F627 。16F 系列優(yōu)點(diǎn)之一是:

端口驅動(dòng)電流大,每個(gè)端口的拉電流或者灌電流均大于20mA,這樣用它的端口驅動(dòng)能力就可以直接驅動(dòng)LED 數碼管了,無(wú)需在加驅動(dòng)三極管,使得該插座的硬件電路設計變得十分簡(jiǎn)潔。

PIC16F627 端口的設置:

單片機的RA 有6 個(gè)I/O 端口,用RA5 :0>

表示。本應用中RA0-RA2 設置為輸出端口;其中RA0、RA1 端口分別用于兩個(gè)數碼管的個(gè)位和十位的位碼驅動(dòng),RA2 用于控制三極管Q3 的b 極工作,連帶控制繼電器J1 觸點(diǎn)的閉合與否,進(jìn)而,控制了定時(shí)插座JP1 的AC220V輸出電壓的有無(wú)。RA3 端口設置為輸入/ 輸出分時(shí)二重復用工作狀態(tài):①作輸入端口時(shí):用作定時(shí)插座的個(gè)位定時(shí)時(shí)間預置調整鍵;②作輸出端口時(shí):用于驅動(dòng)LED1 發(fā)光二極管做為本定時(shí)插座的工作指示燈。在定時(shí)插座沒(méi)有進(jìn)入定時(shí)輸出供電的情況下,RA3 作為輸入端口,保持了用于設置定時(shí)器的個(gè)位數碼預置數的設置功能;在插座工作輸出電壓的情況下,RA3 轉換為輸出端口,用于驅動(dòng)LED1 作為插座的工作指示燈。

RA4 端口設置為輸入端口,用于定時(shí)時(shí)間的十位數值預置調整鍵。RA5 端口為輸入端口,與之相接的按鈕開(kāi)關(guān)S1 為啟動(dòng)/ 報警解除按鍵.

RB 端口的設置:電路中PIC16F627 的RB 端口設置為輸出端口。其中RB0-RB6 端口分別用于LED 數碼管的a-g7 個(gè)段碼的驅動(dòng),因這里選用的是LG5621BH(紅色)共陽(yáng)極LED 數碼管,故而,只有當RB0-RB6 端口輸出低電平時(shí),LED 數碼管所對應的a-g碼段才能被點(diǎn)亮。RB7 端口用于驅動(dòng)有源蜂鳴器,在RB7端口輸出高電平時(shí),該高電平電壓通過(guò)1k 電阻R9 加至三極管Q4 的b 極上,Q4 導通,蜂鳴器鳴響報警。

定時(shí)插座功能:定時(shí)插座初始上電時(shí),兩位數碼管顯示值為:99,并處于停止走時(shí)的待機狀態(tài),其輸出插孔JP1 沒(méi)有電壓輸出。要是此時(shí)按下個(gè)位定時(shí)時(shí)間數值預置調整鍵S3,則個(gè)位數碼管從當前的顯示值減小1個(gè)數,如,第一次按下S3 并且釋放按鍵后,個(gè)位數碼管顯示值由9變?yōu)?,再按一次S3,顯示值變?yōu)?,……直至顯示值變?yōu)?,再從0回到9往復循環(huán)顯示。

十位定時(shí)時(shí)間預置調整按鍵S2 功能與S3 相同,只不過(guò)每按動(dòng)S2 一次,并且釋放后,十位數碼管顯示值減小1,同樣,顯示值也是從9 → 8 → 7 →…→ 0 → 9 往復循環(huán)顯示。S1 為啟動(dòng)/ 報警解除鍵。

當第一次按動(dòng)S1 按鈕時(shí),定時(shí)插座進(jìn)入工作狀態(tài):

RA2 端口輸出高電平,此高電平經(jīng)過(guò)1K 限流電阻R8 加在三極管Q3 基極b 上,Q3 導通,繼電器J1 吸合,J1 的①、④ 觸點(diǎn)閉合,AC220V 交流市電的火線(xiàn)L 經(jīng)繼電器的定、動(dòng)觸點(diǎn)④、①加至本插座的輸出JP1 的L 端口,從而JP1 插孔輸出AC220V 交流電壓,同時(shí)交流電壓輸出指示燈LED2 被點(diǎn)亮,表示插座有AC220V 電壓輸出。

同時(shí),定時(shí)時(shí)間以倒計時(shí)的方式開(kāi)始計時(shí)、遞減,定時(shí)時(shí)間為分鐘,定時(shí)時(shí)長(cháng)從數碼管當前的顯示值開(kāi)始到顯示00 結束。在倒計時(shí)的時(shí)間范圍內,LED1 工作指示燈開(kāi)始以2S 的頻率閃爍點(diǎn)亮、熄滅一次,并且每過(guò)一分鐘,數碼管的個(gè)位顯示值遞減1個(gè)數;每過(guò)10 分鐘,數碼管的十位顯示值減1,當數碼管顯示值為00時(shí),再過(guò)60 秒鐘, 輸出插孔JP1 斷電,AC220V 輸出電壓指示燈LED2 同時(shí)熄滅;蜂鳴器開(kāi)始報警鳴響。

在蜂鳴器報警其間內,數碼管始終顯示00值不變、LED1 工作指示燈停止閃爍,并且處于常亮狀態(tài)。直至再次按下S1 按鍵時(shí)蜂鳴器才能停止報警;數碼管顯示值跳回到上一次預置的定時(shí)時(shí)間的數值上,LED1 熄滅。

在倒計器的定時(shí)時(shí)間范內,S1 ~ S3 按鍵功能均被屏蔽、失效,不能使能。

程序設計要點(diǎn):程序設計包括PIC16F627 初始化程序,主程序,1 分鐘定時(shí)中斷子程序,蜂鳴器提示音子程序,查數碼表子程序等組成。

本程序設計中,LED1 閃爍點(diǎn)亮速度設置不宜太快或太慢,LED1 閃爍點(diǎn)亮速度太快,會(huì )使人看了后心理產(chǎn)生太忙碌, 感受心慌,閃爍的太慢又會(huì )使人疑惑定時(shí)插座是否在走動(dòng)、工作,以每2S鐘的頻率點(diǎn)亮、熄滅一次為妥。另外電路中增加了LED2 作為AC220V 輸出電源指示燈,當定時(shí)插座工作時(shí),LED2 點(diǎn)亮,表示JP1 插孔有AC220V電壓輸出;LED2 熄滅則表示電源JP1 插孔無(wú)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

; 關(guān)閉16F627 內部比較器

蜂鳴器相關(guān)文章:蜂鳴器原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>