找回密码
 立即注册

QQ登录

只需一步,快速开始

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

搞定程序在AT89c52芯片上使用正常,移植到AT89C2051就有问题

[复制链接]
跳转到指定楼层
楼主
ID:72008 发表于 2015-1-12 01:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                                                                                                    下午在做测试软件(关于数据采集串口输出的)时发现AT89C2051仿真,使用芯片时却一直不正常工作,有串口输出,但是输出一个固定的数据。首先,确认是否硬件问题,后仔细查找后确实有问题,AT89C2051的P1. 0和P1.1在做输入口时要加外部上拉,硬件电路没有加然后加上,问题依旧存在。接着,确认是否是软件问题,经过测试AD的中断时有时无,人为的加中断信号,中断确实能进入,排出中断处理程序的问题,是对AD芯片的操作问题(中断信号时有时无),但是此AD芯片的子程序在AT89c52芯片上使用正常,移植到AT89C2051就有问题(疑惑啊?),在AT89C2051中的程序移植到AT89c52芯片的板子上居然是好用的(更加疑惑)。。。。。。
    快下班时发现烧写程序的代码长度到7FF就没有了,我的代码长度要到8B0啊?眼前一闪!问题找到,代码长度溢出。重新删减程序,将代码长度减到7F0,再次烧程序,测试OK通过!
    一直使用大容量的单片机,一不小心就将代码敲过了,教训啊!


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

使用道具 举报

沙发
ID:241423 发表于 2018-2-2 22:52 | 只看该作者
我这里为什么没有超过但是还是IO口不正确,尤其是外部中断0,无论查询还是中断都是不行,下载才36个字节
回复

使用道具 举报

板凳
ID:241423 发表于 2018-2-2 22:53 | 只看该作者
#include <at892051.h>  sbit P32 = P3^2; sbit P37 = P3^7;  void init_INT0() {     IT0 = 1;     EA = 1;     EX0 = 1; }  void int0() interrupt 0 {     P37 = ~P37;     }  void main() {     P3 = 1;     init_INT0();     while(1); }
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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