pk10网投代理

pk10网投代理 > 应用 > 单片机应用
[导读]单片机常用功能模块的使用-中断

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:计数器的控制位

pk10网投代理TR=1:计数器开始工作

TR=0:计数器停止计数

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

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

IT:外中断触发类型控制

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

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

3、中断的编程使用:

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

pk10网投代理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 - 運命の始まり
换一批

延伸阅读

[单片机应用] cortex mo lpc1114 uart串口中断收发数据

cortex mo lpc1114 uart串口中断收发数据

中断方式串口接收数据新建一个工程,结构如下图所示:在main.c文件中,输入以下代码:#include “lpc11xx.h”#include “uart.h”uint8_t rec_buf;void UART_IRQHandler(voi......

关键字:cortex mo lpc1114 uart 串口中断 收发数据

[单片机应用] STM32的中断和事件的区别

STM32的中断和事件的区别

这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套.图中的蓝色虚线箭头,标出了外部中断信号的传输路径,首先外部信号从编号1的芯片管脚进入,经过编......

关键字:STM32 中断 事件

[单片机应用] STM32_外部中断线/事件线理解

STM32_外部中断线/事件线理解

这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套。图中的蓝色虚线箭头,标出了外部中断信号的传输路径。首先外部信号从编号1的芯片管脚进入,......

关键字:STM32 外部中断线 事件线

[单片机应用] stm32_中断优先级详解

stm32_中断优先级详解

我自己依据此图理解,应用思维导图画了一张方便理解:(如果看不清可通过ctrl+鼠标滑轮放大看;)前提条件1:组别优先顺序(第0组优先级最强,第4组优先级最弱):NVIC_PriorityGroup_0>NVIC_PriorityGro......

关键字:STM32 中断优先级

[单片机应用] 2440-中断寄存器详解

2440-中断寄存器详解

S3C2440的中断寄存器:1.中断分两大类:内部中断和外部中断。2.外部中断。24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且......

关键字:2440 中断寄存器

[消费类电子新闻] 新iPhone曝美颜门,老外纷纷吐槽

新iPhone曝美颜门,老外纷纷吐槽

智能手机带美颜功能,这似乎成了时下的标配,尤其是备受国人喜欢。为了迎合中国等亚洲用户的爱好,新款iPhone XS带有自动磨皮效果,但iPhone的部分欧美用户似乎并不买账,他们纷纷吐槽这一功能,并将之称为“美颜门”(Beautygate)......

关键字:iPhone 美颜门

我 要 评 论

网友评论

技术子站

更多

项目外包

推荐博客

快赢彩票 浙江体彩6+1走势图 浙江体彩6+1玩法 全民彩票 陕西福彩网 黑龙江11选5走势图 浙江体彩6+1 上海天天彩选4开奖 宁夏11选5玩法 福建快3计划