1、习题 4 答案 单片机的中断系统、定时器与串行通信 一、选择题1、若要求最大定时时间为 216机器周期,则应使定时器工作于 B 。A工作方式 0B工作方式 lC工作方式 2D工作方式 32、若要求最大定时时间为 213机器周期,则应使定时器工作于 A 。A工作方式 0B工作方式 lC工作方式 2D工作方式 33、若要求最大定时时间为 28机器周期,则应使定时器工作于 C ,D 。A工作方式 0B工作方式 1C工作方式 2D工作方式 34、定时器方式控制寄存器 TMOD 中 MlM0 为 l l 时,则设置定时器工作于 D 。A工作方式 0B工作方式 lC工作方式 2D工作方式 35、6MHz
2、晶振的单片机在定时工作方式下,定时器可能实现的最小定时时间是 B .A1 u sB2 u sC4 u sD8 u s 6、12MHz 晶振的单片机在定时工作方式下,定时器可能实现的最小定时时间是 A .A1 u sB2 u sC4 u sD8 u s7、12MHz 晶振的单片机在定时工作方式下,定时器可能实现的最大定时时间是 B .A4096 u sB8192 u SC1638 u sD32768 u s8、定时器计时器 0 的初始化程序如下:MOV TMOD,#06HMOV TH0#0FFHMOV TLO,#0FFHSETB EASETB ET0执行该程序段后,把定时器计时器 0 的工作状态
3、设置为 D 。A. 工作方式 0,定时应用,定时时间 2 u s,中断禁止B工作方式 l,计数应用,计数值 255,中断允许C工作方式 2,定时应用,定时时间 510 u s,中断禁止D工作方式 2,计数应用,计数值 1,中断允许9、设串行口工作于方式 l,晶振频率为 6MHz,波特率为 1200 位秒,SMOD=0,则定时器 l 的计数初值为 C 。AFlHBF4HCF3HDFOH10、以下所列特点,不属于串行工作方式 0 的是 D 。A波特率是固定的,为时钟频率的十二分之一B8 位移位寄存器CTI 和 RI 都须用软件清零D在通信时,须对定时器 l 的溢出率进行设置11、通过串行口发送或接
4、收数据时,在程序中应使用 A 。AMOV 指令BMOVX 指令CMOVC 指令DSWAP 指令12、若设串行控制寄存器 SCON=40H,则串行口的工作方式是 B 。A方式 0B方式 lC方式 2D方式 313、下列对 SCON 的相关位描述不正确的是 A 。A当 REN=l 时,禁止串行口接收数据B在方式 0 时,SM2 必须为 0CRI 位由软件清零DITl=1,表示帧发送结束二、填空题1、8051 单片机中的定时器计数器有 T0 和 T1 两个。2、8051 单片机中用于定时器计数器的控制寄存器有 TMOD 和 TCON 两个。3、8051 单片机有五个中断源,分别是 T0 中断 、 T
5、1 中断 、外部中断 0 、外部中断 l 和 串行中断 。4、8051 单片机有 2 个 加 法定时器计数器,它们是由 TH0 、TL0 、 THl 、和 TLl 四个专用寄存器构成的。5、8051 单片机有 5 个中断源,分成 2 个优先级。控制中断允许的寄存器是 IE ;控制中断优先级的寄存器是 IP 。6、8051 单片机 5 个中断源的入口地址分别为 0003H 、000BH 、0013H 、 001BH 和 0023H 7、外部中断 0 和外部中断 1 有两种引起中断的方式,一种是下降沿引起中断 ,另一种是 低电平引起中断 。8、要将外部中断 0 的触发方式设置成为低电平引起中断,则
6、应将 IT0 位设置成 0 。9、要将外部中断 1 的触发方式设置成为下降沿引起中断,则应将 ITl 位设置成 1 。10、串行中断可以由串行端口完成一帧字符发送或串行端口完成一帧字符接收引起中断。11、当计数器定时器 l 申请中断时, T1 中断标志 TFl 将为 1 ;而当该中断得到了响应后,TFl 为 0 。12、当串行端口完成一帧字符接收申请中断时,串行中断标志 RI 将被系统设置为 1 。当该中断得到了响应后,串行中断标志的状态为 0 。13、定时器方式控制寄存器 TMOD 中 M1M0 为 01 时,设置定时器工作于工作方式 1 。 14定时器方式控制寄存器 TMOD 中 C/T
7、为 1 时,定时器工作于 计数 状态。15、当定时器控制寄存器 TCON 中的 TF0 为 1 时,说明 T0 有中断请求 。16、中断服务程序必须使用 RETI 指令返回到主程序。17、8051 单片机工作于定时状态时,计数脉冲来自单片机内部(振荡脉冲 12 分频后的脉冲 。18、8051 单片机工作于计数状态时,计数脉冲来自 外部引脚(T0 或 T1) 。19、计算机的数据传送共有两种方式:并行数据传送 和 串行数据传送 。20、从起始位开始到停止位结束的全部内容 称为一帧(frame)。21、串行数据通信有三种数据通路形式(方向) :单工形式 、全双工形式和半双工形式。22、MCS-5l
8、 的串行口有一个缓冲寄存器,在串行发送时,从片内总线向 发送缓冲寄存器 写入数据;在串行接收时,从 接收缓冲寄存器 向片内总线读出数据。23、由于串行口的发送和接收缓冲寄存器为同一地址,所以发送与接收不能同时进行。24、在基波传输时,波特率是用来表示每秒钟传送格式位的数目的。因此,1 波特= l 位/秒 。25、通信是指 计算机与其外界的数据传送 .26、单片机中使用的串行通信都是 异步 方式。27、P30 的第二功能线为串行端口的 TXD 端。P31 的第二功能线为串行端口的 RXD端。28、串行端口的 RXD 是第 10 引脚;串行端口的 TXD 是第 11 引脚。三、判断题1、MCS-5
9、1 单片机共有五个中断源,因此相应地在芯片上就有五个中断请求输入引脚。( )2、当全局中断允许位 EA=0 时,系统将不响应任何中断。( )3、在 MCS-51 单片机中,高级中断可以打断低级中断形成中断嵌套。( )4、在一般情况下,MCS-51 单片机允许同级中断嵌套。( )5、只要有中断出现,CPU 就立即响应中断。( )6、MCS-51 单片机定时工作方式 0 与定时工作方式 l 除了计数结构位数不同,别无差别。( )7、 除了低优先级中断不能打断高优先级中断的情况外,其他情况都能形成中断嵌套。 ( )8、T0 和 T1 都是减法定时器计时器。( )9、在定时工作方式 2 状态下,因为把
10、 TH 作为预置寄存器,所以在应用程序中应当在有计数溢出时从 TH 向 TL 加载计数初值的操作。( )10、中断初始化时,对中断控制寄存器的状态设置,只能使用位操作指令,而不能使用字节操作指令。( )11、MCS-51 单片机的定时和计数都使用同一计数机构,所不同的只是计数脉冲的来源。来自于单片机内部的是定时,而来自于外部的则是计数。( )四、问答题1、设单片机的 fosc=6MHz,定时器处于不同的工作方式时,最大计数范围和定时范围分别是多少?解答:方式 0 的计数范围为:12 13方式 1 的计数范围为:12 116方式 2 的计数范围为:12 8方式 3 的计数范围为:12 8方式 0
11、 的定时范围为:(12 13)2 u s =16384 u s1638ms方式 l 的定时范围为:(12 16)2 u s =131072 u s131072ms方式 2 的定时范围为:(12 8)2 u s =512 u s方式 3 的定时范围为:(12 8)2 u s=512 u s2、简述如果要求产生的定时时间超过了单片机定时的最大范围时,如何处理才能达到要求定时的时间?设单片机的 fosc=6MHz,要求产生 1 秒钟的定时,如何处理?解答:(1)当要求产生的定时时间超过了单片机定时的最大范围时,则要采用硬件计数与软件计数相结合的方法来产生所要求的定时时间。用软件的方法对硬件定时时间进
12、行计数,如果软件计数为 n,则定时时间=n硬件定时时间。(2)使定时器工作于工作方式 l(16 位方式) ,使之产生 100ms 的定时时间,每 100ms 产生一次中断。然后使用软件对其进行计数,中断 10 次,软件就计数 10 次,从而产生 1s 的定时时间。3、8051 单片机内设有几个定时器计数器?它们是由哪些专用寄存器构成的?其地址分别是多少?解答:(1)805l 单片机内设有两个定时器计数器,一个是 T0,另一个是 Tl。(2)它们是由 TL0、TH0、TLl 和 THl 专用寄存器构成的。(3)其地址分别是 8AH、8CH、8BH 和 8DH。4、805l 单片机有几个中断源 ?
13、分成几个优先级?解答:(1)8051 单片机有 5 个中断源。(2)分成 2 个优先级,高优先级和低优先级。5、简述 8031 单片机中断嵌套的规定。解答:在 MCS 一 51 单片机中,高级中断可以打断低级中断形成中断嵌套。同级中断之间或低级对高级中断不能形成中断嵌套。若几个同级中断同时向 CPJ 提出中断申请,则CPU 按照如下顺序响应中断: T0 TlRITI0INT1I6写出 8051 单片机中 5 个中断源的名称和对应的中断服务程序入口地址。解答:5 个中断源的名称:(1)外部中断 0 (2)TO 中断 (3)外部中断 l (4)T1 中断 (5)串行中断对应的中断服务程序入口地址:
14、(1)0003H (2)000BH (3)0013H (4)00lBH (5)0023H7简述中断的全过程。解答:(1)首先由重点源引起中断请求,使相应的中断标志位为 1.(2)若全局中断允许和相应的中断允许处于打开状态,并满足中断响应的条件,而且:当前正在执行的那条指令已经执行完毕。当前未响应同级或高级中断。不是在操作 IE、IP 中断控制寄存器或执行 RETI 指令。则单片机响应该中断,进入到相应的中断服务程序中执行中断服务程序。(3)对于 、T0、 、Tl 中断,当中断响应后,自动将中断请求标志清零。0INT1I对于串行中断,不自动清除中断请求标志,必须人为用软件将中断标志清零。(4)当
15、执行到中断服务程序中的 RETI 指令时,返回到断点处,继续执行主程序。五、应用题1、设单片机的 fosc=12MHz,要求用 T0 定时 150gs,分别计算采用定时方式 0、定时方式1 和定时方式 2 的定时初值。解答:方式 0 的定时初值为:TH0: FBH,TL0:0AH方式 l 的定时初值为:TH0:FFH,TL0:6AH方式 2 的定时初值为:TH0: 6AH,TL0:6AH2、设单片机晶振频率 fosc=6MHz,使用 Tl 以工作方式 0 工作,要求定时 250 u s,计算定时初值,并写出设置时间常数的指令。解答:C=1111110000011高 8 位为 0FCH低 5 位
16、为 03H设置时间常数的指令:MOV THI,#0FCHMOV TLl,#03H3、使用定时器 T1 以工作方式 2 计数,每计数 100 次申请一次中断。求计数初值,并写出设置计数初值的指令。解答:CCEH设置时间常数的指令:MOV TH0,#0CEH ;保存定时初值MOV TL0,#0CEH ;设置定时初值4、T0 运行于定时器状态,时钟振荡频率为 12MHz,要求定时 100 u s,分别求出工作方式0、方式 1 和方式 2 的定时初值,并分别写出设置定时初值的指令。4解答:(1)方式 0。C=(t/MC)求补=(0000001100100)求补 ,= +1010=11111100110
17、11+l=1111110011100高 8 位:11111100=FCH,低 8 位:00011100=1CH指令:MOV TH0,#0FCHMOV TL0,#1CH(2)方式 lC(tMC) 求补(0000000001100100)求补=1111111l10011011+1=1111111110011100高 8 位:11111111=FFH,低 8 位:10011100=9CH指令:MOV TH0,0FFHMOV TL0,#9CH(3)方式 2C(tMC) 求补(01100100) 求补10011011+110011100指令:MOV TH0#9CHMOV TL0,#9CH5、设单片机的晶
18、振频率为 fosc=6MHz,使用 T1 工作于工作方式 0,设计程序,使 P10 端输出周期为 500 u s 的连续等宽方波,要求以查询的方式编写程序。解答:使 T1 以定时器工作,定时 250u s,每次定时时间到,将 P10 反相一次,从而产生500us 为周期的连续等宽方波。由于是查询方式,因此要禁止中断,使 IE:00H 。已知:t-250 u S25010 -6sfosc6MHz610 6HzMC=12(610 6)=210-6stMC=25010 -6(2 10-6)=125=1111101C(tMC) 求补 (0000001111101) 求补1111110000011THl
19、:11111100=FCH TL1:00011=03H程序:MOV TMOD,00HMOV THl,#0FCHMOV TL1,#03HMOV IE,#00HSETB TR1LOOP:JBC TF1,LOOP1AJMP LOOP1LOOP1: MOV THl,#0FCHMOV TL1,#03HCPL P1.0AJMP LOOP6、设单片机的晶振频率为 fosc=6MHz,使用 Tl 工作于工作方式 0,设计程序,使 P10 端输出周期为 500 u s 的连续等宽方波,要求以中断的方式编写程序。解答IE88H主程序:MOV TMOD,#00HMOV TH1,#0FCHMOV TL1,#03HMO
20、V IE,#88HSETB TR1SJMP $中断服务程序:MOV TH1,#00HMOV TL1,#0FCHCPL P1.0RETI完整的程序:ORG 001BHMOV TH1,#00HMOV TL1,#0FCHCPL P1.0RETIORG 0030HMOV TMOD,#00HMOV TH1,#0FCHMOV TL1,#03HMOV IE,#88HSETB TR1SJMP $7、设置中断有什么优点和功能?答:设置中断的优点和功能:1)可以提高 CPU 工作效率,CPU 不必花费大量时间等待和查询外设工作。2)具有实时处理功能,对实时控制系统中的各种参数和状态做出快速响应、及时处理。3)具有
21、故障处理功能,在掉电中断服务程序中将需要保存的数据和信息及时转移到具有备用电源的存储器中保护起来,待电源正常时再恢复。4)实现分时操作,控制多个外设同时工作。此外,中断系统还能用于程序调试、多机连接等方面。因此,中断系统是计算机中重要的组成部分。可以说,只有有了中断系统后,计算机才能比原来无中断系统的早期计算机演绎出多姿多彩的功能。8、涉及 8051 单片机中断控制的有哪几个特殊功能寄存器?答:涉及 805l 单片机中断控制的有中断请求、中断允许和中断优先级控制 3 个方面、4 个特殊功能寄存器:中断请求:定时和外中断控制寄存器 TCON、串行控制寄存器 SCON;中断允许控制寄存器 IE;中
22、断优先级控制寄存器 IP。9、写出 8051 五个中断源的中断请求标志名称、位地址和在哪一个特殊功能寄存器中?答:T1 溢出中断请求标志 TF1,位地址 8FH,在 TCON 中。T0 溢出中断请求标志 TF0,位地址 8DH,在 TCON 中。外中断 中断请求标志 IEl,位地址 8BH,在 TCON 中。1INT外中断 中断请求标志 IE0,位地址 89H,在 TCON 中。0串行口发送中断请求标志 TI,位地址 99H,在 SCON 中。串行口接收中断请求标志 RI,位地址 89H,在 SCON 中。10、按下列要求分别设置相关控制位。 为边沿触发方式; 为电平触发方式:IT1ITT0
23、启动运行;T1 停止运行;解:SETB IT0CLR IT1 SETB TR0 CLR TRl11、用一条指令实现下列要求: 1INT、T0 开中,其余禁中; T1、串行口开中,其余禁中;全部开中; 全部禁中; 0、T0 开中,其余保持不变; 1INT、T1 禁中,其余保持不变;解: I、T0 开中,其余禁中: MOV IE,#10000110B;T1、串行口开中,其余禁中: MOV IE,#10011000B; ,全部开中: MOV 砸,#0FFH ;全部禁中: MOV IE,#00H;或 CLR EA; 0INT、T0 开中,其余保持不变:ORL IE,#1000001lB; 1、T1 禁
24、中,其余保持不变:ANI IE,#1001001lB ;12、用定时器 1 作为波特率发生器,并把系统设置成工作方式 2,系统时钟频率为12MHz,求可能产生的最高和最低波特率。解答:当系统的串口工作于方式 2 时,根据波特率的计算公式:波特率=2SMODfosc64得:(1)当 SMOD=0 时,波特率最低为:fosc64=12 10664=1.87510 5bit/s(2)当 SMOD=I 时,波特率最高为: 2fosc64=21210 664=3.7510 5bits13、设定时器 Tl 处于工作方式 2,PCON=OOH,单片机处于串行工作方式 1,要产生1200bs 的波特率,设单片
25、机晶振频率 fosc 分别为 6MHz 和 12MHz,分别求在这两种频率下,Tl 的定时初值。解答:计算公式:x=2562 SMODfosc(384波特率)已知:波特率=1200bps ,PCON=00H,则 SMOD=0(1)fosc=6MHz=6106Hzx=256206106(384 1200)=243D=F3H定时初值为 F3H。(2)fosc=12MHz=12106Hzx=2562012 X106(3841200)=30D=E6H定时初值为 E6H。14、设置中断有什么优点和功能?解答:设置中断的优点和功能:1)可以提高 CPU 工作效率,CPU 不必花费大量时间等待和查询外设工作
26、。2)具有实时处理功能,对实时控制系统中的各种参数和状态做出快速响应、及时处理。3)具有故障处理功能,在掉电中断服务程序中将需要保存的数据和信息及时转移到具有备用电源的存储器中保护起来,待电源正常时再恢复。4)实现分时操作,控制多个外设同时工作。此外,中断系统还能用于程序调试、多机连接等方面。因此,中断系统是计算机中重要的组成部分。可以说,只有有了中断系统后,计算机才能比原来无中断系统的早期计算机演绎出多姿多彩的功能。15、涉及 8051 单片机中断控制的有哪几个特殊功能寄存器?解答:涉及 805l 单片机中断控制的有中断请求、中断允许和中断优先级控制 3 个方面、4 个特殊功能寄存器:中断请
27、求:定时和外中断控制寄存器 TCON、串行控制寄存器 SCON;中断允许控制寄存器 IE;中断优先级控制寄存器 IP。16、写出 8051 五个中断源的中断请求标志名称、位地址和在哪一个特殊功能寄存器中?解答:T1 溢出中断请求标志 TF1,位地址 8FH,在 TCON 中。T0 溢出中断请求标志 TF0,位地址 8DH,在 TCON 中。外中断 中断请求标志 IEl,位地址 8BH,在 TCON 中。1INT外中断 中断请求标志 IE0,位地址 89H,在 TCON 中。0串行口发送中断请求标志 TI,位地址 99H,在 SCON 中。串行口接收中断请求标志 RI,位地址 89H,在 SCO
28、N 中。17、按下列要求分别设置相关控制位。 为边沿触发方式; 为电平触发方式:IT1ITT0 启动运行;T1 停止运行;解答:SETB IT0CLR IT1SETB TR0CLR TRl18、写出 8051 中断允许控制寄存器 IE 结构、位名称和位地址,设置开中关中如何操作?解答:805l 对中断源的开放或关闭 (屏蔽)是由中断允许控制寄存器 IE 控制的,可用软件对各位分别置“l”或清 0,从而实现对各中断源开中或关中。IE 的结构和各位名称、位地址如下表所示。中断源 CPU 串行口 TI 1INTT0 0INT位名称 EA - - ES ET1 EX1 ET0 EX0位地址 AFH -
29、 - ACH ABH AAH A9H A8HEACPU 中断允许控制位。EA=l,CPI 开中;EA=0,CPU 关中,且屏蔽所有 5 个中断源。EX0 一外中断 中断允许控制位。 EX0=l, 开中;EX00, 关中。0INTINT0INTEXl 一外中断 中断允许控制位。EXl=l, 开中;EXl0, 关中。111ET0-定时计数器 T0 中断允许控制位。ET0=l,T0 开中;ET0=0,T0 关中。ETl-定时计数器 Tl 中断允许控制位。ETl=1 ,Tl 开中;ETl=0,T1 关中。Es-串行口中断(包括串行发、串行收)允许控制位。 ES=1,串行口开中;Es=0,串行口关中。8
30、05l 对中断实行两级控制,总控制位是 EA,每一中断源还有各自的控制位对该中断源开中或关中。首先要 EA=1,其次还要自身的控制位置“l” 。例如,要使 1INT开中(其余关中 ),可执行下列指令:MOV IE=#10000100B 或者: SETB EA SETB EX1 19、用一条指令实现下列要求: 1IT、T0 开中,其余禁中; T1、串行口开中,其余禁中;全部开中; 全部禁中; 0N、T0 开中,其余保持不变; 1INT、T1 禁中,其余保持不变;解答: I、T0 开中,其余禁中: MOV IE,#10000110B;T1、串行口开中,其余禁中: MOV IE,#10011000B; ,全部开中: MOV 砸,#0FFH ;全部禁中: MOV IE,#00H;或 CLR EA; 0INT、T0 开中,其余保持不变:ORL IE,#1000001lB; 1、T1 禁中,其余保持不变:ANI IE,#1001001lB ;