悟已往之不諫 知來者之可追
阿新 • • 發佈:2019-01-23
/************************************************************************************
程式名稱:串列埠傳送程式下載指令(晶振頻率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;
}