1.串行口的功能
MCS-51单片机中的串行接口是一个全双工异步通信接口,可以同时发送和接收数据。发送、接收数据可通过查询或中断方式进行,使用方便灵活,能方便地与其它计算机或串行传送信息的外部设备(如串行打印机)实现双机、多机通信。它有4种工作方式,分别是方式0、方式1、方式2和方式3。其中:
方式0称为同步移位寄存器方式,一般用于外接移位寄存器芯片以扩展I/O接口。
方式1称为8位的异步通信方式,通常用于双机通信。
方式2和方式3称为9位的异步通信方式,通常用于多机通信。
不同方式时的波特率也不一样,方式0和方式2的波特率直接由系统时钟产生,方式1和方式3的波特率由定时/计数器T1的溢出率决定。
2.串行口的结构
MCS-51单片机的串行口主要由两个数据缓冲器SBUF、一个输入移位寄存器、一个串行控制寄存器SCON和一个波特率发生器T1等组成。其结构如图7.5所示。
图7.5 MCS-51单片机串行口结构框图
从用户使用的角度看,它由3个特殊功能寄存器组成:发送数据寄存器和接收数据寄存器合起来用一个特殊功能寄存器SBUF(串行口数据寄存器),串行口控制寄存器SCON和电源控制寄存器PCON。
串行口数据寄存器SBUF,字节地址为99H,实际对应两个寄存器:发送数据寄存器和接收数据寄存器。当CPU向SBUF写数据时对应的是发送数据寄存器,当CPU读SBUF时对应的是接收数据寄存器。
发送数据时,当执行一条向SBUF写入数据的指令,把数据写入串口发送数据寄存器,就启动发送过程。在发送时钟的控制下,先发送一个低电平的起始位,紧接着把发送数据寄存器中的内容按低位在前,高位在后的顺序一位一位地发送出去,最后发送一个高电平的停止位。一个字符发送完毕,串行口控制寄存器中的发送中断标志位T1置位。对于方式2和方式3,当发送完数据位后,要把串行口控制寄存器SCON中的TB8位发送出去后才发送停止位。
接收数据时,串行数据的接收受到串口控制寄存器SCON中的允许接收位REN的控制。当REN位置1,接收寄存器就开始工作,对接收数据线进行采样,当采样到从“1”到“0”的负跳变时,接收控制器开始接收数据。为了减少干扰的影响,接收控制器在接收数据时,将1位的传送时间分成16等分,用其中的7、8、9三个状态对接收数据线采样,三次采样中,当两次采样为低电平,就认为接收的是“0”;两次采样为高电平,就认为接收的是“1”。如果接收的起始位的值不是“0”,则起始位无效,复位接收电路。如果起始位为“0”,则开始接收其它各位数据。接收的前8位数据依次移入输入移位寄存器,接收的第9位数据置入串口控制寄存器的RB8位中。如果接收有效,则输入移位寄存器中的数据置入接收数据寄存器中,同时控制寄存器中的接收中断位RI置1,通知CPU来取数据。
3.串行口控制寄存器SCON
深入理解SCON各位的含义,正确地用软件设定SCON各位是运用MCS-51串行口的关键。该专用寄存器的主要功能是串行通信方式选择,接收和发送控制及串行口的状态标志指示等作用。格式如图7.6所示:(www.xing528.com)
图7.6 串行口控制寄存器SCON
其中SM0、SM1为串行口工作方式选择位。
SM2:允许方式2和方式3进行多机通信的控制位。在方式2和方式3中,如果SM2=1,那么串行口接收到第9位数据(RB8)为0时,则不置位RI(不提出中断请求);如果SM2=0,则接收到停止位信息后必置位RI。在方式1中,若SM2=1,则只有收到有效停止位时才置位RI。在方式0中,SM2必须是0。
REN:允许接收控制位。REN=0,则禁止串行口接收,REN=1,允许串行口接收。
TB8:是工作方式2和方式3中要发送的第9位数据。由软件置位或复位。该位可作为奇偶校验位。在多机通信中,该位用于表示是地址帧还是数据帧。
RB8:是工作方式2和方式3接收到的第9位数据。可能是奇偶校验位或地址/数据标识位。在方式l中,若SM2=0,则RB8是接收到的停止位。在方式0中,不使用RB8。
TI:发送中断标志位。在方式0中,当发送完第8位数据时,TI由硬件置位;在其他方式中,TI在开始发送停止位时由硬件置位。TI=1时,请求中断,CPU响应中断后,再发送下一帧数据。在任何方式下,都必须用软件对TI清零。
RI:接收中断标志位。在方式0中,当接收到第8位数据时,RI由硬件置位;在其他方式中,RI在接收到停止位的中间时刻,由硬件置位。RI=1时,串行口向CPU请求中断,CPU响应中断后,从SBUF中取出数据。在任何方式下,都必须用软件对RI清零。
4.电源和波特率控制寄存器PCON
电源控制寄存器PCON是一个特殊功能寄存器。它主要用于电源控制方面。另外,PCON中的最高位SMOD位,称为波特率加倍位。它用于对串行口的波特率进行控制。它的格式如图7.7所示:
图7.7 电源和波特率控制寄存器PCON
当SMOD位为1时,则串行口方式1、方式2、方式3的波特率加倍。例如在工作方式2下,若SMOD=0时,则波特率为fosc的1/64;当SMOD=1时,波特率为fosc的1/32,恰好增大一倍。系统复位时,SMOD位为0。PCON其余位用于CHMOS型MCS-51单片机的低功耗控制。PCON的字节地址为87H,不能进行位寻址,只能按字节方式访问。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。