写一个51单片机串口程序
时间: 2024-05-11 08:16:56 浏览: 7
好的,下面是一个示例代码:
```
#include <reg51.h>
#define FREQ_OSC 12000000UL
void initUART(void)
{
TMOD = 0x20; // set timer 1 mode 2 for 8-bit auto-reload
SCON = 0x50; // set Serial Control Register for baud rate 9600 and enable receiver
TH1 = -(FREQ_OSC/(12UL*32UL*9600UL)); // set reload value for timer 1
TR1 = 1; // start timer 1
}
void main(void)
{
unsigned char ch;
initUART();
while(1)
{
while(!RI); // wait until character received
ch = SBUF; // read character from SBUF
RI = 0; // clear receiver interrupt flag
while(!TI); // wait until TX buffer is empty
SBUF = ch; // write character to TX buffer
TI = 0; // clear transmit interrupt flag
}
}
```
这段代码实现了一个串口通信程序,使用的是基于 51 单片机的串口通信。其中 `initUART` 函数用于初始化串口,设置波特率和定时器;`main` 函数中通过循环实现不断的读取和发送数据。