STC8951单片机不断电下载的方法(亲自测试过)

来源:互联网 发布:win10安装ubuntu双系统 编辑:程序博客网 时间:2024/05/16 06:35

STC8951单片机不断电下载的方法(亲自测试过)


对于STC89C51系列单片机如果要下载程序,我们需要先断电,点击下载,再给单片机上电这时,他就会自动下载程序。这是因为单片机在冷启动时,首先执行了一段系统启动程序,监视串口有无下载的指令,有就执行下载,没有就进入用户程序区开始执行;而带电复位,是直接从用户程序区开始执行,所以无法执行下载。能不能不断电实现下载呢?答案是肯定的,只要内部ISP_CONTR 寄存器设置为0X60,单片机就会自动复位到系统启动区进行执行,所以我们就可以在程序中设计一段程序,检测串口中的数据(自定义命令,比如检测到收到的数据为0Xaf就让单片机复位到系统程序区即将ISP_CONTR设置成0X60 )是否有执行下载的命令。STCISP软件中也使用自定义下载,同时,在自定义的命令写成我们所要求的指令如0XAF(16进制数),点下载时,会先发送这一命令,单片机收到 后也会设置ISP_CONTR的值,单片机就会从系统区复位,从而实现不断电下载。以下是试验的源码。

 

 

#include "reg51.h"sfr ISP_CONTR = 0xe7;unsigned char ch;void initUart(void){TMOD|=0x20;SCON=0x50;TH1=0xfa;TL1=0xfa;TR1=1;ES=1;}void Delay(){unsigned long i,j;for(i = 0 ; i < 3;i++){  for(j = 0 ; j < 20000; j ++)  {   ;  }}}void ReciveData(){if(RI){     RI=0;  ch = SBUF;//add your code here.}}void main(void){initUart();EA=1;P2 = 0;while(1){  Delay();  P2 = 0xff;  Delay();  P2= 0;  ReciveData();  if(ch == 0xaf)  {   Delay();   ISP_CONTR = 0x60;  }}}


 

 


 ---★ 本文转自『IT在线:http://www.itolhome.cn』→原文地址:http://www.itolhome.cn/thread-79400-1-3.html

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 换领驾驶证超期了怎么办 车牌租出去要不回来怎么办 汽车放久了没电怎么办 上海网约车资格证怎么办 手机掉在滴滴上怎么办 在滴滴上丢手机怎么办 把东西落在出租车上怎么办 租好房子后悔了怎么办 转租房东不退押金怎么办 亲戚借户口本办公租房怎么办 7.1深圳禁行货车怎么办 怎么办无锡市的货车临时通行证 武汉医保卡密码忘了怎么办 打出租车被黑了怎么办 行李掉在出租车上怎么办 家庭农场买农机怎么办补贴 在异地买的保险怎么办 理发店被投诉工商局找我怎么办? 临安市民卡丢了怎么办 合肥分期付款买手机被骗怎么办 公司注销后还遇到投诉怎么办 超市购物结账时少收钱怎么办 卖给顾客东西时会有斜念怎么办 实体店家纺想换货怎么办 劳动仲裁裁决部分不服怎么办 劳动仲裁公司拒不履行怎么办? 苹果手机被黑客锁了怎么办 出租大面积厂房的中介费用怎么办 中山房子网签不了怎么办 物业服务太差该怎么办 取完公积金的卡怎么办 车卖了对方不过户怎么办 卫生间下水道堵了怎么办妙招 教练不让你练车怎么办 教练不让我练车怎么办 考三要练车教练不给练怎么办 科目二指纹打卡指纹不清楚怎么办 教练凶你的时候怎么办 人行聘用制3年后怎么办 道路运输从业资格证过期了怎么办 码头如果要危险运输证怎么办?