- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
8.3.5MCS-51单片机串行口的工作方式MCS-51单片机串行口有4种工作方式,由SCON中的SM1、SM0位来决定,如表8.1所示。
8.3.5.1方式0在工作方式0下,串行口作同步移位寄存器用,其波特率固定为fosc/12。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。这种方式常用于扩展I/O口。
当一个数据写入串行口发送缓冲器SBUF时,串行口将8位数据以fosc/12的波特率从RXD引脚输出(低位在前),发送完置中断标志TI为1,请求中断。在再次发送数据之前,必须由软件清TI为0。具体接线图如图8.11所示。其中74LS164为串入并出移位寄存器。发送
图8.11方式0用于扩展I/O口输出
接收在满足REN=1和RI=0的条件下,串行口即开始从RXD端以fosc/12的波特率输入数据(低位在前),当接收完8位数据后,置中断标志RI为1,请求中断。在再次接收数据之前,必须由软件清RI为0。具体接线图如图8.12所示。其中74LS165为并入串出移位寄存器。
图8.12方式0用于扩展I/O口输入
串行控制寄存器SCON串行控制寄存器SCON中的TB8和RB8在方式0中未用。值得注意的是,每当发送或接收完8位数据后,硬件会自动置TI或RI为1,CPU响应TI或RI中断后,必须由用户用软件清0。方式0时,SM2必须为0。
在工作方式1下,串行口为波特率可调的10位通用异步接口UART,发送或接收一帧信息,包括1位起始位,8位数据位和1位停止位。其帧格式如图8.13所示:8.3.5.2方式1
图8.1310位的帧格式
发送时,数据从TXD输出,当数据写入发送缓冲器SBUF后,启动发送器发送。当发送完一帧数据后,置中断标志TI为1。方式1所传送的波特率取决于定时器T1的溢出率和PCON中的SMOD位。发送
接收接收时,由REN置1允许接收,串行口采样RXD,当采样到1到0的跳变时,确认是起始位“0”,就开始接收一帧数据。当RI=0且停止位为1或SM2=0时,停止位进入RB8位,同时置位中断标志RI;否则信息将丢失。所以,在工作方式1接收时,应先用软件清除RI或SM2标志。
在工作方式2下,串行口为11位UART,传送波特率与SMOD有关。发送或接收一帧数据包括1位起始位,8位数据位,1位可编程位(用于奇偶校验)和1位停止位。其帧格式如图8.14所示。8.3.5.3方式2
图8.1411位的帧格式
发送时,先根据通信协议由软件设置TB8,然后用指令将要发送的数据写入SBUF,则启动发送器。写SBUF的指令,除了将8位数据送入SBUF外,同时还将TB8装入发送移位寄存器的第9位,并通知发送控制器进行一次发送。一帧信息即从TXD发送,在送完一帧信息后,TI被自动置1,在发送下一帧信息之前,TI必须由中断服务程序或查询程序清0。发送
接收当REN=1时,允许串行口接收数据。数据由RXD端输入,接收11位的信息。当接收器采样到RXD端的负跳变,并判断起始位有效后,开始接收一帧信息。当接收器接收到第9位数据后,若同时满足以下两个条件:RI=0;SM2=0或接收到的第9位数据为1,则接收数据有效,8位数据送入SBUF,第9位送入RB8,并置RI=1。若不能同时满足上述两个条件,则丢弃信息。
8.3.5.4方式3工作方式3为波特率可变的11位UART通信方式,除了波特率设定方式不同之外,工作方式3和工作方式2完全相同。
文档评论(0)