第六章单片机的中断系统_第1页
第六章单片机的中断系统_第2页
第六章单片机的中断系统_第3页
第六章单片机的中断系统_第4页
第六章单片机的中断系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理及应用单片机原理及应用(第六章(第六章 单片机的中断系统)单片机的中断系统)教学内容教学内容u 中断系统概述中断系统概述u 中断系统的控制中断系统的控制u 中断系统的编程中断系统的编程DATE: 2022-5-5PAGE: 2 一、中断系统概述一、中断系统概述4当CPU在执行某一程序过程中,在突发事件的请求下,CPU中断当前正在执行的程序,自动转去执行为处理该事件而预先编写的服务程序,当服务程序执行完后,CPU继续执行原来的程序,这一过程称为中断。4请求产生中断的事件称为中断源,中断源向CPU提出请求称为中断请求或中断申请。DATE: 2022-5-5PAGE: 3 二、中断系统的控

2、制二、中断系统的控制48051单片机系统提供5个中断源,每个中断源都被分配了一个编号以及相应的中断服务程序入口地址,通过该入口地址中的跳转指令转到相应的中断服务程序。4如果多个中断源同时向CPU提出中断请求,CPU将选择优先级最高的中断源为其服务。当完成高优先级的中断服务后,CPU才能响应低优先级的中断请求。DATE: 2022-5-5PAGE: 4 二、中断系统的控制二、中断系统的控制48051单片机允许对中断系统进行中断允许控制和中断优先级控制,可以分别通过配置中断允许寄存器IE和中断优先级寄存器IP来实现这两项控制。4(1)定时/计数器控制寄存器TCON表6-2 给出了TCON的格式,其

3、中低四位用于控制外部中断INTO和INT1的工作方式。DATE: 2022-5-5PAGE: 5 二、中断系统的控制二、中断系统的控制4(2)中断允许寄存器IE 通过配置中断允许寄存器IE可以实现对中断源的开放或屏蔽设置,并且可以实现两级控制。 所有的中断源同受一个总开关控制,能够控制所有中断源是否开放, 5个中断源分别对应一个中断屏蔽位,可以单独设置该中断是否开放,可以进行位寻址。 DATE: 2022-5-5PAGE: 6 二、中断系统的控制二、中断系统的控制4(3)中断优先级寄存器IP48051单片机支持两种中断优先级,5个中断源分别对应一个中断优先级控制位,均可以单独设置为高优先级或低

4、优先级,该功能通过配置中断优先级寄存器IP来实现。中断优先级寄存器IP可以位寻址。DATE: 2022-5-5PAGE: 7 二、中断系统的控制二、中断系统的控制4例6-1,如果IP的值设为06H,如果5个中断请求同时发生,求中断响应的次序。 4解:06H化为二进制是00000110B,根据表6-4知,定时器T0和外中断 被设置成高优先级中断,因此如果5个中断请求同时发生,中断响应的先后次序是:定时器T0外中断INT1外中断 定时器T1串行中断。DATE: 2022-5-5PAGE: 8 三、中断系统的编程三、中断系统的编程中断函数的定义:void 函数名(void) interrupt n

5、using m中断函数内容 修饰符interrupt n表明该中断服务程序所对应中断源的中断号,编译器会把该函数转化为中断函数,并在对应的中断入口地址处添加跳转指令,以便转入本中断函数。 修饰符using m 用于指定本函数内部使用的工作寄存器组,m的取值为03。该修饰符可省略,由编译器去分配。DATE: 2022-5-5PAGE: 9 三、中断系统的编程三、中断系统的编程4编写中断函数时,应注意以下几点: (1)中断函数不带任何参数,否则会导致编译出错。 (2)中断函数不能有返回值,所以函数类型应为void。 (3)中断函数必须由中断源触发而自动调用,不得直接调用,因此也不用提前声明。 (4

6、)中断函数要精简,避免因执行时间过长影响其它中断的响应。DATE: 2022-5-5PAGE: 10 三、中断系统的编程三、中断系统的编程4例6-2 如图6-2所示,P0口连接了8个发光二极管, 引脚上接了一个按键,要求每次按键均能改变发光二级管的亮灭。DATE: 2022-5-5PAGE: 11 三、中断系统的编程三、中断系统的编程#include #define LED P0sbit KEY = P33;bit flag=0;void delay(unsigned char n) /延时子函数延时子函数; unsigned char a; for(a=0;an;a+); main(void

7、) IT1=1;/设置边沿触发方式设置边沿触发方式 EA=1; EX1=1; LED=0 xff;/发光二极管灭发光二极管灭DATE: 2022-5-5PAGE: 12 三、中断系统的编程三、中断系统的编程while(1) if( flag=1 ) /有外部中断的按键有外部中断的按键 delay(100); /延迟一段时间,判断是否为抖动延迟一段时间,判断是否为抖动 if( KEY=0 ) /还有按键,说明不是抖动还有按键,说明不是抖动 while( !KEY );/等待按键松开等待按键松开 LED=LED;/改变发光二级管的亮灭改变发光二级管的亮灭 flag=0; /上次外部中断已经处理完毕

8、,所以清除该变量上次外部中断已经处理完毕,所以清除该变量EX1=1; /再次开放外部中断再次开放外部中断 void int1(void) interrupt 2/中断服务程序中断服务程序 flag=1;/设置中断标志变量为真,表明有按键闭合设置中断标志变量为真,表明有按键闭合 EX1=0; /暂时不允许再次产生外部中断暂时不允许再次产生外部中断DATE: 2022-5-5PAGE: 13 三、中断系统的编程三、中断系统的编程u 编写中断服务程序时,应避免使中断时间过长的操作,如果本例中断服务程序编成如下形式:void int1(void) interrupt 2/中断服务程序 delay(10

9、0); /延迟一段时间,判断是否为抖动 if( KEY=0 )/还有按键,说明不是抖动 while( !KEY ); /等待按键松开 LED=LED;/改变发光二级管的亮灭 由于中断函数里有去除按键抖动以及等待按键松开的处理,当按键时间过长时,程序会陷入执行语句while( !KEY )不得退出,有可能造成程序逻辑错误。如果此时系统中同时使用串口中断收发数据,会使串口中断请求得不到CPU及时响应,造成串口数据收发错误。DATE: 2022-5-5PAGE: 14 三、中断系统的编程三、中断系统的编程使用定时器使用定时器T0中断,必须初始化中断,必须初始化T0,初始化内容包括以下,初始化内容包括

10、以下几个方面:几个方面:(1)确定计数初值以及定时器工作方式,即配置TMOD;(2)开放定时器中断,即设定EA=1,ET0=1;(3)启动定时器T0工作,即TR0=1;。(4)由于方式0或1不具有初值自动重装载功能,所以每次中断后必须将计数初值再次装载。DATE: 2022-5-5PAGE: 15 三、中断系统的编程三、中断系统的编程4例6-3 单片机的P0口接了8个发光二极管,要求使用定时器T0中断实现流水灯操作,流水频率为每0.5秒钟更替一次(假设单片机外接11.0592MHz的晶振)。DATE: 2022-5-5PAGE: 16 三、中断系统的编程三、中断系统的编程#includeunsigned char cnt=0;/用于中断次数计数unsigned char led =0 xfe;/初始化流水灯int main(void)TMOD=0 x01; /16位定时方式TH0=(65536-46083)/256; /初始化T0的高8位TL0=(65536-46083)%256; /初始化T0的低8位EA=1;ET0=1;/开中断TR0=1;/启动T0工作 while(1);DATE: 2022-5-5PAGE: 17 三、中断系统的编程三、中断系统的编程void T0_int(void) interrupt 1 cnt+;if( cnt=10 )/0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论