单片机替换引发的问题

2019-03-24 19:02发布

之前我们公司用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
谢谢你的回答,我再去仔细对比下

一周热门 更多>