第6章 80C51的串行口

上传人:我*** 文档编号:137676698 上传时间:2020-07-11 格式:PPT 页数:55 大小:993.50KB
返回 下载 相关 举报
第6章 80C51的串行口_第1页
第1页 / 共55页
第6章 80C51的串行口_第2页
第2页 / 共55页
第6章 80C51的串行口_第3页
第3页 / 共55页
第6章 80C51的串行口_第4页
第4页 / 共55页
第6章 80C51的串行口_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《第6章 80C51的串行口》由会员分享,可在线阅读,更多相关《第6章 80C51的串行口(55页珍藏版)》请在金锄头文库上搜索。

1、第6章 80C51的串行口,6.1 计算机串行通信基础 6.2 80C51的串行口 6.3 单片机串行口应用举例,6.1 计算机串行通信基础,计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。 通信有并行通信和串行通信两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。 并行通信是将数据字节的各位用多条数据线同时进行传送 。,并行通信控制简单、传输速度快,但不宜远距离传输。,6.1 计算机串行通信基础,串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。,串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行

2、通信复杂。,6.1.1 串行通信的基本原理,1、异步(串行)通信与同步(串行)通信 异步通信 是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。 为使双方的收发协调,要求各自的时钟尽可能一致。,异步通信是以字符(构成的帧)为单位进行传输; 字符与字符之间的时间间隔任意(字符之间异步); 每个字符中的各位以固定的时间传送的(同一字符内的各位是同步的);,6.1.1 串行通信的基本原理,异步通信的数据格式 :,异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要加23位附加位,各帧之间还有间隔,因此传输效率不高。,6.1.1 串行通信的基本原理,同步通信

3、 同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步; 传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系; 发送方对接收方的同步可以通过两种方法实现:,外同步 自同步,同步通信的特点 传输效率较高,但实现的硬件设备比较复杂。,6.1.1 串行通信的基本原理,2、串行通信的传输方向 单工 是指数据传输仅能沿一个方向,不能实现反向传输。 半双工 是指数据传输可以沿两个方向,但需要分时进行。 全双工 是指数据可以同时进行双向传输。,单工 半双工 全双工,6.1.1 串行通信的基本原理,3、信号的调制与解调 数字信号不能直接

4、在电话网上传输,必须将其转换成适合在电话网上传输的模拟信号; 用调制器把数字信号转换成模拟信号后送到通信线路上去,再由解调器把从通信线路上收到的模拟信号转换成数字信号; 将调制器和解调器合并在一个装置中,这就是调制解调器(MODEM)。,6.1.1 串行通信的基本原理,4、串行通信的错误校验 奇偶校验 在发送数据时,在数据位末尾增加1位奇偶校验位; 奇校验 数据位和校验位中“1”的个数之和应为奇数; 偶校验 数据位和校验位中“1”的个数之和应为偶数; 接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。 只能发现错误,不能校正错误。,6.1.1 串行通信的基本原理

5、,代码和校验 发送方将所发数据块求和,产生一个字节的校验和附加到数据块末尾,供接收方校验接收是否出错。 只能发现错误,不能校正错误。 循环冗余校验 通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验。 这种校验方法有较强的纠错能力。,6.1.1 串行通信的基本原理,5、传输速率与传输距离 传输速率 比特率 是每秒钟传输二进制代码的位数,单位是:位/秒(bps)。如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为: 10位240个/秒 = 2400 bps 波特率 表示每秒钟调制信号变化的次数,单位

6、是:波特(Baud)。 波特率和比特率不总是相同的,对于将数字信号1或0直接用两种不同电压表示的所谓基带传输,比特率和波特率是相同的。,6.1.1 串行通信的基本原理,传输距离与传输速率的关系 串行接口或终端直接传送串行信息位流的最大距离与传输速率及传输线的电气特性有关。 提高传输速率的措施 缩短传输距离 采用平衡传输(RS-422、RS-485),6.1.2 串行通信接口标准,1、RS-232C接口 是EIA(美国电子工业协会)1969年修订RS-232C标准。RS-232C定义了数据终端设备(DTE)与数据通信设备(DCE)之间的物理接口标准。 机械特性 25针及9针连接器(阳头),6.1

7、.2 串行通信接口标准,功能特性,6.1.2 串行通信接口标准,电气特性 采用负逻辑 逻辑1 DC-3V-15V 逻辑0 DC+3V+15V RS-232C电平与TTL及CMOS电平不兼容 MC1488 TTL RS-232C电平转换 MC1489 RS-232C TTL电平转换 MAX232 RS-232CTTL电平转换芯片,6.1.2 串行通信接口标准,过程特性 过程特性规定了信号之间的时序关系,以便正确地接收和发送数据 。 远程通信RS-232C总线连接方法:,6.1.2 串行通信接口标准,远程通信RS-232C总线连接方式:,6.1.2 串行通信接口标准,近程通信RS-232C总线连接

8、方式:,方式一 方式二,6.1.2 串行通信接口标准,RS-232C电平与TTL电平转换驱动电路 MC1488 需12V电源 MAX232 只需5V电源,内置电子泵,将5V转换成12V,片内含两套发送/接收器。,6.1.2 串行通信接口标准,采用RS-232C接口存在的问题 传输距离短,速率低 小于100m,低于20kbps。 有电平偏移 会在传输线上产生较大的电压降 抗干扰能力差,6.1.2 串行通信接口标准,2、RS-422A接口 平衡型电压数字接口,因采用差分方式可使干扰和噪声相互抵消,因此,RS-422接口的传输距离远,传输速率高。,6.1.2 串行通信接口标准,3、RS-485接口

9、RS-485是RS-422A的变型: RS-422A用于全双工 RS-485 用于半双工 RS-485是一种多发送器标准,在通信线路上最多可以使用32 对差分驱动器/接收器。如果在一个网络中连接的设备超过32个,还可以使用中继器; RS-485的信号传输采用两线间的电压来表示逻辑1和逻辑0。传输线采用差动信道,干扰抑制性极好; 阻抗低,无接地问题,传输距离可达1200米,传输速率可达1Mbps。,6.1.2 串行通信接口标准,RS-485是一点对多点的通信接口(总线结构),一般采用双绞线的结构。 普通的PC机一般不带RS485接口,因此要使用RS-232C/RS-485转换器。 单片机可通过芯

10、片MAX485完成TTL/RS-485的电平转换。 在计算机和单片机组成的RS-485通信系统中,下位机由单片机系统组成,上位机为PC机,负责监视下位机的运行状态,并对其状态信息进行集中处理,以图文方式显示下位机的工作状态以及工业现场被控设备的工作状况。 系统中各节点(包括上位机)的识别是通过设置不同的地址来实现的。,6.2 80C51的串行口,6.2.1 80C51串行口的结构,有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H ;接收器是双缓冲结构 ;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。,6.2.2 80C51串行口的控制寄存器,SCON 是一个特殊功能

11、寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志: SM0和SM1为工作方式选择位,可选择四种工作方式:,6.2.2 80C51串行口的控制寄存器,SM2 多机通信控制位,主要用于方式2和方式3。 在方式0时,SM2必须是0 在方式1时,若SM2=1,则只有接收到有效停止位时,RI才置1 REN 允许串行接收位 REN=1,启动串行口接收数据 REN=0,禁止接收 TB8 在方式2或方式3中,是发送数据的第九位 可以用软件规定其作用:可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。 在方式0和方式1中,该位未用。,6.2.2 80C51串行口的控制寄存器,

12、TI 发送中断标志位。 当发送完一字节数据时,由内部硬件使TI置1,向CPU发中断申请; 在发送中断服务程序中,必须用软件将其清0; 查询发送时,必须等待TI=1后,将其清0,再向SBUF写入新数据。 RI 接收中断标志位。 当接收到一字节数据时,由内部硬件将RI置1,向CPU发中断申请。 在中断或查询方式接收程序中,从SBUF中读取数据后,必须用软件将其清0。,6.2.2 80C51串行口的控制寄存器,PCON中只有一位SMOD与串行口工作有关 :,SMOD 波特率倍增位。在串行口方式1、2、3时,波特率与SMOD有关:SMOD=1,波特率提高一倍。,6.2.3 80C51串行口的工作方式,

13、方式0 同步移位寄存器的输入输出方式 同步移位脉冲由TXD(P3.1)脚输出 数据由RXD(P3.0)脚输入或输出 均为8位数据,低位在先,高位在后 波特率固定为fosc/12,与SMOD位无关 方式0接收和发送电路,6.2.3 80C51串行口的工作方式,方式1 10位数据的异步串行通信方式 TXD为数据发送引脚 RXD为数据接收引脚 1位起始位,8位数据位,低位在先,高位在后,6.2.3 80C51串行口的工作方式,方式1输出: 用指令将 TI 清 0 将数据写入SBUF,启动发送过程 一帧数据发送完毕,中断标志 IT 被置 1 方式 1 的波特率由定时器T1的溢出率决定 void sen

14、d(unsigned char c) / 发送一字节数据 SBUF = c; while(TI = = 0); / 等待发送完毕 TI = 0; ,6.2.3 80C51串行口的工作方式,方式1输入 用软件置REN为1,允许接收器接收数据; 接收到的数据自动装入接收SBUF,并置RI=1,向CPU请求中断; 软件从SBUF中读取数据后,必须将RI清0。 if(RI = = 1) / 查询方式输入 c = SBUF; RI = 0; ; 方式2、方式3 (略),6.2.3 80C51串行口的工作方式,波特率的计算 在串行通信中,收发双方对通信的波特率要有约定 方式0的波特率固定为 fosc/12

15、 方式2的波特率有两种 fosc/64 (SMOD=0) 或 fosc/32 (SMOD=1) 方式1和方式3的波特率是可变的,由定时器T1的溢出率和SMOD共同决定: SMOD=0时 波特率 = T1溢出率/32 SMOD=1时 波特率 = T1溢出率/16,6.2.3 80C51串行口的工作方式,当T1作为波特率发生器时,应使T1工作在自动再装入的8位定时器方式(即方式2,且TR1=1,以启动定时器)。此时溢出率取决于TH1中的计数值。 T1溢出率 = fosc / 12(256TH1) 比如,若单片机的晶振频率为11.0592MHz,TH1=0 xFD,SMOD=0,此时 T1溢出率 =

16、 11.0592106/12(256253) = 307200 Hz 波特率 = T1溢出率/32 = 307200/32 = 9600 bps,6.2.3 80C51串行口的工作方式,串行口工作之前,应对其进行初始化,具体步骤如下: 确定T1的工作方式(编程TMOD寄存器); 计算T1的初值,同时装入TH1和TL1; 启动T1(将TCON中的TR1位置1); 确定串行口控制(编程SCON寄存器); 若采用中断方式工作,还要进行中断设置(编程中断允许寄存器 IE、中断优先级寄存器 IP)。,时常数计算,T1 方式二 T2波特率方式,6.2.3 80C51串行口的工作方式,void main(void) TMOD = 0 x21; / T0方式1,T1方式2(作波特率发生器用) PCON = 0;/ 波特率不倍增 SCON = 0 x50;/ 串口工作方式1,REN=1(允许接收) TH1 = 0 xFD;/ (11.0592MHz晶振,9600B/S) TL

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号