C51单片机通过串口发送一个两位的十进制变量的程序方法
时间: 2024-02-05 10:14:21 浏览: 86
以下是通过C51单片机串口发送一个两位的十进制变量的程序方法:
```
#include <reg52.h>
#include <stdio.h>
void UART_init(void)
{
SCON = 0x50; //设置串口工作方式
TMOD &= 0x0F; //设置定时器1为16位自动重载模式
TMOD |= 0x20;
TH1 = 0xFD; //设定波特率为9600bps
TL1 = 0xFD;
TR1 = 1; //启动定时器1
ES = 1; //使能串口中断
EA = 1; //开启总中断
}
void UART_send(char dat)
{
SBUF = dat; //将数据写入发送缓冲区
while(!TI); //等待发送完成
TI = 0; //清除发送完成标志
}
void main()
{
unsigned char num = 53; //设定要发送的十进制变量值
char str[3];
UART_init(); //初始化串口
sprintf(str, "%02d", num); //将十进制变量转换为两位的字符串格式
UART_send(str[0]); //发送字符串第一位
UART_send(str[1]); //发送字符串第二位
}
```
在以上代码中,我们通过 `UART_init()` 函数初始化了串口,并且通过 `UART_send()` 函数将数据发送到串口。在 `main()` 函数中,我们定义了一个两位的十进制变量 `num`,并且通过 `sprintf()` 函数将其转换为两位的字符串格式。最后,我们调用 `UART_send()` 函数分别发送字符串的第一位和第二位。
阅读全文