打开单片机的中断,为什么1602显示乱码

[复制链接]
 楼主| LYB911 发表于 2010-8-4 13:06 | 显示全部楼层 |阅读模式
;-------------------------;1602初始化
     MOV P0,#01H;00000001B,清屏 ;
     LCALL ENABLE
     MOV P0,#38H;00111000B ;8位数据传送,2行数据显示
     LCALL ENABLE
     MOV P0,#0CH;00001100B ;显示屏开,不显示光标,光标不闪烁
     LCALL ENABLE
     MOV P0,#06H;00000110B ;字符不动,光标右移
     LCALL ENABLE
     MOV P0,#80H
     LCALL ENABLE
     MOV P0,#01H;00000001B ;清屏
     LCALL ENABLE
     MOV DPTR,#TABLE1      
     LCALL WRITE1          ;
;-----------------------------
     SETB EX0      ;外部中断0,申请中断
     SETB EA       ;开放总中断
     SETB IT0      ;外部中断0下降沿中断。7050正常输出高电平,低压时输出低电平
btzhy 发表于 2010-8-4 13:16 | 显示全部楼层
中断程序里有没有用到psw acc B dptr r0-r7这类寄存器,如有用到,是否在执行中断程序之前将他们放入堆栈保护呢,特别是如中断里用到r0-r7这几个寄存器,主程序里如也用到,一定要使用using 1再分配一个8个字节的空间给中断用,然后再中断程序里设置rs0 rs1这两位为r0-r7指向正确地址空间
siuhiong 发表于 2010-8-4 19:01 | 显示全部楼层
不打开中断就显示正常吗?如果是的话问题就出现在中断处理程序部分,不然的话可能是1602数据线接触不好造成的。
ocon 发表于 2010-8-5 00:55 | 显示全部楼层
很可能是1602刷屏到一半的时候,中断处理程序把1602用住的资源(数据线、控制线、寄存器)给抢去干别的活,1602不知道,还傻傻的收数据。。。可以想象会收到些什么。
sccky 发表于 2010-8-5 11:02 | 显示全部楼层
我还没有搞懂哦?向您们学习了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

67

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

2

主题

67

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部