⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 利用宏晶科技的IAP单片机开发自己的ISP程序实例
💻
字号:
/*------------------------------------------------------------------*/
/* --- 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 + -