第5部分 89C51串行口及串行通讯技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5部分 89C51串行口及串行通讯技术
1、什么是串行异步通信,它有哪些作用?
答:在异步通信中,数据和字符是一帧一帧地传送。
在帧格式中,一个字符由4个部分组成:起始位、数据位、奇偶校验位和停止位。
首先起始位(0)信号只占一位,用来通知接收设备一个待接收的字符开始到达;
然后是5位~8位数据(规定低位在前,高位在后);下来是奇偶校验位(可省略),也可用这一位(1/0)来确定这一帧中的字符所代表信息的性质(地址/数据等);最后是停止位(1),用来表征字符的结束,是一位高电位,可以是1位、1.5位、2位。
通讯采用帧格式,无需同步字符;存在空闲位也是异步通讯的特征之一。
2、89C51单片记得串行口由哪些功能部件组成?各有什么作用?
答:89C51单片机的串行接口由发送缓冲器SBUF、接收缓冲器SBUF、输入移位寄存器、串行接口控制寄存器SCON、定时器T1构成的波特率发生器等部件组成。
由发送缓冲器SBUF发送数据,接收缓冲器SBUF接收数据,串行接口通讯的工作方式选择、接收和发送控制及状态标志等均由串行接口控制寄存器SCON控制和指示,定时器T1产生串行通讯所需的波特率。
3、简述串行口接收和发送数据的过程。
答:串行接口的接收和发送是对同一地址(99H)两个物理空间的特殊功能寄存器SBUF进行读或写的。当向SBUF发“写”命令时(执行“MOV SBUF,A”指令),即向发送缓冲器SBUF 装载并开始由TXD引脚向外发送一数据,发送完便使发送中断标志位TI=1。
在满足串行接口接收中断标志位RI(SCON.0)=0的条件下,置允许接收位REN(SCON.4)= 1,就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使RI=1,当发读SBUF命令时(执行“MOV A,SBUF”指令),便由接收缓冲器SBUF取出信息通过8051内部总线送CPU。
4、89C51串行口有几种工作方式?有几种帧格式?各工作方式的波特率如何确定?
答:串行接口的工作方式有4种工作方式:方式0(8位同步移位寄存器),方式1(10位异步收发),方式2(11位异步收发),方式3(11位异步收发)。
有两种帧格式:10位,11位
方式0:方式0波特率≌fosc / 12
方式2:方式2波特率≌(2SMOD·f osc)/64
在方式1和3:在方式1和3的波特率=(2SMOD/32)·[f osc/(12(256-X))
定时器T1用作波特率时,通常选用工作模式2。
5、若异步通信接口按方式3传送,已知其每分钟传送3600个字符,其波特率是多少?
答:已知每分钟传送3600个字符,方式3每个字符11位,则:
波特率=(11b/字符)×(3600字符/60S)=660b/s
6、89C51中SCON的SM2,TB8,RB8有何作用?
答:89C51中SCON的SM2是多机通信控制位,主要用于串行接口工作方式2和方式3。若置SM2=1,则允许多机通讯。
TB8是发送数据的第9位,在串行接口工作方式2和方式3中,根据发送的需要由软件置位或复位。它在许多通讯协议中可作奇偶校验位;在多机通讯中作为发送地址帧或数据帧的标志位。
RB8是接收数据的第9位,在串行接口工作方式2和方式3中,接收的第9位数据放在RB8位。它或是约定的奇/偶校验位,或是约定的地址/数据标识位。
7、设fosc=11.059MHz,试编写一段程序,其功能为对串行口初始化,使之工作与方式1,波特率为1200b/s;并用查询串行口状态的方法,读出接收缓冲器的数据并回送到发送缓冲器。
解:START: MOV SCON,#40H
MOV TMOD,#20H
MOV TH1,#0E8H
MOV TL1,#0E8H
SETB TR1
MOV A,SBUF
MOV SBUF,A
JNB TI,$
CLR TI
SJMP $
8、若晶振为11.0592MHz,串行口工作与方式1,波特率为4800b/s。写出用
T1作为波特率发生器的方式字和计数初值。
解:MOV TMOD,#20H
MOV TH1,#0FAH
MOV TL1,#0FAH
9、为什么定时器T1用作串行口波特率发生器时,常选用工作模式2?若已知系统时钟频率和通信用的波特率,如何计算其初值?
解:因为工作模式2是自动重装初值定时器,编程时无需重装时间计数初值,比较实用。若选用工作模式0或工作模式1,当定时器T1溢出时,需在中断服务程序中重装初值。
已知系统时钟频率fosc 和通信用的波特率fbaud ,可得出定时器T1模式2的初值X : X ≌256-[fosc ×(SMOD+1)]/(384×fbaud )
10、若定时器T1设置成模式2作波特率发生器,已知fosc =6MHz 。求可能产生的最高和最低的波特率是多少?
解: 最高波特率为T1定时最小值,此时初值为255,并且SMOD=1,有 fbaud=31250)
255256(12322)256(12322=-⨯=-⨯osc osc SMOD f x f 最低波特率为T1定时最大值,此时初值为0,并且SMOD=0,有 fbaud=61)
0256(12321)256(12322=-⨯=-⨯osc osc SMOD f x f
11、串行通信的总线标准是什么?有哪些内容?
答:美国电子工业协会(EIA )正式公布的串行总线接口标准有RS-232C 、RS-422、RS-423和RS-485等。
在异步串行通讯中应用最广的标准总线是RS-232C 。它包括了按位串行传输的电气和机械方面的规定,如适用范围、信号特征、接口信号及引脚说明等,适用于短距离(<15m )或带调制解调器的通信场合。采用RS-422、RS-485标准时,通讯距离可达1000m 。
12、简述单片几多机通信的原理。
答:当一片单片机(主机)与多片单片机(从机)通信时,所有从机的SM2位都置1(串行口控制寄存器SCON 中的SM 2为多机通信接口控制位)。主机首先发送的一帧数据为地址,即某从机机号,其中第9位为1,所有的从机串行口以方式2或3接收,接收数据后,将其中第9位装入RB8。各个从机根据收到的第9位数据的值来决定从机可否再接收主机的信息。若SM 2为1,则仅当接收到的第9位数据RB 8为1时,说明是地址帧,数据才装入SBUF ,置位RI ,中断所有的从机,只有被寻址的目标从机清除SM2,以接收主机发来的一帧数据,其他从机仍然保持SM2=1。当接收到的第9位数据RB 8为0时,说明是数据帧,则使接收中断标志位RI=0,信息丢失。
13、以89C51串行口按工作方式1进行串行数据通信。假定波特率为1200b/s ,以中断方式传送数据。请编写全双工通信程序。
解:(1)T1工作于方式2作为波特率发生器,取SMOD=0,T1的计数如下:
波特率=)
256(12322X f OSC SMOD
-⨯