⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lmd18245.asm

📁 用LMD18245来驱动直流电机
💻 ASM
字号:
ORG    0000H
LJMP   CHUSH
ORG    000BH
LJMP    MAIN

CHUSH:ORG    0020H
      MOV   P0,#00H
      CLR   P2.7
      SETB  P2.6
      SETB  P0.0
      MOV   R5,#00H
      MOV   R6,#00H
      MOV   R0,#7FH
      SETB  P3.2
      SETB  P3.3
      SETB  P3.4
      SETB  P3.5
      MOV   R1,#3CH
      MOV   R2,#0F6H
      MOV   R3,#3CH
      MOV   R4,#0F6H

      MOV   IE,#82H
      MOV   TMOD,#01H
      MOV   TCON,#00H
      MOV   TL0,#3CH
      MOV   TH0,#0F6H
      SETB   TR0

      LJMP   K00

MAIN: CLR   TR0
      INC   R5
      CPL   P2.1
      PUSH  A
      MOV   A,R5
      RRC   A
      JNC   MAIN1 ;奇数跳转MAIN1
      MOV   TH0,R2
      MOV   TL0,R1
      LJMP  MAIN2
MAIN1:MOV   TH0,R4
      MOV   TL0,R3
MAIN2:POP   A
      SETB  TR0
      RETI

K00: MOV    A,P1
     CPL    A
     JZ     K00
     LCALL  DELAY0
     MOV    A,P1
     CPL    A
     JZ     K00
     MOV    A,P1
     RRC    A
     JNC    K000 ;K0键按下跳转K000
     RRC    A
     JNC    K111 ;K1键按下跳转K111
     RRC    A
     JNC    K222 ;K2键按下跳转K222
     RRC    A
     JNC    K333 ;K3键按下跳转K333
     RRC    A
     JNC    K444 ;K4键按下跳转K444
     LJMP   K00

K000: MOV   A,P1
      CPL   A
      JNZ   K000
      LCALL DELAY0
      MOV   A,P1
      CPL   A
      JNZ   K000
      CLR   C
      CJNE  R0,#0F9H,L0;R0<255,则跳转L1

L00:  MOV   R1,#00H
      MOV   R2,#00H
      MOV   R3,#0FFH
      MOV   R4,#0FFH
      LJMP  K00
 L0:  JNC    L00
      LJMP  L1



 K111:MOV   A,P1
      CPL   A
      JNZ   K111
      LCALL DELAY0
      MOV   A,P1
      CPL   A
      JNZ   K111
      CLR   C
      CJNE  R0,#06H,L2 ;R0>0则跳转L3
 L22: MOV   R1,#0FFH
      MOV   R2,#0FFH
      MOV   R3,#00H
      MOV    R4,#00H
      LJMP  K00
 L2:  JC    L22
      LJMP   L3

 K222: MOV   A,P1
       CPL   A
       JNZ   K222
       LCALL DELAY0
       MOV   A,P1
       CPL   A
       JNZ   K222
       CLR   P2.7
       SETB  P2.6
       SETB  P0.0
       CLR   P0.1
       SETB   P2.0
       LJMP   K00

 K333: MOV   A,P1
       CPL   A
       JNZ   K333
       LCALL DELAY0
       MOV   A,P1
       CPL   A
       JNZ   K333
       CLR   P2.7
       SETB  P2.6
       SETB  P0.1
       CLR   P0.0
       CLR    P2.0
       LJMP   K00

 K444: MOV   A,P1
       CPL   A
       JNZ   K444
       LCALL DELAY0
       MOV   A,P1
       CPL   A
       JNZ   K444
       INC    R6
       CLR    C
       MOV    A,R6
       RRC    A
       JC    K4
       MOV   R5,#00H
       MOV   R0,#7FH
       MOV   R1,#3CH
       MOV   R2,#0F6H
       MOV   R3,#3CH
       MOV   R4,#0F6H
       SETB   TR0

       LJMP   K00

 K4:   CLR    TR0
       SETB   P2.1
       LJMP   K00

 L1:  INC   R0
      INC   R0
      INC   R0
      INC   R0
      INC   R0
      MOV   A,R0  ;高电平定时时间
      MOV   B,#14H
      MUL   AB    ;5000*R0/255
      CPL    A    ; 计算初值65535-BA
      MOV   R1,A ;低八位存入R1中
      MOV   A,B
      CPL   A
      MOV   R2,A ;高八位存入R2中
      CLR    C
      MOV    A,#0FFH   ;低电平定时时间
      SUBB   A,R0 ;A-R0
      MOV    B,#14H
      MUL    AB
      CPL     A
      MOV    R3,A
      MOV    A,B
      CPL    A
      MOV    R4,A
      LJMP   K00
 L3:  DEC   R0
      DEC   R0
      DEC   R0
      DEC   R0
      DEC   R0
      MOV   A,R0
      MOV   B,#14H
      MUL   AB
      CPL   A
      MOV   R1,A ;低八位存入R1中
      MOV   A,B
      CPL   A
      MOV   R2,A ;高八位存入R2中
      CLR    C
      MOV    A,#0FFH
      SUBB   A,R0 ;A-R0
      MOV    B,#14H
      MUL    AB
      CPL    A
      MOV    R3,A
      MOV    A,B
      CPL    A
      MOV    R4,A
      LJMP   K00


  DELAY0:MOV  R7,#0AH ;延时子程序
    DL2: MOV   0AH,#0DH
    DL1: NOP
         DJNZ  0AH,DL1
         DJNZ  R7,DL2
         RET
         END









⌨️ 快捷键说明

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