历史上的今天
今天是:2025年05月11日(星期日)
2019年05月11日 | STC12单片机实现自动下载程序
2019-05-11 来源: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) {} }
史海拾趣
|
请问有没有这样的芯片: 用途:语音采集 要求:可以与MIC直接相连(不要line in通道);片内自带增益调节、AD转换(不要DA)、晶振;采集后的数字音频数据可输出至外部存储芯片;体积小,成本低。… 查看全部问答> |
|
无线网卡传输距离,有墙隔着能上网吗? 信号怎样,如果在第一楼有一个无线路由器,想在第三楼用无线网卡通过第一楼的无线路由器上网, 信号不好,通过什么方法能让信号好,不受太大影响? 谢谢您的阅读。… 查看全部问答> |
|
xilinx ise 10.0 编译如下错误,请问这错在什么地方? The logic for <fout> does not match a known FF or Latch template. The description style you are using to describe a register or latch is not supported in the current software release. 代码如下:module con12(ck,Reset,fin,cou ...… 查看全部问答> |
|
今天突然困惑一个以前没有注意到的问题:请教各位了:例程中的can_normal程序中,在can初始化里面有一句CAN_ITConfig(CAN1,CAN_IT_FMP0, ENABLE);使能挂号中断。在NVIC中却是 NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;然后在中 ...… 查看全部问答> |
|
时间真的很快,转眼又快到过年了。我现在放假了,在家休息。 很明显,我没有坚持写好日记,可能我没有这个习惯。 但是我这两天在看天祥2440a的视频教程,看到了相广超的视频,看到了他 ...… 查看全部问答> |
|
搞360编程的,语句没写完,就按了一下F7,没有任何提示,编译通过! 这句是这样的: pADC0->CON = ADCCON_ADCEN_EN | // bit 19 &nb ...… 查看全部问答> |




