8051系统的串口通讯及应用

发布者:幸福之舞最新更新时间:2024-01-15 来源: elecfans关键字:8051系统  串口通讯  数据传输 手机看文章 扫描二维码
随时随地手机看文章

微型计算机数字系统里,数据传输可分为并行传输串行传输两种,并行式传输一次传输多个位(通常是8位)。因此,连接两个系统之间的传输线必须有多条,当然一次传输多个位,传输的速度比较快,但是传输用到的线数也多,线路费用相对会高,线路噪声,阻抗匹配等问题也多,所以并行式传输不适合长距离通讯。

串行式传输每次传输一个位,数据传输的速度表面上不怎么快,但连接两个系统之间,只要两条传输线即可,适合长距离的通信。实际上,目前串行端口传输速率已比并行端口输出传输速率快。

实际中考虑使用并行式传输还是串行式传输要根据数据量与环境而定。若要将8051系统的数据传至另一8051系统,则可以使用串行式数据传输。

最典型的串行式数据传输接口是RS232C,例如个人计算机的COM1、COM2接口就是属于RS232接口。

在串行式数据传输里有单工及双工之分

单工就是一条线只能有一种用途,例如输出线就只能将数据传出,输入线就只能将数据传入。

而双工就是一条线有两种用途,可传入数据也可传出数据。

若系统上只有一条线,且在同一时刻中不是进行传入数据就传出数据,则称之为“半双工”。

若在系统上有两条传输线,这两条传输线可同时进行数据输入与传出,则称之为“全双工”。

认识8051串行口

通常以每秒传输多少位(bit per second,简称bit/s)表示串行式数据传输的速率,又称为比特率(baud rate)。

通常,微控制器里的数据处理属于并行式处理。对8051而言,一次处理一个字节,也就是8个位,不管怎样,串行式数据与并行式数据之间的转换是无法避免的。

在8051里,若要把8位的并行数据传出去,只要把数据放入并行寄存器(SBUF)即可,8051就会帮我们把这些数据一个位一个位送出去。

接收串行数据也是一样,8051会把外面传入的数据,一个位一个位放入SBUF,当SBUF存满后,产生中断,即为并行数据,再将SBUF里的8位数据移做他用。

不论是接收还是发送,很明显SBUF扮演了关键性的角色,在8051中接收用的SBUF与传送用的SBUF虽然都叫做SBUF,但是它们分别是两个不同的8位寄存器。

8051串行工作模式

8051提供一个全双工的万用异步串行端口(Universal Asynchronous Receiver-Transmitter,简称UART),这个串行端口有4种工作模式(mode),使用不同工作模式其比特率各有不同,说明如下:

mode 0:

mode0工作模式是一固定比特率的位移式数据传输,其比特率为8051系统时钟脉冲的1/12,即OSC/12。若在时钟脉冲为12MHz,则其比特率为1M bit/s。

在此模式下,不管是接收还是发送,CPU的RxD引脚(P3.0)连接串行数据线,TxD引脚(P3.1)连接位移脉冲线。执行数据接收时,由TxD引脚送出位移脉冲,而由RxD引脚收下串行数据,如下图:

图片

执行数据传送时,也是依据TxD引脚所送出的位移脉冲,由RxD引脚发送串行数据:

图片

mode 1:

mode 1工作模式是以可变的比特率进行串行数据的传输,其比特率可由Timer 1来控制(若是8052还可以使用Timer 2控制比特率)。在此模式下,8051的RxD引脚连接数据源的TxD引脚,8051的TxD引脚连接目的地的RxD引脚。

在mode 1下,每个数据是由10位组成,包括起始位(start bit)、8个位的数据以及停止位(stop bit),其中第一个位就是低电平的起始位,紧接着是8位数据的bit0(LSB),bit7(MSB)之后是高电平的停止位,如下图:

图片

图片

mode 2:

mode 2工作模式是以OSC/32或OSC/64的比特率进行串行数据的传输,而其线路的连接,也是8051的RxD引脚连接数据源的TxD引脚,8051的TxD引脚连接目的地的RxD引脚。在mode 2下,每笔数据是由11位组成,包括起始位(start bit)、8个位的数据、奇偶位(parity bit)以及停止位(stop bit),其中第一个位就是低电平的起始位,紧接着是8位数据的bit0(即LSB),而bit7之后的是奇偶位,最后则是高电平的停止位:

图片

当进行数据传出时,第9个位TB8(即SCON寄存器的TB8)为奇偶位,可取自程序状态字组寄存器PSW中的P位,以达到奇偶校验的目的。当收到数据时,第9个位将直接移入SCON寄存器中RB8,而不必管停止位。

mode3:

mode3工作模式是以可变的比特率进行串行数据的传输,其比特率可由Timer 1来控制(若是8052则还可使用Timer 2控制比特率)。除此之外,mode 3与 mode 2几乎完全一样。

认识SCON串行口控制寄存器

图片

串行端口控制寄存器(serial port control register,简称SCON)是一个8位、可位寻址的寄存器,如上图其功能是设定与控制串行端口。下面是SCON各位的说明:

SM0和SM1

这两个位的功能是设定串行端口的模式:

图片

SM2

本位为多重处理器通信启用位:

mode 0时,Sm2=0;

mode 1时,若SM2=1,且收到有效的停止位,则RI=1(产生RI中断),否则RI=0;

mode 2或 mode 3时,若SM2=1,且收到的第9位为1,则RI=1(产生RI中断),若第9位为1,则RI=0。

REN

本位为串行接收启用位,说明:

REN=1,开始接收;

REN=0,停止接收;

TB8

mode 2或mode 3传送数据时,本位为第9传送位,可用软件来设置或清除。

RB8

mode 2或mode 3接收数据时,本位为第9个接收位;

mode 1时,若SM2=0,则本位为停止位;

mode 0时,本位无作用。

TI

本位为中断标识位,当中断结束时,本位并不会恢复为0,必须由软件清除。

mode 1、mode 2或mode 3时,若完成传送停止位,则本位自动设定为1,并产生TI中断。

mode 0时,若完成传送第8位,则本位自动设定为1,并产生TI中断。

RI

本位为接收中断标志位,当中断结束时,本位并不会恢复为0,必须由软件置0。

mode 1、mode2或mode 3时,若完成接收到停止位,则本位自动设定为1,并产生RI中断。

mode 0时,若完成接收第8位,则本位自动设定为1,并产生RI中断。

比特率设定

8051串行口的比特率设定方式有如下几种:

在mode 0下,比特率固定为OSC/12,不需要进行设定!完全是依照系统的时钟脉冲而定,不是软件所能改变的。

在mode 2下,其比特率可为OSC/32或OSC/64,即:

图片

其中SMOD为PCON寄存器中的bit 7:

若将SMOD设定为0,则设定采用的比特率OSC/64;

若将SMOD设定为1,则设定采用的比特率OSC/32。

以12MHz的系统为例:

图片

在mode 1或mode3下,比特率可由Timer 1(8052则还可以选择Timer 2)的溢出脉冲控制,以Timer 1采用具有自动加载功能的mode 2为例,产生的比特率为:

图片

如在11.0592MHz的系统下,若要产生19.2Kbit/s的比特率,且SMOD=1,则:

图片

得出TH1= 253 = 0xfd;

下表使用Timer 1时常用的比特率设定:

图片

8051串口应用

把8051的串行工作模式设定为mode 1,REN=1;SCON寄存器为0101 000;

在OSC=11.0952MHz下,把比特率设定为9600bit/s,根据前文所述,mode 1比特率设定由Timer 1控制,表格中也给出了TH1的值,所以SMOD=0,TH1 = 0xfd。

void uart_init(){//初始化

   TMOD = 0x20; // 定时器1,模式2(8位自动装载)

   TR1=1;//启用Timer 1

   TH1 = 0xfd; // 在Timer 1,mode 2, 11.0952MHz下,设定9600比特率

   SCON = 0x50; //uart mode1,接收使能

}



unsigned char rData;

void uart_read() // 接收

{

// 等到收到字节

   while(RI==0);

   rData = SBUF; //把接收到的字节放到rData

   RI=0; //清除RI以接收下一个字节

}



void uart_send(unsigned char sData){//发送

   SBUF=sData;

   while(TI == 0);

   TI=0;

}


关键字:8051系统  串口通讯  数据传输 引用地址:8051系统的串口通讯及应用

上一篇:8051单片机基本操作
下一篇:IT8528存储器学习笔记

推荐阅读最新更新时间:2024-11-17 13:58

#C51串口通讯2-#一串数据#定时中断实现超时接收
一.场景 实现一串非固定长度的数据接收,并返回对应数据(数据解析的基础框架) 二.编程实现 1.设计思想 借助T0定时器,不断的计数+1 接收到一帧数据(1Byte)后,串口中断服务函数将定时器T0计数清0(类似喂狗),并创建一个计数标志 一帧数据(1Byte)长度约为1.04ms 。当串口中断数据接收完毕后,短时间无有效数据接收并进入中断服务函数,此时T0计数器不被清0,不断累加 持续检测到大于固定时间时,认为此刻一串数据已传输完毕。 固定时间间隔一般设置3-5倍的一帧数据长度(1.04ms) 2.代码设计 主函数暂时处理为返回接收到的字符串 UART中断服务函数处理: 接收到一个字节,打开T0计数软件标志,清一次计数器
[单片机]
#C51<font color='red'>串口通讯</font>2-#一串数据#定时中断实现超时接收
51单片机IO口模拟串口通讯2-计数法
硬件环境:STC89C52 软件环境:IDE Keil uVision V4.10 编译器 C51 V9.0 代码如下: /********************************************** 方法2:计数法 硬件:11.0592MHz晶振,STC89C52,RXD P1.0 TXD P1.1 波特率:9600 描述:所谓计数法是指根据模拟出的波特率,每1位持续的时间的长短是通过定时器计数 溢出来置标志位,查询该标志位来实现的。 测试1:上电发送1个0x02的字符 测试2:上电先发送1个0x02的字符,然后等待接收,将收到的字符再发送出去(分别一个一个发送0x01,0x02,0x03,0x0
[单片机]
泰克推出全新4系列B MSO 以更出色的处理能力高效提升分析和数据传输速度
全新的计算平台将响应速度提高了 2倍,并配有备受赞誉的界面和远程操作功能 中国北京2023年 12 月 5 日 – 业内领先的测试与测量解决方案提供商泰克公司与福迪威公司 (NYSE:FTV) 日前联合宣布推出 4 系列 B 混合信号示波器 (MSO),该产品具有多项高级分析功能以及贯穿所有信道的前沿测量性能,可为用户带来丝滑高效的使用体验。 更 快 的处理能力 泰克 4 系列 B MSO 专门面向需要卓越的精度、多功能性和易用性的嵌入式产品设计人员,其带宽为 200 MHz 至 1.5 GHz,具有高达 16 位的垂直分辨率和 6.25 GS/s 的实时采样率,并可实现与先前版本的 4 系列
[测试测量]
泰克推出全新4系列B MSO  以更出色的处理能力高效提升分析和<font color='red'>数据传输</font>速度
基于C8051单片机的无线心电监护系统设计
   1 引言   随着经济的快速发展和人们生活水平的不断提高,健康已成为人们关注的焦点。心脏疾病是危害人类健康的一大杀手,其偶然性与突发性的特点使得心电监护系统具有重要的临床应用价值。由于传统的心电监护仪不能进行远距离的实时监护,所以便携式无线心电监护系统显得更加重要。无线医疗监护系统主要由生理信息与数据采集、无线数据通信、控制和显示等单元组成。目前国内已有用于临床的无线心电监护产品,但其采用的方案大都是“采集器+发送器(PDA或手机)”,从成本上看其价格昂贵;从无线传输方面看,大多是将心电数据以模拟信号传输,这必然导致信号在传输过程中发生失真。此外,由于人体电阻差异导致心电信号在1~10 mV之间变动,固定放大倍数系统缺乏适
[单片机]
以单片机C8051F020为控制核心的简易数控恒流源系统设计
引言 所谓恒流源就是输出电流非常稳定的电源,但是这个稳定是相对的,而非绝对一成不变的,只是它的变化率小到在实际应用中可以忽略。输出电流发生变化的原因主要有以下几个方面:1)恒流源本身条件所决定的。构成恒流源的元器件质量失效或者参数发生变化时,参数就有可能引起电流波动。2)恒流源系统受外界环境的影响而使电流输出发生变化。3)电网供电电压不稳定所致。4)供电负载发生变化。比如负载短路或者空载时,负载电流非常大或没有。在本文中数控恒流源系统设计中主要针对以上第一和第二个因素设计了基于数字控制的恒流源系统,从而提高恒流源输出电流的精度。 1 简易数制电流源系统工作原理介绍 本论文设计了基于单片机的数控恒流源,此系统由恒流源
[单片机]
以单片机C<font color='red'>8051</font>F020为控制核心的简易数控恒流源<font color='red'>系统</font>设计
智能驾驶汽车车载网络行业发展报告分析
以太网逐步渗透车载网络,向更高速率演进。在汽车电动化趋势下,车内信息传输量持续提升,域/跨域集中式架构逐渐成为智能驾驶汽车的主流。传统车载网络以 CAN 总线为主,LIN 总线为辅,多种总线技术并存。车载以太网具有数据传输能力高、可靠性好、EMI功耗/延迟低、线束轻量化等优势。随着汽车智能化发展,车载以太网将率先应用于智能座舱和辅助驾驶,在未来逐步替代整车通信架构。 集中式架构成智能驾驶主流,以太网在中心节点占据优势地位。电子电气构架的演进为提升智能驾驶能力提供了坚实的基础。在自动驾驶、智能座舱、电动化等趋势的推动下,汽车所需功能增多,信息传输量及算力需求持续增长,传统分布式架构在可拓展性与通信性能方面难以满足产品需求。域/跨域集
[嵌入式]
智能驾驶汽车车载网络行业发展报告分析
基于nRF401芯片和AT89S51芯片实现无线数据传输系统的设计
1 模块总体硬件结构 模块总体硬件结构主要由微控制器和蓝牙芯片及其相应的外围电路组成,能自动完成波特率识别,并进行数据的编码处理,给用户提供了一个透明的数据接口。微控制器选用Atmel公司新推出的具有可在线编程(ICSP)功能的单片机AT89S51,便于以后软件的升级。根据发送数据是否需要曼彻斯特编码、所需外围元件的数量、功耗及发射功率等方面因素的综合比较,选用nRF401芯片作为无线数据传输芯片。 nRF401是单片无线收发芯片,采用蓝牙核心技术设计,内部集成高频发射、高频接收、PLL合成、FSK调制、FSK解调、多频道切换等诸多功能和外围部件协议。它是目前集成度最高的无线数据传输产品,也是目前唯一一个可以直接连接微控制器串
[单片机]
基于nRF401芯片和AT89S51芯片实现无线<font color='red'>数据传输</font><font color='red'>系统</font>的设计
STM32 USART简介-串口通讯协议简介01
通讯的方式分类: 1.并行通信:是指数据的各位同时在多根数据线上发送或接收。如下图 并行通信的特点:控制简单,传输速度快;由于传输线较多,适用于短距离通信。 2.串行通信:是指数据的各位在同一根数据线上逐位发送和接收。如下图 串行通信的特点:控制复杂,传输速度慢;只需要一根数据线,适用于远距离通信。 串行通信方式分类 在串行通信中,根据对数据流的分界、定时以及同步方案方法不同,可分为和同步串行通信方式和异步通信方式。 同步通信 同步通信是指发送端和接收端必须使用同一时钟,是一种连续传送数据的通信方式,一次通讯传送多个字符数据(一帧数据)。下图是同步串行通信帧格式: 同步串行通信方式:把许多字符组成一个信息组
[单片机]
STM32 USART简介-<font color='red'>串口通讯</font>协议简介01
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved