计算机基础课件 第9章8XC51串行口

上传人:woxinch****an2018 文档编号:57223001 上传时间:2018-10-20 格式:PPT 页数:17 大小:158KB
返回 下载 相关 举报
计算机基础课件  第9章8XC51串行口_第1页
第1页 / 共17页
计算机基础课件  第9章8XC51串行口_第2页
第2页 / 共17页
计算机基础课件  第9章8XC51串行口_第3页
第3页 / 共17页
计算机基础课件  第9章8XC51串行口_第4页
第4页 / 共17页
计算机基础课件  第9章8XC51串行口_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《计算机基础课件 第9章8XC51串行口》由会员分享,可在线阅读,更多相关《计算机基础课件 第9章8XC51串行口(17页珍藏版)》请在金锄头文库上搜索。

1、第9章 MCS51单片机的串行口.串行通信 一.概述 1.从广义上讲,计算机通信方式可分为: 并行通信-其相应的通信总线称为并行通信总线. * 同时传送. N位二进制数需N根数据传输线. 适合短距离传输.快.费钱. 串行通信-其相应的通信总线称为串行通信总线. * 分时传送. 仅需一到两根数据传输线. 适合长距离传输.(相对)慢. 省钱. 串行通信又可分: a.同步串行通信(见书P174). b.异步串行通信(见书P172). 单片机主要使用异步串行通信方式,2. 通信方向 a. 单工-只能单向发或单向收(已淘汰) b. 半双工收.发不能同时进行,须分时(由开关转换)等. c. 全双工-收发可

2、同时进行.,3. 串行通信接口的任务 因CPU只能处理并行数据,固要进行串行通信须接串行接口,并遵守”串行通信协议”. 通信协议-通信双方须共同遵守的一种约定(含数据格式.同步方式.传送步骤. 校验.纠错等) 串行接口的基本任务: a. 实现数据格式化(如串行异步方式:自动生成起.止位的帧数据格式). b. 串/并转换:,发送端-将CPU来的并行数据/命令转换成串行数据发送. . 接收端将收到的串行数据/命令转换成并行数据/命令送CPU处理. c. 控制传输速率-波特率的控制选择.即须具有波特率发生器. d. 检验.纠错-如自动生成奇偶校验位(或校验码),进行校对.纠错等(如重发). 4. 串

3、行接口: a.串行通信接口SCI (Seril Communication Interface)-设备与外设之间的接口. b.串行扩展接口-设备内部之间的互连接口.如常用规范有SPI.I2C(后面简讲)等. 5. 波特率与发送.接收时钟 波特率-每秒所传送的二进制位数. 移位时钟-(串行通信时)发送时钟和接收时钟的统称.其作用如下: a. 发送时:在发送时钟的作用下,将发送移位寄存器的数据串行移位输出. b. 接收时:在接收时钟的作用下,将通信线上传来的数据串行移入移位寄存器. 波特率发生器-能产生移位时钟的电路. 为提高采样分辨率,准确测定数据位的上升沿或下降沿,时钟频率总是高于 波特率的若

4、干倍,此倍数称波特率因子.,波特率因子n=fosc/xbps. 在单片机中,收/发时钟可由fosc产生,其波特率因子多取为12. 32. 64. a.如波特率由fosc决定,称固定波特率方式 (如串行通信方式0. 2); b.如由内部定时器T1产生(方式2自动重装8位定时),计数初值由软件设定, 称可变波特率方式.(如串行通信方式1. 3). 二. 单片机串行接口的结构.工作原理 8XC51系列单片机内有一全双工异步串行通信接口.(软件编程可控);且具有波 特率发生器,提供可选波特率;能完成双机或多机通信;也可作为同步移位寄存器. 1. 串行口逻辑结构见图6 (参见书P183).,*1 两个S

5、BUF,同一地址(99H),由写/读指令自动寻址: 写 发送SBUF-即发送: “MOV SBUF, A” 读 接收SBUF-即接收: “MOV A, SBUF”. *2 接收时双缓冲结构,是为了避免在接收到第二帧数据之前,CPU未及时响应前一帧 中断请求取走数据,而造成两帧数据重叠错误. *3 发送时只采用了单缓冲结构,因发送时CPU占主动,不会产生写重叠问题,以提高 传送速率. 2. 工作原理 (见图 7).,*1 甲机按设定的波特率,每来一个移位时钟,数据移出一位(由低位到高位),一位一位 移出到传输线上; *2 乙机按设定的波特率,每来一个移位时钟,数据移入一位(由低位到高位),一位一

6、位 移到接收SBUF中. *易见:甲.乙机的移位速度应一致.-换句话说:两机的波特率必须相同. * 当甲机一帧数据发完,硬件自动置位TI(SCON.1)-可供查询(或允许中断时-引起中断). 当乙机接收一帧数据到齐,硬件自动置位RI(SCON.0)-可供查询(或允许中断时-引起 中断) * 必须软件清0TI.RI标志. * 查询方式发送过程-发送一帧数据 查询TI 发送下一帧数据 (先发后查). 查询方式接收过程-查询RI 读入一帧数据( 查询RI 读下一帧数据) (先查后收),三.与串行通信有关的SFRSCON (98H) PCON.7(87H.7) 1. 串行口控制寄存器SCON (98H

7、),* 00-方式0:移位寄存器(固定波特率 波特率=fosc/12,TXD输出移位时钟脉冲,RXD作数据输入/输出口) 01-方式1:10位异步收发器 (8位数据,可变波特率=(2SMOD/32)XT1的溢出率 10-方式2:11位异步收发器 (9位数据,固定波特率=foscX2SMOD/64) 11方式3:11位异步收发器 (9位数据,可变波特率=(2SMOD/32)XT1的溢出率 * TB8. RB8: 发送/接收的数据第9位.(多用于多机通信中,作为地址帧(1) / 数据帧(0) 的标志位). * SM2-多机通信控制位 (当串行口工作在方式2. 3时用,在方式0. 1时不用,清0SM

8、2位): a. 发送机置SM2=1:配合发TB8=1作为地址帧寻找从机, 配合发TB8=0作为数据帧传送数据;,从机初始化时置SM2=1: a. 如接收到的第9位数据(RB8)=1,置标志位RI=1,并检查收到 的地址帧与本机 地址是否相符: 相符则清0SM2,RI位,准备接收发送方后续信息. 不相符,维持SM2=1,不理睬发送方后续信息,继续监听. b. 如接收到的第9位数据(RB8)=0,不置标志位RI,继续监听. 2. 电源控制SFR-PCON (87H),*1 PD掉电方式位:(PD=1,激活掉电方式,片内振荡器停.一切功能停,VCC可降至2V,RAM内容仍在; 只有硬件复位可使PD=

9、0,恢复工作); *2 IDL-待机方式:(IDL=1,激活待机方式:提供给CPU的内部时钟被切断,但串口定时器仍在,工作寄 存器状态保留:要恢复IDL=0, 可由外中断完成; 也可硬件复位).,四. 串口工作方式: 1. 方始0 (移位寄存器方式) 特点:*串行数据通过RXD输入或输出.TXD输出频率为fosc/12的时钟脉冲. * 数据格式:8位低位在前,高位在后,波特率=fosc/12. 固定(无启.停位). 发送条件:TI=0,数据从RXD端发送,TXD发送移位脉冲,一帧8位发送完, TI=1.须由软件清0TI后,方可再次发送(8位); 接收条件:REN(SCON.4位)=1且RI=0

10、,数据从RXD端输入,TXD发送移位 脉冲,每接收完一帧(8位)数据后,将其装入SBUF缓冲器并置RI=1,须用软件 清0”RI”后,方可再次接收数据. 方式0主要用于串并转换,扩展接口. 2. 方式1:(10位异步通信方式,波特率可变,多用于双机通信). 特点: * TXD为数据发送端口,RXD为数据接收端口; * 每帧10位-1个起始位,8个数据位,1个停止位(起. 停位在发送时由硬件自动 生成,自动插入.通常由8XC51T1(方式2)提供移位时钟,波特率可变. 波特率=(2SMOD/32)XT1的溢出率=(2SMOD/32)Xfosc / 12x(256-x)-公式* x-计数初值,注意

11、:*在实际应用中,常用T1方式2 (自动重装8位初值)提供移位时钟. * 软件中用”SETB TR1”启动T1,且用”CLR ET1”禁止T1中断. T1的溢出率计算: 计数初值X=28-N 计数脉冲个数N=28-X 计数溢出周期T=NX(1/ f计)=NX(12/ fosc) =(28-x) x (12/ fosc) 则 计数溢出率=1/T=fosc 12 (28-x)=fosc / 12 (256-x) 由公式*: 波特率=(2SMOD/32)Xfosc / 12x(256-x) 得: x=28-( fosc x2SMOD) /(波特率X12X32) * 实用中可依波特率查初值表(见书P1

12、90 表9.2) 3. 方式2(11位异步通信方式,波特率固定,用于多机通信) 波特率=(2SMOD/64)X fosc. 4. 方式3 (除波特率可变外,其它与方式2同,常用于多机通信.) *波特率计算公式同方式1.,五. 串行口的应用 依电原理图接好硬件电路,仔细检查无误后, 编写串口通信程序主要步骤如下: 1.依用途选定方式 定好波特率: a. 方式0. 2使用固定波特率,只用依需要设定SMOD即可; b. 方式1. 3使用可变波特率,对T1初始化(T1.方式2),算出(或查表得出)T1的 计数初值X; 2. 填写控制字(对SCON),设定工作方式: a. 对接收程序(或双工方式) 须置

13、REN(SCON.4位)=1-允许接收; b. 清0 TI. RI,做好通信准备. 3. 串行通信响应可采用两种方式查询与中断方式. a. 查询: TI=1 (RI=1)是1帧数据发送(接收)完毕的标志,可查询; 继续工作,须用软件清0 发送程序: 发一帧数据 查询等待T1=1 清0 TI- - -(发送三步曲) 接收程序: 查询等待RI=1 清0 RI 读入一帧数据- - -(接收三步曲),b. 中断:如设置中断允许,EA=1. ES=1,TI=1或 RI=1可引起中断. 发送程序: 发一帧数据 等待中断 在中断中软件清0 T1 - - -(发送三步曲) 接收程序: 等待中断 在中断中软件

14、清0 RI 读入一帧数据- - -(接收三步曲),4. 为保证通信双方协调一致,须注意以下两点: a. 波特率一致. b.可约定某字符作发送起点,先发字符,待接收方应答无误,且准备完毕后发数据,并 进行系统通信相应正误校验(如下例中的”累加和校验”等) 下面以实例进行应用说明: 例1 点对点通信(双机通信),发32个字节数据(fosc=12MHz.波特率=1200bps). 解:分析:设1#机发送,2#机接收. 选串口方式1. SMOD=0. T1方式2 (8位.自动重装初值). 计算初值:由 1200=(2SMOD/32)Xfosc/2(256-x) =(12x106) / 32x2(256

15、-x) 得:x=230=E6H. *1#机: 发”E1”作联络信号,在收到2#机应答”E2”信号后,发送数据,同时计算 “校验和”,32B发完即发”校验和”.(发送数据存放地址:40H6FH). 2#机:收到”E1”信号,准备好后发”E2”应答信号,随即接收1#机发来的32B数据(依次放入 40H-6FH单元).同时计算”校验和”,收完后与1#机发来的”校验和”比较: 正确则回应”00H” 有误则回应”FFH”,请求重发,重收,直至OK.,发送程序清单: ST:CLR EA; 禁止中断 MOV TMOD, #20; 定时器1.方式2 MOV TH1, #0E6H; 装计数初值,波特率1200

16、MOV TL1, #0E6H MOV PCON, #0; 波特率不加倍 MOV SCON, #50H; 串口方式1.准备接收 SETB TR1; 启动T1 AP1:MOV SBUF,#0E1H; 发送”E1”联络信号 JNB TI, $; 等待1帧发送完 CLR TI; 清0TI,允许再发送 JNB RI, $; 等待2#机应答信号 CLR RI ; 清0RI,允许再接收 MOV A, SBUF; 2#机应答 A XRL A, #0E2H ; 2#机准备好否 JNZ AP1; (A) 0,未准备好,继续联络 AP2:MOV R0, #40H;2#机已准备好,设数据块指针首址 MOV R7, #32; 设置数据块长度 MOV R6, #00; 清0”校验和”单元,

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

当前位置:首页 > 中学教育 > 高中教育

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