新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機一鍵下載相關

        51單片機一鍵下載相關

        作者: 時間:2016-11-28 來源:網絡 收藏
        x寶上有很多買載器的,就是U轉串又配了一個stc15的單片機檢測下載碼,檢測到了就斷電再啟動。
        挺巧妙的,就去找了一下原理。

        STC免手動下載程序電路圖(自動斷電冷啟動) + 程序http://www.amobbs.com/forum.php?mod=viewthread&tid=5279682
        折中版的STC免手動免斷電下載程序方案, 只需加一行代碼, 不占用其他任何資源http://www.amobbs.com/thread-5287022-1-1.html

          電路圖如下:

          (原文件名:STC免手動燒寫電路圖(最佳版).jpg)

          實物圖:

          (原文件名:實物圖1.jpg)


          (原文件名:實物圖2.jpg)

          注意事項:

          (原文件名:注意事項.jpg)

          源程序:

          #define uint8 unsigned char
          #include "STC15F104E.H"

          //#define BAUD0xF400// 1200bps @ 11.0592MHz
          //#define BAUD0xFA00// 2400bps @ 11.0592MHz
          #define BAUD0xFD00// 4800bps @ 11.0592MHz

          sbit RXB= P3^4;
          sbit Key= P3^1; //自動/手動開關(根據需要使用)
          sbit Relay = P3^3;
          sbit LED= P3^0;

          uint8 RBUF;//接收緩存
          uint8 RDAT;//接收數據暫存
          uint8 RCNT;//接收計數器
          uint8 RBIT;//接收比特數
          bitRING;//開始接收標志
          bitREND;//接收完成標志

          uint8 cnt;//重啟計數器
          bitSTART;//重啟標志

          void YS100ms(uint8 n)
          {
          uint8 i,a,b,c;
          for(i=n;i>0;i--)
          for(c=89;c>0;c--)
          for(b=230;b>0;b--)
          for(a=12;a>0;a--);
          }

          void UART_INIT()
          {
          RING = 0;
          REND = 0;
          RCNT = 0;
          }

          void main()
          {
          P3M1 = 0x00;
          P3M0 = 0x09;//P3.0、P3.3推挽輸出
          Relay = 0;//斷開繼電器
          LED= 0;//關LED


          TMOD = 0x00;//T0處于16位自動重裝模式
          AUXR = 0x80;//T0工作在1T模式
          TL0 = BAUD;
          TH0 = BAUD>>8;//初始化Timer0和設定重載值
          TR0 = 1;
          ET0 = 1;
          PT0 = 1;//提高Timer0的中斷優先級
          EA= 1;

          UART_INIT();

          while(1)
          {
          if(START)
          {
          START = 0;
          if(Key)
          {
          ET0 = 0;
          Relay = 1;//繼電器吸合
          LED = 1;
          YS100ms(50);//從『加載HEX』到『提示上電』有5秒
          Relay = 0;
          LED = 0;
          YS100ms(15);
          ET0 = 1;
          UART_INIT();
          }
          }
          }
          }

          上一頁 1 2 3 下一頁

          關鍵詞: 51單片機一鍵下

          評論


          技術專區

          主站蜘蛛池模板: 永清县| 平凉市| 山丹县| 文水县| 河间市| 马龙县| 蒙城县| 喀喇沁旗| 白沙| 大同市| 扶绥县| 博湖县| 沧州市| 开鲁县| 苏尼特右旗| 永城市| 从化市| 新野县| 平和县| 庄河市| 宣威市| 衡阳市| 通化县| 崇信县| 安乡县| 页游| 通海县| 华容县| 灵石县| 林芝县| 怀仁县| 鲁山县| 蓬安县| 永康市| 普格县| 石景山区| 巴林右旗| 荣成市| 重庆市| 肇州县| 永修县|