<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> 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.thefapper.com/mcu/1432.html

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮