我使用51单片机时间虽很久了,但基本上是用的Aemel的AT89S52系列,第一次用STC89C52RC时,自己做的开发板上的板载的CH340能正常工作,即电脑能与STC89C52RC串口通信;但不能通过电脑向STC89C52RC下载程序。一开始,不能确定是什么问题,为了方便定位问题,找出原因,我就把手上有的单独的CH340模块插在电脑的USB口,再从CH340模块TTL接线端跳3根杜邦线(TXD,RXD,GND)到开发板上对应的STC89C52RC的端子,来下载程序,是能够正常下载程序到STC89C52RC的。
这就是说,板载的CH340不能下载程序到STC89C52RC,而用CH340模块,能够下载程序到STC89C52RC。
这有点说不过去,上网查了一下,哦、哟,网上好多新手都发帖,称:自己做的开发板,板载的CH340不能下载程序到STC89C52RC,而用CH340模块,能够下载程序到STC89C52RC。在向网友询问,求助。但没看到有人回应,解答。
我在对比 STC89C52RC 下载程序过程时,找到了这个板载的CH340不能下载程序到STC89C52RC,而用CH340模块,能够下载程序到STC89C52RC 的原因。
1、STC89C52RC 系列单片机是上电时才检测下载程序的握手信号。
正常的操作过程是这样的,在电脑的下载软件上点击下载,然后,再要关闭一下开发板的电源,然后,再开电源,程序才能下载到STC89C52RC。
2、没经验的小白,做开发板时,板上的芯片的电源都是在电源开关之后,即 CH340的电源也受电源开关控制。
3、这就导致,板载的CH340下载程序到 STC89C52RC ,那个关电源的动作,把 CH340的电源 也关了,再上电时,STC89C52RC 就不能从 CH340 检测到 电脑软件发出的下载程序的握手信号,所以 这样的开发板的板载的CH340 不能下载程序到 STC89C52RC。
4、而 CH340模块 是插在电脑上的,是由电脑供电,不受开发板上的电源开关控制,所以 STC89C52RC 就能从 CH340 检测到 电脑软件发出的下载程序的握手信号,这样就能下载程序到 STC89C52RC。
理论上的原因分析是这样,那到底实际情况是不是如此呢?下面实际解答:
我看了 宋雪松 老师写的《手把手教你学51单片机-C语言版》这本书,这是一本非常值得称赞的书。其中结尾处讲的51单片机电子钟实验,我觉得不过瘾,不大气,太零散,原因是一个电子钟,分成了1602液晶显示一部分内容,LED数码管显示一部分内容,LED点阵模块显示一部分内容。我就自己用12864作为显示屏 + STC89C52RC ,做了一个51单片机电子钟开发板来验证自己的想法。
这就出现了,第一次用STC89C52RC时,自己做的开发板上的板载的CH340能正常工作,即电脑能与STC89C52RC串口通信;但不能通过电脑向STC89C52RC下载程序。
我用刀片,断开了 板载的CH340单元 的VCC与开发板的VCC连线,然后跳飞线,把 板载的CH340单元 的VCC ,与电源开关前的电源进线相连,也就是说,板载的CH340单元 的VCC 不受电源开关控制,直接连接了开发板的电源进线的+5V(VCC)。
这样处理后,再试,就能够,用开发板上的板载CH340下载程序到STC89C52RC 了。
这样,也就,找出了,很多小白网友的,板载的CH340不能下载程序到STC89C52RC,而用CH340模块,能够下载程序到STC89C52RC 的原因。