AT89C51单片机接收串口助手发送的字符串并转化为整数得代码
时间: 2023-08-28 18:03:37 浏览: 55
下面是AT89C51单片机接收串口助手发送的字符串并转化为整数的Keil代码:
```c
#include <REG51.H>
void UART_Init()
{
// 设置串口为模式1,波特率为9600
TMOD = 0x20;
TH1 = 0xFD;
SCON = 0x50;
TR1 = 1;
}
unsigned int StrToInt(char *str)
{
unsigned int res = 0;
while(*str != '\0')
{
res = res * 10 + (*str - '0');
str++;
}
return res;
}
void main()
{
char str[10];
unsigned int num;
UART_Init();
while(1)
{
// 等待串口接收完成
while(!RI);
// 读取串口接收数据
str[0] = SBUF;
RI = 0;
// 如果接收到回车符,将字符串转化为整数并输出
if(str[0] == '\r')
{
str[0] = '\0';
num = StrToInt(str);
// 在此处进行输出操作,例如使用数码管输出
}
}
}
```
在上面的代码中,我们首先定义了一个函数 `UART_Init()` 用于初始化串口,设置为模式1,波特率为9600。然后我们定义了一个函数 `StrToInt()`,用于将字符串转化为整数。
在 `main()` 函数中,我们定义了一个字符数组 `str` 用于存储接收到的字符串,以及一个整数 `num` 用于存储转化后的整数。然后我们在一个无限循环中等待串口接收数据,如果接收到的是回车符,就将字符数组转化为整数,并进行输出操作。
需要注意的是,由于AT89C51芯片的串口通信需要外部晶振,因此在实际应用中需要将晶振连接到芯片上才能正常使用串口通信功能。另外,需要根据具体的输出设备进行相应的输出操作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)