单片机原理与应用设计[张毅刚等编著][电子教案]第7章_第1页
单片机原理与应用设计[张毅刚等编著][电子教案]第7章_第2页
单片机原理与应用设计[张毅刚等编著][电子教案]第7章_第3页
单片机原理与应用设计[张毅刚等编著][电子教案]第7章_第4页
单片机原理与应用设计[张毅刚等编著][电子教案]第7章_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理和应用修订,张毅刚等编辑了电子教案,第7章89C51串行端口全双工异步通信串行端口的4种工作方式,波特率由片上计时器/计数器控制。 每次发送和接收帧数据时都可以发出中断请求。 不仅可用于串行通信,还可用于扩展残奥级I/O端口。 7.1串行端口的结构串行端口的内部结构如下所示,在两个物理上独立的可发送和接收缓冲器,同时可发送和接收数据(全双工)。 两个缓冲器共享特殊功能寄存器的字节地址: SBUF(99H )、控制寄存器两个:特殊功能寄存器SCON和PCON。 7.1.1串行端口控制寄存器SCON字节地址98H,可以是位地址,格式如图7-2所示。 (1)SM0、SM1串行端口的4种工作

2、方式的选择位表7-1串行端口的4种工作方式SM0 SM1方式功能说明00同步移位寄存器方式(扩展I/O端口用) 018位异步收发、波特率可变(定时器控制) 1 0 2 9位异步收发在串行端口通过方式2或方式3接收的情况下,如果SM2=1,则仅在接收到的第9位数据(RB8 )为“1”的情况下,将接收到的最初的8位数据发送到SBUF,设置“1” RI,生成并接收到的第9位数据(RB8 ) 如果SM2=0,则无论第9位的数据是“1”还是“0”,都将高8位的数据发送到SBUF,排列“1” RI以产生中断请求。 方式1时,如果SM2=1,则仅在接收到停止位时激活RI。 方式0时,SM2必须为0。 (3)

3、REN许可串行接收位通过软件被设置为“1”或“0”。 允许REN=1串行端口接收数据。 REN=0禁止串行端口接收数据。 (4)在由TB8发送的第9位数据方案2和3的情况下,TB8是要发送的第9位数据,这可以用作奇偶校验位,也可以用作每个地址帧和数据帧的标记。 当=1是寻址帧、=0是由数据帧(5)RB8接收的第9位数据方式2和3时,RB8存储接收到的第9位数据。 在方式1中,如果SM2=0,则RB8是接收到的停止比特。 方式0不使用RB8。 (6)在ti发送中断标志位、方式0的情况下,当串行发送第8位的数据结束时,在硬件中设为“1”,在其他动作方式中,在串行端口发送停止位的开始时设为“1”。

4、TI=1表示1帧的数据发送结束,可以通过软件询问,也可以申请中断。 CPU响应中断后,写入发送到SBUF的下一帧数据。 TI必须用软件清零。 (7)当RI接收到中断标志位制式0时,RI在硬件上被设置为“1”,以完成第八位的数据的接收。 其他动作方式中,串行接收停止位时,其位置为“1”。 RI=1表示一帧的数据接收完成,请求中断。 此位状态也可以通过软件查询。 RI必须通过软件清除“0”。 7.1.2特殊功能寄存器PCON字节地址为87H,没有位地址指定功能。 SMOD :波特率选择位。 例如,对于方式1的波特率的校正公式,将方式1的波特率=(2SMOD/32 )计时器T1的溢出速率也称为波特率

5、倍增位。 7.2串行端口的4种工作方式7.2.1方式0同步移位寄存器输入输出方式经常用于外置移位寄存器,扩展残奥电平I/O端口。 8位数据是1帧,不设定开始位和停止位,最初发送接收最低位。 波特率固定在fosc/12上。 关于帧格式,在1方式0发送CPU执行向发送缓冲器SBUF写入数据的命令时,以fosc/12的固定波特率从RXD端子串行输出串行端口即SBUF中的8位数据,TXD端子向下位输出同步移动脉冲,输出8位2方式0接收REN=1、接收数据、REN=0、禁止接收。 REN=1,允许接收。 向串行端口的SCON写入控制字(设为方式0,“1”REN位,同时设为RI=0)时,产生正脉冲,串行端

6、口开始接收数据。RXD是数据输入端,TXD是移位脉冲信号输出端,接收机也以fosc/12的固定波特率对RXD端子的数据信息进行采样,在接收到8位数据时设置“1” RI。 关于表示1帧的数据接收完成的序列,在图7-5、方式0中,不使用SCON中的TB8、RB8位,发送或接收完成的8位的数据在硬件中设定“1”TI或RI,CPU响应中断。 TI或RI的用户软件必须清除“0”,可以使用以下命令: CLR TI; TI比特清“0” CLR RI; RI位清除“0”方式为0时,SM2位必须设为0。 另外,图7-6、7.2.2方式1 SM0、SM1=01方式1帧数据在10比特、1开始比特(0)、8数据比特、

7、1停止比特(1)中,首先发送接收最下位比特。 帧格式由如图7-7 :所示的方法1波特率=(2SMOD/32 )计时器T1的溢出率SMOD是PCON寄存器的最高有效比特的值(0或1 )。图7-7、1方式1发送方式1输出、数据从TXD输出,1帧信息为10比特、1比特开头比特0、8比特数据位(先行下位)和1比特停止比特1。 执行数据写入发送缓冲区SBUF的指令后,开始发送。 图7中的TX时钟是要发送的波特率。 发送开始时,内部发送控制信号有效。 将开始位输出到TXD,然后,每经过TX时钟周期就产生移动脉冲,从TXD输出数据位。 8位数据位全部发送完成后,设置“1” TI。 方式1发送数据的定时如图7

8、-8所示。2方式1接收数据从RXD(P3.0)脚本输入。 检测到起始位的负跳跃时,开始接收数据。 定时控制信号接收移位时钟(RX时钟,具有与波特率相同的频率)和比特检测器的采样脉冲(频率是RX时钟的16倍,1比特数据时段,16个采样脉冲),并且在RXD端子从1跳到0时检测器接收到的值连续3次采样(第7 1帧的数据接收完成后,接收真正有效需要同时满足2个条件。 RI=0,即前一帧的数据接收完成后,响应来自RI=1的中断请求,SBUF中的数据被检索,表示“接收SBUF”为空。 SM2=0或接收到的停止位=1(方式1的情况下,停止位在RB8中),图7-9的情况下,接收到的数据被加载到SBUF和RB8

9、(RB8加载停止位),设置“1”中断标志RI。 如果两个条件不同时满足,接收的数据将丢失。 7.2.3方式2 9位异步通信接口。 各帧数据为11比特、1比特开头比特0、8比特数据位(先行下位)、1比特可编程第9比特数据和1比特停止比特。 帧格式应该如图7-10所示。 方式2波特率=(2SMOD/64)fosc,在图7-10,1、1方式2发送之前,根据通信协议在软件中设置TB8(例如,双机通信时的奇偶校验位和多机通信时的地址/数据的标记位)。 方式2发送数据波形如图7-11所示。 发送对图7-11、例7-1方式22机通信的应用。 在双通信中,下一个传输中断服务程序将TB8设置为奇偶校验位,并且该

10、处理方法在将数据写入SBUF之前将数据的奇偶校验位写入TB8并确保通过偶数检查进行传输。 推式开关; 现场保护推式ACC setb RS 1; 选择第2组的工作寄存器区域CLR RS0 CLR TI。 发送中断标志清“0” MOV A,R0; 取数据,MOV C,p; 检查位发送TB8、偶校验MOV TB8、C MOV SBUF、a; 启动发送INC R0。 数据指针加1 POP Acc; 修复现场POP PSW RETI; 中断返回2方式2接收SM0、SM1=10且REN=1。 数据从RXD侧输入,接收11位的信息。 比特检测出RXD从1向0的负跳跃;当判定开始比特有效时,开始帧信息的接收。

11、 在接收机接收到第9位数据之后,必须满足两个条件才能将接收到的数据发送到SBUF。 (1)RI=0表示接收缓冲器为空。 (2)SM2=0或者所接收到的第九位数据位RB8=1的情况。 在满足上述两个条件的情况下,所接收的数据被发送到SBUF (接收缓冲器),第9位的数据被发送到RB8,“1”RI被并行设置。 如果不符合两个条件,收到的信息将被丢弃。 方式2接收数据的定时如图7-12所示。例7-2方式接收在双通信中的应用。 图7-12、本例对应于上述例子。 如果第9位的数据是奇偶校验位,则由接收程序进行偶数校验处理,将1组寄存器区域的R0作为数据缓冲指针。 piri :推式电源推式ACC setb

12、 RS 0。 选择一组寄存器区域CLR RS1 CLR RI MOV A、SBUF。 接收数据为A MOV C、P JNC L1; C0 L1 JNB RB8,ERP,跳跃式飞行器; ERP包括错误处理程序、AJMP L2 L1: JB RB8、ERP; RB81、ERP L2: MOV R0、A INC R0 POP Acc POP PSW ERP: 错误处理段RETI 7.2.4方式3 SM0、SM1=11、串行端口为方式3。 波特率可变的9位异步通信方式除波特率以外,方式3和方式2相同。 方式3的时机如方式2所示。 另外,方式3波特率=(2SMOD/32 )计时器T1的溢出率7.3多机器

13、通信必须保证串行端口具有识别功能,以便保证主机和所选从机之间的可靠通信。 SCON中的SM2比特是被设置为满足该条件的多机器通信控制比特。 原理: (1)在接收到的第9位数据是1的情况下,将数据加载到SBUF中,并且在设置中断标志RI=1之后,将数据分配给CPU (2)当接收到的第9位数据为0时,不产生中断标志并且丢弃信息。 如果SM2=0,则无论接收到的第9位的数据是0还是1,都会发生RI=1中断标志,接收到的数据被加载到SBUF中。 根据上述特性,可进行89C51的多机通信。 在多机系统中,如图7-13所示,假设有1个主机和3个8031从机。 主机的RXD连接在从属的TXD上,主机TXD连

14、接在从属的RXD侧。 从地址分别为00H、01H、02H。图7-13、多机通信动作过程: (1)从串行端口被编程为通过方式2或方式3接收,设定“1”SM2和REN位,成为从机通过多机通信接收地址帧的状态。 (2)主机先将从地址(即准备接收数据的从机)发送到各从机,主机发送的地址信息的第9位为1,各从机接收到的第9位的信息RB8为1,另外,因为SM2=1,所以设置“1” RI 各从站在执行中断程序的中断服务子程序中,判断从主机发送来的地址是否与本机的地址一致,在一致的情况下,该从站清除“0”SM2位,使接收主机的数据或命令的准备(3)接着,主机发送数据帧,此时各从串行端口接收到的RB8=0,只有

15、地址一致的从系统(即清零了“0”SM2位的从机)激活RI,进入中断,中断程序由于接收信号的其它从装置为SM21,所以RB8=0不激活中断标记RI且不能进入中断且丢失接收到的数据。 图7-13所示的多机系统为主从方式,其中,主机控制多机之间的通信,从机和从机的通信只能经由主机来实现。 7.4波特率的制定方法方式0、方式2的波特率固定的方式1、方式3的波特率由计时器T1的溢出速率决定。 7.4.1波特率的定义波特率的定义。 波特率的范围因计时器的动作方式而不同的7.4.2计时器T1不产生波特率的校正运算(1)方式0波特率=时钟频率fosc1/12,不受到SMOD位的值的影响。 fosc=12MHz

16、时,波特率为fosc/12即1Mb/s。 (2)方形2波特率=(2SMOD/64)fosc若fosc=12MHz: SMOD=0波特率=187.5kb/s; 在SMOD=1波特率=375kb/s、(3)方式1或方式3的情况下,波特率在波特率=(2SMOD/64)T1的溢出率实际设定了波特率的情况下,T1总是成为方式2定时(自动安装初始值)而实际使用(1)当时钟振荡频率是12MHz或6MHz时,表7-2中的初始值x与相应的波特率之间存在一定的误差。 举例来说,FDH的对应理论值为10416波特(时钟6MHz )。 与9600波特和816波特不同,通过消除误差,可以调整时钟振荡频率fosc来实现。

17、例如采用的时钟振荡器频率是11.0592MHz。 (2)如果选择低波特率进行串行通信,例如波特率为55时,可将T1设定为方式1的定时。 但是,如果T1溢出,则需要在中断服务程序中重新加载初始值。 如果中断响应时间和指令执行时间,波特率会产生一定的误差,可通过变更初始值进行调整。 当单片机的时钟振荡频率是11.0592MHz时,作为波特率发生器,将T1设为方法2个定时,并且将波特率设为2400b/s,获得初始值。 上述结果可以从表7-2直接调查。 这里,当时钟振荡器频率为11.0592 MHz时,可以使初始值为整数,并且可以产生正确的波特率。 介绍7.5串行端口的编程和应用89C51之间的2机串

18、行通信的硬件接口和软件设置修订。 7.5.1机串行通信硬件接口89C51串行端口的TTL级别。 在这种TTL电平串行传输数据的方案中,抗噪声性能恶化,并且传输距离短。 为了提高串行通信的可靠性、增大串行通信的距离,一般采用标准串行接口,例如RS-232、RS-422A、RS-485等实现串行通信。 可根据89C51的双机通信距离和抗干扰性要求,选择TTL电平传输,或选择RS-232C、RS-422A、RS485串行接口进行串行数据传输。 如果1TTL电平通信接口两个89C51单片机相距几米以内,则这些串行端口直接连接,可以通过直接TTL电平传输方法实现双机通信。 接口电路如图7-14所示。图7-15、RS-232C双机通信接口如果双机通信距离在30m以内,则可通过RS-232C标准接口实现点对点双机通信。 接口电路

温馨提示

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

评论

0/150

提交评论