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

2019-07-18 12:12发布

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






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
A670521546
1楼-- · 2019-07-18 16:10
把你的程序贴出来比较靠谱

另外可以在论坛搜索下相关的帖子
lilylilylilyli
2楼-- · 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
帮忙看一下吧,这个是我在网上看到的一个程序,我尝试的读了一下,觉得没什么问题。
banxianlalala
3楼-- · 2019-07-18 23:27
 精彩回答 2  元偷偷看……
lilylilylilyli
4楼-- · 2019-07-19 03:28
A670521546 发表于 2015-5-8 10:08
把你的程序贴出来比较靠谱

另外可以在论坛搜索下相关的帖子

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
帮忙看一下吧,这个是我在网上看到的一个程序,我尝试的读了一下,觉得没什么问题。
武力戡乱
5楼-- · 2019-07-19 07:57
路过,汇编不懂!
zhaoyd120
6楼-- · 2019-07-19 12:10
同上,表示只会C语言

一周热门 更多>