PIC16F84單片機(jī)實(shí)現(xiàn)的自然風(fēng)發(fā)生器
一、硬件電路及原理
要使電風(fēng)扇送出仿自然風(fēng),就需要改變電風(fēng)扇送風(fēng)的強(qiáng)弱,即需要改變風(fēng)扇電機(jī)的電壓和電流,從而改變其轉(zhuǎn)速。如圖1所示,風(fēng)扇插座與晶閘管TREAC相串聯(lián),改變晶閘管控制角α,即控制晶閘管導(dǎo)通的時間,就能使風(fēng)扇電機(jī)的電壓、電流發(fā)生變化。圖2展示了α角和電機(jī)負(fù)載電壓的關(guān)系。
Α角的變化又可通過電容C1的充放電時間的改變來實(shí)現(xiàn)。PIC16F84單片機(jī)按一定規(guī)律選擇電阻Rx,即可改變電容C1的充放電時間,從而改變2N2646的導(dǎo)通時間。改變了TREAC的導(dǎo)通角,達(dá)到改變電風(fēng)扇送風(fēng)強(qiáng)弱的目的。控制角α和強(qiáng)弱風(fēng)的關(guān)系如圖3所示
市電頻率f=50Hz,則可得下式 α/360°=t/0.02……………(1)
根據(jù)圖1所示RxC1充電回路,可推知
α=t·360°/0.02 ={RxC1ln1[1/(1-n)]}·360°/0.02 ……………(2)
其中,η=VP/VBB,Vp為C1充電后的電壓值,VBB為充電電源電壓,一般取η=0.63。若電容C為0.047μF,根據(jù)(2)式的值,求得對應(yīng)于不同的α設(shè)定值的Rx值表:
R0=1kΩ,R1=33kΩ,R2=62kΩ,R3=89kΩ,R4=120kΩ,R5=150kΩ,R6=180kΩ,R7=220kΩ。
Rx接于PIC16F84 單片機(jī) 的RB0~RB7口;RA0口為啟動信號輸入口,當(dāng)A鍵按下時,自然風(fēng)發(fā)生器開始工作;RA1口為停止信號輸入口,當(dāng)B鍵按下時,自然風(fēng)發(fā)生器停止運(yùn)行;RA3口為交流電相位檢測口。用于確定交流電的起始相位。
程序清單:
LSIT P=PIC16F84
?。#桑危茫蹋眨模?P16F84INC
?。疲? EQU0CH
FD EQU0DH
ORG 0
MAIN:CLRW
TRISRB
?。停希郑祝疲遥拢恢茫遥驴跒檩敵隹?,
??;且置其初值為0
MOVLW0FH
?。裕遥桑?RA ??;置A口為輸入口
KEYA:BTFSCRA,0 ;A鍵是否按下?
?。牵希裕?KEYA ;A鍵未按下轉(zhuǎn)
KEYA,等待
START:MOVLW80H??;A鍵按下,
?。唬福埃取疲?br/> ?。停希郑祝疲疲?br/> BTFSSRA,1??;B鍵按下否?
GOTO MAIN??;B鍵按下
PHASE:BTFSCRA3
GOTO PHASE ;等待交流電
零相位
MOVF8,W
MOVWFRB ;F8→RB口
CALL DELAY;延時10秒
?。茫蹋遥谩? ;清C
?。遥遥?F8 ;F8右移
BTFSS3,0
?。牵希裕?PHASE
GOTO START
DELAY:MOVLW150
?。停希郑祝疲疲?br/> ?。停希郑蹋祝贰 ?;給RTCC預(yù)
設(shè)倍數(shù)1∶256
OPTION
LOOP:MOVLW255
SUBWFRTCC
?。拢裕疲樱? 3?2
DECFSZF9
?。牵希裕?LOOP
RETLW 0
?。牛危摹 ? ;程序結(jié)束