《单片机系统设计基础》练习题答案 - 王雷 下载本文

(13)80C51在什么条件下可以响应中断?

答:首先中断允许控制寄存器IE的相应位必须置1,然后按中断优先级寄存器IP相应位设定的优先级进行响应。

中断查询在每个机器周期都要重复执行,但如果遇到下列条件之一时,虽然中断标志位为1,也不能立即产生中断。

① CPU正在处理同级或高一级的中断。

② 查询周期不处于执行当前指令的最后一个机器周期。

③ 当前正在执行返回指令(RET和RETI)或访问IE和IP指令。在执行完这些指令之后,

还应再继续执行一条指令,方可响应中断。

(14)中断响应标志位是怎样清除的? 答:IE0和IE1、TF0和TF1当完成中断响应,并转向中断服务程序时,由片内硬件自动清0。TI和RI必须由软件清0

(15)定时器/计数器有哪些功能?最高计数频率是多少?最长计时时间是多少?

答:定时器/计数器具有定时和对输入脉冲进行计数的功能。最高计数频率为晶振频率的24分之1。最长计时时间是:216×机器周期。

(16)TCON、SCON和TMOD寄存器的寻址方式有何不同?

答:TCON、SCON既可字节寻址,也可位寻址。TMOD只能进行字节寻址。 (17)若(TMOD)=6AH,定时器0和定时器1分别工作在什么方式? 答:定时器0工作于计数器方式,定时器1工作于定时器方式2。

(18)若fosc=8MHz,外部中断采用负脉冲触发方式,那么中断请求信号的低电平至少应持续多少时间?

答:中断请求信号的低电平至少应持续1.5us。

(19)设fosc=12MHz,80C51定时器的工作方式0、方式1和方式2的最大定时时间间隔分别是多少?

答:工作方式0的最大定时时间间隔是213us,工作方式1的最大定时时间间隔是216us,工作方式2的最大定时时间间隔是28us。

(20)80C51定时器工作方式3中的T0和T1有何不同?

答:在工作方式3,T0被分解成两个独立的8位定时器/计数器TL0和TH0;而T1在工作方式3时完全禁止工作。

(21)并行通信和串行通信在识别信息方式上有何区别?

答:并行通信就是数据的所有位同时传送,串行通信就是数据位按顺序传送。 (22)串行同步通信和异步通信的主要区别是什么? 答:串行同步通信的基本特点是要求发送与接收时钟严格保持同步,传送的数据位宽不存在误差累积。异步通信的基本特点是发送与接收时钟是相互独立的,不能保证完全相同,最多也不过是要求具有相同的标称频率值。

(23)串行异步通信的帧格式是怎样规定的? 答:异步串行通信的字符格式如图4.27所示。

起D0D1D2D3D4D5D6D7始停止位位“1”停止位“0”起始位奇偶位位时间有效数据位帧图4.27 异步串行通信的字符格式

图中各位的功能及有关含义如下:

起始位 发送器通过发送起始位(使数据线处于0状态,又称space 状态)而开始字符的传送。在发送器空闲时,数据线应保持在1状态(又称mark状态)。

有效数据位 起始位之后就开始传送数据位,低位在前,高位在后。串行异步通信的编码形式,可以是5,6,7或8位。

奇偶校验位 用于传送字符的差错校验,其方式为奇校验、偶校验或无校验。 停止位 停止位在最后,标志传送的结束,它对应于1状态。停止位可以是1,1.5或2位。

位时间 又称位宽度,指一个格式位的时间宽度。格式位包括有效数据位、起始位、校验位和停止位。一个格式位的宽度就是发送时钟的周期。

帧(frame) 从起始位开始到停止位结束的全部内容称之为一帧。异步通信是一帧 一帧进行的,传送可以是连续的,也可以是断续的。按帧传送时数据位较少,因此对位宽的误差积累要求相对较低。

(24)80C51串行工作方式共有几种?说明TI、RI和SMOD位的意义? 答:80C51串行工作方式共有4种。

串行控制寄存器SCON中TI为发送中断标志位,RI为接收中断标志位。电源控制寄存器PCON中的SMOD位是串行口波特率的倍增位,当SMOD=1时,串行口的波特率加倍。 (25)80C51串行口方式0怎样启动发送和接收?波特率怎样规定的?帧格式怎样规定的? 答:80C51串行口方式0执行任何一条写SBUF指令就开始发送,用软件使REN=1和RI=0,就会启动接收过程。

其波特率固定为fosc/12。 帧格式如下: ------- D0 D1 D2 D3 D4 D5 D6 D7 ------- (26)80C51串行口方式1的帧格式怎样规定的?发送和接收如何启动?接收到的数据和停止位存于什么寄存器?波特率是怎样规定的? 答:80C51串行口方式1的帧格式如下:

起 停 D0 D1 D2 D3 D4 D5 D6 D7 始 止 执行任何一条写SBUF指令就启动发送,用软件使接收允许标志位REN=1和RI=0,就启动了接收过程。

接收到的8位数据位进入SBUF,停止位进入RB8。

数据传送的波特率取决于定时器1的溢出率:波特率=2SMOD32(T1的溢出率)。

(27)80C51串行口方式2的帧格式是怎样规定的?接收到的数据存于什么寄存器?方式2的波特率是怎样规定的?

答:80C51串行口方式2的帧格式如下:

起始 停止 D8 D0 D1 D2 D3 D4 D5 D6 D7 位 位 接收到的第9位数据(TB8)就进入RB8,前8位数据则进入SBUF。 方式2的波特率是:波特率=2SMOD64fOSC

(28)80C51串行口方式2和方式3的主要区别是什么?

答:80C51串行口方式2和方式3的不同仅在于它们的波特率产生方式不同。方式2的波特率固定为fosc/32和fosc/64;方式3的波特率则由定时器1的溢出率决定,用程序设定,是

可以改变的。

(29)80C51实行串行口多机通信的过程是什么?

答:串行口工作在方式2或方式3下,接收到的数据受SM2位控制。当SM2=1,只有接收到的第9位数据RB8=1时,才将接收到的数据装入SBUF,并置位RI,发出中断请求;若RB8=0时,接收到的数据被舍弃,RI仍为0,不发出中断申请。当SM2=0时,无论接收到的第9位数据是0还是1,都要把接收到的数据送入SBUF,并置位RI,发出中断申请。

多机通信时,主机的TB8=1,表示发送的是地址;TB8=0,表示发送的是数据。通信开始时,主机首先发送地址,各从机的SM2=1,主机的TB8=1。各从机收到的RB8=1,便各自发出中断申请,并在中断服务程序中判断主机发送的地址是否与从机地址相符合。若地址相符,则说明主机要与其通信,以后该机的SM2=0,准备接收主机发来的数据;若地址不符,则仍然保持SM2=1。由于主机发送数据时TB8=0,因此没被选中的从机不会接收主机发出的数据。

(30)串行同步通信每次传送一批数据,异步通信按帧传送,为什么? 答:同步通信的基本特点是要求发送与接收时钟严格保持同步,传送的数据位宽不存在误差累积。同步通信是一次传送一批数据。每批数据的开始约定1~2个同步字符码(SYNC),用以表示传输数据流的开始,保证发送与接收的起始同步。 异步通信的基本特点是发送与接收时钟是相互独立的,不能保证完全相同,最多也不过是要求具有相同的标称频率值。异步通信以帧为单位传送,每次传送的位信息量少,致使发送完最后一位字符时,发送与接收数据位宽的累积误差不会超过允许的范围。

2. 填空题

(1) 根据功耗和抗干扰性能,74HC系列芯片要 好于 74LS系列芯片。 (2) 对于P0口,执行“MOV”类指令,可实现 通用I/O口 功能;执行“MOVX”类指令,

可实现 地址/数据总线 功能。

(3) 80C51单片机响应中断时,程序断点地址保护由片内硬件自动完成;现场保护与恢

复由用户软件完成;关中断与开中断由用户软件完成;中断返回由RETI指令完成。

(4) 80C51定时器的定时方式计数脉冲来自内部脉冲信号;计数方式的计数脉冲来自单

片机外部。

(5) 中断优先级是为中断嵌套服务的,其控制原则是:低优先级中断请求不能打断高优

先级的中断服务,但高优先级的中断请求可以打断低优先级的中断服务,从而实现中断嵌套;如果一个中断请求已被响应,则同级的中断响应将被禁止,即同级的中断不能相互打断;如果同级的多个中断请求同时出现,则由单片机内部硬件直接查询,按自然响应顺序确定执行哪一个中断。

(6) 80C51的SCON寄存器中的SM0、SM1用于 串行口工作方式选择 ;SM2主要

用于 多机通信控制 ;在方式1时,SM2一般设置为 0 ;在方式0时,SM2必须 设置为0 。

(7) 80C51串行通信工作方式1,指令 写SBUF 启动发送;标志 TI=1 结束发送。 (8) 80C51串行通信用的波特率设置成固定方式为

2SMOD(T1的溢出率)。 322SMODfOSC64;设置成可变方式为

3. 判断题×√

(1)只要EA=0,所有中断全禁止;( √ )EA=1,所有中断全开放。( × )

(2)指令RETI只完成中断返回原程序功能。( × ) (3)只有外部中断才存在中断采样问题。( √ )

(4) 80C51在执行完指令“RETI”后可立即响应中断。( × ) (5) TCON和TMOD均可用于字节和位操作。( × ) (6) 定时器方式1时,最小定时计数初值为FFFFH。( √ ) (7) 80C51串行通信传送数据是低位在前,高位在后。( √ ) (8) 波特率也可由T0溢出率实现。( × )

(9) SBUF寄存器在物理结构上是独立的,逻辑空间上是同一的。( √ ) (10) 80C51串行通信工作方式0,发送方和接收方可同时为单片机。( × ) (11) REN用软件设置,也可由硬件自动设置。( × )

(12) RI置1由内部硬件自动完成,清0则必须由软件实现。( √ )

4.编程序

(1) 设fosc=6MHZ,利用定时器0的方式1在P1.6口产生一串50Hz的方波,定时器的溢出采用中断方式处理,试编制实现程序。 答:50Hz方波的半个周期为10-2s,因此有:

(216-X)×2×10-6=10-2

求得:X=60536=EC78H

ORG 0000H AJMP START

ORG 000BH AJMP T0INT ORG 0030H START: MOV SP, #60H MOV TH0, #0ECH MOV TL0, #78H MOV TMOD, #01H SETB TR0

SETB ET0

SETB EA MAIN: AJMP MAIN T0INT: CPL P1.6 MOV TH0, #0ECH MOV TL0, #78H RETI END

(2) 设单片机晶振频率fosc=6MHZ,使用定时器1以方式0产生周期为500μs的等宽正方波脉冲,并由P1.0口输出,以查询方式完成,试编制程序。 答:(213-X)×2×10-6=250×10-6

求得:X=8067=1F83H=0001 1111 1000 0011B TL1的初值为03H,TH1的初值为FAH。

ORG 0000H

MOV TMOD,#00H

SETB TR1

LOOP: MOV TH1, #0FAH MOV TL1, #03H LOOP1: JNB TF1, LOOP1 CLR TF1 CPL P1.0 SJMP LOOP END

(3) 用定时器0以工作方式1计数,每计500次累加一次,并将累加值存于以外RAM 5000H为起始地址的4字节单元中,试编制程序实现。(略)

(4) 以80C51串行口按工作方式1进行串行数据通信。假定波特率为1200波特,以中断方式传送数据,试编写全双工通信程序。(略)

(5) 以80C51串行口按工作方式3进行串行数据通信。假定波特率为1200波特,第9位数据作寄偶校验位,以中断方式传送数据,试编写通信程序。(略)