- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
情景四 单片机串行通信的实现
串行口四种工作方式应用比较 方式的选择由SM1、SM0实现。 工作方式 功能 说明 波特率 方式0 8位同步移位寄存器 常用于扩展I/O口 fosc/12 方式1 10位UART 8位数据、起始位、结束位 可变(取决于定时器1溢出率) 方式2 11位UART 8位数据、起始位0、结束位1 和奇偶校验位 fosc/64或 fosc/32 方式3 11位UART 数据、起始、校验、结束位 可变(取决于定时器1溢出率) 3、串行口工作方式 任务一 串口控制数码管电路的设计与制作 方 式 0 在方式0下,串行口作同步移位寄存器用,其波特率固定为fosc/12。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。这种方式常用于扩展I/O口。 (a)方式0扩展输出接口 任务一 串口控制数码管电路的设计与制作 注意: 每当发送或接收完8位数据后,硬件会自动置TI或RI为1,CPU响应TI或RI中断后,必须由用户用软件清0。 (b)方式0扩展输入接口 图9-5 串行口工作方式0扩展输入/输出接口 任务一 串口控制数码管电路的设计与制作 方 式 1 10位的帧格式 串行口为波特率可调的10位通用异步接口UART。每发送或接收的一帧信息中,包括1位起始位0,8位数据位和1位停止位1。 任务一 串口控制数码管电路的设计与制作 方式1输出-发送数据 方式1输入-接收数据 置REN为1时,接收器检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。 当RI=0,且SM2=0(或接收到的停止位为1)时,将收到的9位数据的前8位装入SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。 任务一 串口控制数码管电路的设计与制作 任务一 串口控制数码管电路的设计与制作 1) 数据发送 当TI=0时,执行“MOV SBUF,A”指令后开始发送,由硬件自动加入起始位和停止位,构成一帧数据,然后由TXD端串行输出。发送完后,TXD输出线维持在“1”状态下,并将SCON中的TI置1,表示一帧数据发送完毕。 任务一 串口控制数码管电路的设计与制作 (2) 数据接收 RI=0,REN=1时,接收电路以波特率的16倍速度采样RXD引脚,如出现由“1”变“0”跳变,认为有数据正在发送。 在接收到第9位数据(即停止位)时,必须同时满足以下两个条件:RI=0和SM2=0或接收到的停止位为“1”,才把接收到的数据存入SBUF中,停止位送RB8,同时置位RI。若上述条件不满足,接收到的数据不装入SBUF被舍弃。在方式1下,SM2应设定为0。 任务一 串口控制数码管电路的设计与制作 (3) 波特率 波特率=2SMOD×(T1溢出率)/32 T1溢出率=1/T1定时时间= (M-T初)·T机 1 波特率= 32·12·(M-T初) 2SMOD·fosc 11位的帧格式 11位数据的异步通信。 起始位1位,数据9位,停止位1位 方式2的波特率固定为晶振频率的1/64或1/32 方式3的波特率由定时器T1的溢出率决定 方式2和方式3 任务一 串口控制数码管电路的设计与制作 任务一 串口控制数码管电路的设计与制作 工作方式2和方式3都是11位异步收发串行通信方式,两者的差异仅在波特率上有所不同。 方式2:波特率=2SMOD·fosc/64(SMOD=0或1) 方式3: (与方式1相同) 波特率= 32·12·(M-T初) 2SMOD·fosc 任务一 串口控制数码管电路的设计与制作 1) 数据发送 TI=0,发送数据前,先由软件设置TB8,可使用如下指令完成: SETB TB8 ; 将TB8位置1 CLR TB8 ; 将TB8位置0 然后再向SBUF写入8位数据,并以此来启动串行发送。一帧数据发送完毕后,CPU自动将TI置1,其过程与方式1相同。 任务一 串口控制数码管电路的设计与制作 2) 数据接收 REN=1,RI=0时,启动接收 ①若SM2=0,接收到的8位数据送SBUF,第9位数 据送RB8。 ②若SM2=1,接收到的第9位数据为0,数据不送SBUF;接收到的第9位数据为1,数据送SBUF,第9位送RB8。 MCS-51串行口的波特率 1.方式0和方式2的波特率是固定的 在方式2中,波特率取决于PCON中的SMOD值: 当SMOD=0时,波特率为fosc/64; 当SMOD=1时,波特率为fosc/32.
文档评论(0)