[求助] 单片机替换引发的问题

abo6016   2012-8-2 09:19 楼主
之前我们公司用NXP的P89V51RD2单片机来开发电源监控,后来程序变大及成本考虑选择了NUVOTON的单片机替换。两款单片机管脚完全一致,内里的寄存器基本相同,地址一致。但是替换了新唐的片子之后监控不起作用。后来查看了下发现是芯片无法驱动LCD,程序基本无改动,其他功能基本正常。。。。找了很久找不到原因,希望好心人可以帮个忙。

回复评论 (6)

仔细看看程序,有没有用到某些 种类单片机 特有的功能,比如80H~0FFH的 IRAM,片内的XRAM,DPTR1,片内EEPROM等等。

单片机I/O驱动能力不同是最常见的。但不至于连LCD都不行吧?
点赞  2012-8-2 12:05
还有就是,现在有些单片机的机器周期不同。比如STC的就有12T的,6T的,1T的,写LCD是有一定时序(延时)要求的。

仅仅是你讲的这些“相同”,不一定是真的相同。

程序是怎么写进去的?

[ 本帖最后由 ahshmj 于 2012-8-2 12:10 编辑 ]
点赞  2012-8-2 12:08

回复 板凳 ahshmj 的帖子

都是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
点赞  2012-8-2 12:57
我手头没有这两个芯片的详细资料,但粗略的了解,两个芯片有些不一样。

可能影响到程序的有:DPTR,XRAM(被称为“物理在片,逻辑在外”的RAM),EEPROM,机器周期时钟数6T/12T,(你说的这两个片子都是6T/12T可选的,不知道你选对了没有?)等等,是否一样,你再仔细对照一下吧。

如果能证明其他芯片运行正常,估计是LCD的写指令和写数据的延时出了问题。最大的可能就是6T/12T选择的问题。
点赞  2012-8-3 09:42
仔细比较特殊功能寄存器。两个厂家的肯定有点出入
点赞  2012-8-3 14:01

回复 5楼 ahshmj 的帖子

谢谢你的回答,我再去仔细对比下
点赞  2012-8-4 08:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复