51单片机学习:串口通信实验

发布日期:2023-03-11
51单片机学习:串口通信实验

电工优优今天要和大家分享的单片机相关信息,接下来我将从51单片机学习:串口通信实验这个方面来介绍。

实验名称:串口通信实验接线说明:实验现象:下载程序后,当串口助手发送数据给单片机,单片机原封不动转发给串口助手显示注意事项:使用黄色跳线帽将CH340旁的P5端子的UTX和P30短接,URX和P31短接,出厂默认已短接好***************************************************************************************/#include "reg52.h"

typedef unsigned int u16; //对系统默认数据类型进行重定义typedef unsigned char u8;

/******************************************************************************** 函 数 名 : uart_init* 函数功能 : 串口通信中断配置函数,通过设置TH和TL即可确定定时时间* 输 入 : baud:波特率对应的TH、TL装载值* 输 出 : 无*******************************************************************************/void uart_init(u8 baud){TMOD|=0X20; //设置计数器工作方式2SCON=0X50; //设置为工作方式1PCON=0X80; //波特率加倍TH1=baud; //计数器初始值设置TL1=baud;ES=1; //打开接收中断EA=1; //打开总中断TR1=1; //打开计数器}

/******************************************************************************** 函 数 名 : main* 函数功能 : 主函数* 输 入 : 无* 输 出 : 无*******************************************************************************/void main(){uart_init(0XFA);//波特率为9600

while(1){}}

void uart() interrupt 4 //串口通信中断函数{u8 rec_data;

RI = 0; //清除接收中断标志位rec_data=SBUF; //存储接收到的数据SBUF=rec_data; //将接收到的数据放入到发送寄存器while(!TI); //等待发送数据完成TI=0; //清除发送完成标志位}