proteus仿真错误,语言编写有问题,新手急需大神帮助!

2019-07-18 12:12发布

遇到的问题:用protues仿真后,数码管总是显示为初始值,按任何按键无变化。貌似程序有问题,能否帮忙编写一段新的程序。AT89C52芯片,当按下k1键加1子程序,k2减1子程序。k3为复位按钮。按下按键时,蜂鸣器报警提醒。(要求数码管能够显示加1或减1的功能)
MZMIIQ0M9EEEZ73}10GGY(I.png






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
lilylilylilyli
2019-07-18 17:34

ORG 0000H
LJMP MAIN
ORG 0003H
LJMP K1
ORG 0013H
LJMP K2
ORG 0040H COUNT EQU 30H;初始化
MAIN:MOV SP,#40H;         
      MOV COUNT, #20H
      SETB EX0
      SETB EX1
      SETB IT0
      SETB IT1
      SETB EA
          MOV DPTR, #TAB
KB0        :  MOV A, COUNT;显示得分
      SWAP A
          ANL  A,#0FH
      MOVC A,@A+DPTR
      MOV        P0,A
          MOV A, r1
      ANL  A,#0FH
      MOVC A,@A+DPTR
          MOV P2,A
      LJMP KB0
TAB:   DB 3FH,06H,5BH,4FH,66H,7DH,07H,7FH,6FH
K1:    CALL delay  ;;加1子程序
      JB  P3.2,E1
   MOV A, COUNT      
      ADD A,#01H
      LCALL Delay
          DA  A
          MOV  COUNT,A
BUZZER: CPL P3.7
        LCALL Delay
        JNB P3.2,BUZZER
E1:RETI
  ORG 0300H
K2 : LCALL Delay; 减1子程序
     JB P3.3, E2
CLR  C       
      MOV A,#9AH
          SUBB A,01H
        LCALL Delay
ADD A, COUNT
          DA  A
          MOV COUNT,A
BUZZER1: CPL P3.6
          MOV r4,#0FFH
          MOV r7,#4
X2:   MOV  r6,#20
X1:   MOV  r5,#20
X0:  DJNZ  r5,X0
     DJNZ  r6,X1
     CPL  P3.6
     DJNZ  r4,X2
     DJNZ  r7,X2
     RETI
BUZZER1:CPL P3.7
LCALL Delay
        JNB P3.3,BUZZER1
E2:RETI;         利用延时消抖
Delay:MOV r5,#100      
d0:  MOV r6,#100
d1:  DJNZ r6,d1
       DJNZ r5,d0
Ret
End
帮忙看一下吧,这个是我在网上看到的一个程序,我尝试的读了一下,觉得没什么问题。

一周热门 更多>