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

实验现象

相关推荐
来生硬件工程师14 分钟前
【硬件笔记】负载是如何烧MOS的?
笔记·嵌入式硬件·硬件架构·硬件工程·硬件设计
少男的脸红藏不住心事27 分钟前
GD32入门到实战34--ARM启动流程
单片机·嵌入式硬件
日更嵌入式的打工仔1 小时前
PHY的自适应协商简析
网络·嵌入式硬件·自适应·phy
CC呢2 小时前
基于单片机坐姿提醒系统/久坐提醒设计
stm32·单片机·嵌入式硬件·单片机设计·久坐提醒
曙曙学编程2 小时前
stm32——寄存器操作,蜂鸣器原理
c语言·c++·stm32·单片机·嵌入式硬件
安庆平.Я2 小时前
STM32——串口
stm32·单片机·嵌入式硬件
lingzhilab3 小时前
零知开源——基于STM32F103RBT6的智能风扇控制系统设计与实现
stm32·单片机·嵌入式硬件
殷忆枫8 小时前
基于STM32的智能语音识别分类垃圾桶
stm32·嵌入式硬件·语音识别
CC呢9 小时前
基于单片机智能家居环境检测系统/室内环境检测设计
stm32·单片机·嵌入式硬件·物联网·智能家居
智者知已应修善业10 小时前
【51单片机8*8点阵显示箭头动画详细注释】2022-12-1
c语言·经验分享·笔记·嵌入式硬件·51单片机