[国产单片机] 请教:EM78P458仿真器上运行正常烧写到芯片运行就不行

[复制链接]
3613|13
 楼主| 自由行21 发表于 2008-1-26 21:47 | 显示全部楼层 |阅读模式
最近学习使用1602显示模块,用EM78P458芯片在仿真器上仿真时显示正确,但烧写到芯片上运行,1602显示就不正常 ,每个字符间会加入一个空格,且字符也错误了,程序上有读BF忙,且加了足够的延时,烧写配置选项也不会错。
各位老大帮忙分析一些可能是那里的问题。谢谢了!
 楼主| 自由行21 发表于 2008-1-26 21:54 | 显示全部楼层

这个是仿真器上正常显示的图片

这个是仿真器上正常显示的图片
谈的元 发表于 2008-1-26 21:55 | 显示全部楼层

到群里讨论

群:24815378
;;;;;;;;;;;;;;;;;;;;;;;;
单片机是否起振?
lanbiao 发表于 2008-1-27 10:09 | 显示全部楼层

!!

开机时有没有加延时啊?还有就是你烧写芯片时那些配置位有没有设置好
 楼主| 自由行21 发表于 2008-1-27 10:57 | 显示全部楼层

还是不行呀!

开机时有延时的,我甚至让1602先上电,在给单片机上电,也一样的不行。
烧写配置选项检查过多次了。以前用78P458很多了,选项不会用错的。
程序上在相关处多加了好多的延时,放慢速度,都不行,看来不关时序的事。
不理解为什么仿真正常,我只能烧出芯片才看到不正常的显示,我都废了10多只芯片了,下面是初始化1602的过程。
INIT1602_P()
;初始化1602
     EN=0;
     RS=0;
     RW=0;
     DELAY5MS_P();
     DELAY5MS_P();
     DELAY5MS_P();
     DELAY5MS_P();
     WRITE_C_P(0X38 )   ;写命令
     DELAY5MS_P();
     DELAY5MS_P();
     DELAY5MS_P();
     WRITE_C_P(0X38 )   ;写命令
     DELAY5MS_P();
     DELAY5MS_P();
     DELAY5MS_P();
     WRITE_C_P(0X38)    ;写命令
     DELAY5MS_P();
     DELAY5MS_P();
     READY_BF_P(); ;读忙标志
     WRITE_C_P(0X01)    ;写命令清除屏幕
     DELAY5MS_P();
     DELAY5MS_P();
     READY_BF_P(); ;读忙标志
     WRITE_C_P(0X06)    ;写命令移动光标!!!!
     DELAY5MS_P();
     DELAY5MS_P();
     READY_BF_P(); ;读忙标志
     WRITE_C_P(0X0c)   ;
     return;
谈的元 发表于 2008-1-27 11:11 | 显示全部楼层
lanbiao 发表于 2008-1-27 11:41 | 显示全部楼层

!!

仿真时你电源是用内部的还是用目标板的?查一下其电源和单片机是否工作正常
lanbiao 发表于 2008-1-27 11:42 | 显示全部楼层

!!

因为你仿真时晶振是用仿真器的
 楼主| 自由行21 发表于 2008-1-27 14:04 | 显示全部楼层

问题解决了

谢谢各位了!
McuPlayer 发表于 2008-1-27 15:01 | 显示全部楼层

楼主把原因说出来

是震荡的问题吗?
 楼主| 自由行21 发表于 2008-1-27 15:26 | 显示全部楼层

低级错误,莫笑呀

是我使用的p5口作数据线,忽略了p50只能作输入的了。低级错误,莫笑呀。也怪仿真器的p50却能作为输出口用,把我给迷惑了。
McuPlayer 发表于 2008-1-28 12:49 | 显示全部楼层

教训也是财富

你把低级错误说出来,其它的朋友就可以避免了,呵呵
谈的元 发表于 2008-1-28 23:12 | 显示全部楼层

群不光是广告啥,也算能帮楼主解决了问题啥

呵呵
fuliu 发表于 2008-11-23 16:08 | 显示全部楼层

同感

我也犯同样的错误,仿真器的p50却能作为输出口用,让人发晕.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

10

帖子

0

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