?? ap.c
字號:
/*------------------------------------------------------------------*/
/* --- STC MCU International Limited -------------------------------*/
/* --- STC IAP 系列單片機(jī)實(shí)現(xiàn)用戶ISP 演示程序 ----------------------*/
/* --- Mobile: (86)13922805190 -------------------------------------*/
/* --- Fax: 86-755-82944243 ----------------------------------------*/
/* --- Tel: 86-755-82948412 ----------------------------------------*/
/* --- Web: www.STCMCU.com -----------------------------------------*/
/* 如果要在程序中使用或者在文章中引用該程序,請?jiān)诔绦蛑谢蛭恼轮凶⒚? */
/* 使用了宏晶科技的資料或程序 */
/*------------------------------------------------------------------*/
#include "reg51.h"
#define FOSC 18432000L //系統(tǒng)時(shí)鐘頻率
#define BAUD (256 - FOSC/32/115200) //定義串口波特率
#define ISPPROGRAM 0xec00 //ISP下載程序入口地址
/* 定義串口相關(guān)SFR */
sfr AUXR = 0x8E; //波特率發(fā)生器控制寄存器
sfr BRT = 0x9C; //波特率發(fā)生器定時(shí)器
void (*IspProgram)() = ISPPROGRAM; //定義指針函數(shù)
char cnt7f; //Isp_Check內(nèi)部使用的變量
void uart() interrupt 4 using 1 //串口中斷服務(wù)程序
{
if (TI) TI = 0; //發(fā)送完成中斷
if (RI) //接收完成中斷
{
if (SBUF == 0x7f)
{
cnt7f++;
if (cnt7f >= 16)
{
IspProgram(); //調(diào)用下載模塊(****重要語句****)
}
}
else
{
cnt7f = 0;
}
RI = 0; //清接收完成標(biāo)志
}
}
void main()
{
SCON = 0x50; //定義串口模式為8bit可變,無校驗(yàn)位
AUXR = 0x15; //波特率發(fā)生器12倍速,并啟動波特率發(fā)生器定時(shí)器
BRT = BAUD; //初始化波特率發(fā)生器定時(shí)器的定時(shí)初值
ES = 1; //使能串口中斷
EA = 1; //打開全局中斷開關(guān)
while (1)
{
P1++;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -