专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
单片机替换引发的问题
2019-03-24 19:02
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
8710
6
1526
之前我们公司用NXP的P89V51RD2单片机来开发电源监控,后来程序变大及成本考虑选择了NUVOTON的单片机替换。两款单片机管脚完全一致,内里的寄存器基本相同,地址一致。但是替换了新唐的片子之后监控不起作用。后来查看了下发现是芯片无法驱动LCD,程序基本无改动,其他功能基本正常。。。。找了很久找不到原因,希望好心人可以帮个忙。
此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
ahshmj
1楼-- · 2019-03-25 02:06
仔细看看程序,有没有用到某些 种类单片机 特有的功能,比如80H~0FFH的 IRAM,片内的XRAM,DPTR1,片内EEPROM等等。
单片机I/O驱动能力不同是最常见的。但不至于连LCD都不行吧?
加载中...
ahshmj
2楼-- · 2019-03-25 05:16
精彩回答 2 元偷偷看……
加载中...
abo6016
3楼-- · 2019-03-25 06:09
都是12 T的。。并没发现使用特别的功能啊
其他部件如8255使用正常,下面是一小段写LCD的程序
void LCDcmd0(uchar c) //写无参数指令
{
if(P23==0)
{
do{ ACC=XBYTE[0x0501];}
while(STA0==0);
XBYTE[0x0501]=c;
}
else
{
do{ ACC=XBYTE[0x0D01];}
while(STA0==0);
XBYTE[0x0D01]=c;
}
}
STA0=ACC^0
加载中...
ahshmj
4楼-- · 2019-03-25 12:04
我手头没有这两个芯片的详细资料,但粗略的了解,两个芯片有些不一样。
可能影响到程序的有:DPTR,XRAM(被称为“物理在片,逻辑在外”的RAM),EEPROM,机器周期时钟数6T/12T,(你说的这两个片子都是6T/12T可选的,不知道你选对了没有?)等等,是否一样,你再仔细对照一下吧。
如果能证明其他芯片运行正常,估计是LCD的写指令和写数据的延时出了问题。最大的可能就是6T/12T选择的问题。
加载中...
ltbytyn
5楼-- · 2019-03-25 12:28
仔细比较特殊功能寄存器。两个厂家的肯定有点出入
加载中...
abo6016
6楼-- · 2019-03-25 14:21
谢谢你的回答,我再去仔细对比下
加载中...
一周热门
更多
>
相关问题
相关文章
基于51单片机的计算器设计
0个评论
51单片机300个proteus仿真实例下载
0个评论
51单片机 蜂鸣器
0个评论
51单片机驱动RC522模块
0个评论
基于51单片机的指纹密码锁
0个评论
AT89C51单片机制作简易密码锁
0个评论
51单片机汇编语言计数器
0个评论
51单片机精确延时设计
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
单片机I/O驱动能力不同是最常见的。但不至于连LCD都不行吧?
其他部件如8255使用正常,下面是一小段写LCD的程序
void LCDcmd0(uchar c) //写无参数指令
{
if(P23==0)
{
do{ ACC=XBYTE[0x0501];}
while(STA0==0);
XBYTE[0x0501]=c;
}
else
{
do{ ACC=XBYTE[0x0D01];}
while(STA0==0);
XBYTE[0x0D01]=c;
}
}
STA0=ACC^0
可能影响到程序的有:DPTR,XRAM(被称为“物理在片,逻辑在外”的RAM),EEPROM,机器周期时钟数6T/12T,(你说的这两个片子都是6T/12T可选的,不知道你选对了没有?)等等,是否一样,你再仔细对照一下吧。
如果能证明其他芯片运行正常,估计是LCD的写指令和写数据的延时出了问题。最大的可能就是6T/12T选择的问题。
一周热门 更多>