标题: 1个三极管实现STC自动下载,上位机代码开源 [打印本页]

作者: bootdisk    时间: 2017-7-12 11:56
标题: 1个三极管实现STC自动下载,上位机代码开源
看过之前很多STC自动下载方法,这里提供另外一个思路,欢迎指点。


1. 起因
   最近搞了个普中的51学习板研究,如下图。厂家提供了一个自动下载程序,但是支持的芯片型号不多。研究其电路发现,原理是靠串口的DTR端控制单片机复位,和Arduino的原理差不多,不同是STC单片机下载时必须断电完成复位,该电路就是DTR控制断电。




所以为了自动下载又可以用官方STC-ISP程序支持各种型号单片机,考虑做一个外挂,达到下载程序时控制DTR达成断电复位

2. 准备材料

   1个USB转串口的下载器,需要引出DTR的,比如下面那个,或者你可以USB转串口芯片的DTR脚自己引出。
   1个三极管s8050,一个电阻1k
   

3. 硬件电路

   原理就是DTR端控制单片机供电,可以用学习板那套电路,以下为山寨供电电路,凑合能用。
   

4. 软件说明

   上位机控制串口的DTR端的高低靠以下函数

EscapeCommFunction(h, SETDTR);
EscapeCommFunction(h, CLRDTR);

   软件原理主要是注入代码到STC官方程序中,挂钩打开串口函数CreateFile,在打开串口后执行上面两句控制DTR,完成复位。涉及到部分IATHook知识,有兴趣深入研究的可以看代码,或者百度相关知识。
   本软件相当于STC-ISP的外挂,运行时修改其代码环境,不修改原始文件。代码在下面,Delphi7环境编译。

5. 整体效果

  测试环境用的STC12C2052AD,STC-ISP程序用的6.86,本程序也用于普中学习板





上位机.zip (221.07 KB, 下载次数: 128)





作者: admin    时间: 2017-7-12 20:37
好资料,51黑有你更精彩!!!
作者: cpfmly    时间: 2018-1-3 10:58
一直在努力学习!
作者: chaoself    时间: 2018-2-8 16:21

一直在努力学习
作者: copower    时间: 2018-3-3 23:43
本帖最后由 copower 于 2018-3-4 11:01 编辑

谢谢分享
作者: cqqwing    时间: 2018-8-15 18:50
是不是太过复杂了?

如果不用上位机, 就直接用这个三极管,直接改,不行么
作者: zmc419    时间: 2018-8-17 18:40
很好。必须改上位机,因为要改变DTR电平。
作者: zmc419    时间: 2018-8-17 18:48
cqqwing 发表于 2018-8-15 18:50
是不是太过复杂了?

如果不用上位机, 就直接用这个三极管,直接改,不行么

上位机要转换DTR电平
作者: zmc419    时间: 2018-8-21 17:47
太好了,比纯软件法和外加单片机法都好,电路简单,不占用串口。
作者: zjnbzm    时间: 2018-8-22 14:17
好资料,51黑有你更精彩!!!
作者: smartphone    时间: 2018-9-4 16:47

好资料,51黑有你更精彩!!!
作者: ganquan    时间: 2018-9-27 11:31
看看咯,好像是个好东西
作者: zmc419    时间: 2019-1-14 22:37
这是我找到的最好方案,比起硬件方案不外加单片机,比起纯软件方案不占用串口和硬件资源。楼主上位机、单片机都精通,赞一个。
作者: 51单片机1234    时间: 2019-1-29 11:16
好东西


作者: axkf    时间: 2019-2-6 17:40
好资料,51黑有你更精彩!!
作者: 凌的小肥羊    时间: 2019-2-6 18:36
赞一个
作者: azi197417    时间: 2019-2-7 23:12
非常好的资料
作者: qsgang    时间: 2019-12-3 13:42
用的是S8050 npn三极管,发射级输出电压会降低0.7V左右,如果目标单片机是3.3V的,不知道行不行。最好改一下上位机软件,三极管用PNP型的就完美了
作者: lzzasd    时间: 2019-12-3 14:07
牛逼。。。。。。。软件注入    软硬件高手
作者: wwng    时间: 2020-5-2 09:31

牛逼。。。。。。。软件注入    软硬件高手

作者: lao4jiadian    时间: 2020-5-2 10:07
厉害学习了
作者: txfly8601    时间: 2020-5-2 10:51
好资料,学习了谢谢楼主
作者: xshzwx    时间: 2021-11-19 11:03
用RTS引脚控制三极管基极就不用加上位机代码了
作者: 风158    时间: 2021-11-20 13:35
可以搞个tx信号控制的。
作者: tianqi911    时间: 2021-12-10 12:08
MARK一下,但目前看不懂的说。
作者: HAPPY3    时间: 2021-12-13 21:32
太好了,比纯软件法和外加单片机法都好,电路简单,不占用串口。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1