找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1336|回复: 2
打印 上一主题 下一主题
收起左侧

向大神求助关于单片机中断程序的问题,求解惑

[复制链接]
跳转到指定楼层
楼主
这是本人自己写的代码,本意是无中断到来时单片机控制#1 数码管循环显示 0~F,时间间隔为 0.5s;外中断 0 (INT0)和外中断 1(INT1)分别接开关 K1 和 K2,其中 INT1 为高优先级, INT0 为低优先级。按下 K1 时#1 数码管停止显示,#2 数码管静态显示片外 RAM 地址为 1000H单元的低 4位数值;按下 K2 时#3数码管静态显示片外 RAM地址为 1000H单元的高 4位数值。但是仿真后的结果却是按下k1数码管显示的是F,按下k2数码管全灭了。实在不知道到底哪里有问题。代码和仿真图如下,急求解答。


单片机汇编语言源码:

ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0INT
ORG 0013H
LJMP INT1INT
ORG 0040H
MAIN:
MOV SP,#6FH
SETB PX1
SETB IT1
SETB EX1
CLR PX0
SETB IT0
SETB EX0
SETB EA
MOV 00H,#00
ACALL DISPLAY
LOOP:ACALL DELAY
ACALL DISPLAY
MOV A,00H
SUBB A,#0FH
JNC OUT
INC 00H
AJMP LOOP
OUT:AJMP MAIN
DISPLAY:MOV A,00H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
RET
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
DELAY:  
         MOV     R7,#50
DEL:  
         MOV     R6,#20
DE:   
         MOV     R5,#248
   DJNZ    R5,$
   DJNZ    R6,DE
   DJNZ    R7,DEL
   RET
INT0INT:
        
  MOV A,#7FH
  MOV DPTR,#1000H
  MOVX @DPTR,A
  MOVX A,@DPTR
  ANL A,#0FH
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
        MOV P0,A  
  
  AJMP $
INT1INT:
  MOV A,#7FH
  MOV DPTR,#1000H
  MOVX @DPTR,A
  ANL A,#0F0H
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
        MOV P0,A
  CLR EA  

  AJMP $
END
//////////////////////////////////////////////


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2018-12-13 22:49 | 只看该作者
图中哪个是#1 数码管?哪个是#2 数码管?
回复

使用道具 举报

板凳
ID:445944 发表于 2018-12-14 10:27 来自手机 | 只看该作者
yzwzfyz 发表于 2018-12-13 22:49
图中哪个是#1 数码管?哪个是#2 数码管?

我只用了一个数码管,接的p0口,为什么我的开关的功能和题目不一样?我觉得代码没问题啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表