串口通信-电脑控制单片机点亮LED


前言

此篇只对各函数功能做通俗易懂的解释,适合初学者理解串口通信的功能。


一、串口通信

1.什么是串口通信

我们使用的usb转串口是经典的串口通信之一,实现了电脑与单片机之间的联系,将程序通过串口从电脑下载到单片机中,还有诸多外设也是利用了串口进行通信,完成了与单片机直接进行交互
通俗解释,一个温度传感器,将电信号转换成数字信号发送给单片机,这个过程就是串口通信。

2.通信模式

通信的方式可以分为多种,

按照数据传送方式可分为串行通信和并行通信。
按照通信的数据同步方式,可分为异同通信和同步通信。
按照数据的传输方向又可分为单工、半双工和全双工通信。下面我们就来简单介绍这几种通信方式。

异步通信:
异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致
异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较
小,但每个字符要附加 2~3 位用于起止位,各帧之间还有间隔,因此传输效率
不高。
在这里插入图片描述
同步通信
同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。
可以通过两种方法实现。
在这里插入图片描述
单工、半双工与全双工通信

单工是指数据传输仅能沿一个方向,不能实现反向传输。
半双工是指数据传输可以沿两个方向。
全双工是指数据可以同时进行双向传输。

3.通信速率

衡量通信性能的一个非常重要的参数就是通信速率,通常以比特率(Bitrate)来表示。比特率是每秒钟传输二进制代码的位数,单位是:位/秒( bps)。
如每秒钟传送 240 个字符,而每个字符格式包含 10 位(1 个起始位、1 个停止位、8 个数据位)。

二、使用步骤

串口通信无非就是选择哪种模式,以怎样的速率进行通信。
我们会使用定时器配置通讯速率
我们会通过标志位进入中断服务函数

只需记住一点,RI和TI 需要软件置零。
以下图片可以对照配置好的代码去看,无非就是配置了些东西罢了

	SCON=0x50;// 设置串口工作方式
	PCON |= 0x80;  //看图
	TMOD &= 0x0F;		//设置定时器模式
	TMOD |= 0x20;		//设置定时器模式
	TL1 = 0xF3;		//设定定时初值
	TH1 = 0xF3;		//设定定时器重装值
	ET1 = 0;		//禁止定时器1中断(我们不需要进去定时器1的中断服务函数故禁止)
	TR1 = 1;		//启动定时器1
	EA=1;
	ES=1;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.功能实现两大步

第一步之配置

配置波特率
配置串口

void UART_Init()
{
	SCON=0x50;//设置串口工作方式
	PCON |= 0x80;
	TMOD &= 0x0F;		//设置定时器模式
	TMOD |= 0x20;		//设置定时器模式
	TL1 = 0xF3;		//设定定时初值
	TH1 = 0xF3;		//设定定时器重装值
	ET1 = 0;		//禁止定时器1中断
	TR1 = 1;		//启动定时器1
	EA=1;
	ES=1;
}

第二步之发送

在这里插入图片描述
我们发送八位数据 FF 即 11111111 RI自动置 1
进入中断
注意:波特率与我们设置的波特率保持一致,看定时器的值即4800

第三步之进入中断

void UART_Routine() interrupt 4
{
	if(RI==1)					//如果接收标志位为1,接收到了数据
	{
		P2=~SBUF;				//读取数据,取反后输出到LED
		RI=0;					//软件清0接收标志位清0
	}
}

在这里插入图片描述

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值