单片机常用功能模块的使用 Part6. 中断

发布者:月光男孩最新更新时间:2016-09-28 来源: eefocus关键字:单片机常  功能模块  中断 手机看文章 扫描二维码
随时随地手机看文章
1、单片机中断:

用度娘找了一张 80C51 单片机的图如下:

【51】技巧 2 -- 单片机常用功能模块的使用 Part6. 中断 - 灼眼のFate - 運命の始まり

其中,在 P3.2、P3.3 的位置,即 12 ,13 引脚处,标有 INT0 和 INT1,那两个引脚就是外部中断的输入。上面一个横杠代表低电平有效,给 P3.2、P3.3 赋值 0,就可以运行已经写好的中断服务程序。具体怎么用,还要熟悉一些中断寄存器的使用。

 

2、中断寄存器:

(1)、IE (Interrupt Enable):中断允许控制寄存器

【51】技巧 2 -- 单片机常用功能模块的使用 Part6. 中断 - 灼眼のFate - 運命の始まり

EA   (IE.7):EA=0 时,所有中断禁止(即不允许中断)

       EA=1 时,各中断的产生由个别的允许位决定

ET2 (IE.5):定时器 2 溢出中断允许(8052 用,博主用的 STC89C54RD+ 也有)

ES   (IE.4):串口中断允许(ES=1 允许,ES=0 禁止,下同)

ET1 (IE.3):定时器 1 中断允许

EX1 (IE.2):外部中断 INT1 中断允许

ET0 (IE.1):定时器 0 中断允许

EX0 (IE.0):外部中断 INT0 中断允许

 

(2)、IP (Interrupt Priority):中断优先级控制寄存器

【51】技巧 2 -- 单片机常用功能模块的使用 Part6. 中断 - 灼眼のFate - 運命の始まり

PX0:外部中断 0 的中断优先级控制位,PX0=1,外部中断 0 被定义为高优先级中断;PX0=0,外部中断 0 定义为低优先级中断

PT0:定时器 T0 的中断优先级控制位,PT0=1,定时器 T0 被定义为高优先级中断;PT0=0,定时器 T0 定义为低优先级中断

PX1:外部中断 1 的中断优先级控制位,PX1=1,外部中断 1 被定义为高优先级中断;PX1=0,外部中断 1 定义为低优先级中断

PT1:定时器 T1 的中断优先级控制位,PT1=1,定时器 T1 被定义为高优先级中断;PT1=0,定时器 T1 定义为低优先级中断

PS:串口中断优先级控制位,PS=1,串口中断被定义为高优先级中断;PS=0,串口中断定义为低优先级中断

(暂时没用过,后续使用再更新)

 

(3)、TCON (Timer Control Register):定时器/计数器控制寄存器

这个寄存器在前面定时器里遇到过,再备份一下:

【51】技巧 2 -- 单片机常用功能模块的使用 Part6. 中断 - 灼眼のFate - 運命の始まり

TF:定时器溢出标志,计数器溢出时硬件自动置位,即 TF=1,进入中断后再由硬件自动清除(TF=0)

TR:计数器的控制位

   TR=1:计数器开始工作

   TR=0:计数器停止计数

IE:外部中断 INT 的请求标志

    当单片机检测到 INT 引脚上有下降沿时,IE=1 申请中断,进入中断服务程序时,硬件自动清除 IE 标志

IT:外中断触发类型控制

    IT=1 时,外中断信号的下降沿触发 IE 标志

    IT=0 时,外中断信号的低电平触发 IE 标志

 

3、中断的编程使用:

使用中断,就是说当发生某些事件的时候,运行“中断服务程序”,使用方法如下:

void Timer0_ISR(void) interrupt 1 using 1
{
    /* 此处编写中断服务的具体内容 */
}

语句 interrupt x using y 是指:此函数作为“x 号中断”的“中断服务程序”,并且使用“y 号寄存器组”“传递参数”。

首先要清楚:80C51 单片机有 5 个中断源:2 个外部中断、2 个定时器中断(定时器 0 和 定时器 1)、1 个串口中断(8052 有 6 个中断源,多了一个定时器 2 中断),x 即为“中断号”:

【51】技巧 2 -- 单片机常用功能模块的使用 Part6. 中断 - 灼眼のFate - 運命の始まり

上面的程序是定时器 0 的中断服务程序,因此是 interrupt 1;要是想按一个键进行中断,那么就是外部中断,因此是 interrupt 0 或者 interrupt 2。

关键字 using,用来指定中断服务程序使用的“寄存器组”。用法是:using 后跟一个 0 到 3 的数,对应着 4 组工作寄存器。一旦指定工作寄存器组,默认的工作寄存器组就不会被压栈,这将节省 32 个处理周期,因为入栈和出栈都需要 2 个处理周期。这一做法的缺点是所有调用中断的过程都必须使用指定的同一个寄存器组,否则参数传递会发生错误。顺便一提,默认使用 0 号寄存器组,即:不写 using y 就会默认 using 0,因为主程序使用 0 号寄存器组做参数传递。

补充:中断入口地址:

【51】技巧 2 -- 单片机常用功能模块的使用 Part6. 中断 - 灼眼のFate - 運命の始まり

 

关键字:单片机常  功能模块  中断 引用地址:单片机常用功能模块的使用 Part6. 中断

上一篇:单片机常用功能模块的使用 Part7. LCD 1602
下一篇:单片机常用功能模块的使用 Part5. 独立按键

推荐阅读最新更新时间:2024-03-16 15:12

STM32F10x_RTC秒中断
Ⅰ、概述 RTC(Real Time Clock)是实时时钟的意思,它其实和TIM有点类似,也是利用计数的原理,选择RTC时钟源,再进行分频,到达计数的目的。 该文主要讲述关于RTC的秒中断功能,这个功能类似SysTick系统滴答的功能。RTC秒中断功能其实是每计数一次就中断一次。注意,这里所说的秒中断并非一定是一秒的时间,它是由RTC时钟源和分频值决定的“秒”的时间,当然也是可以做到1秒钟中断一次。 本文章提供的实例工程,其实验效果是: 主函数间隔0.5秒LED变化一次; 秒中断一次打印数据 RTC Sec... ; 也就是LED变化一次,串口打印一次数据 RTC Sec... 扩展部分的功能RTC计数:可以实
[单片机]
STM32F10x_RTC秒<font color='red'>中断</font>
【STM32】HAL库 STM32CubeMX教程六----定时器中断
前言: 今天我们来学习定时器,32的定时器有着非常丰富的功能, 输入捕获/输出比较,PWM,中断等等。是我们学习STM32最频繁使用到的外设之一,所以一定要掌握好,这节我们讲解定时器中断,本系列教程将对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1、芯片: STM32F407ZET6/STM32F103ZET6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32F1xx/STM32F4xxHAL库 5 知识概括: 通过本篇博客您将学到: SMT32定时器原理 STM32CubeMX创建定时器例程 HAL库TIM定时器函数库 定时器
[单片机]
【STM32】HAL库 STM32CubeMX教程六----定时器<font color='red'>中断</font>
μC/OS-II中缩短中断关闭时间的方法
引 言 在实时操作系统中,由于是多任务的并发运行,所以在进入一些临界区时为了保证多任务的正常运行要关中断。而最大关中断时间是衡量一个实时操作系统性能的重要指标,因为外部的输入一般都是通过中断方式来通知系统的,系统如果关中断时间长,必然不能及时接收中断,对中断的及时处理就更谈不上。 更重要的是,有些应用场合对关中断的时间有非常严格的要求。例如,在电力系统微机继电保护装置中,对电流A/D采样时,为了保障对采样值的正确处理,定时中断的每一个周期时间都必须及时采样。试想,如果定时器设置的周期时间到,定时器中断产生,但恰恰这时系统处于关中断时间,系统就不能及时进行采样;而当关中断时间过长,超过一定的值时,系统再来进行采样,依据此采样值的
[嵌入式]
STM32_EXTI外部中断学习笔记
参考资料:《STM32F4xx中文参考手册》系统配置控制器以及中断和事件章节。 EXTI( External interrupt /evet controller) 之前接触过51单片机的都了解到51单片机有两个外部中断 ,分别为外部中断0、1。用来实时地处理外部事件的一种内部机制。当某种外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后.又返回被中断的程序处,继续执行下去。而STM32的则有与之功能相同的外部中断事件控制器。外部中断/事件控制器(EXTI)管理了控制器的 23个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的
[单片机]
STM32_EXTI外部<font color='red'>中断</font>学习笔记
STM32的"异常“、“中断”和“事件”区别和理解
1 异常与中断(Cortex-M3) 1.1 异常与中断 原话: Cortex‐M3 在内核水平上搭载了一个异常响应系统,支持为数众多的系统异常和外部中断。 其中,编号为 1-15 的对应系统异常,大于等于 16 的则全是外部中断。 除了个别异常的优先级被定死外,其它异常的优先级都是可编程的。 所有能打断正常执行流的事件都称为异常。 异常的概念包含中断的概念,即中断是异常的子集。 异常与中断都是硬件支持的。 异常表: 外部中断表: 这里的“外部中断”不是指STM32中的EXTI中断,而是所有中断。 1.2 优先级 原则上,CM3 支持 3 个固定的高优先级和多达 25
[单片机]
STM32的中断”和“事件”区别和理解" />
51单片机定时器T0的使用1-中断
/********************************************** 方法1:延时法 硬件:11.0592MHz晶振,STC89C52,RXD P1.0 TXD P1.1 波特率:9600 描述:T0用于定时,方式1,定时时间50ms,中断方式,定时时间到,TF1=1,利用模拟串口发送字符0x67 **********************************************/ #include reg52.h #define uchar unsigned char sbit P1_0 = 0x90; sbit P1_1 = 0x91; sbit P1_2 = 0x92; #de
[单片机]
51<font color='red'>单片机</font>定时器T0的使用1-<font color='red'>中断</font>法
在STM8 Nucleo-64开发板上使用GPIO和中断控制器驱动LED
NUCLEO-8S208RB(基于STM8S208RBT6)和NUCLEO-8L152R8(基于STM8L152R8T6)开发板可用于评估所有STM8S系列和STM8L系列微控制器的主要特性。 本应用笔记简要介绍了如何使用NUCLEO-8S208RB和NUCLEO-8L152R8开发板上的GPIO和中断控制器驱动一组LED指示灯。 当微控制器(本例中为STM8S208RBT6或STM8L152R8T6)使用连接到主机电脑的USB电缆供电时,LD2和LD5指示灯(不是板载的LED)开始闪烁。 每次按下“push”按钮,中断控制器产生一个用于控制I/O的中断,然后改变LED的显示方式。 1. 应用说明 本节主要介绍了在NU
[单片机]
在STM8 Nucleo-64开发板上使用GPIO和<font color='red'>中断</font>控制器驱动LED
有害气体红外感应及语音警示控制系统的设计
0引言 利用红外感应系统感应附近有无有害气体,当红外感应系统感受到有有害气体接近时,送出持续一段时间的高电平;单片机通过开启中断,启动语音芯片,单片机通过串口通信,从上位机提取的有害气体参数提示给附近人体,并经过与安全值的比较判定当前环境是否安全。对语音芯片的使用,先将必要的文字、数字信息录制进去,放音时,通过单片机自动寻址,把实时参数读取出来。为便于以后系统改进或移植到其他系统,可设计录音、放音电路,通过切换录制不同内容。系统设计友好、方便,给人的信息也更加直接。 1系统总体设计方案 在气体浓度是现有可利用的数据的基础上,考虑了系统的衔接性和可移植性。系统总体方案见图1。 本系统分为四大模块:核心控制模块、语
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved