1. 程式人生 > >悟已往之不諫 知來者之可追

悟已往之不諫 知來者之可追

/************************************************************************************ 
程式名稱:串列埠傳送程式下載指令(晶振頻率18.432MHz) 
功能說明: 收到使用者命令後復位到ISP監控區域
          1. 在STC ISP軟體中,首先設定下載晶振頻率為18.432MHz,通過傳統方式下載本程式,即點選下載後,重啟開發板。
                    2. 然後切換到“收到使用者命令後復位到ISP監控區域”介面,在自定義命令框內輸入“da”,即可進行程式不斷電下載。
                    注:0xda可以根據個人需要進行更改。
************************************************************************************/
#include "stc15f2k60s2.h" // 微控制器STC15F2K60S2標頭檔案,可以不再加入reg51.h #include <intrins.h> // 加入此標頭檔案後,可使用_nop_庫函式 #include "delay.h" // 延時函式標頭檔案 #include "uart.h" // 串列埠通訊標頭檔案 #include<string.h> //========================================================================
// 函式: void SYS_Init(void) // 描述: 微控制器埠初始化 // 說明 // STC15W4K32S4系列微控制器,在上電後與PWM相關的IO為高阻狀態,需手動設定為普通雙向IO // PWM相關IO為 : P0.6/P0.7/P1.6/P1.7/P2.1/P2.2 // P2.3/P2.7/P3.7/P4.2/P4.4/P4.5 //======================================================================== void SYS_Init() { P0M0=0x20; P0M1=0x20
; P1M0=0x3C; P1M1=0x3C; P2M0=0x00; P2M1=0x00; P3M0=0x00; P3M1=0x00; P4M0=0x00; P4M1=0x00; P5M0=0x00; P5M1=0x00; } //======================================================================== // 函式: void main(void) // 描述: 主函式 //======================================================================== void main() // 主函式 { SYS_Init(); DelayMS(100); UartInit(); //串列埠初始化 DelayUS(100); ES=1; //串列埠1中斷開啟 EA=1; //總中斷開啟 SendString("Please send Command '0xDA' to download code..."); while (1); // 主迴圈 } void Usart() interrupt 4 using 0 { ES = 0; if (RI) { RI = 0; if(SBUF==0xda) //對串列埠收到的資料進行識別,如果是0xda則執行以下命令,將微控制器復位到ISP區域,配合上位機軟體,自動進行程式下載 { DelayMS(100); IAP_CONTR = 0x60; //0110,0000 soft reset system to run ISP monitor } } if (TI) { TI = 0; } ES = 1; }