微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 大神来帮我看看程序哪里不行

大神来帮我看看程序哪里不行

时间:10-02 整理:3721RD 点击:
我要做一个4位共阳七段数码管动态显示计数器。帮忙看看哪里不行(脉冲信号发生器)DBUF EQU 30H
ORG  0000H
JMP MAIN
ORG 0013H
JMP inter_addr
ORG 0030H
MAIN: SETB EA
      SETB EX0
      SETB IT0
      MOV SP,#60H
LOOP: call display
      JMP LOOP
inter_addr:
      PUSH PSW
      PUSH ACC
      SETB PSW.3
      MOV R0,#31H
      CALL ADD1
      MOV A,R7
      XRL A,#00H
      JNZ END_INTERUPT
      MOV R0,#30H
      CALL CLEAR
      MOV R0,#33H
      CALL ADD1
      MOV A,R7
      XRL A,#00H
      JNZ END_INTERUPT
      MOV R0,#32H
      CALL CLEAR
END_INTERUPT:
      POP ACC
      POP PSW
RETI
ADD1:MOV A,@R0
     SWAP A
     DEC R0
     ORL A,@R0
     ADD A,#01H
     DA A
     MOV R7,A
     INC R0
     MOV A,R7
     ANL A,#0F0H
     SWAP A
     MOV @R0,A
     RET
CLEAR:CLR A
      MOV @R0,A
      INC R0
      MOV @R0,A
      RET
display:
      MOV R0,#DBUF
      MOV R1,#01H
      MOV R2,#8
      MOV DPTR,#SEGTAB
LOOP2:MOV A,@R0
      MOVC A,@A+DPTR
      MOV P0,A
      MOV P2,R1
      CALL DELAY
      INC R0
      MOV A,R1
      RL A
      MOV R1,A
      MOV P0,#0FFH
      DJNZ R2,LOOP2
      RET
DELAY:MOV R4,#05H
AAA:MOV R5,#0FFH
AA:DJNZ R5,AA
   DJNZ R4,AAA
   RET
SEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END

      MOV R0,#33H
      CALL ADD1
      MOV  A,R7
      XRL A,#00H
      JNZ END_INTERUPT
      MOV R0,#32H
      CALL CLEAR
      MOV R0,#35H
      CALL ADD1
      MOV A,R7
      XRL A,#00H
      JNZ END_INTERUPT
      MOV R0,#34H
      CALL CLEAR
      MOV R0,#37H
      CALL ADD1
      MOV A,R7
      XRL A,#00H
      JNZ END_INTERUPT
      MOV R0,#36H
      CALL CLEAR
END_INTERUPT:
      POP ACC
      POP PSW
RETI
ADD1:
      MOV A,@R0
      SWAP A
      DEC R0
      ORL A,@R0
      ADD A,#01H
      DA A
      MOV R7,A
      ANL A,#0FH
      MOV @R0,A
      INC R0
      MOV A,R7
      ANL A,#0F0H
      SWAP A
      MOV @R0,A
      RET
CLEAR:
      CLR A
      MOV @R0,A
      INC R0
      MOV @R0,A
      RET
display:
      MOV R0,#DBUF
      MOV R1,#01H
      MOV R2,#8
      MOV DPTR,#SEGTAB
LOOP2:
      MOV A,@R0
      MOVC A,@A+DPTR
      MOV P0,A
      MOV P1,R1
      CALL DELAY
      INC R0
      MOV A,R1
      RL A
      MOV R1,A
      MOV P0,#0FFH
      DJNZ R2,LOOP2
      RET
DELAY:MOV R4,#05H
AA1:MOV R5,#0FFH
AA:DJNZ R5,AA
   DJNZ R4,AA1
   RET
SEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END

还是在学校的时候用的汇编,看得人头疼

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top