历史上的今天
今天是:2024年12月13日(星期五)
2018年12月13日 | STC12单片机实现自动下载程序
2018-12-13 来源:eefocus
在STC单片机中有两个程序区,用户程序区与ISP程序区。
单片机上电后(冷启动,并非外部手动复位或看门狗复位),先会运行ISP程序,检测是否有合法的下载命令流,占时几十毫秒到几百毫秒,
如果没有合法的下载命令流,则立即运行用户程序。
如果有合法的下载命令流,则ISP监控程序开始与ISP下载软件通信,软件也会进入编程模式,向监控程序发送程序码,监控程序接收程序码,并将其写入用户程序区中。
在编程完毕,对程序校验成功后,用户程序立即生效,开始运行用户程序。
若没有在软件通过串口配合上位机对IAP_CONTR寄存器进行设置(比如下面的程序),那么STC-ISP尝试与MCU握手连接的时候,是以“最低波特率”设置项中的波特率不断的从串口发送“0x7F”信号,直到上电冷启(或者软复位至ISP)经几十毫秒到几百毫秒检测下载命令流后,才停止发送“0x7F”信号。
若有进行IAP_CONTR的设置,便进行相应的设置相关命令进行。
#include
unsigned char RevData;
//void UartInit()
//{
// PCON &= 0x7F;
// SCON = 0x50;
// AUXR &= 0xBF;
// AUXR &= 0xFE;
// TMOD &= 0x0F;
// TMOD |= 0x20;
// TL1 = 0xFD;
// TH1 = 0xFD;
// ET1 = 0;
// TR1 = 1;
//}
void UartInit()
{
AUXR &= 0xF7;
S2CON = 0x50;
AUXR &= 0xFB;
BRT = 0xFD;
AUXR |= 0x10;
}
void main()
{
UartInit();
EA = 1;
ES = 1;
P0 = 0;
while(1);
}
void Uart() interrupt 4
{
if(RI)
{
RI = 0;
RevData = SBUF;
if(RevData == 0x0a)
{
IAP_CONTR=0x60;
}
}
if(TI)
{}
}

上一篇:单片机中的C知识
下一篇:配置PCA的一点总结12单片机
史海拾趣
|
豪华的单片机开发系统498元 可稳定视频输出的: S3C2410 ARM9开发板780元DSP5402学习开发板II200元 暑期大优惠:S3C44B0开发板(标准版)350元 单片机以太网开发板 180元 DSP5402学习开发板II200元 LABTOOL-48UXP &nb ...… 查看全部问答> |
|
1、输入端与输出端的边线应避免相邻平行, 以免产生反射干扰。必要时应加地线隔离;两相邻层的布线要互相垂直,平行容易产生寄生耦合。 2、地线>电源线>信号线,通常信号线宽为:8mil~12mil;电源线为50mil~100mil。对数字电路 ...… 查看全部问答> |
|
EVC中是不是不支持settimer的SLIDER_TIMER参数?? EVC中是不是不支持settimer的SLIDER_TIMER参数?? mSliderTimer = SetTimer(SLIDER_TIMER, 100, NULL); 报错是:error C2065: \'SLIDER_TIMER\' : undeclared identifier… 查看全部问答> |
|
我写了一个很简单的程序,窗口上就两个按钮,用于动态分配和释放内存.打开WinCE.net的SystemProperties的Memory选项卡查看内存情况,发现分配可以,但按了释放内存的按钮却不能释放内存,不知原因,望高手指点!… 查看全部问答> |
|
报名参与:『ADI实验室电路DIY大赛』正式启动!https://bbs.eeworld.com.cn/thread-293726-1-1.html ADI实验室电路品种繁多,涉及面很广,如何选择合适的DIY项目可能是件容易令人困扰的事,但深究起来,其实可玩性是很大的,从今天开始,我将陆续 ...… 查看全部问答> |
|
大家帮看看为什么DeviceIoControl访问OID_802_11_BSSID_LIST老是失败 如题,下面一段程序中,DeviceIoControl访问OID_802_11_BSSID_LIST老是失败(见下面红色),也就是说bResult一直等于0;为什么?请教牛人!!!可能的问题出现在哪?为什么第二个DeviceIoControl失败?#include \"stdafx.h\"#include <windows.h ...… 查看全部问答> |
|
卓跃教育发现随着采用Android系统的谷歌手机、平板电脑等产品逐渐扩大市场占有率,Android平台人才的缺口日益显现。据业内统计,目前国内的3G研发人才缺口有三、四百万,其中Android研发人才缺口至少30万。&n ...… 查看全部问答> |




