/************************************************************************************ 

程序名称:串口发送程序下载指令(晶振频率18.432MHz) 

功能说明: 收到用户命令后复位到ISP监控区域

          1. 在STC ISP软件中,首先设定下载晶振频率为18.432MHz,通过传统方式下载本程序,即点击下载后,重启开发板。

                    2. 然后切换到“收到用户命令后复位到ISP监控区域”界面,在自定义命令框内输入“da”,即可进行程序不断电下载。

                    注:0xda可以根据个人需要进行更改。

************************************************************************************/


#include "stc15f2k60s2.h"       // 单片机STC15F2K60S2头文件,可以不再加入reg51.h

#include                    // 加入此头文件后,可使用_nop_库函数

#include "delay.h"              // 延时函数头文件

#include "uart.h"             // 串口通信头文件   

#include



//========================================================================

// 函数: 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;

}


关键字:STC  软复位 引用地址:STC实现软复位

上一篇:STC89C52MCU--软件实现系统复位
下一篇:c51软复位,实在经典,分析实在透彻

推荐阅读

以互联网、大数据、人工智能为代表的新技术,与制造业加速融合,促进了智能制造的发展。随着机器人和人工智能技术的突破,我们迎来了一个全新的时代,机器人是当前科技变革最重要的领域之一,机器人技术正在推动各个行业的转型升级。在人工智能技术的助力下,机器人从简单的自动化转变为高度智能化,其应用场景从工业到医疗、商业场所、家庭服务等不断扩展...
一、函数指针的声明与初始化... int max_fun(int a, int b); /*函数指针的声明,声明了两个形参都为int类型,返回值为int类型的函数指针*/int (*fp)(int, int); /*指针初始化*/fp = max_fun; //fp = &max_fun 也正确 /*函数指针初始化后的调用*/fp(a,b); //(*fp)(a,b);也正确 ...二、函数指针的typedeftypedef void (*irq_func)(in...
紫光展锐官方微信公众号今天发表长文介绍自研的熄屏显示技术。紫光展锐称Always-On Display(简称AOD技术)熄屏显示技术允许用户在不点亮屏幕的前提下,查看时间、日期、通知、消息等一切用户自行设置的熄屏显示内容。图片来源:微信熄屏显示技术利用屏幕像素点自发光的特性,结合局部刷新技术,实现屏幕的背光省电,改善和提升整机的续航能力。紫光展锐...
8月19日,OPPO举办未来影像技术发布会。这场发布会时间很短,但内容不少,重点介绍了OPPO在影像领域的最新进展,包括RGBW捕光传感器、连续光学变焦模组、五轴运动防抖技术和屏下摄像头解决方案。  发布会后,新浪数码与OPPO影像研发总监刘谦易进行了交流,了解到更多关于新技术的细节。  第一项技术关于传感器,OPPO公布了新一代RGBW补光传...

史海拾趣

问答坊 | AI 解惑

三八节,真的是劳动妇女节

老公开玩笑时说“三八妇女劳动节”,事实上,不幸被其言中。由于上周出差拍摄了一些视频采访,今天编了一天的片子还没编完,晚上对着视频又记录文字,好明天作为字幕用,刚弄完。在这个三八节,我是不折不扣地在劳动。下午给一个朋友打电话,她也正 ...…

查看全部问答∨

做一款非隔离式电源时遇到的怪现象

电路图:如下   此款电路经过调整电阻参数等: 输出负载为14并7串,总电流420MA的灯管; 频率为50KHZ左右; 实验用数字表;负载接线有点绕; 低压85-200V输入时,手碰到电流表420ma不变,当输入大于200V时,手接触电流表,电流就降低1 ...…

查看全部问答∨

Microsoft ActiveSync 频繁断开

用的是 飞凌te2440 II 开发板, 上面搭载 WINCE5.0, 我用 Microsoft ActiveSync 4.5通过 usb口连接着计算机进行应用开发, 怎么每连接上几分钟,就会断开连接呢?…

查看全部问答∨

FLASH MEMORY 的具体操作指南

Typical storage methods are shown. Read operation A read operation starts with a command (00h), followed by five address cycles, followed by the read confirm (30h). After the read transfer time (tR) of approximately 25 μs, the ...…

查看全部问答∨

PCI问题,是slave还是master?

Montavsta linux环境下,pci usb host controller芯片支持,当然这个PCI转USB设备应该是External pci master了,那板卡是Master还是slave,还是两者都是?因为master与slave的寄存器配置不一样…

查看全部问答∨

列表控件如何拉伸图标?

在列表控件上显示设置里的图标,有的大有的小,如何才能拉伸致一样大?还有个问题,如何知道设置里的图标是在个人还是在系统还是在连接里?谢谢 void GetFileIcon(DWORD fpid,SHFILEINFO *info) {         ZeroMemory(info, ...…

查看全部问答∨

求救!关于8259A的问题

我写了一个程序,用于读取8259A的中断请求寄存器IRR,中断服务寄存器ISR, 中断屏蔽寄存器IMR,为什么读出的IRR和ISR都总是0,而IMR总是0x18,是什么原因,望高手指点! 读取IRR寄存器的源程序: #include<stdio.h> #include "IOport.h"  ...…

查看全部问答∨

关于应用程序直接操作NandFlash的问题

因项目需求,要给应用程序提供一个直接操作NandFlash的接口,小弟在网上找到些直接操作Flash的文章,按照上面试了下, [code] m_hFmd = CreateFile(_T("DSK1:"),GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); 运行这句话的时 ...…

查看全部问答∨

STM32中断

最近接触这款芯片,今天在看TIM中断的时候发现通用TIM的对应的中断向量只有一个,它的一个TIM有4个通道啊,在向量表中怎么只有一个中断向量呢?我以前遇到的每个通道都会有对应的中断函数的。如TIM1_channel1,TIM1_channel2....  在 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved