一个简易的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;}
相关文章推荐
- 写一个串口接收发送程序
- 一个简单的串口接收数据程序
- MFC串口通信设置及发送、中断接收程序
- 一个简单的socket服务端和客户端程序:客户端发送数据给服务端,服务端接收到数据后再给客户端发送数据
- CreateFile系类异步、并行(同一个串口发送接收)
- keil编译的程序 “汉字显示不全、串口发送汉字接收后乱码缺失”问题
- 单片机IO口模拟串口程序(发送+接收
- Java编写一个简单的TCP通信程序。服务器发送一条字符串,客户端接收该信息并显示。
- 用C++写一个UDP发送和接收程序
- 基础问题:在一个 Activity 中定义的串口接收程序,如果 Activity 切换到其它 Activity 后还能接收到串口数据吗?
- C51串口中断接收和发送程序
- 串口通信程序中十六进制格式发送和接收实现
- 51单片机串口程序,字符串/16进制发送与接收
- STC51单片机串口发送程序
- 串口通信程序中十六进制格式发送和接收实现
- 基础问题:在一个 Activity 中定义的串口接收程序,如果 Activity 切换到其它 Activity 后还能接收到串口数据吗?
- 单片机IO口模拟串口程序(发送+接收 )
- STM32的接收中断和发送中断同时使能会导致程序死在初始化串口那里。
- stm32L151串口中断假如发送一个字节0x36,串口中断总是接收到0x00,连续点击几次发送,才能接收到0x36
- ht46ru232 串口接收、发送程序 C语言