51单片机课后答案(张毅刚)第7章部分习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章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种帧格式:方式0为8位数据,方式1为8位数据、起始位、终止位,方式2和3具有相同的帧格式,为9位数据、起始位、终止位;方式0的发送和接收都以fosc/12为固定波特率,方式1的波特率=2SMOD/32×定时器T1的溢出率,方式2的波特率=2SMOD/64×fosc,方式3的波特率=2SMOD/32×定时器T1的溢出率。
5.假定串行口串行发送的字符格式为1个起始位,8个数据位,1个奇校验位,1个停止位,请画出传送字符“A”的帧格式。
答:“A”的AS CⅡ码为“01000001”
从左向右:0,1,0,0,0,0,0,1,0,0, 1 起始位低位高位奇偶位终止位
6.判断下列说法是否正确:
答:(A)串行口通讯的第9数据位的功能可由用户定义。(对)
(B)发送数据的第9数据位的内容在SCON寄存器的TB8位中预先准备好的。(对)(C)串行通讯帧发送时,指令把TB8位的状态送入发送SBUF中。(错)
(D)串行通讯接收到的第9位数据送SCON寄存器的RB8中保存。(对)
(E)串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定。(对)
7.通过串行口发送或接收数据时,在程序中应使用:
(1)MOVC 指令 (2)MOVX 指令 (3)MOV 指令 (4)XCHD 指令
答:(3)
8.为什么定时器/计数器T1用做串行口波特率发生器时,采用方式2?若已知时钟频率、通讯波特率,如何计算其初值?
答:因为定时器/计数器在方式2下,初值可以自动重装,这样在做串口波特率发生器设置时,就避免了重装参数的操作。 已知时钟频率、通讯波特率,根据公式:)
256(12322X f OSC SMOD
-⨯⨯波特率=计算出初值。
9.串行口工作方式1的波特率是:
答:(C )可变的,通过定时器/计数器T1的溢出率设定。
10.在串行通讯中,收发双方对波特率的设定应该是( 相等 )的
11.若晶体振荡器为11.0592MHz ,串行口工作于方式1,波特率为4800b/s ,写出用T1作为波特率发生器的方式控制字和计数初值。
答:设置波特率控制位(SMOD)=0,则计数初值为0FAH ;
设T1工作于方式2,T0工作于方式3,则方式控制字TMOD 为23H ;
MOV SCON ,#40H ; 串行口工作于方式1且TI=RI=0
MOV PCON ,#80H ; 波特率加倍
MOV TMOD ,#23H ; T1方式2作波特率发生器,T0工作于方式3
MOV TH1,#0FAH ; 计数初值
MOV TL1,#0FAH ;
SETB TR1; 启动T1
SETB EA ; 开串行口中断
SETB ES
15.某8031串行口,传送数据的帧格式为1个起始位(0),7个数据位,1个偶校验位和1个停止位(1)组成。当该串行口每分钟传送1800个字符时,试计算出波特率。
答:串口每秒钟传送的字符为:1800/60=30个字符/秒,所以波特率为:30个字符/秒×10位/字符=300bps
16.为什么MCS-51串行口的方式0帧格式没有起始位(0)和停止位(1)?
答:因为串行口的方式0是同步移位寄存器方式,不是用于异步串行通讯的,所以收发双方不需要确定数据帧的起始和终止,所以没有起始位(0)和停止位(1)。 FAH X ==⨯⨯⨯-=2504800
3841100592.112566