完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
各位好!
最近烧写一个程序到STC15W408AS单片机中,原先用的是CH340烧写的,一直烧不进去,提示“正在检测目标单片机”,后来改用U8W编程器 也烧不进去,提示“继续检测目标单片机”。 第二天用CH340给另外一个板子是STC90的片子烧写成功,偶尔有几次不成功,但插拔下USB口就可以烧进去。当时就想这个CH340是可以的呀,于是继续又给我的STC15W408AS烧写,奇了怪了,竟然烧进去了!!提示成功,但郁闷的是我的12864上什么也不显示!后来我想了想,是不是因为程序的问题导致的。于是我只用了12864的单独程序测试,在STC90的板子上正常显示,在STC15的板子上不显示!!我很纳闷,为什么程序烧写进去了不显示?明明用的都是51的基本程序。 继续郁闷了好几天,调试无果,就是可以烧写进去,但是不显示。于是我又焊了一块STC15W408AS的板子,用CH340烧写了一下程序烧写进去了,屏幕上也显示了,心想原来是板子的问题。然后我把CH340的杜邦线拔了,重新插电的时候,屏幕上又什么都不显示了!!我断电通电好几次也不显示!于是我打算再烧写一次的时候,发现新板子居然又烧写不进去了!试了N次就是烧写不进去。但是奇怪的是有一次我在烧写的时候STC-ISP提示“正在检测目标单片机”,但是屏幕上居然又出现了程序内容,仅仅显示2.3秒又消失了。 分析了一下原因,排除了程序问题,排除了CH340的问题(我用串口助手测试正常,况且试了几十次也不可能一次都不行把),剩下只有单片机的问题,奇怪的是我再烧写时在硬件选项中也没有点涉及到EEPROM的选项,程序中也没有对ISP进行操作,没有占用串口,感觉就像烧进去了 但很快又被擦除了,但是从我偶然一次又显示出来看的话,貌似程序没有被激活一样,当时偶然激活了一下又灭了。实在不明白是什么原因。。难道STC15W408AS这个片子烧写时有什么不同的地方??有遇到这种情况的朋友们吗?麻烦给在下解惑一下,感激不尽! 附件里有烧写的图 和原理图。 |
|
相关推荐
34个回答
|
|
|
你好,芯片型号我在KEIL设置了STC15W408AS,晶振设置的是12M,实际是用芯片内部晶振11.0592。电源侧过5.02V 是没问题的。液晶屏就是亮,不显示任何东西,但相同的代码放到90516RD+芯片上就是正常显示。都是并口显示。 |
|
|
|
|
|
感谢您的回复,我不是分享,是有问题解决不掉。能帮我看看吗?是否是STC15芯片有什么区别与其他芯片的地方吗?这段代码我用在同样是1T单片机的STC12C5628AD上都是正常的。 |
|
|
|
|
|
|
|
|
|
|
本帖最后由 fight281 于 2017-7-8 09:22 编辑
你好!我之前在电脑上装过MDK,后来又换成了51,和这个应该没关系吧?现在找不到原因,只能瞎猜了。 ![]()
|
|
|
|
|
|
本帖最后由 fight281 于 2017-7-8 09:50 编辑
狼兄!我将代码又细化了一下查看原因,发现确实是busy()函数的问题,虽然不太清除原理,也不明白为什么相同的函数在90516rd+上能运行,但是确实是这个原因,我将这个函数注销了,显示屏隐约有图像显示,虽然有些乱和显示不全!我好像在手册上看过除了BUSY检测外,也可以采用延迟的方式。现在有事情出去一下,回头我来试下!
|
|
|
|
|
|
试了下,没有取消BUSY,我考虑是接有上拉电阻,所以在检测WHILE(!BUSY)前添加了延迟,代码如下: /************************************************************* * @函数名称: Busy * @参数: none * @返回值: none * @摘要: 忙检测* *************************************************************/ void Busy(void) { lcd_data = 0xFF; di = 0; rw = 1; e = 1; delayus(10); while (1 == BUSY); e =0 ; } 正常显示,只不过显示有点淡,可能是USB口供电太弱,回头我再调下12864的背光试试。 |
|
|
|
|
|
显示正常了,但是接12V电源后反而没显示了,不知道是不是受外围电路的影响。这样看来还是有可能是硬件的原因!!
1)显示屏淡,跳动! 2)烧写不正常的问题。 3)程序烧进去接12V电压就没显示,直接给单片机供电就正常! 感觉都和供电有关系啊。上个电源图。大家帮忙看看!
|
|
|
|
|
|
显示淡或者浅,应该是对比度的问题,12864的背光一般是直接接5伏,所以也不用调节。
对比度是通过可调电阻,是连接12864的V0,VOUT引脚和正5伏的。 查忙是指忙代表当前12864正处于内部处理期间,外部数据都不接受。只有在12864不忙的时候,才会接收外部的数据。 |
|
|
|
|
|
现在12点在接上电源就又无显示了,烧录了刚才能够正常显示的程序,现在也不正常了!!确实无语了。。 |
|
|
|
|
人中狼 发表于 2017-7-8 11:48 算了 我还是去买个片子回来试试,不在这块板子上搞了 |
|
|
|
|
|
如果现在是用延时方式处理查忙的话,估计是延时时间不够,延时时间估计要到毫秒级。
用查忙的方法的话,试试把程序改为 void Busy(void) { unsigned char temp_data; di = 0; rw = 1; while (1) { lcd_data = 0xFF; e = 1; temp_data = lcd_data; e = 0; if(!(temp_data & 0x80)) break; } } |
|
|
|
|
|
换个15单片机芯片试试。
|
|
|
|
|
fight281 发表于 2017-7-8 08:54 有可能你点背芯片是坏的 |
|
|
|
|
|
试试其他的下载器
|
|
|
|
|
|
STC的单片机下载都是要点"下载" 然后重新上电才能够正常下载下去的。另外你驱动12864,你试试引脚使用推挽输出
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
140 浏览 0 评论
483 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
815 浏览 0 评论
1346 浏览 2 评论
804 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16904 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 20:28 , Processed in 0.833343 second(s), Total 67, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3271