以前在进行单片机编程时比较烦恼的时每次下载程序都需要断电,点击下载,再上电才能将程序下载到单片机,如果偶尔一两次这样操作可以忍受,但是往往我们都是需要调试代码,多次进行下载操作,不断的断电上电无疑对单片机来说是一个很大的损伤。
根据stc12c5a60s2(一片增强型的51单片机,兼容stc89c52单片机)的数据手册,可以通过单片机系统软复位,使单片机运行系统启动代码(这部分代码不同于我们的用户代码),我们断电再上电也是这个原理。通过往IAP_CONTR(C7H)写60H实现系统的软复位,然后进行自动下载。单片机复位后有两种启动形式,一种是从用户程序区启动,我们平时按复位键就是这种启动形式,另一种是从ISP程序区启动,断电启动属于这种方式,通过设置IAP_CONTR可以实现这种启动方式,我们需要下载程序,所以需要从ISP程序区启动。具体的寄存器设置请参考官方数据手册。
具体实现步骤如下:
首先将下面的代码通过我们以前的老方式下载到单片机中

IAP_CONTR EQU 0C7HORG 0000H
LJMP STARTORG 0023H
LJMP SERIALSTART:  LCALL SERIALINITMainLoop:                               SJMP MainLoop   SERIALINIT:MOV SP,#60HMOV SCON,#50HMOV TMOD,#20HMOV TH1,#0FDHMOV TL1,#0FDHSETB TR1        SETB ESSETB EASERIAL:PUSH ACCPUSH PSWJNB RI,RIGOCLR RIMOV A,SBUFCJNE A,#0AFH,RIGO;NOPNOPNOPMOV IAP_CONTR,#60HRIGO:POP PSWPOP ACCRETI
END

然后对stc-isp进行如下设置

自定义命令可以根据自己需要修改,同时代码也要跟着修改。

上面代码的主要原理是打开单片机串口中断,当使用stc-isp下载程序时,软件会先往单片机写AFH命令,单片机通过串口检测到这个命令时就进行系统软复位,系统软复位后,单片机系统代码就将用户代码下载到单片机。

每次下载代码都需要将上面的代码加到自己的代码中去。

当然不止这一种通过串口发送特定命令的方式来使系统软复位,比如也可以设置一个按键,检测到这个按键按下就运行MOV IAP_CONTR,#60H。核心就是MOV IAP_CONTR,#60H这一条命令,但在什么情况下运行这条命令就需要根据自己的想法和实际使用来设计了。

STC51系列单片机不断电自动下载程序相关推荐

  1. STC12C5A60S2单片机实现ISP自动下载

    STC12C5A60S2自动下载程序 在我们使用STC系列单片机开发项目时,最烦人的就是每次点击Download之后的时候都要断电重新上电才能下载.相信很对朋友们都会遇到这样的问题; 如果仅仅是调试项 ...

  2. stc单片机自动下载程序原理和代码实现

    1/stc单片机下载程序的原理 首先我们要理解stc单片机下载程序的原理.在stc单片机中有两个程序区:用户程序区和ISP监控程序区. 这是stc89c52单片机数据手册中的内容. 根据数据手册,我们 ...

  3. STM系列单片机中文参考手册下载方法

    在使用STM单片机编程的时候有时候需要查阅芯片手册,英文手册查阅起来比较麻烦,而搜索中文手册时,好多网站下载时需要注册或者需要积分,下载起来比较麻烦.现在就来说一下,如何在官方网站下载各个系列单片机的 ...

  4. 【开源】STC单片机免冷启动自动下载器

    [开源]STC单片机免冷启动自动下载器 首版效果图 实物打板图 手动焊接完成的PCBA,并且上电测试bug修复后的实物图 烧录器的验证对象 在烧录STC15F408AS最小系统板上进行实测. 实物连接 ...

  5. **华大单片机HC32使用Jlink下载程序(免币)**

    华大单片机HC32使用Jlink下载程序(免币) 下载所需文件连接下载连接 使用J-link下载HC32程序步骤: 1,复制文件 将下载的文件解压后得到一个xml文件和一个HDSC文件夹. 将HDSC ...

  6. 基于恩智浦MK60DN512Z系列单片机的智能模型车主程序与子程序集

    基于恩智浦MK60DN512Z系列单片机的智能模型车主程序集 作者 徐挺 /********************************************************** 函数名 ...

  7. STC双串口单片机无法烧写下载程序原因,普中开发箱,STC12C5A60S2

    我用的是普中科技的开发箱,用STC-ISP下载线直接连到P3.0和P3.1针脚下载程序,发现无法下载程序的原因是开发箱的P3.0和P3.1是与DB9串口相连的,由J-RXD和J-TXD两个跳线控制,烧 ...

  8. STC15系列单片机检测不到,下载不成功

    检测不到单片机存在 使用STC15系列的IAP15W4K61S4和IAP15W2K16S2两种型号的单片机时,都出现了STC-ISP下载软件很长时间检测不到单片机的情况 百度得到的解决 网上百度你经常 ...

  9. 飞思卡尔MKL系列单片机用jlink烧写程序出现的Kinetis (connect): Timeout while halting CPU. CPU does not stop.问题

    最近用Jlink烧写飞思卡尔MKL16Z128单片机时发现经常出现不能连接成功的情况,用的是SWD接口,排查了好久后来发现问题在单片机的RESET脚上,因为之前用SWD接口的时候只接4线(SWD.SC ...

最新文章

  1. 中国联通与阿里宣布相互开放云计算资源
  2. QML自定义图表图例
  3. python初学者代码示例_python实现手势识别的示例(入门)
  4. PHP编写shell
  5. 如何才能成为高级Java开发工程师
  6. bzoj 3824: [Usaco2014 Dec]Guard Mark【状压dp】
  7. 在Linux下基于路由策略的IP地址控制
  8. 网易云音乐转码_网易云音乐产品分析报告
  9. JAVA实现的吸血鬼数字算法,高效率版本(已有网友给出算法说明)
  10. shanzhi -接小球游戏2.0
  11. 解决 from scipy.misc import comb ImportError: cannot import name ‘comb‘ 问题
  12. 他下班时间写出4本书,2年引导几十万人踏入网络安全行业
  13. 正则表达式 压缩 HTML 字符串
  14. 备了安的网站换服务器,tipask网站更换服务器后 问答系统重新安装注意要点 - 小俊学习网...
  15. HDU_4125 Moles 线段树
  16. echarts拓扑图一些功能实现
  17. 5V开关电路应用设计
  18. sklearn中lstm_深度学习之路(一):用LSTM网络做时间序列数据预测
  19. Selenium自动化测试网页加载太慢怎么办
  20. Echarts系列之怎么让文字纵向显示

热门文章

  1. 猿辅导python编程课网课怎么样_猿辅导网课怎么样,一个过来人经历告诉你
  2. 数学之美读书笔记--摘抄
  3. 封装link或style中的css规则
  4. 深度技术GhostXP专业版V9.0之初体验
  5. JAVA拾遗 — JMH与8个代码陷阱
  6. bulldog-vulnhub
  7. 计算机设计图片教程,电脑如何抠图?教你一招快速搞定
  8. 修改sep客户端服务器地址,SEP服务更改IP地址操作手册
  9. Android分享文件到qq没反应,Android 微信,qq分享文件
  10. MYSQL 修改语句(数据)