51系列单片机项目实践 教学课件 ppt 作者 石长华 主编 课件汇总 第8章 单片机中断系统

上传人:E**** 文档编号:89545716 上传时间:2019-05-27 格式:PPT 页数:25 大小:693.50KB
返回 下载 相关 举报
51系列单片机项目实践 教学课件 ppt 作者 石长华 主编 课件汇总 第8章  单片机中断系统_第1页
第1页 / 共25页
51系列单片机项目实践 教学课件 ppt 作者 石长华 主编 课件汇总 第8章  单片机中断系统_第2页
第2页 / 共25页
51系列单片机项目实践 教学课件 ppt 作者 石长华 主编 课件汇总 第8章  单片机中断系统_第3页
第3页 / 共25页
51系列单片机项目实践 教学课件 ppt 作者 石长华 主编 课件汇总 第8章  单片机中断系统_第4页
第4页 / 共25页
51系列单片机项目实践 教学课件 ppt 作者 石长华 主编 课件汇总 第8章  单片机中断系统_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《51系列单片机项目实践 教学课件 ppt 作者 石长华 主编 课件汇总 第8章 单片机中断系统》由会员分享,可在线阅读,更多相关《51系列单片机项目实践 教学课件 ppt 作者 石长华 主编 课件汇总 第8章 单片机中断系统(25页珍藏版)》请在金锄头文库上搜索。

1、第8章 单片机中断系统,8.1 项目内容:八路抢答器 8.2 程序设计 8.3 相关知识,8.1 项目内容:八路抢答器,8.1.1 基本功能 用中断方式设计一个八路抢答器,主要功能有: 1)开机后显示跑马灯。 2)主持人没有按下“开始”键不可抢答。 3)在主持人按下“开始”键后,跑马灯停止,数码 管显示“”。 4)1号8号可按键抢答,当有人按下键后,蜂鸣 器响,同时显示位号。 5)显示3s后,跑马灯从停止的位置继续显示,回 到初始状态。,8.1.2 硬件电路设计,八路抢答器电路原理图如图8-1所示。,8.2 程序设计,1.主程序流程 主程序流程如下图所示:,2.中断处理程序流程图,3.源程序

2、/* 八路抢答器的设计 */ #include #include sbit sounder=P34; / 定义P3.4脚 void Delay1ms(unsigned int count) /1ms延时函数 unsigned int i,j; for(i=0;icount;i+) for(j=0;j120;j+); ,void main(void) unsigned char i; unsigned char temp; unsigned char a,b; EA=1; / 打开CPU总中断请求 IT0=1; / 设定INT0的触发方式为脉冲负边沿触发 EX0=1; / 打开INT0中断请求

3、while(1) temp=0xfe; P1=temp; / P1口输出11111110 ,即:只有P1.0引脚输出低电平 Delay1ms(100); for(i=1;i(8-i); P1=a|b; Delay1ms(100); ,/* 外中断0的中断服务子程序 */ void intersevr0(void) interrupt 0 using 1 unsigned int m,n; unsigned char temp1; EA=0; / 关CPU总中断请求 if(P32=0) / 测试P3.2是否是低电位,如果是,则延时一段时间再测 Delay1ms(10); if(P32=0) /

4、再次测试P3.2脚电位,确保P3.2脚处的开关已 按下(去抖动) P2=0xbf; / 使数码管显示“-”,指示可以开始抢答 Delay1ms(2000); / 抢答在2s内完成 temp1=P0; switch(temp1) ,case 0xfe: P2=0xf9; break; / 第1个人抢答,数码管显示“1” case 0xfd: P2=0xa4; break; / 第2个人抢答,数码管显示“2” case 0xfb: P2=0xb0; break; / 第3个人抢答,数码管显示“3” case 0xf7: P2=0x99; break; / 第4个人抢答,数码管显示“4” case

5、0xef: P2=0x92; break; / 第5个人抢答,数码管显示“5” case 0xdf: P2=0x82; break; / 第6个人抢答,数码管显示“6” case 0xbf: P2=0xf8; break; / 第7个人抢答,数码管显示“7” case 0x7f: P2=0x80; break; / 第8个人抢答,数码管显示“8” default: P2=0xc0; break; / 没有人抢答或有两人以上同时抢答,显示“0” for(m=0;m800;m+) / P3.4脚发声提示 for(n=0;n47;n+); / 延时 sounder=sounder; / 取反输出到喇

6、叭的信号 Delay1ms(3000); / 抢答结果显示3s P2=0xff; / 使数码管全黑,为下一轮抢答做好准备 EA=1; / 开CPU总中断请求 ,8.3 相关知识,8.3.1 中断的基本概念 所谓中断,是指CPU执行正常程序时,系统中出现 特殊请求,CPU需要暂时中止当前的程序,转去处理更 紧急的事件,处理完毕后,CPU再返回原程序被中止的 地方继续执行的过程。 在计算机系统中,CPU往往要与多个不同的设备进 行短信息传递,对此常采用两种方式:一种是程序查 询方式,即CPU通过程序依次查询各个外设的状态,发 现某设备需要处理,就进行相关的操作,周而复始; 第二种是中断方式,即由设

7、备在需要进行信息传递时 提出请求,CPU接到请求后,根据情况做出相应的处理。 显然,后一种的中断方式具有以下优点:,(1)可实现主程序(一般称前台程序)和多个随机 事件(一般称后台程序)的并行处理。 (2)可提高CPU的工作效率。 (3)可按优先级予以处理,提高了实时性。 中断示意图如下:,8.3.2 MCS-51单片机的中断系统,MCS-51单片机拥有5个中断源:两个是外部中断源,由(P3.2)、P3.3)引脚输入;两个定时器/计数器T0、T1溢出时产生的中断请求TF0、TF1;一个串行口的发送中断TI或接收中断RI。,8.3.3 与中断有关的寄存器,中断允许控制寄存器IE 中断允许寄存器,

8、由它控制对中断的开放和关闭 当EA为0时,CPU将屏蔽所有的中断申请;而当EA 为1时,才可确定允许哪个中断源中断。,2中断请求标志寄存器 当有中断源发出请求时,由硬件将相应的中断标志位置1。在 中断请求被响应前,相应中断标志位被锁存在特殊功能寄存器 TCON或SCON中。TCON和SCON各位名称及作用如下图所示:,3中断优先级寄存器IP MCS-51单片机中断优先级的设定由专用寄存器IP统 一管理。它具有2个中断优先级,由软件设置每个中 断源的优先级别,可实现二级中断嵌套。IP寄存器 的各位名称及作用如下图所示。,如果几个相同优先级的中断源,同时向CPU申请中断,CPU通过内部硬件查询逻辑

9、按自然优先级顺序确定该响应哪个中断请求。其自然优先级由硬件形成,排列如下表所示。,MCS-51中断系统的主要信息可归纳如表8-2所示。,8.3.4 A51中断程序设计要点,1.中断主程序设计 主程序的设计有以下要点: 1)中断入口地址的安排 2)开放/禁止中断 3)设置中断优先级 4)设置外部中断触发方式和定时/计数器的初始化启动 2.中断服务程序设计 中断服务程序一般由4个部分组成: 1)保护现场。 2)中断服务。 3)恢复现场(准备返回)。 4)执行中断返回指令(RETI),将断点地址出栈至PC。,中断服务程序的一般结构: PUSH PSW ; 保护现场,程序状态字进栈 PUSH ACC

10、; 保护现场,累加器进栈 ; 具体中断服务内容 POP ACC ; 恢复现场 POP PSW ; 恢复现场 RETI ; 中断返回,8.3.5 C51中断程序设计要点,在C51中,中断程序的设计要点有: 1)在主函数中设置相关中断允许和优先级。 2)中断函数用关键字interrupt进行定义,格式如下: 返回值 中断函数名() interrupt 中断号 using 寄存器组号 中断号取值为04,不同值与中断源的对应关系如下表所示。,举例:单片机P1.7脚接LED发光二极管,此发光二极管随P3.2脚脉冲串亮暗变化。电路如下图所示。,用C51编写源程序如下: #include sbit P1_7

11、=P17; void INT_0( ) interrupt 0 using 2 / 外部中断0 中断服务 P1_7=!P1_7; void main() EA=1; / 开中断总开关 IT0=1; / 设定外中断0下降沿触发 EX0=1; / 外中断0打开 P1_7=0; do while(1); ,8.3.6 中断应用举例,使用中断的主要目的就是为了实现程序的并行处理 ,设计要求: 1)主程序(前台)通过P0口控制流水灯; 2)定时器T0中断程序(后台)实现秒计数并 通过LED数码管显示; 3)外部中断(后台响应用户按钮操作)实现 LED数码管显示清零。 电路如下图所示: 其A51和C51程序见书P178-183,练习与思考题,8-1 MCS-51系列单片机的中断源有哪几个?各在什 么情况下请求中断? 8-2 51系列单片机的中断分为几个中断优先级? 8-3 外部中断“电平触发”与“边沿触发”有何不 同? 8-4 C51编程时不同的中断源对应的中断号分别是多 少?能否随意改变? 8-5 用中断技术设计一个秒闪电路,其功能是发光 二极管LED每秒闪亮400ms。主机频率为12MHz。 8-6 设计一个数字时钟,要求利用定时器中断产生 定时基准实现时钟功能。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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