网站大量收购独家精品文档,联系QQ:2885784924

MCS-单片机的串行口-控制工程网.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MCS-单片机的串行口-控制工程网.doc

MCS-51单片机的串行口 MCS-51串行口具有两条独立的数据线:发送端TXD、接收端RXD,允许数据同时往两个相反的方向传输。一般通信时发送数据由TXD端输出,接收数据由RXD端输入。 一、串行口的控制寄存器 MCS-51单片机串行口是由缓冲器SBUF、移位寄存器、串行口控制寄存器SCON、电源控制寄存器PCON及波特率发生器T1组成。 1.串行口数据缓冲器SBUF MCS-51单片机内的串行接口部分,具有两个物理上独立的缓冲器:发送缓冲器和接收缓冲器,以便能以全双工的方式进行通信。串行口的接收由移位寄存器和接收缓冲器构成双缓冲结构,能避免在接收数据过程中出现帧重叠。发送时因为CPU是主动的,不会发生帧重叠错误,所以发送结构是单缓冲的。 在逻辑上,串行口的缓冲器只有一个,它既表示接收缓冲器,也表示发送缓冲器。两者共用一个寄存器名SBUF,共用一个地址99H。 即:在完成串行口初始化后,发送数据时,采用MOV SBUF,A指令,将要发送的数据输入SBUF,则CPU自动启动和完成串行数据的输出;接收数据时,采用MOV A,SBUF指令,CPU就自动将接收到的数据从SBUF中读出。 2.串行口控制寄存器SCON 串行口控制寄存器SCON包含:串行口工作方式选择位、接收发送控制位、以及串行口状态标志位。其格式如下: D7 D6 D5 D4 D3 D2 D1 D0 SM0 SM1 SM2 REN TB8 RB8 TI RI ①SM0 SM1(SCON.7、SCON.6):串行口的工作方式选择位,其编码见表6-1。 表6-1 串行口的工作方式 SM0 SM1 SM1 工作方式 说 明 波特率 0 0 方式0 同步移位寄存器 fosc/12 0 1 方式1 10位异步收发 由定时器控制 1 0 方式2 11位异步收发 fosc/32或fosc/64 1 1 方式3 11位异步收发 由定时器控制 ②SM2(SCON.5):.4):串行口接收允许位。由软件置位以允许接收,由软件清0来禁止接收。 ④TB8(SCON.3):在方式2和方式3中为发送的第9位数据。在多机通信中,常以该位的状态来表示主机发送的是地址还是数据。通常协议规定:TB8为“0”表示主机发送的是数据,为“1”表示发送的是地址。 ⑤RB8(SCON.2):在方式2和方式3中为接收到的第9位数据。它和SM2、TB8一起用于通信控制。 ⑥TI(SCON.1):发送中断标志。由硬件在方式0串行发送第8位结束时置位,或在其他方式串行发送停止位的开始时置位,必须由软件清“0”。 ⑦RI(SCON.0):接收中断标志。由硬件在方式0串行接收到第8位结束时置位,或在其他方式串行接收到停止位的中间时置位,必须由软件清“0”。 3.电源控制寄存器PCON 电源控制寄存器PCON的格式如下: D7 D6 D5 D4 D3 D2 D1 D0 SMOD D7位SMOD是串行口波特率倍增位。SMOD为1时,串行口工作方式1、方式2、方式3的波特率加倍。具体值见各种工作方式下的波特率计算公式。 二、串行口的工作方式 (一)方式0 方式0为同步移位寄存器输入输出方式。其工作方法是:串行数据通过RXD端输入/输出,TXD则用于输出移位时钟脉冲。方式0时,收发的数据为8位,低位在前,高位在后。波特率固定为fosc/12,其中fosc为单片机的晶振频率。 图6-6 方式0发送、接收电路 a) 发送接口电路 b) 接收接口电路 利用此工作方式,可以在串行口外接移位寄存器以扩展I/O接口,也可以外接串行同步输入输出的设备。图6-6所示为串行口外接一片移位寄存器74LS164的输出接口电路和74LS165的输入接口电路的情况。 数据的发送是以写SBUF寄存器指令开始的,8位数据由低位至高位顺序由RXD端输出,同时由TXD端输出移位脉冲,且每个脉冲输出一位数据。8位数据输出结束时TI被置位。在图6-6a所示串行口输出电路中,74LS164为一串入并出的移位寄存器,据此通过串行口方式0发送数据可编程如下: WAIT: MOV SETB MOV MOV JNB CLR CLR SCON,#00H P1.0 A,#DATA SBUF,A TI,WAIT TI P1.0 ;选通74LS164 ;置要发送的数据 ;数据写入SBUF并启动发送 ;等待一个字节数据发送完 ;清除TI ;关闭74LS164 图6-6 b是串行口在方式0下利用并入串出芯片74LS165来完成数据的接收。接收是在REN=1和RI=0同时满足时开始的,在移位时钟同步下,将数据字节的低位至高位一位一位地接收下来并装入SBUF中,结束时RI置位。 (二)方式1 串行接口工作于方式1时,被定义为10位的

文档评论(0)

000 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档