51单片机——串口向电脑发送数据

引言

在电子技术领域,51 单片机作为一种广泛应用的微控制器,其串口通信功能具有重要意义。通过串口,51 单片机能够与电脑等外部设备进行数据交互,实现各种复杂的功能,为许多应用场景提供了可能。

51 单片机串口通信基础

  • 通信接口概述:常见的通信接口有 UART、IIC、SPI 等。UART 串口通信是 51 单片机常用的通信方式之一,具有全双工、异步的特点,可实现点对点通信。
  • 串口工作原理:在 51 单片机中,串口通过 TXD 引脚发送数据,RXD 引脚接收数据。数据在发送时,先写入发送缓冲器 SBUF,然后在发送控制器的控制下,按位从 TXD 引脚移出;接收时,外部数据从 RXD 引脚移入移位寄存器,恢复后的数据保存至接收 SBUF 中供软件读取。
  • 相关寄存器:主要涉及串行口控制寄存器 SCON 和电源控制寄存器 PCON 。SCON 用于存放串行接口的控制和状态信息,例如在模式 1 下,需将其配置为 0x40。PCON 的最高位 SMOD 用于选择波特率是否加倍,当 SMOD = 1 时,波特率加倍。

向电脑发送数据的实现

  • 定时器配置:串口通信中,定时器用于产生通信所需的时钟。51 单片机的串口通常使用定时器 1,且采用 8 位自动重装载模式。与 16 位定时器模式相比,8 位自动重装载模式在计数满后,高八位的初值数据会自动转入低八位,无需手动赋初值,简化了操作。
  • 波特率计算:波特率的计算对于串口通信至关重要。以 12M 晶振、4800bps 波特率为例,需先确定定时器的重装值。通过计算可知,当定时器重装值设为 0xF3(十进制 243)时,在 12T 模式下,每隔 13us 定时器溢出一次,其溢出率为 0.07692MHz,再经过波特率发生器的分频,可得到接近 4800Hz 的波特率。
  • 数据发送函数:要将数据发送到电脑,需编写数据发送函数。在函数中,先将数据写入 SBUF 寄存器,然后通过判断 TI 标志位是否为 0 来等待数据发送完成。发送完成后,TI 标志位会自动置 1,需软件复位 TI 为 0,以便下次发送。

代码示例:

复制代码
#include <REGX51.H>


void delay(unsigned int t)
{
	unsigned char i;
	while(t--)
	{
		for(i=0;i<120;i++);
	}
}

unsigned char sec;

void UartInit(void)		
{
	PCON &= 0x7F;		
	SCON = 0x50;		
	TMOD &= 0x0F;		
	TMOD |= 0x20;		
	TL1 = 0xF9;		
	TH1 = 0xF9;		
	ET1 = 0;		
	TR1 = 1;		
}


void Uart_sendbyte(unsigned char byte)
{
	SBUF=byte;
	while(TI==0);
	TI=0;
}

void main()
{
	UartInit();
	while(1)
	{
	
		Uart_sendbyte(sec);
		sec++;
		delay(1000);
	}
}

总结

51 单片机串口向电脑发送数据功能为实现单片机与电脑之间的信息交互提供了基础。通过合理配置相关寄存器、计算波特率以及编写数据发送函数,能够实现稳定可靠的数据传输,为各种应用场景如数据监测、远程控制等提供了有力支持,进一步拓展了 51 单片机的应用范围。

相关推荐
深圳老胡2 小时前
C语言实现C++面向对象程序设计示例
笔记·stm32·单片机·代码规范
2501_922639582 小时前
率能半导体 SS6226双通道直流电机驱动芯片:7.2V/1.4A双路,覆盖玩具、小家电、直流有刷电机三大应用场景
单片机·嵌入式硬件·硬件工程
LCG米2 小时前
STM32时钟树配置实测:HSE起振失败回退HSI、PLL分频倍频计算与Flash等待周期陷阱
stm32·单片机·嵌入式硬件·嵌入式
巴巴媛6663 小时前
【Debug1】程序死机,while(1)循环,怎么办?
c语言·笔记·stm32·嵌入式硬件·bug
Lxx_Zw3 小时前
PID 用顺了,然后呢:增强手术与前馈
c语言·stm32·单片机·嵌入式硬件
张怀民3163 小时前
PFC_CCM_NCP1654详讲
单片机·嵌入式硬件·硬件工程·pfc
linweidong3 小时前
RTC 走偏、时间跳变?嵌入式时间管理的工程避坑
嵌入式硬件·面试·实时音视频·rtc·嵌入式面经·嵌入式ntp·嵌入式对时
Yiran_G4 小时前
ZigBee单播、广播与组播详解:从寻址机制到批量控制设计
嵌入式硬件·物联网·智能家居
youcans_4 小时前
【STM32C5教程】(9)DAC 模拟量信号输出实验
stm32·单片机·嵌入式硬件·stm32c5·cubemx2
智购科技自动售货机工厂4 小时前
省电40%的底层逻辑:冷热双温售货机基于SaaS的智能温控算法~YH
单片机·嵌入式硬件·百度·架构·emacs