pwm脉宽调制.asm

来自「一些单片机汇编程序 流水灯 键盘 lcd A/D D/A等」· 汇编 代码 · 共 61 行

ASM
61
字号
   ;这是一个单片机进行脉宽调制(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





⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?