您好,欢迎访问三七文档
技术支持:主讲:wang1jinWang1jin带您从零学单片机配套学习板:WJ-V4.0AVR+51开发板第四章:51单片机中断部分技术支持:主讲:wang1jin课程简介Ø51单片机中断Ø中断简介Ø中断相关寄存器功能讲解Ø中断优先级讲解Ø中断应用操作流程Ø中断程序实例设计1Ø课后作业技术支持:主讲:wang1jin中断简介中断是指当单片机在正常执行程序的时候,系统中有再为紧急需要处理的情况或特殊请求,CPU暂时中止现在程序运行,转去对随机发生更为重要的事件进行处理,处理完毕后CPU再返回原来的程序继续执行。技术支持:主讲:wang1jin中断简介51单片机普通的芯片,一般有5个中断源,有2个中断优先级,每个中断源的优先级可以编程控制。中断允许受到CPU开中断和中断源开中断的两级控制。技术支持:主讲:wang1jin中断源简介5个中断源是:外部中断0,由INT0/P3.2输入;外部中断1,由INT1/P3.3输入;定时器/计数器0溢出中断请求;定时器/计数器1溢出中断请求;串行口发送/接收中断请求;技术支持:主讲:wang1jin中断设置方法中断控制器主要是实现中断的开关管理和中断优先级管理,这二个管理主要是对特殊功能寄存器IE和IP的编程实现的。中断允许寄存器IE▼EX0、EX1外部中断0/1中断允许位当EX0、EX1为1时,外部中断0/1允许,开中断。当EX0、EX1为0时,外部中断0/1不允许,关中断。▼ET0、ET1定时器/计数器0/1溢出中断允许位当ET0、ET1为1时,定时器/计数器中断允许,开中断。当ET0、ET1为0时,定时器/计数器中断不允许,关中断。▼ET2定时器/计数器2溢出中断允许位当ET2为1时,定时器/计数器2开中断。当ET2为0时,定时器/计数器2关中断▼ES串行口中断允许位当ES为1时串口中断开,当ES为0时串口中断关。▼EACPU开关/中断控制位当EA为1时,CPU中断开。当EA为0时,CPU中断关。单片机复位后EA默认为0。需要在软件中把EA设置为1,才能开总中断。技术支持:主讲:wang1jin中断相关功能寄存器定时器/计数器控制寄存器TCONTR0、TR1应用在定时器计数器中▼IT0、IT1外部中断0、1触发方式选择位:IT0、IT1=1。则是下降沿触发方式,INT0/INT1引脚上高到低的负跳变可以引起中断;IT0、IT1=0。则是电平触发方式,INT0/INT1引脚上低电平可以引起中断。▼IE0、IE1外部中断0、1请求标志位:当外部中断0或1,依据触发方式满足条件产生中断请求时,由硬件置位(IE0/IE1=1)。当CPU响应中断时由硬件清除标志(IE0/IE1=0)。▼TF0、TF1定时器/计数器0、1(T/C0,T/C1)溢出请求中断标志位当定时器/计数器0或1溢出的时候,由硬件置位(TF0/TF1=1)。当CPU响应中断时由硬件清除相应标志位(TF0/TF1=0)。技术支持:主讲:wang1jin串行口控制寄存器SCON▼RI串行口接收中断请求标志位当串行口接收完一帧数据后请求中断时,由硬件置位(RI=1)。RI在产生中断后,必须由软件清零。▼TI串行口发送中断请求标志位当串行口发送完一帧数据后请求中断时,由硬件置位(TI=1)。TI在产生中断后,必须由软件清零。技术支持:主讲:wang1jin中断优先级寄存器IP在单片机中如果有多个中断源同时请求中断,则CPU会按中断源的优先级别,由高到低的去响应。在51单片机中有二个中断优先级,每个中断源都可以编程为高优选级或低优先级。这样可以实现中断嵌套。嵌套的原则是:一个正在执行的中断服务程序可以被较高级的中断请求中断,而不能被同级或较低级的中断请求所中断。两级中断是通过设置IP寄存器实现的。▼PX0、PX1外部中断0/1中断优先级控制位PX0、PX1为1,则是高优先级。为0则是低优先级。▼PT0、PT1定时器/计数器0/1中断优先级控制位PT0、PT1为1,则是高优先级。为0则是低优先级。▼PS串口中断优先级控制位PS为1,则是高优先级。为0则是低优先级。技术支持:主讲:wang1jin中断优先级及应用在单片机被复位后,IP被清零,5个中断源都会处于同一优先级,这时若有几个中断源同时请求,则是按照CPU内部的硬件优先级顺序来响应中断,硬件优先级中断顺序如上。技术支持:主讲:wang1jin中断响应单片机在每个机器周期会采样各中断源的中断请求,并由硬件自动形成转向与该中断源对应的服务程序入口地址。技术支持:主讲:wang1jin中断函数的写法在C51中中断函数的完整语法如下:返回值函数名({参数})[模式][重入]interruptn[usingn]Interrupt后面接一个0-31的整数,不允许用表达式。例:voidINT_TEST()interrupt0using0//外部中断0/1编号(0/2){…………}中断不允许用于外部函数,小型程序中的中断程序使用默认的寄存器0,不带using属性的可能会取得更高的效率。技术支持:主讲:wang1jin中断应用流程EA=1.打开总中断PX0=1.中断优先级EX0=1.打开中断0IT0=0.设置中断方式(电平1/脉冲0)技术支持:主讲:wang1jin实例练习实例练习1:利用外部中断触发,点亮开发板上的LED.技术支持:主讲:wang1jin课后作业:课后作业1:触发中断0,在触发5次后.点亮LED0,再触发5次LED0处于闪烁状态.再触发5次LED0熄灭.课后作业2:设置外部中断1为最高优先级,设置外部中断1为电平触发.外部中断0为脉冲触发,触发外部中断1时,点亮所有数码管显示8888.并让蜂鸣器发声.触发外部中断0时蜂鸣器关闭.数码管上显示0000.技术支持:主讲:wang1jin欢迎光临我们的论坛:带您从零学单片机
本文标题:c51单片机中断
链接地址:https://www.777doc.com/doc-3435101 .html