c51rs232串口通信
时间: 2024-01-04 11:17:46 浏览: 32
以下是一个简单的C51串口通信程序示例,其中使用了UART通信协议:
```c
#include <reg52.h>
#define FOSC 11059200L
#define BAUD 9600
#define TIMER_1MS (65536-FOSC/12/1000)
sbit LED = P1^0;
void UART_Init()
{
TMOD |= 0x20;
TH1 = TL1 = TIMER_1MS/BAUD;
TR1 = 1;
SCON = 0x50;
ES = 1;
EA = 1;
}
void UART_SendByte(unsigned char dat)
{
SBUF = dat;
while(!TI);
TI = 0;
}
void UART_SendString(unsigned char *s)
{
while(*s)
{
UART_SendByte(*s++);
}
}
void UART_Interrupt() interrupt 4
{
if(RI)
{
RI = 0;
LED = ~LED;
}
if(TI)
{
TI = 0;
}
}
void main()
{
UART_Init();
while(1)
{
UART_SendString("Hello World!\r\n");
delay(1000);
}
}
```
该程序使用了P1.0口的LED作为状态指示灯,每次接收到数据时会将LED状态取反。在主函数中,程序会每隔1秒向串口发送一条“Hello World!”的字符串。