您的位置:首页 > 其它

一个简易的51单片机串口接收和发送程序

2017-08-16 23:00 573 查看
作者:李大闯
/*********************程序功能:接收上位机发过来的一个字符串,然后把该字符串发送给上位机,字符串必须以!结尾**********************/#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit LED = P2^7;uchar flag = 0;uchar index = 0;uchar data c[100];void Delay_ms(uint n){uchar i;while(n--)for(i = 0;i < 120;i++);}void Send_string(uchar *c){while(*c != '!'){SBUF=*c;c++;while(TI==0);TI=0;}}void main(){SCON=0x50;	//串口模式1,允许接收TMOD=0x20;	//T1工作模式2TH1=0xF3;	//波特率4800TL1=0xF3;PCON=0x80;	//波特率倍增EA = 1;//开总中断ES = 1;//开串口中断TR1=1;//开定时器1中断while(1){if((SBUF == '!')&&(flag == 1)){Send_string(c);LED = ~LED;index = 0;flag = 0;}/*需要理解虽然 读取SBUF和写入SBUF所用的SBUF是不同的,这里可以理解为有两个SBUF,一个SBUF_read和一个SBUF_write,当往SBUF中写数据时SBUF_read不变。*/}}//串口接收中断函数void Serial_INT() interrupt 4{if(RI==0) return;ES=0;	//关闭串口中断RI=0;	//清接收中断标志c[index++]=SBUF;if(SBUF == '!')flag = 1;ES=1;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐