📄
字号:
/*------------------------------------------------------------------*/
/* --- STC MCU International Limited -------------------------------*/
/* --- STC IAP 系列单片机实现用户ISP 演示程序 ----------------------*/
/* --- Mobile: (86)13922805190 -------------------------------------*/
/* --- Fax: 86-755-82944243 ----------------------------------------*/
/* --- Tel: 86-755-82948412 ----------------------------------------*/
/* --- Web: www.STCMCU.com -----------------------------------------*/
/* 如果要在程序中使用或者在文章中引用该程序,请在程序中或文章中注明 */
/* 使用了宏晶科技的资料或程序 */
/*------------------------------------------------------------------*/
#include "reg51.h"
#define FOSC 18432000L //系统时钟频率
#define BAUD (256 - FOSC/32/115200) //定义串口波特率
#define ISPPROGRAM 0xec00 //ISP下载程序入口地址
/* 定义串口相关SFR */
sfr AUXR = 0x8E; //波特率发生器控制寄存器
sfr BRT = 0x9C; //波特率发生器定时器
void (*IspProgram)() = ISPPROGRAM; //定义指针函数
char cnt7f; //Isp_Check内部使用的变量
void uart() interrupt 4 using 1 //串口中断服务程序
{
if (TI) TI = 0; //发送完成中断
if (RI) //接收完成中断
{
if (SBUF == 0x7f)
{
cnt7f++;
if (cnt7f >= 16)
{
IspProgram(); //调用下载模块(****重要语句****)
}
}
else
{
cnt7f = 0;
}
RI = 0; //清接收完成标志
}
}
void main()
{
SCON = 0x50; //定义串口模式为8bit可变,无校验位
AUXR = 0x15; //波特率发生器12倍速,并启动波特率发生器定时器
BRT = BAUD; //初始化波特率发生器定时器的定时初值
ES = 1; //使能串口中断
EA = 1; //打开全局中断开关
while (1)
{
P1++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -