第7章MCS-51的串行口.ppt_第1页
第7章MCS-51的串行口.ppt_第2页
第7章MCS-51的串行口.ppt_第3页
第7章MCS-51的串行口.ppt_第4页
第7章MCS-51的串行口.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第7章:MCS-51串口,单片机原理及接口技术,第7章:MCS-51串口,7.1串口结构,7.2串口四种工作模式,7.3多机通信,7.4波特率制定方法,7.5串口编程及应用,全双工异步通信串口。4种工作模式,波特率由片内定时器/计数器控制。每次发送或接收一帧数据时,都会发出一个中断请求。除了串行通信,它还可以用来扩展并行输入/输出端口。第7章MCS-51串口,7.1串口结构,串口的内部结构如下,两个物理上独立的接收和发送缓冲区可以同时接收和发送数据。两个缓冲器共享一个特殊的功能寄存器字节地址: SBUF(99H)。控制寄存器中有两个:特殊功能寄存器SCON和PCON。7.1串行端口结构,两个缓

2、冲器共享一个特殊功能寄存器字节地址: SBUF(99H)。控制寄存器中有两个:特殊功能寄存器SCON和PCON。7.1.1串行端口控制寄存器SCON,字节地址98H,位可寻址,格式如图所示。(1)四种工作模式下sm0和SM1串行端口的选择位,7.1.1串行端口控制寄存器SCON,字节地址98H,位可寻址,格式如图所示。(2) SM2多机通信控制位用于模式2或模式3。当串行端口在模式2或模式3下接收时:如果SM2=1,仅当接收的第9位数据(RB8)为“1”时,前8位数据被发送到SBUF,并且ri被设置为“1”以产生中断请求;当接收到的第9位数据(RB8)为“0”时,前8位数据被丢弃。7.1.1串

3、行端口控制寄存器SCON,字节地址98H,位可寻址,格式如图所示。如果SM2=0,无论第9位数据是“1”还是“0”,前8位数据都被发送到SBUF,并且RI被设置为“1”以产生中断请求。在模式1中,如果SM2=1,只有当接收到停止位时,才激活RI。在模式0下,SM2必须为0。7.1.1串行端口控制寄存器SCON,字节地址98H,位可寻址,格式如图所示。(3) REN允许软件将串行接收位设置为“1”或清0。REN=1允许串行端口接收数据。REN=0禁止串行端口接收数据。7.1.1串行端口控制寄存器SCON,字节地址98H,位可寻址,格式如图所示。(TB8发送的第9位数据是要发送的第9位数据,可以作

4、为奇偶校验位,也可以作为地址帧或数据帧的符号。TB8=1是地址帧,TB8=0是数据帧。7.1.1串行端口控制寄存器SCON,字节地址98H,位可寻址,格式如图所示。(5)当RB8接收的第9位数据处于模式2和3时,RB8存储接收的第9位数据。在模式1中,如果SM2=0,RB8是接收的停止位。在模式0下,不使用RB8。7.1.1串行端口控制寄存器SCON,字节地址98H,位可寻址,格式如图所示。(6)当TI发送中断标志位模式0时,硬件在第8位数据串行传输结束时设置“1”。在其他工作模式下,在串行端口传输停止位的开头设置“1”。TI=1,表示发送一帧数据的结束,可由软件查询或申请中断。在中央处理器对

5、中断作出响应后,它将下一帧数据写入中断服务程序中的SBUF。技术信息必须由软件清除。7.1.1串行端口控制寄存器SCON,字节地址98H,位可寻址,格式如图所示。(7)当RI接收到中断标志位模式0时,RI在接收到第8位数据后由硬件设置。在其他工作模式下,当停止位被串行接收时,该位被设置为“1”。RI=1,这意味着接收到一帧数据,并应用一个中断,要求中央处理器从接收的SBUF中获取数据。软件也可以查询该位的状态。国际扶轮必须被软件清除。7.1.2特殊功能寄存器PCON,字节地址为87H,无位寻址功能。SMOD:波特率选择位。例如,计算:模式1波特率的公式是:模式1波特率=(2SMOD/32)。当

6、SMOD=1时,定时器T1的波特率是SMOD=0时的两倍,后者也称为SMOD位作为波特率乘法位。7.2串口、7.2.1模式0同步移位寄存器输入输出模式4种工作模式,常用于外部移位寄存器扩展并行输入输出端口。8位数据是一帧,起始位和终止位未置位,最低位先发送或接收。波特率固定在fosc/12。帧格式如下:7.2.1,模式0,1。模式0。当中央处理器执行指令将数据写入发送缓冲区SBUF时,会产生一个正脉冲。串行端口以fosc/12的固定比特率从RXD引脚串行输出8位SBUF数据。低位优先,TXD引脚输出同步移位脉冲。发送8位数据后,中断标志ti设置为“1”。时间如图所示。2。当在模式0下接收和在模

7、式0下接收时,REN是允许接收控制位的串行端口,REN=0,禁止接收。REN=1,允许接收。当中央处理器向串行端口的SCON寄存器写入控制字时(将其设置为模式0,设置“1”ren位且RI=0),产生一个正脉冲,串行端口开始接收数据。引脚RXD是数据输入端,TXD是移位脉冲信号输出端。接收器还以fosc/12固定波特率采样引脚RXD的数据信息,并在接收8位数据时设置“1”中断标志RI。它显示在接收一帧数据之后,可以接收下一帧数据。时间顺序如下图3360所示,7.2.1模式0,7.2.1模式0。在模式0中,不使用SCON的TB8和RB8位。发送或接收8位数据后,硬件将中断标志设置为“1”,中央处理

8、器对中断做出响应。用户软件必须将接口或接口标志位清0,并可采用以下指令: CLR接口;钛位被清除为“0”CLRRI;当RI位清零至“0”模式0时,SM2位(多机通信控制位)必须为0。7.2.2模式1,SM0,SM1=01。用于数据的串行传输和接收。TXD pin和RXD pin分别用于发送和接收数据。在模式1中,一帧的数据为10位,包括一个起始位(0)、8个数据位和一个停止位(1),最低位先发送或接收。框架格式如图所示。波特率由以下公式确定:模式1波特率=(2SMOD/32)定时器T1的溢出速率SMOD是PCON寄存器的最高位值(0或1)。1.当模式1发送和模式1输出时,数据位从TXD终端输出

9、。当中央处理器执行指令将数据写入发送缓冲区时,它开始发送。图中发射时钟的频率是传输的波特率。在传输开始时,内部传输控制信号SEND*变为有效,开始位输出到TXD。此后,每当发射时钟周期过去,就产生一个移位脉冲,并由TXD输出一个数据位。发送完所有8位数据后,设置“1”中断标志位TI,然后发送*信号失败。7.2.2模式1,2。模式1中接收的数据是从RXD(P3)输入的。0)引脚。当检测到起始位的负跳变时,开始接收。有两种定时控制信号(如图所示),一种是接收移位时钟(RX时钟),其频率与传输波特率相同。另一个是位检测器采样脉冲,其频率是接收时钟的16倍。也就是说,在1位数据周期内,有16个采样脉冲

10、,RXD引脚的状态以16倍波特率的速率采样。当在RXD终端从1到0的转换被采样时,检测器被启动,并且接收的值是三个连续的采样(在第7、第8和第9个脉冲采样),并且它们中的两个被作为相同的值,以便确认它是否是实际开始位的开始(负转换)。7.2.2模式1,当接收到一帧数据时,必须同时满足以下两个条件,这样接收才会真正有效。RI=0,即当前一帧的数据接收完成时,RI=1发送的中断请求已被响应,SBUF中的数据已被取走,表示“接收SBUF”为空。SM2=0或接收停止位=1(在模式1中,停止位已进入RB8),然后接收数据被加载到SBUF和RB8(RB8加载有停止位),并且“1”中断标志RI被设置。如果这

11、两个条件不同时满足,接收到的数据将无法加载到SBUF中,并且帧数据将会丢失。7.2.2模式1、7.2.3模式2、9位异步通信接口。每帧数据为11位,有1个起始位0、8个数据位(第一个低位)、1个可编程第9个数据和1个停止位。框架格式如下所示。模式2的波特率由以下公式确定:模式2的:波特率=(2SMOD/64) fosc,1。在模式2下发送之前,软件根据通信协议设置TB8(例如,两台计算机通信时的奇偶校验位以下发送中断服务程序在两台计算机之间的通信中使用TB8作为奇偶校验位。处理方法是先将数据的奇偶校验位写入TB8,然后再写入SBUF,以保证发送时使用均匀校验。管道仪表流程图:推进管道仪表流程图

12、;现场保护推动ACC设置1;选择第二组工作寄存器区clr RS 0 clr ti;发送中断标志清除“0”mov a,r0;获取数据mov c,p;将校验位发送到TB8,并使用偶校验movtb8、cmovsbuf、a;开始发送incr0向数据指针添加1个popacc恢复现场POP PSWRETI中断返回,2。模式2接收SM0,SM1=10,并且REN=1。数据由接收11位信息的RXD终端输入。当位检测逻辑对RXD引脚从1到0的负转变进行采样并判断起始位有效时,它开始接收一帧信息。接收到第9个数据后,必须满足以下两个条件,才能将接收到的数据发送到SBUF。(1) RI=0,这意味着接收缓冲区为空。

13、(2)当sm2=0或接收的第9个数据位RB8=1时。当满足上述两个条件时,接收数据被发送到接收缓冲器,第9位数据被发送到RB8,并且“1”RI被设置。如果不满足这两个条件,接收到的信息将被丢弃。7.2.3模式2和串口模式2下接收数据的时序波形如图所示。7.2.3模式2,示例7-2模式2接收在双机通信中的应用。这个例子对应于上面的例子。如果附加的第9位数据是奇偶校验位,则应在接收序列中执行偶校验,并且一组寄存器区域的R0被设置为数据缓冲器指针。PIRI:PUSH PSW PUSH Acc SETB RS0;选择第一组寄存器区域clr rs1 clr rimov a,sbuf。将接收到的数据发送到

14、amov c,p jnc L1 jnrb8和ERPERP是错误处理程序ajmpl 2l 1:JB 8,erpl2: movr0,Inc r0 pop ACC pop PSW ERP:错误处理程序RETI,7.2.4模式3,当SM0和SM1=11时,串行端口工作在模式3。模式3是具有可变波特率的9位异步通信模式,除波特率外,与模式2相同。模式3中发送和接收数据的时序波形如图2所示。模式3的波特率由以下公式确定:模式3波特率=(2SMOD/32)定时器T1的溢出率,7.3多机通信,多台MCS-51微控制器可以通过串口与多台机器通信。为了确保主机和所选从机之间的可靠通信,有必要确保串行端口具有区分功

15、能。串行端口控制寄存器SCON中的SM2位是为满足此条件而设置的多机通信控制位。原理是当串行端口在模式2(或模式3)下接收时:如果SM2=1,则意味着允许多机通信。此时,有两种可能的情况: (1)当接收到的第9位数据为1时,该数据被加载到SBUF中,并且中断标志RI被设置为“1”以向中央处理器发送中断请求;(2)当接收到的第9位数据为0时,将不会产生中断标志,信息将被丢弃。如果SM2=0,接收到的第9位数据,无论是0还是1,将产生一个中断标志RI=1,并且接收到的数据将被加载到SBUF中。通过应用上述特点,可以实现MCS-51多机通信。让我们假设在多机系统中有一个主机和三个8031从机,如下图

16、所示。主人的RXD与所有奴隶的TXD终端相连,而TXD则与所有奴隶的RXD终端相连。从机的地址分别为00H、01H和02H。7.3多机通信,多机通信的工作过程: (1)从机的串口被编程为在模式2或模式3下接收,而SM2和任被设置为“1”,因此从机只处于多机通信和接收地址帧的状态。(2)在主机与从机通信之前,主机向每个从机发送从机地址(即准备接收数据的从机)(主机发送的地址信息的第9位为1),然后发送数据或命令(数据(包括命令)信息的第9位为0)。当主机向每个从机发送地址时,每个从机的串行端口接收的第9位信息RB8为1,由于SM2=1,中断标志RI设置为“1”,每个从机8031响应中断并执行中断

17、服务程序。在中断服务子程序中,判断主机发送的地址是否与本地地址一致。如果是本地地址,从机将SM2位清零,准备接收主机的数据或命令;如果地址7.3多机通信,(3)然后主机发送一个数据帧,此时,RB8=0被各从机串口接收,只有符合前一地址的从机系统(即已清除SM2位“0”的从机)才能激活中断标志位RI,从而进入中断服务程序并在中断服务程序中接收主机的数据(或命令);其他从机不激活中断标志RI,因为SM2保持在1,RB8=0,所以它们不能进入中断,并且接收的数据丢失,从而确保主机和从机之间通信的正确性。上图所示的多机系统是主从式的,多机之间的通信由主机控制,从机之间的通信只能通过主机实现。7.3多机通信,7.4波特率设置方法,模式0和模式2的波特率是固定的;模式1和模式3的波特率可以由定时器T1的溢出率决定。7.4.1波特率的定义:串行端口每秒发送(或接收)的位数称为波特率。对于不同的定时器工作模式,由于计数位数的不同,获得的波特率范围也不同。7.4.2定时器T1产生的波特率的计算,(1)模式0,波特率固定在时钟频率fosc的1/12,不受SMOD位值的影响。当fosc=12兆赫兹时,波特率为fosc/12,即1Mb/s.(2)在模式2中,波特率与SMOD位的值相关。方法2波特率=(2SMOD/64) fosc如果fosc=12MHz:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论