<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STC單片機(jī)免掉電下載

          STC單片機(jī)免掉電下載

          作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
          相信喜歡單片機(jī)的朋友都用過STC的單片機(jī),用過STC單片機(jī)的朋友都有這種感受:實(shí)惠、易用、功能強(qiáng)大!就是每次下載都要冷啟動特別惡心,相信很多朋友的開發(fā)板上的電源鍵都按爛了。。。。。

          其實(shí)STC單片機(jī)可以不用免掉電下載,想要知道怎樣才能免掉電下載,我們先要了解STC單片機(jī)是怎樣實(shí)現(xiàn)串口下載的,其實(shí)STC單片機(jī)出廠時就預(yù)置了一段ISP監(jiān)控程序,我們稱作ISP引導(dǎo)碼,這段ISP監(jiān)控程序就好比電腦硬盤的系統(tǒng)引導(dǎo)區(qū)。我們對STC單片機(jī)上電啟動時,單片機(jī)首先執(zhí)行ISP引導(dǎo)碼檢測串口是否下載程序的命令,如果上位機(jī)在對單片機(jī)下載程序時,單片機(jī)檢測到下載數(shù)據(jù)流就啟動ISP下載功能對單片機(jī)進(jìn)行程序下載,這就是我們平時實(shí)驗(yàn)時點(diǎn)擊下載后按開發(fā)板電源鍵的過程。
          STC單片機(jī)在進(jìn)行冷啟動時會從ISP引導(dǎo)碼開始執(zhí)行程序,而進(jìn)行熱啟動或按復(fù)位鍵軟啟動時是從用戶程序段開始執(zhí)行的。然而熟悉STC單片機(jī)的朋友知道STC單片機(jī)增加了ISP/IAP控制寄存器ISP_CONTR,用來管理ISP/IAP功能和是否軟啟動,其各位功能大家可參照STC公司相關(guān)資料。當(dāng)我們將ISP_CONTR置為0x60時單片機(jī)自動復(fù)位從ISP引導(dǎo)碼開始執(zhí)行。由此我們在需要下載程序時將ISP_CONTR置為0x60就可以完成下載了。。。偶耶!
          下面來介紹怎樣實(shí)現(xiàn)
          方法一:通過按復(fù)位鍵來實(shí)現(xiàn),STC單片機(jī)上電復(fù)位時PCON的POF=1,在按復(fù)位鍵復(fù)位時POF=0。所以我們在程序中可以用POF來 控制ISP_CONTR。
          方法二:利用串口,STC下載軟件中有個自定義下載,也就是下載前通過串口發(fā)送一段自定義代碼,單片機(jī)收到該代碼后來控制單片機(jī)
          ISP_CONTR進(jìn)行軟復(fù)位下載。

          相關(guān)程序代碼如下:

          本文引用地址:http://www.ex-cimer.com/article/201611/323334.htm
          /************************************** I LOVE MCU ************************************* 程序名稱:STC單片機(jī)免掉電下載* 程序作者: 郭偉(QQ:495817787 ,Email:)* 程序版本: V1.0* 編制日期: 2012-01-19* 編譯器:Keil C uVision4* 調(diào)試芯片:STC89C52 11.0592M晶振* 占用資源:  1》自定義下載:串口,定時器T1,中斷2》復(fù)位鍵下載:不占用資源* 特別說明:  1》使用本程序時需要用宏來選擇條件編譯程序段2》使用復(fù)位鍵下載時,只需要在main函數(shù)開頭調(diào)用ResetKey_Download();3> 使用自定義下載時調(diào)用Auto_Download()對串口進(jìn)行初始化,波特率9600********************************* I LOVE MCU ******************************************/#ifndef _DOWNLOAD_H_   #define _DOWNLOAD_H_#include #include "delay.h"/***選擇下載方式***/#define Auto_download//#define ResetKey_download//使用條件編譯選擇下載方式/*****************/#ifdef ResetKey_downloadvoid ResetKey_Download(){   if ((PCON & 0x10) == 0){    //POF位=0,單片機(jī)軟件復(fù)位PCON = PCON | 0x10;     //將POF位置1,防止重復(fù)進(jìn)入isp監(jiān)控區(qū)ISP_CONTR = 0x60;       //軟復(fù)位,從ISP監(jiān)控區(qū)啟動,如果沒有isp下載流,則重新轉(zhuǎn)向用戶區(qū)引導(dǎo)}else{PCON = PCON & 0xef;     //將POF位清零}}#endif#ifdef Auto_downloadunsigned char Sbuff_isp[8];//申明緩沖區(qū)void Auto_Download(){//定時器1工作在模式2,8Bit自動重裝載模式TMOD = (TMOD & 0X0F) | 0X20;   /*設(shè)置波特率*/TH1=0xfd;TL1=0xfd;RI=0;TI=0;SCON = 0x50;ES = 1;EA = 1; TR1 =1;}//自動ISP功能函數(shù)void ISP_Check(){unsigned char i=0,k=0;unsigned char code isp_comm[8]={0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef};//串口發(fā)送數(shù)據(jù)要與該數(shù)組數(shù)據(jù)相同for(i=0;i<8;i++){if(Sbuff_isp[i]!=isp_comm[i]){ k=1;}}if(k==0){EA = 0;delay_ms(1000);//等待1秒ISP_CONTR = 0x60; //軟復(fù)位進(jìn)入ISP下載模式  }  }//串口接收中斷void Serial_int(void) interrupt 4 using 1{static uchar i=0;if (RI){Sbuff_isp[i] = SBUF;//將串口數(shù)據(jù)依次存入緩沖區(qū)i++;RI = 0; }if(i==8){ISP_Check();i=0;} }#endif#endif歡迎喜歡單片機(jī)的朋友來多多交流。。。


          關(guān)鍵詞: STC單片機(jī)免掉電下

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();