大家可能开始学单片机都是学的STC的单片机,因为它不需要用什么编程器就可以直接烧写,但我看到还是有人在烧写时遇到了问题。常常在贴吧和知道上看到求助此类问题的人,大家的解答大抵是说什么串口驱动安装没啊、型号选对没有啊、冷启动没有啊之类的,其实,真正遇到烧写不了程序的人大抵不是因为这些问题,根据我的总结,可能的原因如下:
一, 电路杂波影响。很多人烧写时喜欢在开发板上烧写,其实在烧写时,开发板仅仅提供一个最小系统板的作用,但往往开发板上不止最小系统板的电路,这就可能引入一些杂波,而这些杂波到底有多大影响,我也无法说清,但我怀疑还是会影响烧写的成功率。我建议用下载器烧写, 如图的电路简单可靠,只是注意还要加上电容。
二、元件,电路原件的质量关系到震荡电路的好坏,而震荡电路上单片机运行的基础。如图的元件建议选用11.0592MHz晶振,电容选用质量较好的独石电容。
三、软件。软件上可以试试多种波特率。如果是软件有问题,则可以通过一下判断。首先建议选用类似如下的下载器 为什么呢,大家看到,这个上面有数据指示灯,当你在软件界面上选好文件点击下载后,如果txd的指示灯没有闪烁,则说明软件有问题,因为stc单片机的下载过程是这样的,单片机上电后自动检测单片机rxd有没有下载信号,若有,则下载程序,如无,则执行单片机原有的程序。如果下载器上txd指示灯没有闪烁,说明电脑根本没有发送下载的指令,说明下载软件可能出错,需要重装,或者驱动没有安装好。但也不一定全是软件的出错,大家知道,下载器不像优盘,可以点击安全删除硬件,而下载器只能硬拔,这个过程中可能产生较大电流,而电脑内部usb接口上都有自恢复的保险丝,因此,这个保险丝比较容易段,你可能需要等待一段时间或者换个usb接口。
三、复位时间过长。现在的最小系统板或开发板为了保证复位电路可靠,往往复位时间较长,我估计正因如此,导致单片机错过了上电后自动检测是否下载那段时间,而致使你无论怎么冷启动都无法下载程序,因此,我还是建议如上图所示接法,不接复位电路,根据我的经验,不接复位电路对下载没有影响。
四、手碰触引入杂波,我在开发板上做实验时有时手指碰了一下震荡电路,单片机就要死机或是复位,可见振荡电路是相当脆弱的,因此,下载程序时,千万不要碰到振荡电路。
以上建议纯属笔者经验之谈,因为我也不是专门去研究这个的,我和大家一样,只是个玩单片机的,我曾经遇到些问题,没想到大家也会遇到,所以把解决办法拿来和大家共享,上面的理论纯属推测,不具有学术参考价值。