单片机 进行脉宽调制(PWM) 直流电机调速测试程序
;UNL2003提供电机驱动电流.(<=500MA/5V)
;使用六个按键实现六种不同速度
DC BIT P1.0
speed equ 20h
org 000h
jmp dc_MOTOR
ORG 100H
dc_MOTOR:
MOV a,p1
MOV speed,a ;键盘去抖动
lcall del
MOV a,p1
cjne a,speed,dc_MOTOR
JB P3.3,JUD_SPD5
MOV SPEED,#6 ;SW1
JMP PWM
JUD_SPD5: JB P3.2,JUD_SPD4
MOV SPEED,#5 ;SW2
JMP PWM
JUD_SPD4: JB P3.1,JUD_SPD3
MOV SPEED,#04 ;SW3
JMP PWM
JUD_SPD3: JB P3.0,JUD_SPD2
MOV SPEED,#03 ;SW4
JMP PWM
JUD_SPD2: JB P3.5,JUD_SPD1
MOV SPEED,#02 ;SW5
JMP PWM
JUD_SPD1: JB P3.6,JUD_SPD0
MOV SPEED,#01 ;SW6
JMP PWM
JUD_SPD0: MOV SPEED,#00
PWM: MOV R6,SPEED
MOV A,#06
CLR C
SUBB A,SPEED
MOV R5,A
CLR DC
WAIT1: LCALL DEL
DJNZ R5,WAIT1
SETB DC
WAIT2: LCALL DEL
DJNZ R5,WAIT2
JMP DC_MOTOR
Del: MOV r7,#0ffh
djnz r7,$
ret
END
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』