li--wei--hao 发表于 2016-12-22 09:59:16

关于STC单片机的自动下载

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

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

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

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



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

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

static unsigned char UART_Count=0,UART_Temp=0;

void AutoLoad_Init(void)
{
    TMOD |= 0x20;
    TH1 = 0xfd;
    TL1 = 0xfd;
    SCON |= 0x50;
    TR1 = 1;
    EA = 1;
    ES = 1;
}

void AutoLoad_ISR(void) interrupt 4
{
    RI = 0;
    UART_Temp = SBUF;
    if(UART_Temp == 0xee)
    {
      UART_Count++;
      if(UART_Count > 5)
      ISP_CONTR=0x60;
    }
}

#endifautoload.h#define ENABLE_AUTOLOAD 1

#if ENABLE_AUTOLOAD == 1

#ifndef _AUTOLOAD_
#define _AUTOLOAD_

#include <stc89c5xrc.h>

void AutoLoad_Init(void);

#endif

#endif

feixiang20 发表于 2017-12-18 23:14:38

现在写代码很难啊

Y.fei 发表于 2016-12-30 14:02:41

还有这功能?!

li--wei--hao 发表于 2016-12-22 11:44:36

toofree 发表于 2016-12-22 11:42 static/image/common/back.gif
这功能牛逼,适合不使用串口的应用中

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

toofree 发表于 2016-12-22 11:42:51

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

jackten 发表于 2016-12-22 11:21:35

学习了,一直没发现还有这个功能
页: [1]
查看完整版本: 关于STC单片机的自动下载

Baidu
map