求助:关于87C196单片机上板不能运行问题

[复制链接]
 楼主| wfeiying 发表于 2013-1-10 10:56 | 显示全部楼层 |阅读模式
各位大侠!小弟最近遇到很奇怪的问题。将程序文件烧录到单片机里面去,把单片机放到电路板上,程序却怎么也不跑。同样的程序用仿真器运行是正常的,程序拷贝地址也是正常的(偏差2000H地址)。实在不清楚是怎么回事了,请高手指点!附上程序的前一小段机器码。

00000000  FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF  
00000010  FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF  
00000020  FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
00000030  FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
00000040  FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
00000050  FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
00000060  FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF  
00000070  FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF  
00000080  A1 C0 00 18 FA 11 09 B1-10 09 B1 05 15 B1 0D 03
00000090  A1 00 22 1C C3 01 08 20-1C B1 10 08 FD B1 20 16  
000000A0  B1 26 0E B1 80 0E B1 20-92 B1 09 11 FB FD B1 1E  
000000B0  0A B1 E1 0A 27 F8 FF FF-FF FF FF FF FF FF FF FF
ayb_ice 发表于 2013-1-10 11:20 | 显示全部楼层
机器码
果然是高手啊
 楼主| wfeiying 发表于 2013-1-10 12:44 | 显示全部楼层
再附上汇编的初始化程序。就是上面机器码对应的汇编程序。

ORG 2080H
    START:       LD SP,#00C0H
                 DI
                 CLRB INT_PEND
                 LDB INT_PEND,#10H      
                 LDB IOC0,#05H         
                 LDB HSI_MODE,#0dH      
                 LD AX,#INTT1
                 ST AX,2008H[0]          ;设TIME中断地址
                 LDB INT_MASK,#10H       ;开外HSI.0中断
                 NOP
                 LDB IOC1,#20H           ;选择P2.0引脚的TXD功能
                 LDB BAUD_RATE,#26H;设置串行通信波特率
                 LDB BAUD_RATE,#80H;
                 LDB TEMP,#20H
                 LDB SP_CON,#09H   ; 设置串行通信方式1,不设奇偶校验
                 EI
                 NOP
HERE:            LDB WATCHDOG,#01EH
                 LDB WATCHDOG,#0E1H
                 SJMP HERE
ayb_ice 发表于 2013-1-10 13:57 | 显示全部楼层
这么简单的程序根本不用仿真器,开机控制个IO,不停触发即可,不要开中断
 楼主| wfeiying 发表于 2013-1-10 14:03 | 显示全部楼层
现在问题是片子上板之后根本不工作。
ayb_ice 发表于 2013-1-10 14:40 | 显示全部楼层
wfeiying 发表于 2013-1-10 14:03
现在问题是片子上板之后根本不工作。

不工作是有原因的
要缩小可能的范围嘛

有些仿真好的程序,实际程序运行时要做一定修改的

建议你写个最简单的程序,不用仿真就是要排除这种可能性,确定是硬件问题还是软件问题
liusensen 发表于 2013-1-10 15:06 | 显示全部楼层
ayb_ice 发表于 2013-1-10 14:40
不工作是有原因的
要缩小可能的范围嘛

赞同  
 楼主| wfeiying 发表于 2013-1-10 15:41 | 显示全部楼层
恩,正在查呢,硬件上电及上电时序正常,晶振正常,复位信号正常。硬件上有可能的原因差不多查遍了。就是不知道软件怎么查原因啊!有可能的原因会是那些呢?
ayb_ice 发表于 2013-1-10 16:07 | 显示全部楼层
这样就基本确定是程序的问题了,这就好办了

写个最简单的程序测试一下就可以了,复位后将IO拉低即可了
jlass 发表于 2013-1-10 16:19 | 显示全部楼层
可以考虑起始地址没写对。
 楼主| wfeiying 发表于 2013-1-10 17:06 | 显示全部楼层
问题已经解决,多谢网友们的关注,谢谢!是中断向量表没有填写中断地址
ayb_ice 发表于 2013-1-10 17:09 | 显示全部楼层
wfeiying 发表于 2013-1-10 17:06
问题已经解决,多谢网友们的关注,谢谢!是中断向量表没有填写中断地址

早叫你先关闭中断了
lzqxs89 发表于 2013-1-11 13:04 | 显示全部楼层
ayb_ice 发表于 2013-1-10 17:09
早叫你先关闭中断了

中断向量表没有填写中断地址是什么意思啊?还有没填仿真怎么正常啊,而实际就不正常呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

25

帖子

0

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

1

主题

25

帖子

0

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