- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高教版单片机原理及应用答案
第七章 MCS-51的串行口
1.串行数据传送的主要优点和用途是什么?
答:串行数据传送的主要优点是硬件接口简单,接口端口少(2个)。主要用于多个单片机系统之间的数据通信。
2.简述串行口接收和发送数据的过程。
答:以方式一为例。发送:数据位由TXT端输出,发送1帧信息为10为,当CPU执行1条数据写发送缓冲器SBUF的指令,就启动发送。发送开始时,内部发送控制信号/SEND变为有效,将起始位想TXD输出,此后,每经过1个TX时钟周期,便产生1个移位脉冲,并由TXD输出1个数据位。8位数据位全部完毕后,置1中断标志位TI,然后/SEND信号失效。接收:当检测到起始位的负跳变时,则开始接收。接受时,定时控制信号有2种,一种是位检测器采样脉冲,它的频率是RX时钟的16倍。也就是在1位数据期间,有16个采样脉冲,以波特率的16倍的速率采样RXD引脚状态,当采样到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误的开始接受数据。
3.帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是方式( 1 )。
4.串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定?
答:串行口有3种工作方式:方式0、方式1、方式2、方式3;有3种帧格式,方式2和3具有相同的帧格式;方式0的发送和接收都以fosc/12为固定波特率,
方式1的波特率=2SMOD/32×定时器T1的溢出率
方式2的波特率=2SMOD/64×fosc
方式3的波特率=2SMOD/32×定时器T1的溢出率
5.假定串行口串行发送的字符格式为1个起始位,8个数据位,1个奇校验位,1个停止位,请画出传送字符“A”的帧格式。
???????????? 起始位0? 1?? 0? 0?? 0? 0?? 0? 0? 校验位 停止位
?????????????
6.判断下列说法是否正确:
(1)串行口通信的第9数据位的功能可由用户定义。(对)
(2)发送数据的第9数据位的内容在SCON寄存器的TB8位预先准备好的。(对)
(3)串行通讯发送时,指令把TB8位的状态送入发送SBUF。(错)
(4)串行通讯接收到的第9位数据送SCON寄存器的RB8中保存。(对)
(5)串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出设定。(对)
7.通过串行口发送或接收数据时,在程序中应使用:(选(3))
(1)MOVC指令? (2)MOVX指令? (3)MOV指令? (4)XCHD指令
8.为什么定时器/计数器T1用做串行口波特率发生器时,采用方式2?若已知时钟频率、通讯波特率,如何计算其初值?
解答:因为定时器/计数器在方式2下,初值可以自动重装,这样在做串口波特率发生器设置时,就避免了重装参数的操作。
已知时钟频率、通讯波特率,根据公式:,计算出初值。
9.串行口工作方式1的波特率是:( 3 )
(1)固定的,为。
(2)固定的,为。
(3)可变的,通过定时器/计数器T1的溢出率设定。
(4)固定的,为。
10.在串行通讯中,收发双方对波特率的设定应该是( 相等 )的。
11.若晶体振荡器为11.0592MHz,串行口工作于方式1,波特率为4800b/s,写出用T1作为波特率发生器的方式控制字和计数初值。
解答:初值计算:查阅P148表7-2可得,FAH
控制字:ANL TMOD,#0F0H
? ORL TMOD,#20H
? MOV TH1,#0FAH
? MOV TL1,#0FAH
? MOV SCON,#40H
12.简述利用串行口进行多机通讯的原理。
解答:参考P146页。
13.使用8031的串行口按工作方式1进行串行数据通讯,假定波特率为2400b/s,以中断方式传送数据,请编写全双工通讯程序。
解答:略
14.使用8031的串行口按工作方式3进行串行数据通讯,假定波特率为1200b/s,第9数据位作奇偶校验位,以中断方式传送数据,请编写通讯程序。
解答:略
15.某8031串行口,传送数据的帧格式为1个起始位(0),7个数据位,1个偶校验位和1个停止位(1)组成。当该串行口每分钟传送1800个字符时,试计算出波特率。
解答:串口每秒钟传送的字符为:1800/60=30个字符/秒
????? 所以波特率为:30个字符/秒×10位/个字符=300b/s
16.为什么MCS-51串行口的方式0帧格式没有起始位(0)和停止位(1)?
解答:串行口的方式0为同步移位寄存器输入输出方式,常用于外接移位寄存器,以扩展并行I/O口,一般不用于两个MCS-51之间的串行通信。该方式以fosc/12的固定波特率从低为位到高位发送或接受数据。第八
文档评论(0)