单片机中断学习总结_第1页
单片机中断学习总结_第2页
单片机中断学习总结_第3页
单片机中断学习总结_第4页
单片机中断学习总结_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、 8051单片机中断总结 在单片机的学习和应用中中断是一个比较难以掌握但是又特别重要的知识点,通过一段时间的学习,我觉得有必要将单片机中断进行总结。 8051单片机具有5个中断源,其中包括2个外部中断,2个定时/计数器中断和一个串行口中断(8052单片机比8051单片机多了一个定时/计数器2)。 8051单片机可以接受的中断申请一般不止一个,对于这些不止一个的中断源进行管理,就是中断系统的任务,这些任务包括:1、 开中断或关总断:中断的开放或者关闭可以通过指令实现相关特殊功能寄存器的操作,这是能否接受中断申请的关键。只有在开中断的情况下,才能接受中断源的申请(开总中断,具体执行那个中断还需要看

2、中断源和优先级的设置)。2、 终端的排队:再开中断的条件下,根据优先级的高低决定优先执行哪一个中断申请(按次序,那个着急执行那个)。3、 中断响应:在响应了中断源申请时,应使CPU从主程序转去执行中断程序,同时要把主程序正在执行的程序断点放入堆栈保护起来(保护现场),等中断执行完后,再继续执行主程序(恢复现场)。8051单片机的中断系统几个重要的特殊功能寄存器:1、 定时器控制寄存器TCON2、 串行口控制寄存器SCON3、 中断允许寄存器IE4、 中断优先级寄存器IP其中TCON和SCON只有一部分位用于中断控制。通过对以上各特殊功能寄存器中相应位置1或清0,可以实现各种中断控制功能。单片机

3、的的外部引脚P3.2(INT0)和P3.3(INT1)分别是2个外部中断源的输入。外部中断源申请有两种方式低电平触发和下降沿触发。如果是低电平触发则只要在INT0和INT1引脚上检测到低电平就为有效的中断申请。如果是下降沿触发则只需要在INT0和INT1引脚上检测到从1到0的负边沿跳变就是有效的中断申请。TCON :定时器控制寄存器D7D6D5D4D3D2D1D0TF1TF0IE1IT1IE0IT0IT0:选择外部中断INT0的触发方式。IT=0;为低电平触发,低电平有限。IT=1,下降沿触发,INT0上的负跳变有效。IT0的状态通过软件指令来置1或清0.IE0:外部中断INT0的中断申请标志

4、。当检测到INT0上存在有效的中断申请时,由内部硬件使IE0置1.当单片机转向中断服务时,由内部硬件清0.IT1:选择外部中断INT1的触发方式,用法同IT0.IE1:外部中断INT1的中断申请标志。用法同IE0.TF0:定时/计数器T0溢出中断申请标志。当T0溢出时,由内部硬件将TF0置1,CPU转向终端服务时,由内部硬件将TF0清0.TF1:定时/计数器T1溢出中断申请标志。用法同TF0。在声明中断时,可以进行位控制直接给TCON进行赋值,也可以单个赋值,比如TCON=0x05,也就是说0000 0101,等价于IT0=1,IT1=1;表示外部中断INT0和INT1都是下降沿触发有效。SC

5、ON:串行口中断标志位D7D6D5D4D3D2D1D0TIRITI:发送中断标志位。当发送完一帧串行数据后置1,必须由软件置0;RI:接受中断标志位。当接收完一帧串行数据后置1,必须由软件置0。IE:中断允许寄存器D7D6D5D4D3D2D1D0EAESET1EX1ET0EX0EA:中断总开关。EA=1,开总中断,具体中断取决于各个中断源允许控制位。EA=0时,停止所有中断申请。ES:串行口中断允许位。ES=1;串行口来中断,ES=0;串行口关中断。ET1:定时/计数器T1的溢出中断允许位。ET1=1,允许溢出中断;ET1=0,不允许中断。EX1:外部中断INT1中断允许位。EX1=1,允许外

6、部中断1申请中断;EX1=0,不允许外部中断1申请中断。ET0:定时/计数器T0溢出中断允许位。用法同ET1.EX0:外部中断INT0中断允许位。用法同EX1。在执行中断控制的时候可以直接对IE进行赋值操作,也可以进行单独位操作。如:开总中断,开外部中断INT0和INT1中断。则可以EA=1;EX1=1;EX0=1.也可以IE=10000 0101即IE=0x85。IP:中断优先级寄存器D7D6D5D4D3D2D1D0PSPT1PX1PT0PX0PS:串行口中断优先级控制位PT1:定时/计数器T1中断优先级控制位PX1:外部中断INT1中断优先级控制位PT0:定时/计数器T0中断优先级控制位P

7、X0:外部中断INT0中断优先级控制位8051的中断源中断源入口地址优先级顺序说明外部中断00003H最高来自P3.2引脚的外部中断申请定时器中断0000BH定时/计数器T0溢出中断外部中断10013H来自P3.3引脚的外部中断申请定时器中断1001BH定时/计数器T1溢出中断串行口0023H最低串行口完成一帧数据的发送或接受中断对于定时器0或1的中断请求标志TF0或TF1;外部中断0或1的中断请求标志IE0或IE1;在相应后系统通过硬件自动使标志位清0中断嵌套程序: /在8051单片机外部中断INT0,INT1端分别通过两个键接地,单片机P0、P1、P2口分别接3个共阳极的led数码管。将i

8、nt1设置为高优先级,INT0设置为低优先级,下降沿触发有效。主程序开始执行后P0口的数码管循环显示1-8.无论按下那个按键的时候主程序都会被中断,进入终端服务函数,P1或P2口显示1-8;P0口则停在刚才显示的数字上。当执行低优先级时,如果按下高优先级的按键,则P2停止刚才显示的数字,中断执行完毕后主程序又开始运行 #include"reg51.h" #define uchar unsigned char #define uint unsigned int uchar smg=0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80; /l

9、ed段码表 sbit K1=P32; sbit K2=P33; /定义键 /延时函数 void delay(uint t) uint i; for(;t>0;t-) for(i=6245;i>0;i-); / INT0终断服务函数,高优先级中断 void int0() interrupt 0 uchar i; for(i=1;i<9;i+) P2=smgi; delay(10); /循环显示18 P2=0xff; /关闭数码管显示 /INT1中断服务函数,低优先级中断 void int1() interrupt 2 uchar i; for(i=1;i<9;i+) P1

温馨提示

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

评论

0/150

提交评论