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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

stc單片機不斷電下載程序

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年03月16日   【字體:

用過STC單片機的人,都知道用STC_ISP軟件下載單片機程序,單片機要斷電后再上電才開始下載的。這樣來說非常麻煩,手頭上有一個單片機不斷電下載程序的方法,這個方法比較笨,不過按復位鍵總比斷電好吧?
有的人用了繼電器,或者MOS管的方法,覺得都非常好。如果不想動用硬件,那么這個方法還是不錯的。
不過第一次還是要斷電下載程序,以后下載程序都不用了。看看吧
//*******************stc單片機不斷電下載程序******************
#include <REG52.H>
sfr ISP_CONTR=0xe7;          軟復位寄存器聲明
void main(void)
{
 //////////////將這段代碼嵌入到程序中////////////////
 if((PCON&0×10)==0) //如果POF位=0
 {
   PCON=PCON|0×10;  //將POF位置1
   ISP_CONTR=0×60;  //軟復位,從ISP監控區啟動
 }
 else
 {
   PCON=PCON&0xef;  //將POF位清零
 }
 //////////////////////////////////////////////?br />  while(1)
 {?br />          //用戶程序
  }
}
******************************************************
 

//////////////////////////////
// -----------串口中斷服務程序-------------------//
static void com_isr(void) interrupt 4 using 1{
    if (RI){
      RI = 0;
       if (SBUF == 0x0d) ISP_CONTR = 0x60; // 軟復位到ISP區
    }
    else if (TI) TI = 0;
}
//-----------------------------------------------//
void main (void){
    SCON = 0xd0;    // 串口方式3
    TMOD = 0x20;
    TH1 = 0xfa;     // badu 4.8k 11.0592M 12clk
    TR1 = 1;
    ES = 1;
    EA = 1;
    while (1){
    }
}

為了保險,我們可以采用兩字節密碼的,
//////////////////////////////////////////////
//////////////////////////////////////////////////
/////////////////////////////////////////////////////
看到網上有一些STC單片機免斷電下載程序的例子。但是都是要用串口中斷來完成。以下是一個程序片斷
拿來說明
在調試程序中加入串口初始化代碼,串口中斷代碼即可實現不斷電下載程序
   TMOD|=0x20;
   SCON=0x50;
   TH1=0xfd;       //12T時鐘9600bps
   TL1=0xfd;
   TR1=1;
   ES=1;
   EA=1;
   AUXR=AUXR|0x40; //定時器1使用1T時鐘   9600*12=115200bps  
void uart(void) interrupt 4
{
   uchar cdd;
   if(RI)
   {
RI=0;
cdd=SBUF;
if(cdd==0xaa)
{
ISP_CONTR=0x60;//軟復位,從ISP監控區啟動
}
else if(cdd==0x55)
{
ISP_CONTR=0x20; //軟復位,從用戶程序區啟動
}
else
{
senddata(cdd);
}           
   }
   else
   {
TI=0;
   }
}
還有另一種更簡單的不斷電下載的方法更請看:http://www.raoushi.com/mcu/1432.html

關閉窗口

相關文章