您的位置 首页 测评

51单片机一键下载相关

x宝上有很多买51单片机一键下载器的,就是U转串又配了一个stc15的单片机检测下载码,检测到了就断电再启动。挺巧妙的,就去找了一下原理。S

x宝上有许多买51单片机一键下载器的,便是U转串又配了一个stc15的单片机检测下载码,检测到了就断电再发动。

挺奇妙的,就去找了一下原理。
STC免手动下载程序电路图(主动断电冷发动) + 程序http://www.amobbs.com/forum.php?mod=viewthread&tid=5279682
折中版的STC免手动免断电下载程序计划, 只需加一行代码, 不占用其他任何资源http://www.amobbs.com/thread-5287022-1-1.html
电路图如下:

(原文件名:STC免手动烧写电路图(最佳版).jpg)

实物图:

(原文件名:实物图1.jpg)


(原文件名:实物图2.jpg)

注意事项:

(原文件名:注意事项.jpg)

源程序:

#define uint8 unsigned char
#include “STC15F104E.H”

//#define BAUD0xF400// 1200bps @ 11.0592MHz
//#define BAUD0xFA00// 2400bps @ 11.0592MHz
#define BAUD0xFD00// 4800bps @ 11.0592MHz

sbit RXB= P3^4;
sbit Key= P3^1; //主动/手动开关(根据需要运用)
sbit Relay = P3^3;
sbit LED= P3^0;

uint8 RBUF;//接纳缓存
uint8 RDAT;//接纳数据暂存
uint8 RCNT;//接纳计数器
uint8 RBIT;//接纳比特数
bitRING;//开端接纳标志
bitREND;//接纳完结标志

uint8 cnt;//重启计数器
bitSTART;//重启标志

void YS100ms(uint8 n)
{
uint8 i,a,b,c;
for(i=n;i>0;i–)
for(c=89;c>0;c–)
for(b=230;b>0;b–)
for(a=12;a>0;a–);
}

void UART_INIT()
{
RING = 0;
REND = 0;
RCNT = 0;
}

void main()
{
P3M1 = 0x00;
P3M0 = 0x09;//P3.0、P3.3推挽输出
Relay = 0;//断开继电器
LED= 0;//关LED


TMOD = 0x00;//T0处于16位主动重装形式
AUXR = 0x80;//T0作业在1T形式
TL0 = BAUD;
TH0 = BAUD>>8;//初始化Timer0和设定重载值
TR0 = 1;
ET0 = 1;
PT0 = 1;//进步Timer0的中止优先级
EA= 1;

UART_INIT();

while(1)
{
if(START)
{
START = 0;
if(Key)
{
ET0 = 0;
Relay = 1;//继电器吸合
LED = 1;
YS100ms(50);//从『加载HEX』到『提示上电』有5秒
Relay = 0;
LED = 0;
YS100ms(15);
ET0 = 1;
UART_INIT();
}
}
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/256133.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们