电路图如下:
(原文件名: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
|