STC实现软复位

/************************************************************************************ 
程序名称:串口发送程序下载指令(晶振频率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;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReCclay

如果觉得不错,不妨请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值