- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理及应用第5章概论
5.1 串行通信概述
5.2 串行口的结构及工作原理
5.3 MCS-51串行口的应用
;5.1 串行通信概述 ;5.1.1 同步通信和异步通信;2、异步通信;2、异步通信格式;5.1.2 串行通信的制式;5.1.2 串行通信的三种制式;5.1.3 串行通信的信号传输;2、RS-232C接口标准 ;;5.2.2 串行口的控制 ;寄存器SCON的结构 ;2、电源控制寄存器PCON;5.2.3 串行口的工作方式
1.方式0
发送时,“SBUF(发送)”相当于一个并入串出的移位寄存器,由MCS-51的内部总线并行接收8位数据,并从TxD线串行输出;接收时,“SBUF(接收)”相当于一个串入并出的移位寄存器,从RxD线接收一帧串行数据,并把它并行送入内部总线。
发送操作是在TI=0下进行的,CPU通过执行mov sbuf,a指令给“sbuf(发送)”送出发送字符后,RxD线上即可发出8位数据,TxD线上发送同步脉冲。8位数据发送完毕后,TI由硬件置位,并向CPU请求中断。响应后用软件使TI清零,然后再给“sbuf(发送)”送下一个欲发送字符,重复上述过程。
接收过程是在RI=0和REN=1条件下启动的。串行数据由RxD线输入,TxD线输出同步脉冲。接收电路接收到8位数据后,RI自动置“1”和发出串行口中断请求。CPU查询到RI=1或响应中断后便可通过mov a, sbuf把接收到的数据送A。RI由软件复位。;2. 方式1
此方式下,串行口设定为10位异步通信方式。字符帧中有8位数据位,1位起始位和1位停止位。
发送操作在TI=0时,执行mov sbuf,A开始,然后发送电路自动在8位发送字符前后分别添加1位起始位和停止位,并在移位脉冲作用下在TxD线上依次发送一帧信息,发送完后自动维持TxD线为高电平。TI由硬件在发送停止位时置位,由软件复位。
接收操作在RI=0和REN=1进行。接收电路连续8次采样到RxD为低电平时,相应检测器便可确认RxD线上有了起始位。此后,接收电路就改为对第7,8,9三个脉冲进行检测,以三中取二原则来确定所采样数据的值。在接收到第9数据位(停止位)时,须满足:RI=0和SM2=0或接收到的停止位为“1”,才能把接收到的8位字符存入“sbuf(发送)”中,把停止位送RB8中,使RI=1和发出串行口中断请求。若条件不满足,则此次收到的数据被舍去,不装入“SBUF(接收)”中。;3. 方式2和方式3
二者都是11位异步收发。方式2的波特率由MCS-51主频fosc经32或64分频后提供;方式3的波特率由定时器T1的溢出率经32分频后提供,是可调的。
二者的发送和接收过程和方式1类似。不同之处在于:发送时,CPU除要把发送字符装入“SBUF(发送)”外,还把第9位数据位预先装入SCON的TB8中。第9位数据由用户安排,可以是奇偶校验位,也可是其他控制位。第9位数据位的装入可通过以下指令来完成:
SETB TB8
CLR TB8
第9数据位的值装入TB8后,可用一条以SBUF为目的的传送指令把发送数据装入SBUF来启动发送过程。一帧数据发送完后,TI=1,CPU可通过查询TI来以同样方式发送下一字符帧。; 串行口的工作方式;※串行口的通信波特率
1.方式0的波特率---固定,为fosc/12
2.方式 2 的波特率--- fosc/32或fosc/64
可用公式:波特率=(2SMOD/64)×fosc
3.方式1或3的波特率
其波特率是由定时器的溢出率决定。
波特率= (2SMOD/32)×定时器T1溢出率
而 定时器溢出率= 1/((2k-初值)×12/fosc )
代入得
波特率= (2SMOD/32)×fosc /(12 ×(2k-初值))
其中K为T1的位数。方式0时为13,方式1时为16,方式2和3时为8.;5.3 MCS-51串行口的应用 ; 如图所示电路,将串行口设置为方式0,外接一片串入并出的8位同步移位寄存器CD4094或74LS164。串口输出端RxD接移位寄存器串行输入端DATA,移位时钟脉冲TxD端接移位寄存器时钟控制端CLK,在移位时钟控制下串行数据移入寄存器;P1.0接移位寄存器输出允许端STB,通过软件置位或复位控制并行输出。 ;2、并入串出的输入口; 串并变换 ;5.3.2 单片机的双机通信;2、双机的通信协议;选波特率2400b/s, T1作波特率发生器,方式2,计数初值C为:;接收方:
(1)主程序:
T1初始化(TMOD、TH1、TL1、TR1)
串行口初始化(SCON 、PCON )
设置数据块首地址和数据块长度
开中断(EA、ES、PS)
(2)中断服务程序:
RI?0(若采用
文档评论(0)