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)
	{
	
	}
}

实验现象

相关推荐
清风6666662 小时前
基于51单片机的手机蓝牙控制8位LED灯亮灭设计
单片机·嵌入式硬件·智能手机·毕业设计·51单片机·课程设计
anghost15010 小时前
基于单片机的超市储物柜设计
单片机·嵌入式硬件·超市储物柜设计
qq_5260991313 小时前
工控机的用途与介绍:工业自动化的重要引擎
嵌入式硬件·自动化·电脑
尘似鹤13 小时前
旋钮键盘项目---foc讲解(开环)
单片机·嵌入式硬件
意法半导体STM3215 小时前
STM32N6引入NPU,为边缘AI插上“隐形的翅膀”
单片机·ai·npu·st·stm32n6·边缘人工智能
范纹杉想快点毕业21 小时前
嵌入式 C 语言编程规范个人学习笔记,参考华为《C 语言编程规范》
linux·服务器·数据库·笔记·单片机·嵌入式硬件·fpga开发
Wallace Zhang1 天前
STM32 - Embedded IDE - GCC - 解决LWRB库在GCC编译器会编译失败,在ARMCC编译器时却正常编译
ide·stm32·嵌入式硬件
3D打印-HUSTAIBO1 天前
【电气】NPN与PNP
单片机·嵌入式硬件
ksk自在无敌1 天前
ESP8266的AP模式与STA编写,
stm32·单片机·嵌入式硬件
晶振厂家-晶发电子1 天前
怎么判断晶振的好坏,有什么简单的办法
单片机·嵌入式硬件