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()		//[email protected]
{
	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)
	{
	
	}
}

实验现象

相关推荐
小智学长 | 嵌入式4 小时前
单片机-STM32部分:6、不同编程方式-寄存器、标准库、HAL库、LL库
stm32·单片机·嵌入式硬件
程序员JerrySUN9 小时前
驱动开发硬核特训 · 专题篇:Vivante GPU 与 DRM 图形显示体系全解析(i.MX8MP 平台实战)
linux·驱动开发·嵌入式硬件·面试·职场和发展·架构
Wx120不知道取啥名9 小时前
设备与驱动:UART设备
单片机·嵌入式硬件·uart介绍·uart收发数据·uart接收不定长数据·uart的dma/中断收发
狄加山67510 小时前
STM32的网络天气时钟项目
网络·stm32·嵌入式硬件
负里5510 小时前
stm32常见错误
stm32·单片机·嵌入式硬件
武汉芯源半导体11 小时前
新品发布 | 96MHz主频 M0+内核低功耗单片机CW32L011产品介绍
单片机·嵌入式硬件
仰泳之鹅11 小时前
【STM32F1标准库】理论——通信协议:串口
stm32·单片机·嵌入式硬件
焦佩奇12 小时前
STM32裸机开发问题汇总
stm32·单片机·嵌入式硬件
SZ17011023113 小时前
数据报(Datagram)与虚电路(Virtual Circuit)的区别
网络·单片机·嵌入式硬件
weixin_4528130913 小时前
MCU怎么运行深度学习模型
单片机·嵌入式硬件·深度学习