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

📄 004.asm

📁 换色
💻 ASM
📖 第 1 页 / 共 5 页
字号:
  FLDOWN: DEC   27H             ;频闪减1 减1 27H,
          MOV  A, 28H          ;传送 寄存器A,28H
          CLR   C          ;清0 进位标志/累加位
          SUBB  A, #5          ;带进位减法 寄存器A,立即数5
          MOV  28H, A          ;传送 28H,寄存器A
          MOV  A, #40          ;传送 寄存器A,立即数40
          CLR  C          ;清0 进位标志/累加位
          SUBB  A, 27H          ;带进位减法 寄存器A,27H
          JC  L26          ;C位为1转移到 L26
          AJMP  L27          ;绝对转移 L27
     L26: CLR  C          ;清0 进位标志/累加位
          MOV  27H, #40          ;传送 27H,立即数40
          MOV  28H, #200          ;传送 28H,立即数200
     L27: MOV  DPTR, #Flash          ;传送 DPTR,立即数Flash
          MOV  A, 27H          ;传送 寄存器A,27H
          MOVC  A, @A+DPTR          ;程序存储器-读 寄存器A,A+DPTR指向的单元的内容
          MOV  1DH, A          ;传送 1DH,寄存器A
          RET           ;子程序返回 
    PRUP: INC  34H        ;程序选择增1==================================== 加1 34H,
          MOV  A, #06H          ;传送 寄存器A,立即数06H
          SUBB  A, 34H          ;带进位减法 寄存器A,34H
          JC  Y17          ;C位为1转移到 Y17
          ACALL  PRDISP          ;绝对调用 PRDISP
          RET          ;子程序返回 
     Y17: CLR  C          ;清0 进位标志/累加位
          MOV  34H, #00H          ;传送 34H,立即数00H
          ACALL  PRDISP          ;绝对调用 PRDISP
          RET          ;子程序返回 
  PRDOWN: DEC  34H      ;程序选择减1 减1 34H,
          MOV  A, #06H          ;传送 寄存器A,立即数06H
          SUBB  A, 34H          ;带进位减法 寄存器A,34H
          JC  Y19          ;C位为1转移到 Y19
          ACALL  PRDISP          ;绝对调用 PRDISP
          RET          ;子程序返回 
     Y19: CLR  C          ;清0 进位标志/累加位
          MOV  34H, #06H          ;传送 34H,立即数06H
          ACALL  PRDISP          ;绝对调用 PRDISP
          RET          ;子程序返回 
    SPUP: INC  37H        ;速度加1========================================== 加1 37H,
          MOV  A, #30          ;传送 寄存器A,立即数30
          SUBB  A, 37H          ;带进位减法 寄存器A,37H
          JC  QQ3          ;C位为1转移到 QQ3
          JMP   QQ4          ;间接转移到 QQ4
     QQ3: MOV  37H, #00H          ;传送 37H,立即数00H
     QQ4: SETB   C          ;位-置1 进位标志/累加位
          MOV   A, #21          ;传送 寄存器A,立即数21
          SUBB   A, 37H          ;带进位减法 寄存器A,37H
          JC   SP4          ;C位为1转移到 SP4
          MOV  DPTR, #Speed          ;传送 DPTR,立即数Speed
          MOV   A, 37H          ;传送 寄存器A,37H
          MOVC  A, @A+DPTR          ;程序存储器-读 寄存器A,A+DPTR指向的单元的内容
          MOV   1CH, A          ;传送 1CH,寄存器A
          MOV   R0, 37H          ;传送 通用寄存器0,37H
          INC   R0          ;加1 通用寄存器0
          MOV   1EH, R0          ;传送 1EH,通用寄存器0
          RET          ;子程序返回 
     SP4: CLR  C          ;清0 进位标志/累加位
          MOV  A, 37H          ;传送 寄存器A,37H
     SP5: CJNE  A, #21, SP6          ;比较-不等转移 寄存器A,立即数21,
          MOV  1EH, #24          ;传送 1EH,立即数24
          MOV  1CH, #250          ;传送 1CH,立即数250
          RET          ;子程序返回 
     SP6: CJNE  A, #22, SP7          ;比较-不等转移 寄存器A,立即数22,
          MOV  1EH, #29          ;传送 1EH,立即数29
          MOV  1CH, #250          ;传送 1CH,立即数250
          RET          ;子程序返回 
     SP7: CJNE  A, #23, SP8          ;比较-不等转移 寄存器A,立即数23,
          MOV  1EH, #35          ;传送 1EH,立即数35
          MOV  1CH, #250          ;传送 1CH,立即数250
          RET          ;子程序返回 
     SP8: CJNE  A, #24, SP9          ;比较-不等转移 寄存器A,立即数24,
          MOV  1EH, #40          ;传送 1EH,立即数40
          MOV  1CH, #250          ;传送 1CH,立即数250
          RET          ;子程序返回 
     SP9: CJNE  A, #25, SP10          ;比较-不等转移 寄存器A,立即数25,
          MOV  1EH, #48          ;传送 1EH,立即数48
          MOV  1CH, #250          ;传送 1CH,立即数250
          RET          ;子程序返回 
    SP10: CJNE  A, #26, SP11          ;比较-不等转移 寄存器A,立即数26,
          MOV  1EH, #60          ;传送 1EH,立即数60
          MOV  1CH, #250          ;传送 1CH,立即数250
          RET          ;子程序返回 
    SP11: CJNE  A, #27, SP12          ;比较-不等转移 寄存器A,立即数27,
          MOV  1EH, #80          ;传送 1EH,立即数80
          MOV  1CH, #250          ;传送 1CH,立即数250
          RET          ;子程序返回 
    SP12: CJNE  A, #28, SP13          ;比较-不等转移 寄存器A,立即数28,
          MOV  1EH, #104          ;传送 1EH,立即数104
          MOV  1CH, #250          ;传送 1CH,立即数250
          RET          ;子程序返回 
    SP13: CJNE  A, #29, SP14          ;比较-不等转移 寄存器A,立即数29,
          MOV  1EH, #135          ;传送 1EH,立即数135
          MOV  1CH, #250          ;传送 1CH,立即数250
          RET          ;子程序返回 
    SP14: MOV  1EH, #176          ;传送 1EH,立即数176
          MOV  1CH, #250          ;传送 1CH,立即数250
          RET          ;子程序返回 
  SPDOWN: DEC  37H      ;速度减1 减1 37H,
          MOV  A, #30          ;传送 寄存器A,立即数30
          SUBB  A, 37H          ;带进位减法 寄存器A,37H
          JC  QQ5          ;C位为1转移到 QQ5
          JMP   QQ6          ;间接转移到 QQ6
     QQ5: MOV  37H, #30          ;传送 37H,立即数30
     QQ6: SETB  C          ;位-置1 进位标志/累加位
          MOV   A, #21          ;传送 寄存器A,立即数21
          SUBB   A, 37H          ;带进位减法 寄存器A,37H
          JC   SP15          ;C位为1转移到 SP15
          MOV  DPTR, #Speed          ;传送 DPTR,立即数Speed
          MOV   A, 37H          ;传送 寄存器A,37H
          MOVC  A, @A+DPTR          ;程序存储器-读 寄存器A,A+DPTR指向的单元的内容
          MOV   1CH, A          ;传送 1CH,寄存器A
          MOV   R0, 37H          ;传送 通用寄存器0,37H
          INC   R0          ;加1 通用寄存器0
          MOV  1EH, R0          ;传送 1EH,通用寄存器0
          RET          ;子程序返回 
    SP15: CLR  C          ;清0 进位标志/累加位
          MOV  A, 37H          ;传送 寄存器A,37H
          AJMP  SP5          ;绝对转移 SP5
 LEDSCAN: MOV  A, P2     ;数码管扫描======================================== 传送 寄存器A,P2     
          SWAP   A          ;A高低半字节交换 寄存器A
          MOV  26H, A          ;传送 26H,寄存器A
          MOV  R1, #26H          ;传送 通用寄存器1,立即数26H
          MOV  A, 25H          ;传送 寄存器A,25H
          XCHD  A, @R1          ;半字节交换 寄存器A,通用寄存器1指向的单元的内容
          MOV  A, 26H          ;传送 寄存器A,26H
          SWAP  A          ;A高低半字节交换 寄存器A
          MOV  P2, A          ;传送 接口2,寄存器A
          MOV  A, 25H          ;传送 寄存器A,25H
          CJNE  A, #0EEH, L12          ;比较-不等转移 寄存器A,立即数0EEH,
          MOV  P0, 30H          ;传送 接口0,30H
          AJMP  L15          ;绝对转移 L15
     L12: CJNE  A, #0DDH, L13          ;比较-不等转移 寄存器A,立即数0DDH,
          MOV  P0, 31H          ;传送 接口0,31H
          AJMP  L15          ;绝对转移 L15
     L13: CJNE  A, #0BBH, L14          ;比较-不等转移 寄存器A,立即数0BBH,
          MOV  P0, 32H          ;传送 接口0,32H
          AJMP  L15          ;绝对转移 L15
     L14: MOV  P0, 33H          ;传送 接口0,33H
     L15: MOV  A, 25H          ;传送 寄存器A,25H
          RL  A          ;循环左移 寄存器A
          MOV  25H, A          ;传送 25H,寄存器A
          RET          ;子程序返回 
  ALDISP: MOV  A, R7     ;亮度数码管显示===================================     传送 寄存器A,R7     
          MOV  B, #10          ;传送 B,立即数10
          DIV  AB          ;无符号除法 AB
          MOV  30H, B          ;传送 30H,B
          MOV  B, #10          ;传送 B,立即数10
          DIV  AB          ;无符号除法 AB
          MOV  31H, B          ;传送 31H,B
          JNZ  AL0          ;寄存器不为0转移 AL0
          MOV  32H, #0C7H          ;传送 32H,立即数0C7H
          AJMP   AL1          ;绝对转移 AL1
     AL0: MOV  32H, #0F9H          ;传送 32H,立即数0F9H
     AL1: MOV  A, 30H          ;传送 寄存器A,30H
	  MOV  DPTR, #Digital          ;传送 DPTR,立即数Digital
	  MOVC  A, @A+DPTR          ;程序存储器-读 寄存器A,A+DPTR指向的单元的内容
	  MOV  30H, A          ;传送 30H,寄存器A
	  MOV  A, 31H          ;传送 寄存器A,31H
	  MOVC  A, @A+DPTR          ;程序存储器-读 寄存器A,A+DPTR指向的单元的内容
	  MOV  31H, A           ;传送 31H,A 
	  MOV  33H, #088H          ;传送 33H,立即数088H
	  MOV  22H, #3FH           ;传送 22H,立即数3FH 
	  RET          ;子程序返回 
  FLDISP: MOV   A, 27H     ;频闪数码管显示================================ 传送 寄存器A,27H     
	  MOV   B, #10          ;传送 B,立即数10
          DIV   AB          ;无符号除法 AB
          MOV   30H, B          ;传送 30H,B
          MOV   31H, A          ;传送 31H,寄存器A
          MOV   A, 30H          ;传送 寄存器A,30H
	  MOV   DPTR, #Digital          ;传送 DPTR,立即数Digital
	  MOVC   A, @A+DPTR          ;程序存储器-读 寄存器A,A+DPTR指向的单元的内容
	  MOV   30H, A          ;传送 30H,寄存器A
	  MOV   A, 31H          ;传送 寄存器A,31H
	  MOVC   A, @A+DPTR          ;程序存储器-读 寄存器A,A+DPTR指向的单元的内容
	  MOV   31H, A          ;传送 31H,寄存器A
	  MOV   32H, #0C7H          ;传送 32H,立即数0C7H
	  MOV   33H, #08EH          ;传送 33H,立即数08EH
	  RET          ;子程序返回 
  PRDISP: MOV  31H, #0C0H  ;程序数码管显示================================ 传送 31H,立即数0C0H  
          MOV  A, 34H          ;传送 寄存器A,34H
	  MOV  DPTR, #Digital          ;传送 DPTR,立即数Digital
          MOVC  A, @A+DPTR          ;程序存储器-读 寄存器A,A+DPTR指向的单元的内容
          MOV  30H, A          ;传送 30H,寄存器A
          MOV  32H, #088H          ;传送 32H,立即数088H
          MOV  33H, #08CH          ;传送 33H,立即数08CH
          MOV  35H, #00H          ;传送 35H,立即数00H
     Q22: SETB  2FH.0          ;位-置1 2FH.0
          MOV  A, 34H      ;程序选择    传送 寄存器A,34H      
          CJNE  A, #00H, YI0          ;比较-不等转移 寄存器A,立即数00H,
          MOV  DPTR, #Prog0          ;传送 DPTR,立即数Prog0
          MOV  2BH, DPH          ;传送 2BH,DPH
          MOV  1FH, DPL          ;传送 1FH,DPL
          MOV   2AH, #95          ;传送 2AH,立即数95
          RET            ;子程序返回 
     YI0: CJNE  A, #01H, Y11          ;比较-不等转移 寄存器A,立即数01H,
          MOV  DPTR, #Prog1          ;传送 DPTR,立即数Prog1
          MOV  2BH, DPH          ;传送 2BH,DPH
          MOV  1FH, DPL          ;传送 1FH,DPL
          MOV   2AH, #75          ;传送 2AH,立即数75
          RET          ;子程序返回 
     Y11: CJNE  A, #02H, Y12          ;比较-不等转移 寄存器A,立即数02H,
          MOV  DPTR, #Prog2          ;传送 DPTR,立即数Prog2
          MOV  2BH, DPH          ;传送 2BH,DPH
          MOV  1FH, DPL          ;传送 1FH,DPL
          MOV   2AH, #119          ;传送 2AH,立即数119
          RET          ;子程序返回 
     Y12: CJNE  A, #03H, Y13          ;比较-不等转移 寄存器A,立即数03H,
          MOV  DPTR, #Prog3          ;传送 DPTR,立即数Prog3
          MOV  2BH, DPH          ;传送 2BH,DPH

⌨️ 快捷键说明

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