串行通信及其接口71概述

上传人:re****.1 文档编号:591868232 上传时间:2024-09-18 格式:PPT 页数:21 大小:118.50KB
返回 下载 相关 举报
串行通信及其接口71概述_第1页
第1页 / 共21页
串行通信及其接口71概述_第2页
第2页 / 共21页
串行通信及其接口71概述_第3页
第3页 / 共21页
串行通信及其接口71概述_第4页
第4页 / 共21页
串行通信及其接口71概述_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《串行通信及其接口71概述》由会员分享,可在线阅读,更多相关《串行通信及其接口71概述(21页珍藏版)》请在金锄头文库上搜索。

1、第七章第七章 串行通信及其接口串行通信及其接口7-1概 述7-2MCS-51的 串 行 口7 - 3 串 行 口 的 控 制7.1概概述述1、串行通信数据传送方向 1)单工方式数据只能向一个方向传输。 2)半双工方式允许数据分时两个方向传输。 3)全双工方式数据可以同时往两个相反的方向传输。2)同步方式:每个数据位占用的时间都相等,发送机每一个基本的时间单位发送一位,接收机与发送机的时钟必须严格同步。其格式如图。2、异步和同步通信方式1)异步方式:用一个起始位表示字符的开始,停止位表示字符的结束。数据位则在起始位之后,停止位之前,这样构成一帧,其格式如图。7.2MCS-51的串行口的串行口1、

2、数据缓冲器SBUF 发送SBUF和接收SBUF共用一个地址99H。2、串行口控制寄存器SCON 寄存器的字节地址为98H,可位寻址。SCON格式如图。 SM0、SM1:控制串行口的工作方式SM2:多机控制位,用于多机通讯。 REN:允许接收控制位,REN=1,允许接收;REN=0,禁止接收。 TB8:发送的第9位数据位,可用作校验位和地址/数据标识位RB8:接收的第9位数据位或停止位TI: 发送中断标志,发送一帧结束,TI=1,必须软件清零RI: 接收中断标志,接收一帧结束,RI=1,必须软件清零3特殊功能寄存器PCON其字节地址为87H,没有位寻址功能,其中与串行接口有关的只有D7位。SMO

3、D ) :波特率倍增位。当SMOD=1时,波特率加倍;当SMOD=0时,波特率不加倍。3、串行口的工作方式(1) 方式0:同步移位寄存器方式。用于扩展并行I/O接口。1.一帧8位,无起始位和停止位。2.RXD:数据输入/输出端。 TXD:同步脉冲输出端,每个脉冲对应一个数据位。B = fosc/12如: fosc=12MHz, B=1MHz,每位数据占1s。4.发送过程:写入SBUF,启动发送,一帧发送结束,TI=1。 接收过程:REN=1且RI=0,启动接收,一帧接收完毕,RI=1。 发发送送时时序序写入写入SBUFRXD输出输出TXDTID0D1D2D3D4D5D6D7写写REN=1RI=

4、0RXD输入输入RI接接收收时时序序(a)(b)(2) 方式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;否则丢弃接收数据,不置位RI。当REN=1,CPU开始采样RXD引脚负跳变信号,若出现负跳变,才进入数据接收状态,先检测起始位,

5、若第一位为0,继续接收其余位;否则,停止接收,重新采样负跳变。数据采样速率为波特率16倍频,在数据位中间,用第7、8、9个脉冲采样3次数据位,并3中取2保留采样值。方式1串行发送接收时序图写入写入SBUF采样采样(a)发送时序图发送时序图TXD数据输出数据输出TID0D1D2D3D4D5D6D7停止位停止位起始位起始位RXD输入数据输入数据(b)接收时序图接收时序图D0D1D2D3D4D5D6D7停止位停止位起始位起始位RI检测检测负跳变负跳变(3) 方式2和方式3 9位数据异步通讯方式。1.一帧为11位:9位数据位,1个起始位(0),1个停止位(1)。第9位数据位在TB8/RB8中,常用作校

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

7、停止位起始位起始位D7检测检测负跳变负跳变(4)计算波特率方式0为固定波特率:BR=fosc/12方式2可选两种波特率: BR=(2SMOD /64)fosc 方式1、3为可变波特率,用T1作波特率发生器。BR=(2SMOD/32)T1溢出率串行口方式1、3,根据波特率选择T1工作方式,计算时间常数。T1选方式2: TH1=X= 28-(2SMOD fosc)/(1232BR)T1选方式1用于低波特率,需考虑T1重装时间常数时间。.3串行口的控制串行口的控制7-3-1主从机间的通信主从机间的通信 1 双机串行异步通信(1)单片机与单片机间的串行异步通信接口设计 两台8031直接通信如图: 两台

8、8031采用RS232C总线通信如图: 例 如图8751-1的工作是检查接在P1口上的 SW开关,当检测到开关的状态有变化时,就将变化后的状态读入,通过串行口将这个开关状态传送给8751-2。当8751-2接收到这个字节后就将它输出到P1口上显示,并且也将它接收到的数据回传给8751-1以通知8751-1已经接收到数据。当8751-1接收到这个响应数据后与刚才传出去的数据比较,若不相同再发送一次,以确保将正确的数据传递给8751-2。M),采用中断方式进行发送和接收数据。8751-1程序:BUFFEREQU30H;发送数据缓冲区ECHOFLAGBIT00H;当发送与接收到的数据相同时此标志置1

9、ERRFLAGBIT01H;当发送与接收到的数据不同时此标志置1ORG0000HSJMPSTARTORG0023H;串行口中断输入口 SJMP UART1ORG0030HSTART:MOV TMOD,#20H ;定时器1设置为方式2,作波特率发生器 ANL PCON,#7FH MOV TH1, #0FDH ;波特率为9600 MOV TL1,#0FDH SETB TR1 MOV SCON,#50H ;设置为串行方式1允许接收 MOV IE,#90H;允许串行口中断 MOV BUFFER,#00H;缓冲区清零WAIT: MOVA,P1 CJNEA,BUFFER,SWCH SJMPWAITSWCH

10、:MOVBUFER,ATRAGIN: MOVSBUF,A;发送数据CLRECHOFLAGCLRERRFLAGWAITEO: JBERRFLAG,TRAGINJNBECHOFLAG,WAITEOSJMPWAITUART1:PUSHPSWPUSHACCSETBRS0CLRRS1JBCRI,RCV1;判断是否为接收中断CLRTISJMPRETURNRCV1:MOVA,SBUFCJNEA,BUFFER, DATAERSETBECHOFLAGSJMPRETURNDATAER: SETBERRFLAGRETURN: POPACCPOPPSWRETIEND()单片机与PC系列微机间的异步串行通信接口设计 8

11、031单片机与PC系列微机是两种不同类型的机种,它们的硬件结构不同,具有的电气特性也不一样,因此它们之间不能用导线直接连接,而要通过电平转换电路。 8031单片机和PC机通过RS232C总线通信接口图如下: 7-3-2 多机通信接口多机通信接口1多机通信原理多机通信原理 串行口控制寄存器SCON中的SM2为多机通信接口控制位。串行口以方式2或3接收时,若SM2为1,则仅当接收到的第9位数据RB8为1时,数据才装入SBUF,置位RI,请求CPU对数据进行处理;如果接收到的第9位数据RB8为0,则不产生中断标志RI,信息丢失,CPU不做任何处理。当SM2为0时,则接收到一个数据后,不管第9位数据R

12、B8是0还是1,都将数据装入接收缓冲器SBUF并置位中断标志RI,请求CPU处理。MCS-51的主从多机通信正是利用了这个特性。 2多机通信程序设计多机通信程序设计 MCS-51多机通信程序设计 以典型的PC机和MCS-51构成的主从式多机系统(PC机为主机MCS-51单片机为从机或前沿机)为例,如图: 设MCS-51晶振为6MHz设置波特率为2400,以方式3进行多机串行通信为例,编程方法如下: MOV TMOD,#20H MOV TH1, #0F9H;设置波特率为2400 MOV TL1, #0F9H MOV SCON,#0F0H;设置串行口为方式3, ; SM2=1,允许接收 ANLPCON,#7FHSETB TR1SETB ES;允许串行口中断SETB EAWAIT:SJMPWAIT;听号 当接收到地址帧“呼号”且地址帧与本机地址相符时,要置SM2为0以便准备接收数据帧,同时需要将本机地址发回作为应答,建立与主机的联络。编程如下:SIO:CLRRI PUSH PSW PUSH ACC MOV A,SBUF;接收串行数据 XRL A,#ADDR;判断是否与本机地址 相符 JNZ BACK;不相符则返回 CLR SM2;相符则SM2为0且发回本机地址 MOVSBUF,AWAIT:JNBTI,WAIT CLR TIBACK:POP ACC POP PSW RETI

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

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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