




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.讲座7:串行通信,电气工程系电子邮件mail:zhzhhe,2。本次讲座的主要内容:(1)串行通信和SFR的基本概念(2)MCS-51串口的工作模式(3)设置串口的波特率(4)串口的编程方法(5)多机通信,3)串行通信的基本概念。基本通信方式:串行通信和并行通信串行同步通信、串行异步通信单工、半双工和全双工串行通信、4、并行通信、串行通信、并行通信:数据位同时传输串行通信:数据位一个接一个依次传输、5、串行异步通信、串行同步通信、异步通信,每一个数据都应使用起始位和停止位作为传输数据的起始和结束标记。数据终端和时钟终端的同步通信都依赖于时钟同步。6、单工、半双工、全双工串行通信,单工:只能发送或接收半双工:可以发送和接收,但不能同时发送和接收全双工:可以同时发送和接收。MCS-51可进行全双工串行通信。7.MCS-51串口的基本结构。发送器:中央处理器发送的并行数据通过发送移位寄存器转换为串行数据,并逐位发送,开始位、停止位和第9位数据自动相加。接收器:通过接收移位寄存器将接收到的串行数据转换为并行数据,移除起始位和停止位,并将正确的数据发送到接收数据缓冲器供中央处理器读取。控制器:接收来自中央处理器的编程命令,并以选定的方式控制串行接口。主要控制参数包括传输波特率和数据格式的选择。此外,它还与中央处理器交换状态信号和中断信号。串行接口逻辑框图,8,串口基本结构。SCON是一个串行端口控制/状态寄存器。串口的工作模式可以通过编程写入SCON的控制位来选择,串口的工作状态可以通过读取SCON的状态位来查询。定时器/计数器T1可用作串行端口的波特率发生器。有一个影响数据传输波特率的可控分频电路。串行端口信息的发送/接收是通过写入/读取数据缓冲器SBUF来实现的。串行端口串行数据缓冲器SFR SBUF(99H)串行端口有两个8位数据缓冲器,一个是发送数据缓冲器SBUF,另一个是接收数据缓冲器SBUF。它们共享一个地址99H,发送的SBUF只能写,而接收的SBUF只能读。根据说明,MOVSBUF、AMOVA、SBUF控制寄存器scon(98小时)SM0 SM1 M2Rentb8 RB 8 IRI节电控制寄存器PCON(87小时)SMOD(D7)均在00小时、10后复位。串行端口控制寄存器SCON SM0、sm1:串行端口选择位sm2:模式2和模式3下的多机通信控制位。在模式2和模式3中,如果SM2=1,当接收的第9位数据(RB8)为0时,接收中断标志RI(RI=1)不被激活。在模式1中,如果SM2=1,仅当接收到有效停止位时才激活R1,如果没有接收到有效停止位,则清除R1。在模式0中,SM2必须为0。REN:允许串行接收位。REN=1允许接收;REN=0禁用接收,由软件设置或清除。TB8:在模式2和模式3下工作时发送的第9个数据。可以设置为1或由软件清除。在许多通信协议中,该位是奇偶校验位。在多机通信中,它用于指示它是地址帧还是数据帧。TB8=1是地址帧,TB8=0是数据帧。11,串行端口控制寄存器SCON,RB8:在模式2和模式3下工作时,这是接收到的第9位数据。TI:发送中断标志位,在第8位数据的模式0串行传输结束时由硬件设置,或在其他模式串行传输停止位结束时由1设置,并申请中断。在中央处理器对中断做出响应后,它可以发送下一帧数据。TI必须由软件清除。接收结束的中断标志。在模式0中,当接收到的帧数据的第8位结束时,RI=1。在其他方式中,在接收到停止位之后,RI=1表示可以读取接收到的SBUF中的内容。必须用软件清除RI。在每次发送和接收之前,应注意清除TI和RI标志位。作为中断源,串行端口只有一个中断入口地址(0023H)。当在中断模式下同时发送和接收时,它可以确定中断是否12、节电控制寄存器PCON PCON主要用于节电操作模式控制,PCON.7用作串口波特率双控制位。当设置SMOD=1时,波特率加倍;当SMOD=0时,波特率不会翻倍。13,串行端口操作模式,SM0,SM1操作模式选择位,14,模式0: (sm0=0sm1=0),串行端口模式0是8位数据同步移位寄存器模式。RXD引脚是同步数据的输入/输出端,TXD引脚是同步移位脉冲的输出端。一个数据帧是8比特,每个移位脉冲对应于该数据帧的一个数据比特。模式0的波特率固定为fosc/12。15,描述模式0 :写SCON使REN=0,Ti=0;然后执行写SBUF的指令,将8位数据加载到发送的SBUF中,硬件启动串口发送器发送一次。8位数据通过发送移位寄存器逐位发送到RXD引脚,每个机器周期发送一位数据。对于传输的每一位数据,TXD引脚都会同步输出一个移位脉冲。发送一帧后,自动设置TI标志并申请串口中断。如果中央处理器响应中断,串行端口的中断服务程序将从单元0023H执行。写入SCON使REN=1和RI=0将启动串行端口接收器开始接收。TXD输出移位脉冲,并对每个移位脉冲对RXD引脚信号采样一次。RXD引脚每机器周期采样一次。收集的数据位发送到接收移位寄存器后,接收移位寄存器向左移位一位。收到一帧后,自动设置RI标志,申请串口中断,并将收到的8位数据加载到接收SBUF中。如果中央处理器响应中断,串行端口的中断服务程序将从单元0023H执行。串口模式0常用于扩展单片机的并行输入输出端口,也可与串行同步输入输出设备外部连接。模式0的输入/输出数据都通过RXD终端,因此模式0是半双工模式,只能时分发送和接收。16,模式1(SM0=0SM1=1),功能描述:串口模式1是8位数据全双工异步通信模式。TXD是发送数据的终端,RXD是接收数据的终端。一个数据帧是10位,包括8位数据、1个起始位“0”和1个停止位“1”。当串行端口工作在模式1时,定时器T1用作波特率发生器。波特率根据T1的溢出率设置。波特率计算公式为:(2SMOD/32)T1溢出率。17,模式1的时序图,18,模式1的功能描述,执行写SBUF指令,将8位数据加载到发送SBUF,并启动发送器进行一次传输:首先将起始位“0”发送到TXD引脚,然后将8位数据从低到高逐位发送,最后发送停止位“1”。每次传输所用的时间由设定的波特率决定。发送一帧数据后,设置TI标志并申请串口中断。当REN=1时,允许接收器准备接收。首先,以16倍波特率的速率检测RXD引脚的负跳变。当检测到负跳变时,开始一次接收并接收一帧信息,以判断条件是否满足:RI=0,停止位为1(或SM2=0)。如果同时满足这两个条件,设置RI标志,申请串口中断,将接收到的8位数据加载到接收SBUF,将停止位加载到RB8;否则,接收无效,接收的帧信息丢失,并且RI标志不受影响。一位时间后,接收器开始再次检测RXD终端的负跳变,为接收下一帧数据做准备。19、模式2、模式3、串行端口模式2和模式3都是9位数据全双工异步通信模式,与串行端口模式1相比增加了第9位数据。TXD是发送数据的终端,RXD是接收数据的终端。一帧信息有11位,包括9位数据、1个起始位“0”和1个停止位“1”。传输数据的第9位在TB8中,接收数据的第9位存储在RB8中。第9位数据也称为可编程位,通常用作多机通信中的奇偶校验位或地址/数据标识位。串口模式2和模式3的唯一区别是波特率设置方法不同。模式2的波特率基于系统时钟,计算公式为:(2smad/64) fosc。模式3的波特率与模式1相同,计算公式为:(2S20,模式2和3的定时,以及21,模式2和3的功能描述。传输时,将第9位传输数据发送到TB8,然后将第8位数据写入传输SBUF,使发射机开始一次传输,并将一帧数据逐位发送到TXD引脚:发送起始位“0”后,发送SBUF中的第8位数据,然后发送TB8的第9位,最后发送终止位“1”。在一帧传输结束时,设置TI标志并申请串行端口中断。模式2和模式3的接收过程与模式1的接收过程基本相同,但是RB8加载了接收数据的第9位而不是停止位。要使接收有效,必须同时满足两个条件,即RI=0,接收的第9位数据位为1(或SM2=0)。当一帧数据被正确接收时,前8位数据进入接收SBUF,第9位数据进入RB8。设置波特率和波特率的定义:串行端口每秒发送或接收的位数。串行端口模式0的波特率是固定的,除以系统时钟的12(fosc/12),即每机器周期传输一位数据。当串行端口工作在模式2时,波特率为(2SMOD/64)fosc。SMOD在PCON是D7位,即波特率双选择位。模式2有两种波特率可供选择。当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32。串行端口模式1和模式3使用定时器T1作为波特率发生器。波特率有多种选择,这与T1的溢出率有关。波特率=(2smod/32) T1溢出率,23,计算定时器T1产生的波特率,T1溢出率:T1溢出时间的倒数。当在波特率发生器中使用时,T1通常在非门控定时器模式2下工作,即恒定自动重新加载模式。TH1=TL1是T1、24的时间常数。定时器T1产生波特率计算。当串行端口工作在模式1和模式3时,当需要非常低的波特率时,也可以选择T1工作在模式1。然而,需要T1溢出中断来实现软件重载的初始值。当T1在模式1下运行时,溢出率为:n是T1溢出后软件重新加载初始值所需的机器周期数。25,T1产生的普通波特率,26,波特率计算中的几个注意事项:1)波特率的相对误差不大于2.5%2)注意SMOD位对波特率的影响,例如,通信波特率设为2400,晶振频率为6兆赫,计算T1的定时常数。当SMOD=0时,定时常数约为249,相对误差为7%。当SMOD=1时,定时常数约为243,相对误差为0.16%。27、串口编程示例,设置波特率,设置串口工作模式,设计中断服务程序或查询程序,注意TI和RI的处理(硬件设置,软件清零),实现28、MCS-51双机之间的串行通信,以及如何进行物理连接。波特率选择?你如何选择工作?如何编程?29,实现双机串行通信-1,正确的物理布线,30,实现双机串行通信-2,分别设置一致的波特率,设置一致的串口工作模式,设计中断服务程序或查询程序,注意ti和ri的处理(硬件设置,软件清零),31,模式3,发送50H5FH的内容,待传输的16个字节存储在片内随机存储器中。地址是50H5FH。串行端口波特率为2400波特率。发生器T1工作在模式2,SMOD=0晶体振荡器为11.0592兆赫。TL1的初始值为F4H。串行端口工作在模式3第9位,发送奇偶校验位32,示例1:模式3发送内容-1,在50H5FH中组织0000小时;重置条目AJMPMAINORG0023H。串行端口中断条目AJMPL 1 ORG 0100H;主程序条目MAIN:MOVSCON,# 0c0h。串行端口初始化,在模式3下发送,TI=0MOVPCON,# 00hSMOD=0 OVTMOD,# 20HT1模式2时序MOVTL1,# 0f4h写T1时间常数MOVTH1,# 0f4hsetbtr1。启动T1SETBEASETBES;允许串口中断MOVR0,# 50h设置数据指针MOVR7,# 10h。数据长度循环:MOVA。 r0以MOVC为例;添加奇偶校验MOVTB8、CMOVSBUF、a;在此发送一个字符:SJMPHERE;中央处理器原地循环,等待传输结束,33,示例1:模式3发送内容-2,L1:50H 5FH中的CLRTI中断服务程序,将发送结束标志位清零至0DJNZR7,下一步;发送完整字符?CLRES发送完毕,关闭串口中断SJMPTENDNEXT:INCR0;未发送完毕,修改指针MOVA。 r0下一个角色是MOVC;添加奇偶校验MOVTB8、CMOVSBUF、a;发送一个字符TEND:RETI;再次;中断返回主程序,34,示例2:模式3接收,16字节接收存储在片内RAM中,地址为50H5FH串行端口波特率为2400波特率发生器T1工作在模式2,SMOD=0晶振为11.0592MHz,TL1的初始值为F4H计算。串行端口工作在模式3的奇偶校验模式,以判断接收的数据是否错误。将校验错误标志位设置为F0,35,MAIN:MOVSCON,# 0D0H串行端口模式3允许接收,RI=0MOVPCON,# 00hSMOD=0 OVTMOD,# 20HT1模式2时序MOVTL1,# 0f4h写T1时间常数MOVTH1,# 0f4hsetbtr1。启动T1LCALLAAAASJMP $,模式3接收-查询,36,模式3接收-查询,AAAA:MOVR0,# 50h。设置数据指针MOVR7,# 10h。数据长度等待:JBCRI,NEXT;查询RI标志并等待串行端口接收结束。读取接收到的字符JNBP,COMP;执行奇偶校验JNBRB8,ERR;PRB8,数据误差SJMPRIGHT;P=RB8,数据正确COMP:JBRB8,errright: mov r0,a;将字符保存到片上RAMINCR0;修改指针DJNZR7,WAIT;收到所有字符?CLRF0F0=0,所有接收到的数据都是正确的RET;返回主程序ERR:SETBF0;F0=1,接收数据错误RET;回到主程序,37,双机通讯总结,物理连接:TXD-RXD,RXD-TXD,公共地必须是相同的波特率,并且工作模式必须是相同的。相应的发送和接收程序可以不同。38、多机通信,主机和各从机实现全双工通信,而各从机只能通过主机交换信息。下图显示了由MCS-51、39、多机通信的基本原理和多机通信控制位SM2的使用组成的分布式分配系统:当串行端口在模式2(或模式3)下被接收时,如果SM2=1,只有当接收的第9位数据为1时,接收的数据才会被加载到接收的SBUF中并设置RI标志;否则,将不会设置RI,不会生成中断请求,并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甲状腺超声操作培训课件
- 甲状腺切除手术课件
- 儿童节的教学课件
- 新解读《GB-T 36774 - 2018蒜芥茄检疫鉴定方法》
- 勾股定理导入教学课件
- 2026届高考历史一轮基础复习训练5 三国两晋南北朝的政权更迭与民族交融 (含答案)
- 《蓝色的树叶》教学课件
- 新解读《GB-T 36171 - 2018改善成形性高强度结构用调质钢板》
- 用电安全知识培训课件会议
- 用气安全知识培训课件
- 2023年苏州市星海实验中学小升初分班考试数学模拟试卷及答案解析
- GB/T 37915-2019社区商业设施设置与功能要求
- GB/T 31298-2014TC4钛合金厚板
- GB/T 27746-2011低压电器用金属氧化物压敏电阻器(MOV)技术规范
- GB/T 22237-2008表面活性剂表面张力的测定
- GB/T 13667.3-2003手动密集书架技术条件
- 导轨及线槽项目投资方案报告模板
- 《电业安全工作规程》
- 复旦大学<比较财政学>课程教学大纲
- 书法的章法布局(完整版)
- GB∕T 10429-2021 单级向心涡轮液力变矩器 型式和基本参数
评论
0/150
提交评论