您现在的位置: 主页 > MCU > 单片机技术应用 > AT89S51串行口工作方式0 -
本文所属标签:
为本文创立个标签吧:

AT89S51串行口工作方式0 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]
  串行口的工作方式0为同步移位寄存器输入/输出方式。这种方式并不是用于两个AT8 9 S51单片机之间的异步串行通信,而是用于串行口外接移位寄存器,以扩展并行I/O口。    方式0以8位数据为一帧,

 

本文引用地址: http://www.21ic.com/app/mcu/201804/765110.htm

  串行口工作方式0为同步移位寄存器输入/输出方式。这种方式并不是用于两个AT8 9 S51单片机之间的异步串行通信,而是用于串行口外接移位寄存器,以扩展并行I/O口。

方式0以8位数据为一帧,没有起始位和停止位,先发送或接收最低位。波特率是固定的,为fosc/12。方式0的帧格式如下图所示。

1.方式0发送

(1)方式0发送过程。

方式0发送过程是,当CPU执行一条将数据写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口开始把SBUF中的8位数据以fosc/12的固定波特率从RXD引脚串行输出,低位在先,TXD引脚输出同步移位脉冲,发送完8位数据,中断标志位TI置1。方式0发送时序如下图所示。

(2)方式0发送应用举例。

下图所示为AT89S51利用方式O发送的一个具体应用,通过串行口外接8位串行输入并行输出移位寄存器74LS164,扩展两个8位并行输出口的具体电路。

当串行口被设置在方式0发送状态时,串行数据由P3.0(RXD端)送出,移位脉冲由P3.1(TXD端)送出。在移位脉冲的作用下,串行口发送缓冲器的数据逐位地从P3.0串行移入74LS164中。

2.方式0接收

(1)方式0接收过程。

方式0接收时,REN为串行口允许接收控制位,REN=0,禁止接收;REN=1,允许接收。

当CPU向串行口的SCON寄存器写入控制字(设置为方式0,并使REN位置1,同时RI=0)时,产生一个正脉冲,串行口开始接收数据。引脚RXD为数据输入端,TXD为移位脉冲信号输出端,接收器以fsc/12的固定波特率采样RXD引脚的数据信息,当接收器接收完8位数据时,中断标志RI置1,表示一帧数据接收完毕,可进行下一帧数据的接收,时序如下图所示。

(2)方式0接收应用举例。

下图所示为串行口外接两片8位并行输入串行输出的寄存器74LS165扩展两个8位并行输入口的电路。

当74LS165的S/L(的反)端由高到低跳变时,并行输入端的数据被置人寄存器;当S/L(的反)=1,且时钟禁止端(第15脚)为低电平时,允许TXD(P3.1)串行移位脉冲输入,这时在移位脉冲作用下,数据由右向左方向移动,以串行方式进入串行口的接收缓冲器中。

在上图中,P3. 1(TXD)作为移位脉冲输出与所有75LS165的移位脉冲输入端CP相连;P3. 0(RXD)作为串行数据输入端与74LS165的串行输出端QH相连;P1.0与S/L(的反)相连,用来控制74LS165的串行移位或并行输入;74LS165的时钟禁止端(第15脚)接地,表示允许时钟输入。当扩展多个8位输入口时,相邻两芯片的首尾(QH与SIN)相连。

在方式0下,SCON中的TB8、RB8位没有用到,发送或接收完8位数据由硬件使TI或RI中断标志位置1,CPU响应TI或RI中断,在中断服务程序中向发送SBUF中送入下一个要发送的数据或从接收SBUF中把接收到的1B存入内部RAM中。注意,TI或RI标志位必须由用户软件清0,可采用如下指令:

来把TI或RI清0。方式0时,SM2位(多机通信控制位)必须为0。

 



              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > AT89S51串行口工作方式0 -
 

"AT89S51串行口工作方式0 -"的相关文章

网站地图

围观()