练习与思考题 10
1. 串行数据传送的主要优点和作用是什么?
答:串行数据传送的主要优点是硬件接口简单,接口端口少( 或微机与外设之间的数据通信。
2. 单工、半双工、全双工通信有什么异同?
答:相同之处在于都是串行通信; 单工方式:数据仅按一个固定方向传送。
半双工方式:数据可实现双向传送,但不能同时进行。 全双工方式:允许通信双方同时进行数据双向传送。 3. 假定串行口串行发送的字符格式为
请画出传送字符“ F”的帧格式。
。
1 个起始位,8 个数据位,1 个奇校验位, 1 个停止位,
2 个)。主要用于微机之间
起始位 0 1
4. 若异步通信接口按方式
1 0 0 0 1 0
校验位
0 停止位
3 传送,已知其每分钟传送 3600 个字符,其波特率是多少?
答:已知每分钟传送 3600 个字符,方式 3 每个字符 11 位,则:
波特率 =(11b/字符)× ( 3600 字符 /60s)=660b/s
5. AT89S51 单片机的串行口由哪些功能部件组成?各有什么作用?
答:AT89S51 单片机的串行接口由发送缓冲器 存器、串行接口控制器
SBUF,接收缓冲器 SBUF、输入移位寄
SCON、定时器 T1 构成的波特率发生器等部件组成。
SCON 控制和指示。 定时
由发送缓冲期 SBUF 发送数据,接收缓冲期 SBUF 接收数据。串行接口通信的工作 方式选择、 接收和发送控制及状态等均由串行接口控制寄存器 器 T1 产生串行通信所需的波特率。
6. AT89S51 单片机串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何
确定?
答:串行口有 4 种工作方式:方式 0、方式 1、方式 2、方式 3; 有 3 种帧格式,方式 2 和 3 具有相同的帧格式; 方式 0 的发送和接收都以 fosc/12 为固定波特率,
SMOD /32× 定时器
T1 的溢出率
方式 1 的波特率 =2
SMOD
方式 2 的波特率 =2
/64× fosc
T1 的溢出率
SMOD /32× 定时器
方式 3 的波特率 =2
7. 为什么 MCS-51 串行口的方式 0 帧格式没有起始位( 0)和停止位( 1)?
解答:串行口的方式 0 为同步移位寄存器输入输出方式,常用于外接移位寄存器,以扩 展并行 I/O 口,一般不用于两个 MCS-51 之间的串行通信。 该方式以 fosc/12 的固定波特 率从低为位到高位发送或接受数据。
8. AT89S51 中 SCON 的 SM2,TB8 ,RB8 有何作用?
答:AT89S51 中 SCON 的 SM2 是多机通信控制位, 主要用于方式 2 和方式 3.若置 SM2=1 ,
则允许多机通信。
TB8 是发送数据的第 9 位,在方式 2 或方式 3 中,根据发送数据的需要由软件置位
或复位。它在许多通信协议中可用作奇偶校验位;在多机通信中作为发送地址帧或数据 帧的标志位。
RB8 是接收数据的第 9 位,在方式 2 或方式 3 中接收到的第 9 位数据放在 RB8 位。 它或是约定的奇偶校验位,或是约定的地址 通讯波特率,如何计算其初值?
解答:因为定时器 /计数器在方式 2 下,计数初值是自动重装的,这样在做串口波特率 发生器设置时,就避免了重装参数的操作。另外,若选用工作方式 每次自动重装初值所花的时间都是一样的,这样就提高了波特率的精度。
已知时钟频率、通讯波特率,根据公式:
0 或工作方 1,当定时器
2
T1 溢出时,需在中断服务程序中重装初值,这样就带来了难以补偿的定时误差,而方式
/数据标示位。
2?若已知时钟频率、
9. 为什么定时器 /计数器 T1 用做串行口波特率发生器时,采用方式
SMOD
波特率= 2
32
可计算出初值 X 。
fOSC 12 ( 256
X )
10. 以方式一为例,简述 AT89S51 串行口接收和发送数据的过程。
答:以方式一为例。发送:数据位由
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 次相同的值, 以确认是否是真正的起始 位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误的开始接受数据。
11. 帧格式为 1 个起始位, 8 个数据位和 1 个停止位的异步串行通信方式是方式( 12. 通过串行口发送或接收数据时,在程序中应使用:
(选(3))
(1)MOVC 指令 (2)MOVX 指令 (3)MOV 指令 (4)XCHD 指令 13. 在串行通讯中,收发双方的波特率的应该是(
相等 )的。
1 )。
14. 若定时器 T1 设置成模式 2 作波特率发生器, 已知 fosc=6MHz 。求可能产生的最高和最
低的波特率。
解:最高波特率为 T1 定时最小值时,此时初值为
SMOD
255,并且 SMOD=1 ,有:
2
波特率=
32
fOSC
=31250bps
12 ( 256 X )
0,并且 SMOD=0 ,有:
最低波特率为 T1 定时最大值时,此时初值为
SMOD
波特率=
2 32
fOSC
=61bps
12 ( 256 X )
@@@13.使用 8031 的串行口按工作方式 1 进行串行数据通讯,假定波特率为 2400b/s,以
中断方式传送数据,请编写全双工通讯程序。 解答:略
@@@14.使用 8031 的串行口按工作方式 3 进行串行数据通讯,假定波特率为 1200b/s,第
9 数据位作奇偶校验位,以中断方式传送数据,请编写通讯程序。 解答:略
@位@和解答:串口每秒钟传送的字符为: 1800/60=30 个字符 /秒 @ 1所以波特率为: 30 个字符 /秒× 10 位/ 个字符 =300b/s 15f .o个波某s停特缓冲器。 c止率8解: =位为01( START:MOV SCON,#50H ;串行接口工作于方式 1 31 11MOV TMOD,#20H ;定时器 T1 工作于模式 2 .12 0)0TH1,#0E8H MOV ;赋定时器计数初值 串5组0行MOV TL1,#0E8H 9成b口M。SETB TR1 ;启动定时器 T1 /,H当sRI,$ ? ? ? ? ? ? ? 传JNB .查.; 询 接收 z该;送 CLR ;清 RI 标志 串并RI 数,行用A,SBUF 据MOV ;读出接收缓冲器数据 试钟传送 1 个起始位(1800 个字符时,试计算出波特率。 查式为 0),7 个数据位, 1 个偶校验 编询SBUF,A MOV ;启动发送过程 写串JNB ;等待发送完 一行TI,$ 段口TI CLR ;清 TI 标志 程状SJMP $ ;结束 序态,的
将接收到的 10 个字节的数据存放在内部数据存储器 40H 开始的存储单元中。假定 fosc 其方16. 功9 数据位作为奇校验位, 法 11.0592MHz ,波特率为 1200bps,以中断方式传送数据,第 8为能9,如为读S解: 果对5出出串ORG 0000H 1接现行收 校AJMP MAIN ;上电,转向主程序 口缓通验初ORG 0023H ;串行口的中断入口地址 过冲发送数据F“FH”,然后停止工作。请编写通信程序。 始串器AJMP STOP ;转向中断服务程序 化行的,ORG 0040H ;主程序 口数使送到发送 将MAIN: MOV SP,#60H 之内方式1, TMOD,#20H MOV 部 数MOV TH1,#0E8H 据
MOV TL1,#0E8H
存
SETB TR1 储
器MOV SCON ,#0D0H
MOV PCON ,#00H2
0H 单元开始的 10
单片微机原理与应用徐春辉第10章习题答案51系列单片机的串行通信习题与思考题答案



