单片机进行脉宽调制(PWM) 直流电机调速测试程序
 
UNL2003 提供电机驱动电流。(《=500MA/5V)
 
使用六个按键实现六种不同速度
 
 
DCBITP1.0
 
speedequ20h
 
org000h
 
jmpdc_MOTOR
 
ORG100H
 
dc_MOTOR:
 
MOV a,p1
 
MOV speed,a;键盘去抖动
 
lcalldel
 
MOV a,p1
 
cjnea,speed,dc_MOTOR
 
JBP3.3,JUD_SPD5
 
MOV SPEED,#6;SW1
 
JMPPWM
 
JUD_SPD5:JBP3.2,JUD_SPD4
 
MOV SPEED,#5;SW2
 
JMPPWM
 
JUD_SPD4:JBP3.1,JUD_SPD3
 
MOV SPEED,#04;SW3
 
JMPPWM
 
JUD_SPD3:JBP3.0,JUD_SPD2
 
MOV SPEED,#03;SW4
 
JMPPWM
 
JUD_SPD2:JBP3.5,JUD_SPD1
 
MOV SPEED,#02;SW5
 
JMPPWM
 
JUD_SPD1:JBP3.6,JUD_SPD0
 
MOV SPEED,#01;SW6
 
JMPPWM
 
JUD_SPD0: MOV SPEED,#00
 
PWM: MOV R6,SPEED
 
MOV A,#06
 
CLRC
 
SUBBA,SPEED
 
MOV R5,A
 
CLRDC
 
WAIT1:LCALLDEL
 
DJNZR5,WAIT1
 
SETBDC
 
WAIT2:LCALLDEL
 
DJNZR5,WAIT2
 
JMPDC_MOTOR
 
Del: MOV r7,#0ffh
 
djnzr7,$
 
ret
 
END