51单片机一键下载相关 作者: 时间:2016-11-28 来源:网络 加入技术交流群 扫码加入和技术大咖面对面交流海量资料库查询 收藏 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.0592MHzsbit 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;//关LEDTMOD = 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){