单片机f-习题6答案

上传人:cl****1 文档编号:487697107 上传时间:2023-03-22 格式:DOC 页数:6 大小:64KB
返回 下载 相关 举报
单片机f-习题6答案_第1页
第1页 / 共6页
单片机f-习题6答案_第2页
第2页 / 共6页
单片机f-习题6答案_第3页
第3页 / 共6页
单片机f-习题6答案_第4页
第4页 / 共6页
单片机f-习题6答案_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《单片机f-习题6答案》由会员分享,可在线阅读,更多相关《单片机f-习题6答案(6页珍藏版)》请在金锄头文库上搜索。

1、-习题61. 什么是中断系统?中断系统的功能是什么?答:中断系统是指实现中断过程的硬件逻辑和实现中断功能的指令的统称。为了满足单片机系统中各种中断的要求,中断系统一般具备如下根本功能:(1). 能实现中断及返回(2). 能实现优先权排队(3). 能实现中断嵌套2. 什么是中断嵌套?答:当CPU响应*一外设的中断请求,正在进展中断处理时,假设有优先权级别更高的中断源提出中断请求,则CPU能中断正在进展的中断效劳程序,响应高级中断,在高级中断处理完后,再继续执行被中断的中断效劳程序。这一过程称为中断嵌套,如图6-1所示。假设发出新的中断申请的中断源的优先级与正在处理的中断源同级或更低时,则CPU不

2、响应这个中断申请,直至正在处理的中断效劳程序执行完后才去处理新的中断申请。图6-1 中断嵌套3. 8051单片机的中断源有几个?各个中断的标志位是什么?答:80C51单片机的中断系统有5个中断源,它们是:(1) 外部中断0:由(P3.2)引脚输入,由外部中断0触发方式选择位IT0选择其为低电平有效还是下降沿有效,当CPU检测到引脚上出现有效的中断请求信号时,中断请求标志位IE0置1,向CPU申请中断。(2) 外部中断1:由(P3.3)引脚输入,由外部中断1触发方式选择位IT1选择其为低电平有效还是下降沿有效,当CPU检测到引脚上出现有效的中断请求信号时,中断请求标志位IE1置1,向CPU申请中

3、断。(3) 定时器/计数器T0溢出中断请求,当T0定时时间到或计数满后,中断请求标志位TF0由硬件置1,向CPU申请中断。(4) 定时器/计数器T1溢出中断请求,当T1定时时间到或计数满后,中断请求标志位TF1被硬件置1,向CPU申请中断(5) 串行口中断请求,当串行口接收完一帧数据时,中断请求标志RI被硬件置1,或当串口发送完一帧数据时,中断请求标志TI被硬件置1。4. 各个中断源的中断请如何撤销的?答:定时器/计数器中断请求的撤销定时器/计数器的中断请求被响应后。硬件会自动把中断请求标志位TF0、TF1清0,因此定时器/计数器中断请自动撤销的。外部中断请求的撤销 (1) 电平触发方式外部中

4、断请求的撤销电平触发方式的中断请求标志是自动撤销的,但外部中断请求信号的低电平可能继续存在,由于单片机对、引脚没有控制作用,所以在以后的机器周期采样时,又会把已清0的IE0或IE1标志位重新置1,会屡次引起中断,因此需要外接电路来撤销中断请求信号,即在中断响应后把中断请求信号引脚从低电平强制改变为高电平。常用的电平触发方式外部中断请求信号的撤销电路如图6-8所示。图6-8电平触发方式外部中断请求的撤销电路由图6-8可见,用D触发器锁存外来的中断请求电平,外部中断请求信号通过D触发器加到单片机的或引脚上。当外部中断信号使D触发器的CP端发生正跳变时,由于D端接地,Q端输出为0,即向单片机发出中断

5、请求,CPU响应中断后,为了撤销中断请求,可利用D触发器的直接置位端SD实现,把SD端接51单片机的P1.0端,使P1.0端输出一个负脉冲就可以使D触发器置1,从而撤销了低电平的中断请求信号,所需的负脉冲可通过在中断效劳程序中增加如下两条语句得到:P1=P1 & 0*fe;P1.0=0P1=P1 | 0*01;P1.0=1 第一条语句使P1.0为0, P1口的其它各位状态不变。由于P1.0与直接置1端SD相连,故D触发器Q1,撤销了中断请求信号。第二条语句使P1.0为1,即置1端SD不起作用,目的使以后产生的新的外部中断请求信号又能向单片机申请中断。由此可见,电平触发方式的外部中断请求信号的完

6、全撤销,是通过软硬件相结合的方法来实现的。(2) 边沿触发方式外部中断请求的撤销边沿触发方式的外部中断请求的撤销,其中断标志位IE0或IE1的清0是在中断响应后由硬件自动完成的,因此边沿触发方式的外部中断请自动撤销的。串行口中断请求的撤销 串行口中断的标志位是TI和RI,但对这两个中断标志位CPU不进展自动清0,因为响应串行口的中断后,CPU无法知道是接收中断还是发送中断,所以串行口中断请求的撤销只能使用软件的方法,在中断效劳程序中用程序清0,即用如下的语句进展串行口中断标志位的去除:5. CPU响应中断时,各个中断源的中断入口函数如何编写?答:C51的中断函数格式如下:void 函数名int

7、errupt 中断号 using 工作组中断效劳程序容中断函数不能返回任何值,所以最前面用void;后面紧跟函数名,名字不要与C语言中的关键字一样;中断函数后不带任何参数,所以函数后面的小括号为空;中断号是指单片机中几个中断源的序号,可查表6-1,这个序号是编译器识别不同中断的唯一序号,此处应该设为0;最后面的using 工作组是指这个中断函数使用单片机部RAM中4个工作存放器组中的哪一组,C51编译器在编译程序时会自动分配工作组,因此using 工作组通常省略不写。6. 编写外部中断0为边沿触发方式的中断初始化程序。答:IE=0*81; / EA=1,CPU开中断,E*0=1,允许外部中断0

8、产生中断IP=0*01; / P*01,外中断0为高级中断IT0=1; /外中断0为边沿触发方式7. 电路如图6-11所示,要求单片机的主程序实现P1口控制一个共阴极数码管的各段依次点亮,不断循环,当有外中断输入时,使数码管显示0,闪烁4次后,返回原断点处继续执行程序,外中断的触发方式采用边沿触发方式。试编写程序。图6-11单片机外中断应用系统电路图答:程序如下:#include#include#define uint unsigned int #define uchar unsigned charuchar i,aa;void delay(uint z);void main()EA=1;/开

9、总中断E*1=1;/开外部中断1IT1=1;/将外部中断1设为边沿触发方式aa=0*01; P3=0*ff;while(1)P1=aa;/送入段选信号delay(1000);aa=_crol_(aa,1);/将aa循环左移1位后再赋给aavoid delay(uint z)uint *,y;for(*=z;*0;*-)for(y=110;y0;y-);void e*ter0( ) interrupt 2for(i=4;i0;i-)P1=0*3f;/送入段选信号7f,使数码管显示8delay(500);P1=0*00;/送入段选信号00,使数码管熄灭delay(500);8. 电路如图6-12所

10、示,要求单片机主程序控制P0口数码管循环显示09;外部中断发生时,控制P2口控制数码管显示09,外部中断发生时,控制P1口数码管显示09,外部中断为高优先级,外部中断为低优先级,都采用边沿触发方式,数码管为共阳极数码管。试编写程序。图6-12 单片机外中断、应用系统电路图答:程序如下:#include #include #define uchar unsigned char#define uint unsigned intuchar code table= 0*c0,0*f9,0*a4,0*b0,0*99,0*92,0*82,0*f8,0*80,0*90;void delayms(uint *

11、) int i,j;for(i=*;i0;i-)for(j=110;j0;j-);void init()IT0=1; /INT0边沿触发。IT1=1; /INTl边沿触发。EA=1; /开总中断E*0=1; /使能INT0E*1=1; /使能INTlP*1=1; /中断1高优先级P*0=0; /中断0低优优先void main() uchar i;init();while(1) P0=tablei;i=(i+1)%10;/*显示0-9*/delayms(500);void *int0() interrupt 0uchar j;for(j=0;j10;j+)P2=tablej;delayms(500); P2=0*ff;void *int1() interrupt 2uchar k;for(k=0;k10;k+)P1=tablek;delayms(500); P1=0*ff;. z.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号