单片机课后答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6-1 简述中断、中断源、中断嵌套及中断优先级的含义。
答:中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因而必须终止原程序的执行,转去完成相应的处理程序,待处理结束之后再返回继续执行被终止原程序的过程。中断源指向CPU 提出中断申请的设备,包括中断请求信号的产生及该信号怎样被CPU 有效地识别,要求中断请求信号产生一次,只能被CPU 接收处理一次,即不能一次中断申请被CPU 多次响应。当CPU 正在执行中断服务程序时,又有中断优先级更高的中断申请产生,CPU 就会暂停原来的中断处理程序而转去处理优先级更高的中断请求,处理完毕后再返回原低级中断服务程序,这一过程称为中断嵌套.中断优先级指在实际应用系统中往往有多个中断源,且中断申请是随机的,有时还可能会有多个中断源同时提出中断申请,但CPU 一次只能响应一个中断源发出的中断请求,CPU 响应哪个中断请求,就需要用软件或硬件安排一个优先顺序,即中断优先级排队。
6-2 MCS-51 单片机提供了几个中断源?有几级中断优先级别?各中断标志是如何产生的又如何清除这些中断标志?各中断源所对应的中断矢量地址是多少?
答:(1)MCS-51 单片机提供了5 个中断源:INT0 、INT1 、T0、T1、串行口。
(2)MCS-51 系列单片机有两个中断优先级,每一个中断请求源均可编程为高优先级中
断或低优先级中断,从而实现两级中断嵌套。
(3)外部中断可以设置边沿触发或者电平触发,靠软件置位。边沿触发进入中断程序后硬件自动清中断标志。电平触发需要软件清除中断标志位,还需在中断响应后把中断请求信号引脚从低电平强制改变为高电平。
(4)定时器T0、T1 计数溢出产生中断,进入中断程序后由硬件自动清除标志位TF0 或TF1。(5)串行口发送完成或者接收到数据就触发中断,由于是两个中断标志共享一个中断向量,所以需要在中断程序里由软件判断是发送中断还是接受中断,并且只能由软件清除中断标志位。使用软件清除中断标志位的方法是:
CLR TI ;清TI 标志位
CLR RI ;清RI 标志位
(6)各中断源对应的中断矢量地址分别为:
中断源中断矢量
外部中断0 0003H
定时器T0 中断000BH
外部中断1 0013H
定时器T1 中断001BH
串行口中断0023H
定时器中断T2(仅52 系列有)002BH
6-3 外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的中断过程有何不同?怎样设定?
答:采用中断电平触发方式时,中断请求标志IT0=0,CPU 在每个机器周期的S5P2 期间采样,一旦在P3.2(INT0 )引脚上检测到低电平,则有中断申请,使IE0 置位(置1),向CPU 申请中断。在电平触发方式中,在中断响应后中断标志位IE0 的清0 由硬件自动完成,但由于CPU 对P3.2(INT0 )引脚没有控制作用,使中断请求信号的低电平可能继续存在,在以后的机器周期采样时又会把已清0 的IE0 标志位重新置1,所以,
在中断响应后必须采用其它方法撤消该引脚上的低电平,来撤除外部中断请求信号,否则有可能再次中断造成出错。采用边沿触发方式时,IT0=1,CPU 在每个机器的S5P2 期间采样,当检测到前一周期为高电平,后一周期为低电平时,使标志
IE0 置1,向CPU 申请中断,此标志位一直保持到CPU 响应中断后,才由硬件自动清除。在边沿触发方式中,为保证CPU 在两个机器周期内检测到由高到低的负跳变,高电平与低电平的持续时间不得少于一个机器周期的时间。
6-5 MCS-51 中断响应时间是否固定?为什么?
答:MCS-51 中断响应时间不固定。对一个单一中断系统,MCS-51 单片机对外部中断请求的响应时间在3—8 个机器周期。外部中断的最短的响应时间为3 个机器周期,其中中断请求标志位查询占1 个机器周期,而这个机器周期恰好又是处于指令的最后一个机器周期,该指令结束后中断即被响应,CPU 接着执行子程序调用指令LCALL 转到相应的中断服务程序入口,需2 个机器周期,所以,外部中断响应最短时间为3 个机器周期。外部中断响应的最长时间为8 个机器周期:发生在CPU 进行中断标志查询时,刚好是开始执行RETI 或是访问IE 或IP 的指令,则需把当前指令执行完再继续执行一条指令后,才能响应中断,最长需2 个机器周期。接着再执行一条指令,按最长指令(乘法指令MUL和除法指令DIV)来算,也只有4个机器周期。加上硬件子程序调用指令LCALL的执行,需要2 个机器周期。所以,外部中断响应最长时间为8 个机器周期。对于多级中断系统,响应时间无法计算。
7-1 定时/计数器有哪些特殊功能寄存器,它们有几种工作方式?如何设置?
答:(1)定时/计数器控制寄存器(TCON)、工作方式寄存器(TMOD)。
(2)定时/计数器T0 和T1 有四种不同的工作方式:方式0、方式1、方式2、方式3。(3)4 种工作方式由TMOD 中的M1 和M0 两位决定。
当TMOD 中M1M0=00 时,定时/计数器选定方式0 进行工作。
当TMOD 中M1M0=01 时,定时/计数器选定方式1 进行工作。
当TMOD 中M1M0=10 时,定时/计数器选定方式2 进行工作。
当TMOD 中M1M0=11 时,定时/计数器选定方式3 进行工作。
7-2 如果采用晶振的频率为3 MHz,在定时/计数器工作方式0,1,2 下,其最大的定时时间分别为多少?
答:晶振的频率f OSC=3MHz时,机器周期为T cy=12×(1/3MHz)=4μs。
(1)方式0 为13 位定时/计数器,计数值N = 213 –x = 8 192 x。计数初值x是由TH0 和TL0设定的初值。x = 0 时为最大计数值8 192,即计数范围为1~8 192(213)。定时时间为T d =(8 192 x) × T cy。最大定时时间为x=0 时,T d =32768μs=32.768ms。
(2)方式1 为16 位定时/计数器,计数值N = 216 –x = 65536 x。计数初值x是由TH0 和TL0设定的初值。x = 0 时为最大计数值65 536,即计数范围为1~65 536(216)。定时时间为T d = (65536 x) × T cy。最大定时时间为x=0 时,T d =262144μs=262.144ms。
(3)方式2 为8 位自动重装初值定时/计数器,计数值N = 28 –x = 256 x。计数初值x是由TH0 和TL0 设定的初值。x = 0 时为最大计数值256,即计数范围为1~256(28)。定时时间为T d = (256 x) × T cy。最大定时时间为x=0 时,T d =1024μs=1.024ms。
7-5 采用定时/计数器T0 对外部脉冲进行计数,每计数100 个脉冲后,T0 转为定时工作方式。定时1 ms 后,又转为计数方式,如此循环不止。假定MCS-51 单片机的晶体振荡器频率为6 MHz,请使用方式1 实现,要求编写出程序。
答:编写程序如下:
ORG 0000H
START: CLR TR0
MOV TMOD, #05H
MOV TH0, #0FFH