標(biāo)題: 1個(gè)三極管實(shí)現(xiàn)STC自動(dòng)下載,上位機(jī)代碼開源 [打印本頁]

作者: bootdisk    時(shí)間: 2017-7-12 11:56
標(biāo)題: 1個(gè)三極管實(shí)現(xiàn)STC自動(dòng)下載,上位機(jī)代碼開源
看過之前很多STC自動(dòng)下載方法,這里提供另外一個(gè)思路,歡迎指點(diǎn)。


1. 起因
   最近搞了個(gè)普中的51學(xué)習(xí)板研究,如下圖。廠家提供了一個(gè)自動(dòng)下載程序,但是支持的芯片型號(hào)不多。研究其電路發(fā)現(xiàn),原理是靠串口的DTR端控制單片機(jī)復(fù)位,和Arduino的原理差不多,不同是STC單片機(jī)下載時(shí)必須斷電完成復(fù)位,該電路就是DTR控制斷電。




所以為了自動(dòng)下載又可以用官方STC-ISP程序支持各種型號(hào)單片機(jī),考慮做一個(gè)外掛,達(dá)到下載程序時(shí)控制DTR達(dá)成斷電復(fù)位

2. 準(zhǔn)備材料

   1個(gè)USB轉(zhuǎn)串口的下載器,需要引出DTR的,比如下面那個(gè),或者你可以USB轉(zhuǎn)串口芯片的DTR腳自己引出。
   1個(gè)三極管s8050,一個(gè)電阻1k
   

3. 硬件電路

   原理就是DTR端控制單片機(jī)供電,可以用學(xué)習(xí)板那套電路,以下為山寨供電電路,湊合能用。
   

4. 軟件說明

   上位機(jī)控制串口的DTR端的高低靠以下函數(shù)

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

   軟件原理主要是注入代碼到STC官方程序中,掛鉤打開串口函數(shù)CreateFile,在打開串口后執(zhí)行上面兩句控制DTR,完成復(fù)位。涉及到部分IATHook知識(shí),有興趣深入研究的可以看代碼,或者百度相關(guān)知識(shí)。
   本軟件相當(dāng)于STC-ISP的外掛,運(yùn)行時(shí)修改其代碼環(huán)境,不修改原始文件。代碼在下面,Delphi7環(huán)境編譯。

5. 整體效果

  測(cè)試環(huán)境用的STC12C2052AD,STC-ISP程序用的6.86,本程序也用于普中學(xué)習(xí)板





上位機(jī).zip (221.07 KB, 下載次數(shù): 128)





作者: admin    時(shí)間: 2017-7-12 20:37
好資料,51黑有你更精彩!!!
作者: cpfmly    時(shí)間: 2018-1-3 10:58
一直在努力學(xué)習(xí)!
作者: chaoself    時(shí)間: 2018-2-8 16:21

一直在努力學(xué)習(xí)
作者: copower    時(shí)間: 2018-3-3 23:43
本帖最后由 copower 于 2018-3-4 11:01 編輯

謝謝分享
作者: cqqwing    時(shí)間: 2018-8-15 18:50
是不是太過復(fù)雜了?

如果不用上位機(jī), 就直接用這個(gè)三極管,直接改,不行么
作者: zmc419    時(shí)間: 2018-8-17 18:40
很好。必須改上位機(jī),因?yàn)橐淖僁TR電平。
作者: zmc419    時(shí)間: 2018-8-17 18:48
cqqwing 發(fā)表于 2018-8-15 18:50
是不是太過復(fù)雜了?

如果不用上位機(jī), 就直接用這個(gè)三極管,直接改,不行么

上位機(jī)要轉(zhuǎn)換DTR電平
作者: zmc419    時(shí)間: 2018-8-21 17:47
太好了,比純軟件法和外加單片機(jī)法都好,電路簡(jiǎn)單,不占用串口。
作者: zjnbzm    時(shí)間: 2018-8-22 14:17
好資料,51黑有你更精彩!!!
作者: smartphone    時(shí)間: 2018-9-4 16:47

好資料,51黑有你更精彩!!!
作者: ganquan    時(shí)間: 2018-9-27 11:31
看看咯,好像是個(gè)好東西
作者: zmc419    時(shí)間: 2019-1-14 22:37
這是我找到的最好方案,比起硬件方案不外加單片機(jī),比起純軟件方案不占用串口和硬件資源。樓主上位機(jī)、單片機(jī)都精通,贊一個(gè)。
作者: 51單片機(jī)1234    時(shí)間: 2019-1-29 11:16
好東西


作者: axkf    時(shí)間: 2019-2-6 17:40
好資料,51黑有你更精彩!!
作者: 凌的小肥羊    時(shí)間: 2019-2-6 18:36
贊一個(gè)
作者: azi197417    時(shí)間: 2019-2-7 23:12
非常好的資料
作者: qsgang    時(shí)間: 2019-12-3 13:42
用的是S8050 npn三極管,發(fā)射級(jí)輸出電壓會(huì)降低0.7V左右,如果目標(biāo)單片機(jī)是3.3V的,不知道行不行。最好改一下上位機(jī)軟件,三極管用PNP型的就完美了
作者: lzzasd    時(shí)間: 2019-12-3 14:07
牛逼。。。。。。。軟件注入    軟硬件高手
作者: wwng    時(shí)間: 2020-5-2 09:31

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

作者: lao4jiadian    時(shí)間: 2020-5-2 10:07
厲害學(xué)習(xí)了
作者: txfly8601    時(shí)間: 2020-5-2 10:51
好資料,學(xué)習(xí)了謝謝樓主
作者: xshzwx    時(shí)間: 2021-11-19 11:03
用RTS引腳控制三極管基極就不用加上位機(jī)代碼了
作者: 風(fēng)158    時(shí)間: 2021-11-20 13:35
可以搞個(gè)tx信號(hào)控制的。
作者: tianqi911    時(shí)間: 2021-12-10 12:08
MARK一下,但目前看不懂的說。
作者: HAPPY3    時(shí)間: 2021-12-13 21:32
太好了,比純軟件法和外加單片機(jī)法都好,電路簡(jiǎn)單,不占用串口。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1