4.当置 ES=0 时,禁止串行口中断;当置 ES=1 时,允许串行口中断。 5.PX1是外部中断1优先级设置位。当置 PX1=0 时,该中断源被定义为低优先级;当置 PX1=1时,该中断源被定义为高优先级。
14、CPU在响应/INT0中断申请之后,(PC)= 0003H 。
17、51单片机外部中断请求信号的输入引脚是 和 ;外部中断请求信号可设置为 触发方式和 触发方式。p3.2 p3.3 电平 边沿
1、中断处理的全过程分为以下4个段:中断请求、中断响应、中断服务、中断返回。 5.外部中断有两种触发方式,电平触发方式和边沿触发方式。其中电平触发方式只适合于外部中断以 (高或低)电平输入,边沿触发方式适合于以 (正或负)脉冲输入。答案:3. 低 负
2、若IP=00010100B,优先级别最高者为 外中断1 、最低者为 定时器/计数器1 。 6.若(IP)=00001101B,则优先级最高者为 ,最低者为 。答案:4. PX0 PT0 (IP:— — — PS PT1 PX1 PT0 PX0) 9、若(IP)=00010101B,则优先级最高者为 ,最低者为 。(IP:— — — PS PT1 PX1 PT0 PX0)
答案:2、 外部中断0 ,定时器1溢出
10、若(IP)=00010001B,则优先级最高者为 ,最低者为 。
(IP:— — — PS PT1 PX1 PT0 PX0)答案:2、外部中断0 , 串行口中断 。
11、在中断子程序使用累加器、工作寄存器等资源时,要先将其原来的内容保存起来,这一过程叫做 。当中断子程序执行完毕,在返回主程序之前,要将这些内容再取出,送还到累加器、工作寄存器等原单元中,这一过程称为 。答案:3、 保护现场 , 恢复现场
13、系统在复位后,能不能响应中断申请? 答: 不能
三、简答题
1.MCS-51单片机有几个中断源?各中断标志是如何产生的?如何撤销的?各中断源的中断矢量分别是什么?
答:MCS-51单片机有5个中断源。外中断0/1电平触发方式,在对应引脚上检测到低电平将中断标志位IE0/1置1向CPU申请中断,边沿触发方式,在对应引脚上检测到负跳变将中断标志位IE0/1置1向CPU申请中断;定时器/计数器0/1在计数溢出时将TF0/1置1向CPU申请中断;串行口发送1帧结束将TI置1或接收1帧数据将RI置1向CPU申请中断。对于T0/T1和边沿触发的INT0/INT1中断标志在进入中断服务程序后自动撤销;对于电平触发的INT0/INT1需在中断申请引脚处加硬件撤销电路;对于串行口中断标志TI/RI需在进入中断服务程序后用软件CLR RI或CLR TI,撤销。它们的中断矢量分别是:0003H、000BH、0013H、001BH、0023H。
2.简述MCS-51中断过程
答:中断过程分中断申请、中断响应、中断处理、中断返回4个阶段。
中断请求:各中断源根据自身特点施加合适的信号,将对应的中断标志位置1向CPU申请
中断。
中断响应:CPU对中断请求进行判断,形成中断矢量,转入响应的中断服务程序。 中断处理:根据各中断源要求执行响应中断服务程序。 中断返回:中断服务程序结束后,返回主程序。
2. 简述MCS-51系列单片机的中断响应过程。
11
答:MCS-51系列单片机的中断响应过程是按照以下顺序执行的:开中断-----中断请求------中断判断-------中断响应-------中断返回。
3. MCS-51系列单片机的外部中断有哪两种触发方式?如何设置?对外部中断源的中断请求信号有何要求?
答:MCS-51系列单片机的外部中断有电平触发和边沿触发两种方式。是由特殊功能寄存器TCON中IT0,IT1的状态确定的,如:IT0为1时外部中断0为边沿触发方式,当INT0外部引脚出现下降沿时向CPU提出中断请求, 否则为电平触发方式,当INT0外部引脚出现低电平时向CPU提出中断请求。
3.简述外中断INT0和INT1的2种触发方式(电平、边沿)的异同。
答:相同点:都是在检测到有效信号后将中断标志位置1,向CPU申请中断。
不同点:电平触发的有效信号是低电平;边沿触发的有效信号是负跳变,前一次检测到高电
平,后一次检测到低电平。
4.MCS-51单片机响应中断时,如何保护断点?如何转移到中断服务应用程序?
答:保护断点:单片机在进入中断服务程序前先将当前PC以及其它响应寄存器压入堆栈。
转入中断服务程序:单片机将当前中断源的中断矢量赋给PC,相当于一条长跳转指令。 1.简述中断服务例程和普通子子程序的区别。 答:普通子程序仅在被调用的时候才使用。而中断服务例程则是在相应中断发生的时候才使用的。
8.一个中断请求被响应必须满足什么条件?
答:中断响应必须满足以下条件:① 该中断已经被开放(当然,总中断开放是前提条件);② CPU此时没有响应同级或更高优先级的中断;③ 当前正处于所执行指令的最后一个机器周期;④ 正在执行的指令不是RETI或者是访问IE、IP的指令,否则必须再执行另外一条指令后才能响应。
10.现想用两个中断源INT0和INT1实现中断嵌套控制。INT0为高级中断,边沿触发方式;INT1为低级中断,电平触发方式,试编写其初始化程序。
解:编制初始化程序如下:
SP=50H ;设置堆栈指针
IP=01H ;设INT0为高优先级中断,INT1为低优先级中断 IT0=1 ;设INT0为边沿触发方式 IT1=0 ;设INT1为电平触发方式 EA=1 ;开总中断
EX0=1 ;允许INT0中断 EX1=1 ;允许INT1中断
说明:外部中断初始化通常有4项内容:优先级设置、中断总允许、外中断允许和中断方式设定。当然必要时还应考虑设置堆栈指针。
15、MCS51的中断系统有几个中断源?几个中断优先级?中断优先级是如何控制的?在出现同级中断申请时,CPU按什么顺序响应(按由高级到低级的顺序写出各个中断源)?各个中断源的入口地址是多少?
答:MCS51单片机有5个中断源,2个中断优先级,中断优先级由特殊功能寄存器IP控制,在出现同级中断申请时,CPU按如下顺序响应各个中断源的请求:INT0、T0、INT1、T1、串口,各个中断源的入口地址分别是0003H、000BH、0013H、001BH、0023H。
18.写出MCS-51的所有中断源,并说明说明哪些中断源在响应中断时,由硬件自动清除,哪些中断源必须用软件清除,为什么?
答:外部中断INTO 定时器/计数器中断T0 外部中断INT1 定时器/计数器中断T1 串行口中断
12
其中串行口中断TI与RI必须用软件清“0”,因为串口中断的输出中断为TI,输入中断为RI,用软件清“0”。
4:8051单片机共有5个中断源,①给出当它们同属于低优先级或高优先级时的查询次序?②若有外部中断0和定时/计数器中断0两个中断源,希望先响应外部中断0后响应定时/计数器中断0,该如何设置?③若有外部中断1和串行中断两个中断源,希望先响应串行中断后响应外部中断1,该如何设置?
答:①5个中断源属于相同优先级时的查询次序为:
外部中断0→定时/计数器中断0→外部中断1→定时/计数器中断1→串行中断。 ②将中断优先级控制寄存器IP中的PX0和PT0同设置为0或1。 ③将中断优先级控制寄存器IP中的PS设置为1,PT1设置为0。
第7章
思考题及习题7
1.如果采用的晶振的频率为24MHz,定时器/计数器工作在方式0、1、2下,其最大定时时间各为多少?
答:晶振的频率为24MHz, 机器周期为0.5μs。 方式0最大定时时间=0.5μs×213=0.5μs×8192=4096μs 方式1最大定时时间=0.5μs×216=0.5μs×65536=327686μs 方式2最大定时时间=0.5μs×28=0.5μs×256=128μs
2.定时器/计数器用作计数器模式时,对外界计数频率有何限制? 答:外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。 3.定时器/计数器的工作方式2有什么特点?适用于哪些应用场合?
答:方式2为初值自动装入的8位定时器/计数器,克服了在循环定时或循环计数应用时就存在用指令反复装入计数初值影响定时精度的问题。适用于精确定时,比如波特率的产生。
4.THx与TLx(x = 0,1)是普通寄存器还是计数器?其内容可以随时用指令更改吗?更改后的新值是立即刷新还是等当前计数器计满后才能刷新?
答:THx与TLx(x = 0,1)是计数器,其内容可以随时用指令更改,但是更改后的新值要等当前计数器计满后才能刷新。答:THX与TLX(X=0,1)是由特殊功能寄存器构成的计数器,其内容可以随时用指令更改,更改后的新值是立即刷新。但在读THX、TLX的值时,应该先读THX值,后读TLX,再读THX。若两次读得THX相同,则可确定读得的内容正确。若前后两次读得的THX有变化,再重复上述过程。
一、填空题
1. MCS-51单片机中有 2 个 16 位的定时器/计数器。
2. 定时/计数器有( 4 )种工作方式,方式2的是一个 8位自动重装初值 的定时/
计数器。
3. 定时器/计数器T0可以工作于方式 0、1、2、3 。 4. 方式0为 13 位定时器/计数器。
5. 若系统晶振频率为12MHz,则T0工作于定时方式1时最多可以定时 65536 μs。 6. 若系统晶振频率为6MHz,则定时器可以实现的最小定时时间为 2 μs。 7. 欲对300个外部事件计数,可以选用定时器/计数器T1的方式 0 或方式 1 。
13
8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. TMOD中的M1M0= 11时,定时器工作于方式 3 。
MCS-51单片机工作于定时状态时,计数脉冲来自 单片机内部的机器周期 。 MCS-51单片机工作于计数状态时,计数脉冲来自 单片机外部事件 。 当GATE=0时, 则当软件控制位TR0=1时 启动T0开始工作。
MCS-51单片机有两个定时器/计数器,即定时器/计数器0和1,简称为 T0 和 T1 。
T0和T1都具有 定时 和 计数 的功能,可以通过特殊功能寄存器来选择。
寄存器TMOD的 C/T 位又称为 工作模式选择位 ,可以选择定时功能或者计数功能。
中断控制寄存器TCON包含三个部分, TF1 和 TR1 位用于控制T1, TF0 和 TR0 位用于控制T0,其余的4位为 定时中断控制位 。
定时/记数器的工作方式由寄存器 TMOD 决定,中断请求标志由寄存器 TCON 控制。
外部中断0的中断入口地址为 0003H ,定时/记数器T1的中断入口地址为 001BH 。
定时/计数器T0工作在方式2的定时状态,已知晶振周期为12MHZ,定时时间为250us,计数初值为 6 ,如果定时时间为256us,则计数初值为 0
当AT89S51单片机的定时/计数器设置为计数方式时,外部事件的最高计数频率为振荡频率的 1/24 。
设MCS-51单片机晶振频率为12MHz,定时器作计数器使用时,其最高的输入计数频率应为_0.5MHz
若单片机的时钟频率为8MHz,则时钟周期为 ,机器周期TM= 。 0.125us 1. 5us
若要利用定时器T1产生串行通信的波特率,则T1工作在方式 2 下。 当定时器T0发生中断时,程序将自动跳到____0BH ___地址去执行。
当定时/计数器T0工作在方式3时,T0被拆分为2个独立的 8 位计数器。 三、简答题
1. 定时器作定时和计数时其计数脉冲分别由谁提供?
答:作定时器时计数脉冲由片内振荡器输出经12分频后的脉冲提供,作计数时计数脉冲由外部信号通过引脚P3.4和P3.5提供。
2. 一个定时器的定时时间有限,如何实现两个定时器的串行定时,来实现较长时间的
定时?
答:方式一,在第一个定时器的中断服务程序里关闭本定时器的中断程序,设置和打开另一个定时器;在另一个定时器的中断服务程序中关闭本定时中断,设置和打开另一个定时器。这种方式的定时时间为两个定时器定时时间的和。
方式二,一个作为定时器,在定时中断后产生一个外部计数脉冲(比如由P1.0接INT0产生),另一个定时器工作在计数方式。这样两个定时器的定时时间为一个定时器的定时时间乘以另一个定时器的计数值。
3. 当定时器T0用于方式3时,应该如何控制定时器T1的启动和关闭? 答:由T1(P3.5)口控制定时器T1的启动和关闭。
4. 定时器/计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频
率为6MHz,求允许测量的最大脉冲宽度是多少?
答:采用方式1定时工作方式。最大脉冲宽度为131.072ms。
14
5. 定时器/计数器T0和T1各有几种工作方式?简述每种工作方式的特点。如何控制
定时器/计数器的工作方式?
答:T0可以工作于方式0,1,2,3;T1可以工作于方式0,1,2
方式0:是13位定时/计数器,由TLX的低5位(TLX的高3位未用)和THX高8位组成。
方式1:TLX和THX组成16位定时/计数器。
方式2:方式2为自动重装初值的8位定时/计数器。
方式3只适用于定时/计数器T0,当T0工作在方式3时,TH0和TL0被分为两个独立的8位计数器。
通过设置TMOD中的M1、M0两位来选择工作方式,如下表所示。 M1 0 0 1 1
6. 设单片机的晶振频率fOSC=6MHz,分别讨论定时器/计数器0在各种工作方式下的
最长定时时间。
答:由fOSC=6MHz可知,一个机器周期T=2us,由于是加1计数,所以最长定时应是计数初值最小时(即为0时)的定时时间。
方式0:(213–0)×2us= 214us=16384us=16.384ms 方式1:(216–0)×2us= 217us=131.072ms 方式2、3:(28–0)×2us= 29us=0.512ms
5.简述MCS-51单片机定时/计数器中定时/计数初值的设置方法。
设单片机时钟电路的振荡频率fosc为11.0592MHz,则经12分频后得到的机器周期T0为:
M0
0 1 0 1
工作方式
方式0 方式1 方式2
方式说明 13位定时/计数器 16位定时/计数器
具有自动重装初值的8位定时/计数器
方式3 T0为两个独立的8位计数器,T1为波特率发生器
=T01212==μs1.085μsfosc11.0592
MCS-51单片机的定时/计数器T1和T0都是增量计数器,因此不能直接将要计数的值
作为初值放入寄存器中,而是将计数的最大值(溢出值)减去实际要计数的值,将差值存入寄存器中。所以定时/计数器计数初值的计算公式如下:
计数初值=2n?实际计数值
式中,n为由工作方式决定的定时/计数器位数。在工作方式0下,n取13,2=8192;在工作方式1下,n取16,2=65536。
1613第8章
1. 帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是 。答:方式1
15