5回答

1收藏

[原创] 关于STC单片机的自动下载

51单片机 51单片机 4390 人阅读 | 5 人回复 | 2016-12-22

本帖最后由 li--wei--hao 于 2016-12-22 10:01 编辑

STC单片机下载程序需要冷启动,每次都要按开关,想必很多人的开关都坏了吧
其实STC单片机内部自带软件复位,可复位到ISP程序监控区,只要配合STC官方
上位机即可实现软件自动下载功能。

程序实现原理可参考STC官方数据手册  ISP/IAP/EEPROM章节

原理是配合STC-ISP的”收到用户命令后复位到ISP程序监控区“功能



以下是实现该功能的代码片段

autoload.c
  1. #include "autoload.h"
  2. #if ENABLE_AUTOLOAD == 1

  3. static unsigned char UART_Count=0,UART_Temp=0;

  4. void AutoLoad_Init(void)
  5. {
  6.     TMOD |= 0x20;
  7.     TH1 = 0xfd;
  8.     TL1 = 0xfd;
  9.     SCON |= 0x50;
  10.     TR1 = 1;
  11.     EA = 1;
  12.     ES = 1;
  13. }

  14. void AutoLoad_ISR(void) interrupt 4
  15. {
  16.     RI = 0;
  17.     UART_Temp = SBUF;
  18.     if(UART_Temp == 0xee)
  19.     {
  20.         UART_Count++;
  21.         if(UART_Count > 5)
  22.         ISP_CONTR=0x60;
  23.     }
  24. }

  25. #endif
复制代码
autoload.h
  1. #define ENABLE_AUTOLOAD 1

  2. #if ENABLE_AUTOLOAD == 1

  3. #ifndef _AUTOLOAD_
  4. #define _AUTOLOAD_

  5. #include <stc89c5xrc.h>

  6. void AutoLoad_Init(void);

  7. #endif

  8. #endif
复制代码
分享到:
回复

使用道具 举报

回答|共 5 个

倒序浏览

沙发

jackten

发表于 2016-12-22 11:21:35 | 只看该作者

学习了,一直没发现还有这个功能
板凳

toofree

发表于 2016-12-22 11:42:51 | 只看该作者

这功能牛逼,适合不使用串口的应用中
地板

li--wei--hao

发表于 2016-12-22 11:44:36 | 只看该作者

toofree 发表于 2016-12-22 11:42
这功能牛逼,适合不使用串口的应用中

使用串口的应用中也可以用,只要用户命令与要传输的数据不冲突就可以
5#

Y.fei

发表于 2016-12-30 14:02:41 | 只看该作者

还有这功能?!
6#

feixiang20

发表于 2017-12-18 23:14:38 | 只看该作者

现在写代码很难啊
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条