查看: 323|回复: 4

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

[复制链接]

2

主题

0

好友

153

积分

童生

Rank: 2

  • TA的每日心情
    开心
    2017-10-9 09:23
  • 签到天数: 34 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2016-12-22 09:59:16 |显示全部楼层
    本帖最后由 li--wei--hao 于 2016-12-22 10:01 编辑

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

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

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

    092122um4lmulajbg73mps.png.thumb.jpg


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

    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

    主题

    1

    好友

    1300

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    擦汗
    5 天前
  • 签到天数: 183 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2016-12-22 11:21:35 |显示全部楼层
    学习了,一直没发现还有这个功能
    回复

    使用道具 举报

    24

    主题

    0

    好友

    5123

    积分

    状元

    Rank: 6Rank: 6

  • TA的每日心情
    开心
    16 小时前
  • 签到天数: 1426 天

    连续签到: 136 天

    [LV.10]以坛为家III

    爱板会员勋章 活跃会员勋章 发帖机器勋章 在线达人勋章

    发表于 2016-12-22 11:42:51 |显示全部楼层
    这功能牛逼,适合不使用串口的应用中
    回复

    使用道具 举报

    2

    主题

    0

    好友

    153

    积分

    童生

    Rank: 2

  • TA的每日心情
    开心
    2017-10-9 09:23
  • 签到天数: 34 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2016-12-22 11:44:36 |显示全部楼层
    toofree 发表于 2016-12-22 11:42
    这功能牛逼,适合不使用串口的应用中

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

    使用道具 举报

    0

    主题

    0

    好友

    96

    积分

    童生

    Rank: 2

  • TA的每日心情
    开心
    2017-9-20 09:08
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2016-12-30 14:02:41 |显示全部楼层
    还有这功能?!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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

    手机版|爱板网 |网站地图  

    GMT+8, 2017-10-20 16:42 , Processed in 0.472434 second(s), 14 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部