單片機直流電機測速實驗程序
單片機直流電機測速實驗程序百科
#in
單片機直流電機轉(zhuǎn)速測試
拿個圓盤,上面沿半徑切一條縫,夾在一個紅外收發(fā)器的凹槽中,紅外收發(fā)模塊的一端接地,一端接電阻接VCC,電阻和紅外模塊之間引一根線到單片機的外部中斷P3.2或P3.3上。另一邊,單片機一個IO口接光耦一半的正極,光耦的另一半的正極接VCC負極接直流電機再接地。
直流電機轉(zhuǎn)軸插在圓盤圓心,保證能帶動圓盤轉(zhuǎn)動而不打滑。
編程思想如下:一個一秒定時器函數(shù),一個外部中斷函數(shù),每中斷一次計數(shù)一次。每當即時到時,計數(shù)器中的數(shù)就是轉(zhuǎn)速圈/S,然后清零。至于控制轉(zhuǎn)速則是由IO口輸出PWM(占空比變化的方波)控制電流大小,以控制轉(zhuǎn)速。轉(zhuǎn)速通過上面說的程序測得,然后與設(shè)定值進行比較,快了就降低占空比,慢了就增加占空比。
程序由lilaozishiyan發(fā)到你郵箱,電路很簡單就沒畫了,只有程序。
用51單片機控制直流電動機并測量轉(zhuǎn)速
我這個是用pwm+adc做的
ADC EQU 35H
CLOCK BIT P2.4 ;定義ADC0808時鐘位
ST?BIT?P2.5
EOC?BIT?P2.6
OE?BIT?P2.7
PWM BIT P3.7
ORG?00H
SJMP START
ORG 0BH
LJMP INT_T0
START: MOV TMOD,#02H ;
MOV TH0,#20
MOV TL0,#00H
MOV IE,#82H
SETB TR0
WAIT:?CLR?ST
SETB?ST
CLR?ST ;啟動AD轉(zhuǎn)換
JNB?EOC,$ ;等待轉(zhuǎn)換結(jié)束
SETB?OE
MOV?ADC,P1 ;讀取AD轉(zhuǎn)換結(jié)果
CLR?OE
SETB PWM ;PWM輸出
MOV?A,ADC
LCALL DELAY
CLR PWM
MOV A,#255
SUBB A,ADC
LCALL DELAY
SJMP?WAIT
INT_T0: CPL CLOCK ;提供ADC0808時鐘信號
RETI
DELAY: MOV R6,#1
D1: DJNZ R6,D1
DJNZ ACC,D1
RET
END