上受到一定的限制。问以下几种中断优先级顺序的安排(级别由高到低)是否可能?如可能,则应如何设置中断源的中断级别?否则,请叙述不可能的理由。
(1)定时器0,定时器1,外中断0,外中断1,串行口中断。 可能。其中:定时器0,定时器1为高优先级。
(2)串行口中断,外中断0,定时器0,外中断1,定时器1。 可能。其中:串行口中断为高优先级。
(3)外中断0,定时器1,外中断1,定时器0,串行口中断。 不可能。
(4)外中断0,外中断1,串行口中断,定时器0,定时器1。 可能。其中:外中断0,外中断1,串行口中断为高优先级。 (5)串行口中断,定时器0,外中断0,外中断1,定时器1。 不可能。
(6)外中断0,外中断1,定时器0,串行口中断,定时器1。 不可能。
(7)外中断0,定时器1,定时器0,外中断1,串行口中断。 可能。其中:外中断0,定时器1为高优先级。
第5章习题答案
1.8051定时器/计数器有哪几种工作模式?各有什么特点?
答:8051定时器/计数器有0,1,2,3四种工作模式。模式0为13位1定时器/计数器,模式1为16位1定时器/计数器,模式2为自动赋初值的8位定时器/计数器,模式3可以增加一个8位定时器(T1没有模式3)。
2.8051定时器作定时和计数时,其计数脉冲分别由谁提供?
答:8051定时器作定时器时,输入的记数脉冲是由晶体振荡器的输出经12分频后得到的,所以定时器可看作是对单片机机器周期的计数器。8051定时器作计数器时,则对外部事件进行计数。
3.8051定时器的门控信号GATE为1时,定时器如何启动?
答:8051定时器的门控信号GATE为1时,只有INT0(或INT1)引脚为高电平且TR0(或TR1)置1时,相应的T0或T1才能选通工作。
4.定时器/计数器0已预置为156,且选定用于模式2的计数方式,现在T0引脚上输入周期为1ms的脉冲,问:
(1) 此时定时器/计数器0的实际用途是什么? (2) 在什么情况下,定时器/计数器0溢出?
答:(1)此时定时器/计数器0的实际用途是0。1S脉冲信号发生器。 (2)当T0每记数100次后定时器/计数器0溢出。 5.设fosc=12MHz,定时器0的初始化程序和中断服务程序如下:
MAIN: MOV TH0, #9DH
MOV TL0, #0D0H MOV TMOD, #01H SETB TR0 … 中断服务程序:
MOV TH0, #9DH MOV TL0, #0D0H … RETI 问:(1) 该定时器工作于什么方式? (2) 相应的定时时间或计数值是多少? 答:(1)该定时器以模式1工作于定时方式。 (2)相应的定时时间为25。136ms.
6.8051单片机的fosc=6MHz,如果要求定时时间分别位0.1ms和5ms,当T0工作在模式0、模式1和模式2时,分别求出定时器的初值。
答:(1)定时时间分别位0.1ms时:模式0初值为8142、模式1初值为65486,模式2初值206。
(2)定时时间分别位5ms时:模式0初值为5692、模式1初值为63036,模式2此时定时时间不够。
7.以定时器1进行外部事件计数,每计数1000个脉冲后,定时器1转为定时工作方式。定时10ms后,又转为计数方式,如此循环不止。设fosc=6MHz,试用模式1编程。
解:先确定T1作为计数器时初值为:64536(0FC68H) T1作为定时器时初值为:60536(0EC78H) 程序:SETB TR1
LOOP: MOV TMOD,#50H MOV TH1,#0FCH MOV TL1,#68H AA : JBC TF1,AA MOV TMOD,#10H MOV TH1,#0E0H MOV TL1,#78H BB: JBC TF1,BB SJMP LOOP END 8.已知8051单片机的fosc=6MHz,试利用T0和P1.0输出矩形波。矩形波高电平宽100μs,低电平宽300μs。
解:先确定 T0作为定时器工作于模式2时初值为:高电平为50,低电平为150。
采用中断方式编程。
ORG 0000H AJMP MAIN ORG 001BH AJMP TIM0 ORG 0030H
MAIN: MOV SP,#30H ; 设置栈底
MOV TMOD,#02H MOV TL0,#50 MOV IE,#82H SETB P1.0 SETB TR0 SJMP $
ORG 0100H
TIM0: JNB P1.0, AA CLR P1.0
MOV TL0,#150 RETI
AA: SETB P1.0 MOV TL0,#50 RETI END
9.设fosc=12MHz,试编写一段程序,功能为:对定时器T0初始化,使之工作在模式2,产生200μs定时,并用查询T0溢出标志的方法,控制P1.1输出周期为2ms的方波。
解:先确定 T0作为定时器时初值为:56 程序: MOV TMOD,#02H MOV TL0,#56 MOV TH0,#56
MOV R7,#5 ; 设置循环次数 SETB TR0 AA: JBC TF0,AA DJNZ R7,AA CPL P1.1 MOV R7,#5 SJMP AA END
10.已知8051单片机系统时钟频率为6MHz,利用其定时器测量某正脉冲宽度时,采用哪种工作模式可以获得最大的量程?能够测量的最大脉宽是多少?
第6章习题答案
1.异步通信和同步通信的主要区别是什么?MCS-51串行口有没有同步通信功能? 答案:
异步通信因为每帧数据都有起始位和停止位,所以传送数据的速率受到限制。但异步
通信不需要传送同步脉冲,字符帧的长度不受限制,对硬件要求较低,因而在数据传送量不很大。同步通信一次可以连续传送几个数据,每个数据不需起始位和停止位,数据之间不留间隙,因而数据传输速率高于异步通信。但同步通信要求用准确的时钟来实现发送端与接收端之间的严格同步。 MCS-51串行口有同步通信功能。 2.解释下列概念:
(1) 并行通信、串行通信。 (2) 波特率。
(3) 单工、半双工、全双工。 (4) 奇偶校验。 答案:
(1)并行通信:数据的各位同时进行传送。其特点是传送速度快、效率高,数据有多少位,就需要有多少根传输线。当数据位数较多和传送距离较远时,就会导致通信线路成本提高, 因此它适合于短距离传输。
串行通信:数据一位一位地按顺序进行传送。其特点是只需一对传输线就可实现通信,当传输的数据较多、距离较远时,它可以显著减少传输线,降低通信成本,但是串行传送的速度慢。
(2)波特率:每秒钟传送的二进制数码的位数称为波特率(也称比特数),单位是bps(bit per second),即位/秒。
(3)单工:只允许数据向一个方向传送,即一方只能发送,另一方只能接收。
半双工:允许数据双向传送,但由于只有一根传输线,在同一时刻只能一方发送,另一方接收。
全双工:允许数据同时双向传送,由于有两根传输线,在A站将数据发送到B站的
单片机原理及应用教程第3版习题课后答案



