欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: STC單片機(jī)自動(dòng)下載器制作電路與程序設(shè)計(jì) [打印本頁(yè)]

作者: dagu    時(shí)間: 2015-1-23 15:51
標(biāo)題: STC單片機(jī)自動(dòng)下載器制作電路與程序設(shè)計(jì)
學(xué)習(xí)單片機(jī)的朋友都知道,STC單片機(jī)雖然便宜,但是每次下載程序都需要冷啟動(dòng),才能下載程序,一個(gè)成品,需要調(diào)試N次,如果每次都要用手按,實(shí)在無(wú)語(yǔ)啊,我在數(shù)碼之家論壇,21IC電子論壇,阿莫論壇都看見(jiàn)有制作貼子。這個(gè)日志介紹我制作的stc單片機(jī)自動(dòng)下載器
自動(dòng)下載器工作原理:
        在STC單片機(jī)中有兩個(gè)程序區(qū),用戶(hù)程序區(qū)與ISP程序區(qū)。單片機(jī)上電后(冷啟動(dòng),并非外部手動(dòng)復(fù)位或看門(mén)狗復(fù)位),先會(huì)運(yùn)行ISP程序,檢測(cè)是否有合法的下載命令流,占時(shí)幾十毫秒到幾百毫秒,如果沒(méi)有合法的下載命令流,則立即運(yùn)行用戶(hù)程序。
如果有合法的下載命令流,則ISP監(jiān)控程序開(kāi)始與ISP下載軟件通信,軟件也會(huì)進(jìn)入編程模式,向監(jiān)控程序發(fā)送程序碼,監(jiān)控程序接收程序碼,并將其寫(xiě)入用戶(hù)程序區(qū)中。在編程完畢,對(duì)程序校驗(yàn)成功后,用戶(hù)程序立即生效,開(kāi)始運(yùn)行用戶(hù)程序。
        STC-ISP嘗試與MCU握手連接的時(shí)候,是以“最低波特率”設(shè)置項(xiàng)中的波特率不斷的從串口發(fā)送“0x7F”信號(hào),直到MCU上電冷啟(或者軟復(fù)位至ISP)經(jīng)幾十毫秒到幾百毫秒檢測(cè)下載命令流后,MCU做出響應(yīng),STC-ISP才停止發(fā)送“0x7F”信號(hào)開(kāi)始燒寫(xiě)。
我的stc單片機(jī)自動(dòng)下載器電路圖




制作好的圖片














stc單片機(jī)自動(dòng)下載器程序
/***********************************
********STC單片機(jī)自動(dòng)下載器********
**********MCU STC15F104W***11.0592MHZ********
**************荊棘鳥(niǎo)***************
**********************************/
#include <reg52.h>//52系列單片機(jī)特殊寄存器頭文件
#define uint unsigned int//宏定義
#define uchar unsigned char
/********單片機(jī)I/O功能聲明*********/
sbit DYKZD=P3^4;//電源控制端
sbit  XZXHD=P3^3;//下載信號(hào)檢測(cè)端
uchar x;//下載信號(hào)低電平個(gè)數(shù)
/**************初始化**************/
void init()//初始化子函數(shù)
{
DYKZD=0;//電源控制端打開(kāi)
XZXHD=1;
INT1= 1;
IT1= 1;                    //設(shè)置INT1的中斷類(lèi)型 (1:僅下降沿 0:上升沿和下降沿)
EX1= 1;                    //使能INT1中斷
EA = 1;//打開(kāi)總中斷開(kāi)關(guān)
}
/*************延時(shí)函數(shù)*************/
void delayms(uint xms)//延時(shí)子函數(shù)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
/************外部中斷ITN1********/
void exint1() interrupt 2       //INT1中斷入口
{
x++;
}
/**************主程序************/
void main() //主程序
{
init();
while(1)
{
if(x>60)
{
DYKZD=1;
delayms(500);
DYKZD=0;
delayms(60000);
x=0;
}
}
}
下載速度還是比較快,如果程序太大,可能會(huì)下載失敗,我的設(shè)置最高波特率也能下載,偶然也會(huì)失敗


作者: AOP    時(shí)間: 2015-1-26 22:01
很不錯(cuò),謝謝你的分享.
作者: AOP    時(shí)間: 2015-1-26 22:07
原理圖有點(diǎn)小錯(cuò)誤,單片機(jī)VCC沒(méi)有接電源
作者: xiejiaxiao    時(shí)間: 2015-1-29 11:23
謝謝分享
作者: 邰夏留    時(shí)間: 2015-10-1 05:24
真心有用
作者: hzb123    時(shí)間: 2015-10-1 13:37
請(qǐng)問(wèn)用的是什么芯片
作者: ludaijin    時(shí)間: 2015-10-9 11:21
就是頂一下
作者: ludaijin    時(shí)間: 2015-10-18 16:16
這個(gè)程序,我也搞個(gè)一個(gè),用51單片機(jī)就行了
作者: 騰飛的龍    時(shí)間: 2015-11-2 13:48
15F104W的電源沒(méi)接上
作者: 騰飛的龍    時(shí)間: 2015-11-2 13:49
直接取USB的5v應(yīng)該就行。就是8550的發(fā)射腳
作者: 騰飛的龍    時(shí)間: 2015-11-2 13:51
這個(gè)下載器應(yīng)該在單片機(jī)用USB供電的情況可以用,單片機(jī)獨(dú)立供電坑怕不行。
作者: HWL0541    時(shí)間: 2015-11-2 16:20
騰飛的龍 發(fā)表于 2015-11-2 13:49
直接取USB的5v應(yīng)該就行。就是8550的發(fā)射腳

有的USB口供電不足,下載會(huì)失敗
作者: 飛刀問(wèn)情    時(shí)間: 2015-11-2 20:17
樓主我的晶振是32.068MHz的,做頻譜燈,可以嗎??
作者: 騰飛的龍    時(shí)間: 2015-11-3 16:14
樓主您好:不好用啊
作者: 榆林上校    時(shí)間: 2015-11-12 12:26
好東西,謝謝分享
作者: lijn    時(shí)間: 2017-1-21 17:16
剛買(mǎi)一貼片15F104,太小不好焊。
作者: 樹(shù)葉的人生    時(shí)間: 2017-5-11 15:54
學(xué)習(xí)了,之前一直就覺(jué)得這個(gè)冷啟動(dòng)麻煩,但是卻沒(méi)想過(guò)怎么去改變,看來(lái)還是太懶惰了,應(yīng)該多動(dòng)動(dòng)腦筋思考啊!
作者: licu    時(shí)間: 2017-9-10 19:12
下來(lái)學(xué)習(xí)一下

好動(dòng)西,頂
作者: 西點(diǎn)鐘靈毓秀    時(shí)間: 2019-4-26 10:04
怎么判斷下載完畢 了?
作者: 13764578747    時(shí)間: 2019-12-5 12:50
看了一下程序,就是讓前沿單片機(jī)控制后端單片機(jī)上電,達(dá)到冷啟動(dòng)目的。如果這樣的話,還不如自己用max232做個(gè)串口下載器,同時(shí)串口竊電,那么,點(diǎn)了下載就同時(shí)供電,停止下載就斷電,要調(diào)試的時(shí)候在串口監(jiān)視器里鏈接串口,又通電了,不是更方便?




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