Proteus 仿真51单片机-串口收发小窥

51单片机

51单片机是一种经典的8位微控制器,广泛应用于各种嵌入式系统开发中。它具有结构简单、可靠性高、价格低廉等特点,深受工程师和电子爱好者的喜爱。

51单片机的核心是一个8位的CPU,能够执行多种指令,完成数据处理和逻辑运算。它通常拥有多个I/O口,可用于连接外部设备,如传感器、显示器和驱动器等。这些I/O口既可以作为输入端,也可以作为输出端,具有较高的灵活性。

此外,51单片机还集成了多种功能模块,如定时器、中断系统和串行通信接口等。定时器可用于实现定时任务和计数功能;中断系统可以提高系统的响应速度和实时性;串行通信接口则方便与其他设备进行数据交换。

51单片机的开发环境相对成熟,有大量的开发工具和学习资料可供选择。它适用于多种应用场景,如家电控制、工业自动化、智能仪表等领域。无论是初学者入门学习,还是工程师进行项目开发,51单片机都是一个非常不错的选择。

串口介绍

51单片机的串口是一种重要的通信接口,它允许单片机与其他设备进行数据传输。51单片机内部集成了一个全双工串行接口,支持异步通信。串口通信主要通过两个引脚实现:TXD(P3.1)用于发送数据,RXD(P3.0)用于接收数据。

串口通信的数据帧通常由起始位、数据位、校验位和停止位组成。51单片机的串口模块由串行数据缓冲寄存器SBUF和串行口控制寄存器SCON等组成。SBUF用于存储发送或接收的数据,而SCON用于配置串口的工作模式。

51单片机的串口通信有四种工作模式,其中模式1最为常用,它支持8位数据位、1位停止位和可选的校验位。波特率是串口通信中的一个重要参数,它决定了数据传输的速度。51单片机的波特率可以通过定时器T1或T2来设置。

串口通信在实际应用中非常广泛,例如可以用于单片机与PC之间的通信,也可以用于单片机与其他模块(如WIFI、蓝牙)的通信。通过串口通信,可以方便地实现数据的传输和设备之间的控制。

proteus 串口仿真电路图

java 复制代码
#include <REGX52.H>

#include <REGX52.H>

void UartInit()		//9600bps@11.0592MHz
{
	PCON &= 0x7F;		//设置波特率不倍速
	SCON = 0x50;		//设置为8位数据,可变波特率
	TMOD &= 0x0F;		//清除定时器1模式位
	TMOD |= 0x20;		//设定定时器1为8位自动重装方式
	TL1 = 0xFD;			//设定定时初值
	TH1 = 0xFD;			//设定定时器重装值
	TR1 = 1;			//启动定时器1
	ET1 = 0;        	//禁止定时器1中断
	EA=1;				//开启总中断
	ES=1;				//开启串口中断
}

void UartSend(unsigned char byte) //发送函数
{
	SBUF = byte; //将要发送的数据写入SBUF
	while(TI == 0); //等待发送完成
	TI = 0; //发送完成后清零TI
}

// 串口发送字符串函数
void UART_SendString(char *str) {
    while (*str) { // 遍历字符串
        SBUF = *str++; // 将当前字符发送到串口缓冲区
        while (!TI);   // 等待发送完成
        TI = 0;        // 清除发送完成标志
    }
}
void UART_ISR() interrupt 4 //串口接收中断服务程序
{
	if(RI==1) //如果接收到数据
	{
		UartSend(SBUF); //将接收到的数据发送出去
		RI=0; //清零RI
	}
}

int main()
{
	UartInit(); //初始化串口
	UART_SendString("send message!!!");
	while(1)
	{
	
	}
}

实验现象

相关推荐
星源~34 分钟前
tree 命令集成到 Git Bash:可视化目录结构的指南
git·单片机·物联网·嵌入式·项目开发
SKYDROID云卓小助手2 小时前
无人设备遥控器之自动调整编码技术篇
人工智能·嵌入式硬件·算法·自动化·信号处理
所念皆星海9112 小时前
图灵完备之路(数电学习三分钟)----数据选择器与总线
嵌入式硬件·通信·数电
智者知已应修善业3 小时前
【51单片机节日彩灯控制器设计】2022-6-11
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
开-悟4 小时前
嵌入式编程-使用AI查找BUG的启发
c语言·人工智能·嵌入式硬件·bug
许白掰6 小时前
【stm32】HAL库开发——CubeMX配置RTC,单片机工作模式和看门狗
stm32·单片机·嵌入式硬件·学习·实时音视频
DIY机器人工房7 小时前
0.96寸OLED显示屏 江协科技学习笔记(36个知识点)
笔记·科技·stm32·单片机·嵌入式硬件·学习·江协科技
国科安芯7 小时前
【AS32系列MCU调试教程】SPI调试的常见问题解析
单片机·嵌入式硬件·性能优化·硬件架构·硬件工程
LS_learner8 小时前
同步(Synchronization)和互斥(Mutual Exclusion)关系
嵌入式硬件
许白掰9 小时前
Linux入门篇学习——Linux 帮助手册
linux·运维·服务器·嵌入式硬件·学习·编辑器·vim