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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)