第8章MCS51串行口PPT课件

上传人:壹****1 文档编号:592450118 上传时间:2024-09-20 格式:PPT 页数:28 大小:294KB
返回 下载 相关 举报
第8章MCS51串行口PPT课件_第1页
第1页 / 共28页
第8章MCS51串行口PPT课件_第2页
第2页 / 共28页
第8章MCS51串行口PPT课件_第3页
第3页 / 共28页
第8章MCS51串行口PPT课件_第4页
第4页 / 共28页
第8章MCS51串行口PPT课件_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《第8章MCS51串行口PPT课件》由会员分享,可在线阅读,更多相关《第8章MCS51串行口PPT课件(28页珍藏版)》请在金锄头文库上搜索。

1、第第8章章 MCS51串行口串行口8.1 串行口及其通信方式串行口及其通信方式 8.2 IBM-PC系列机与系列机与 单片机单片机 的通信技术的通信技术8.1 串行口及其通信方式串行口及其通信方式 8.1.1 串行通信基础知识串行通信基础知识 一、异步通讯方式一、异步通讯方式 以字符为传送单位用起始位和停止位标识每个字符的 开始和结束字符间隔不固定,只需字符传送时同步。 1. 异步通讯常用格式:一个字符帧异步通讯常用格式:一个字符帧D0D1D2D3D4D5D6D7停止位停止位起始位起始位二、同步通讯二、同步通讯 以一串字符为一个传送单位,字符间不加标识位,在一串字符开始用同步字符标识,硬件要求

2、高,通讯双方须严格同步。2. 异步通讯双方的两项约定异步通讯双方的两项约定(1)字符格式规定(一帧): 数据位,校验位,起始位和停止位。(2)波特率(位/秒)对传送速率的规定 例:要求每秒传送120个字符,每帧为10位。 解: B=120?0=1200波特每位0.83ms 数据位传输率=120?=960位/秒三三 串行接口功能串行接口功能1.发送器:并串数据格式转换,添加标识位和校验位,一 帧发送结束,设置结束标志,申请中断。2.接收器:串并数据格式转换,检查错误,去掉标识位, 保存有效数据,设置接收结束标志,申请中断。3.控制器:接收编程命令和控制参数,设置工作方式:同步/ 异步、字符格式、

3、波特率、校验方式、数据位与 同步时钟比例等。四四 串行数据传送方向串行数据传送方向 单工通讯:数据单向传送。 半双工通讯:数据可分时双向传送。 全双工通讯:可同时进行发送和接收。发送器接收器发送器接收器8.1.2 串行口控制寄存器串行口控制寄存器 一、1个全双工串行接口,可同时进行发送和接收。 串行接口输入/输出引脚:TXD(P3.1)、RXD(P3.0) 数据格式(P.237图):按不同方式,一帧位数 8/10/11 发送/接收时,数据皆低位在前。一帧字符发送/接收结束,置位标志位(TI/RI)并申请SIO中断。 中断控制:中断允许位ES 中断入口:0023HD0D1D2D3D4D5D6D7

4、停止位停止位起始位起始位D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D8停止位停止位起始位起始位D7二、串行接口控制二、串行接口控制1. 数据缓冲器数据缓冲器SBUF发送SBUF和接收SBUF共用一个地址99H。 (1)发送SBUF存放待发送的8位数据,写入SBUF将同时启动发送。 发送指令:MOV SBUF,A(2)接收SBUF存放已接收成功的8位数据,供CPU读取。 读取串行口接收数据指令:MOV A,SBUF2.串行口控制串行口控制/状态寄存器状态寄存器SCON(98H)SM0,SM1:选择串行口4种工作方式。SM2:多机控制位,用于多机通讯。REN:允许接收控制位,RE

5、N=1,允许接收;REN=0,禁止接 收。TB8: 发送的第9位数据位,可用作校验位和地址/数据标识位RB8: 接收的第9位数据位或停止位TI: 发送中断标志,发送一帧结束,TI=1,必须软件清零RI: 接收中断标志,接收一帧结束,RI=1,必须软件清零3.节电控制寄存器节电控制寄存器PCONSMOD(PCON.7):波特率加倍控制位。SMOD=1,波特率加倍, SMOD=0,则不加倍。 SM0,SM1选择四种工作方式。一、方式0:同步移位寄存器方式。用于扩展并行I/O接口。1. 一帧8位,无起始位和停止位。2. RXD:数据输入/输出端。 TXD:同步脉冲输出端,每个脉冲对应一个数据位。3.

6、 波特率B = fosc/12 如: fosc=12MHz,B=1MHz,每位数据占1s。8.1.3 串行接口的工作方式串行接口的工作方式4. 发送过程:写入SBUF,启动发送,一帧发送结束,TI=1。 接收过程:REN=1且RI=0,启动接收,一帧接收完毕,RI=1。 发发送送时时序序写入写入SBUFRXD输出输出TXDTID0D1D2D3D4D5D6D7写写REN=1RI=0RXD输入输入RI 接接收收时时序序(a)(b) 数据从RXD(P3.0)引脚串行输出,低位在先,高位在后;TXD(P3.1)引脚输出移位脉冲,其频率为foc/12;发送完毕后,中断标志位TI为1。如要发送数据,如下所

7、示: MOV SCON,#00H ;串行口方式0 MOV SBUF,A ;将数据送出 JNB TI,$ ;等待数据发送完毕5. 移位寄存器方式举例移位寄存器方式举例二、二、 方式方式1 8位数据异步通讯方式。1. 一帧10位:8位数据位,1个起始位(0),1个停止位(1)。 2. RXD:接收数据端。 TXD:发送数据端。3. 波特率:用T1作为波特率发生器,B=(2SMOD/32)T1溢出率。4. 发送:写入SBUF,同时启动发送,一帧发送结束,TI=1。 接收:REN=1,允许接收。接收完一帧,若RI=0且停止位为1 (或SM2=0),将接收数据装入SBUF,停止位装入RB8,并使RI=1

8、;否则丢弃接收数据,不置位RI。 当REN=1,CPU开始采样RXD引脚负跳变信号,若出现负跳变,才进入数据接收状态,先检测起始位,若第一位为0,继续接收其余位;否则,停止接收,重新采样负跳变。数据采样速率为波特率16倍频,在数据位中间,用第7、8、9个脉冲采样3次数据位,并3中取2保留采样值。写入写入SBUF采样采样(a) 发送时序图发送时序图TXD数据输出数据输出TID0D1D2D3D4D5D6D7停止位停止位起始位起始位RXD输入数据输入数据(b) 接收时序图接收时序图D0D1D2D3D4D5D6D7停止位停止位起始位起始位RI检测检测负跳变负跳变9位数据异步通讯方式。1. 一帧为11位

9、:9位数据位,1个起始位(0),1个停止位(1)。第9位数据位在TB8/RB8中,常用作校验位和多机通讯标识位。2. RXD:接收数据端,TXD:发送数据端。3. 波特率: 方式2:B=(2SMOD/64)fosc 。 方式3:B=(2SMOD/32)T1溢出率 。三、三、 方式方式2和方式和方式34. 发送:先装入TB8,写入SBUF并启动发送,发送结束, TI=1。 接收:REN=1,允许接收。接收完一帧,若RI=0且第9位 为1 (或SM2=0),将接收数据装入接收SBUF,第9 位装入RB8,使RI=1;否则丢弃接收数据,不置位 RI。发发送送时时序序写入写入SBUFTXD输出输出TI

10、RXD输入输入接接收收时时序序RID0D1D2D3D4D5D6TB8停止位停止位起始位起始位D7D0D1D2D3D4D5D6RB8停止位停止位起始位起始位D7检测检测负跳变负跳变8.1.4、计算波特率、计算波特率方式0为固定波特率: B=fosc/12方式2可选两种波特率: B=(2SMOD /64)fosc 方式1、3为可变波特率,用T1作波特率发生器。 B=(2SMOD/32)T1溢出率T1为方式2的时间常数: X = 28 - t/T 溢出时间: t= (28 -X)T = (28 -X)12/ foscT1溢出率=1/t= fosc /12(2n -X) 波特率B=(2SMOD /32

11、)fosc/12(28-X) 串行口方式1、3,根据波特率选择T1工作方式,计算 时间常数。T1选方式2: TH1=X= 28-fosc/122SMOD/(32B)T1选方式1用于低波特率,需考虑T1重装时间常数时间。8.1.5 串行口的应用串行口的应用串行口初始化编程格式:SIO:MOV SCON,#控制状态字;写方式字且TI=RI=0 (MOV PCON,#80H) ;波特率加倍 ( MOV TMOD,#20H ) ;T1作波特率发生器 ( MOV TH1,#X ) ;选定波特率 ( MOV TL1,#X ) ( SETB TR1) ( SETB EA) ;开串行口中断 ( SETB ES

12、)一、串行口初始化一、串行口初始化二、发送程序二、发送程序1. 查询方式:查询方式:TRAM: MOV A,R0 ;取数据 MOV SBUF,A ;发送一个字符WAIT:JBCTI,NEXT ;等待发送结束SJMP WAITNEXT: INCR0 ;准备下一次发送SJMP TRAM2.中断方式:中断方式: ORG 0023H ;串行口中断入口AJMP SINTMAIN: ;初始化编程TRAM: MOV A,R0 ;取数据MOV SBUF,A ;发送第一个字符 H: SJMP H ;其它工作 SINT: CLR TI ;中断服务程序INC R0MOV A,R0 ;取数据MOV SBUF,A ;发

13、送下一个字符RETI三、接收程序三、接收程序REN=1、RI=0等待接收,当RI=1,从SBUF读取数据。1.查询方式: WAIT:JBCRI,NEXT;查询等待SJMP WAITNEXT: MOV A,SBUF ;读取接收数据MOV R0,A;保存数据INCR0 ;准备下一次接收SJMP WAIT四、串行口方式四、串行口方式0 用于扩展单片机的并行I/O接口。串行口实现:并行串行的数据转换74LS165/74LS164实现:串行并行的数据转换。D0 D1 D2 D3 D4 D5 D6 D7 数据输入 RXD 9 TXD 移位脉冲 2 74LS165 8051 6 5 4 3 14 13 12

14、 11 D7 D6 D5 D4 D3 D2 D1 D0 数据输入 RXD 1 2 TXD 移位脉冲 74LS164 88051 3 4 5 6 10 11 12 13 五、异步通讯程序举例五、异步通讯程序举例 1.发送程序:将片内RAM 50H起始单元的16个数由串 行口发送。要求发送波特率为系统时钟 的32分频,并进行奇偶校验。MAINT: MOV SCON,#80H ;串行口初始化MOV PCON,#80H ;波特率SETBEASETBES;开串行口中断MOV R0,#50H ;设数据指针MOV R7,#10H ;数据长度LOOP: MOV A,R0 ;取一个字符MOV C,P ;加奇偶校

15、验MOV TB8,CMOV SBUF,A ;启动一次发送HERE:SJMPHERE;CPU执行其它任务ORG 0023H ;串行口中断入口AJMP TRANI TRANI:PUSH A;保护现场PUSH PSWCLR TI ;清发送结束标志DJNZ R7,NEXT;是否发送完? CLR ES;发送完,关闭串行口中断 SJMP TENDNEXT: INC R0 ;未发送完,修改指针MOV A,R0 ;取下一个字符MOV C,P ;加奇偶校验MOV TB8,CMOV SBUF,A ;发送一个字符POP PSW ;恢复现场POP ATEND:RETI ;中断返回2. 接收程序:串行输入16个字符,存

16、入片内RAM的50H起 始单元,串行口波特率为2400(设晶振为11.0592MHz)。RECS: MOV SCON,#50H ;串行口方式1允许接收MOV TMOD,#20H ;T1方式2定时MOV TL1,#0F4H ;写入T1时间常数MOV TH1,#0F4HSETB TR1 ;启动T1MOV R0,#50H ;设数据指针MOV R7,#10H ;接收数据长度 WAIT: JBC RI,NEXT ;等待串行口接收SJMP WAITNEXT:MOV A,SBUF ;读取接收字符MOV R0,A ;保存一个字符INC R0 ;修改指针DJNZ R7,WAIT ;全部字符接收完?RET3. 接

17、收程序:串行输入16个字符,进行奇偶校验。RECS: MOV SCON,#0D0H ;串行口方式3允许接收MOV TMOD,#20H ;T1方式2定时MOV TL1,#0F4H ;写入T1时间常数MOV TH1,#0F4HSETB TR1 ;启动T1MOV R0,#50H ;设数据指针MOV R7,#10H ;接收数据长度 WAIT: JBC RI,NEXT ;等待串行口接收SJMP WAITNEXT:MOV A,SBUF ;取一个接收字符JNB P,COMP ;奇偶校验JNB RB8,ERR ;PRB8,数据出错SJMP RIGHT ;P=RB8,数据正确COMP: JB RB8,ERRRI

18、GHT: MOV R0,A ;保存一个字符INC R0 ;修改指针DJNZ R7,WAIT ;全部字符接收完?CLR F0 ;F0 =0,接收数据全部正确RETERR: SETB F0 ;F0 =1,接收数据出错RET8.2 IBM-PC系列机与系列机与 单片机的通信技术单片机的通信技术(选选)一、异步通信适配器一、异步通信适配器 二、二、IBM-PC机与机与8031双机通信技术双机通信技术 三、三、IBM-PC机与机与803l多机通信技术多机通信技术 一、异步通信适配器一、异步通信适配器(一) 异步通信芯片8250(二) 8250的内部寄存器二、二、IBM-PC机与机与8031双机通信技术双机通信技术(一) 通信接口设计(二) 通信软件设计三、三、IBM-PC机与机与803l多机通信技术多机通信技术(一) 多机通信原理(二) 通信接口设计(三) 通信软件设计

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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