快捷搜索:  汽车  科技

51单片机中的外部中断方式(51单片机笔记15:外部中断的基础知识)

51单片机中的外部中断方式(51单片机笔记15:外部中断的基础知识)下降沿触发 在全局和外部中断使能的情况下,只要在INT0 / INT1引脚上检测到低电平,控制器就会跳至中断服务程序(ISR)来服务中断。外部中断有两种类型的激活级别在8051中,使用了两种类型的激活级别。这些都是,低电平触发

上一次放弃就是在学习中断和定时计时器时,看得脑袋大,理论知识枯燥,如果看不进去不了解,后面的内容更没法学了。整理下自己看的中断的知识 今天先学外部中断

什么是中断

中断是引起CPU注意的外部或内部事件。一旦控制器检测到中断,它将暂停当前作业并执行称为中断服务例程(ISR)的特殊服务例程。

P3口可以作为输入/输出端口此外还具有以下双重功能

  1. P3.0 – RXD –串行数据接收。
  2. P3.1 – TXD –串行数据传输。
  3. P3.2 – INT0 –外部中断0。(8051按键开关接入此IO位才能实现外部中断)
  4. P3.3 – INT1 –外部中断1。
  5. P3.4 – T0 –计数器0的时钟输入。
  6. P3.5 – T1 –计数器1的时钟输入。
  7. P3.6 – WR 用于写入外部存储器的信号。
  8. P3.7 – RD –从外部存储器读取的信号。

8051单片机有5个中断源,其中两个是内部中断(定时器中断),两个是外部中断(INT0 INT1),一个是串行中断。这些中断每一个都有中断向量入口地址。最高优先级的中断是复位,其向量地址为0x0000。复位是最高优先级的中断,复位后8051微控制器开始从0x0000地址开始执行代码。

51单片机中的外部中断方式(51单片机笔记15:外部中断的基础知识)(1)

8051中的外部中断
  • 8051具有两个外部中断INT0和INT1。
  • 通过在外部中断引脚PORT3.2,PORT3.3上提供电平或边沿,可以通过外部中断来中断8051控制器。
  • 如果使能了全局和外部中断,则外部外设可以通过这些外部中断来中断微控制器。
  • 然后,微控制器将执行当前指令,并跳转到中断服务程序(ISR)进行中断。
  • 轮询方法中,微控制器必须通过监视引脚来连续检查脉冲(效率低),而在中断方法中,微控制器不需要轮询。每当发生中断时,微控制器都会处理中断请求。

外部中断有两种类型的激活级别

  1. 边沿触发(在检测到上升沿/下降沿时发生中断)
  2. 触发电平(在高/低电平检测时发生中断)

在8051中,使用了两种类型的激活级别。这些都是,

低电平触发

在全局和外部中断使能的情况下,只要在INT0 / INT1引脚上检测到低电平,控制器就会跳至中断服务程序(ISR)来服务中断。

下降沿触发

​ 全局和外部时,只要在INT0 / INT1引脚上检测到下降沿。启用中断后,控制器跳转到中断服务程序(ISR)来服务中断

中断执行过程

主程序执行---按键按下---中断服务请求 --INTo引脚接收到中断信号-----中断标志位置1----CPU允许中断----中断向量地址(跳转指令)-----执行中断服务程序--硬件自动清除中断标志位IE0---跳转到主程序继续执行

注意:下降沿触发:自动清除中断标志位,低电平需要手工清除

51单片机中的外部中断方式(51单片机笔记15:外部中断的基础知识)(2)


认识8051几个重要寄存器,配置寄存器相应的位,实现外部中断功能

1.IE寄存器:中断允许寄存器 (IE使能)

IE寄存器用于启用/禁用中断源。

51单片机中的外部中断方式(51单片机笔记15:外部中断的基础知识)(3)

Bit 7 – EA:启用所有位(总开关)

设置IE.7 = 1 –启用全局中断控制位。

1 =启用所有中断 ​ 0 =禁用所有中断

Bit 0 – EX0:使能外部中断0位(外部中断INT0开关)

1 =使能外部中断0

0 =禁止外部中断0

Bit 2 – EX1:使能External1中断位,功能同上

2.中断优先级寄存器(IP)分配中断的优先级(可选)

51单片机中的外部中断方式(51单片机笔记15:外部中断的基础知识)(4)

Bit 0 – PX0:外部中断0优先级位

1 =为外部中断(INIT0)分配高优先级。

0 =为INIT0中断分配低优先级。

3.TCON寄存器中需要低四位标志位 来选择和监视外部中断类型和ISR状态。

51单片机中的外部中断方式(51单片机笔记15:外部中断的基础知识)(5)

Bit 1 位- IE0和Bit 3 位- IE1:

如何在8051中产生软件中断?

软件中断不过是控制器内部程序产生的中断。要产生外部中断,我们需要在8051微控制器的INT0或INT1引脚上输入信号。我们已经看到,当在INTo引脚接收到中断信号时,TCON.1位将自动置1,这就是处理器如何知道在INT0引脚接收到中断信号的方式。当TCON.1被置1时,处理器将立即应答该中断,并跳转到相应的INT0的ISR。在分支到ISR时,处理器还将清除TCON.1位。在INT1的情况下也会发生同样的情况,并且相关的位是TCON.3。

Bit 0 位(IT0)和bit 2 位(IT1):

该位选择INT0引脚上的外部中断事件类型。

1 =下降沿触发中断

0 =低电平触发中断

51单片机中的外部中断方式(51单片机笔记15:外部中断的基础知识)(6)

//外部中断0 初始化 void EX0_Init(void) { //1、设置触发方式 外部中断0 IT0 = 1;//设置 下降沿触发 TCON EX0 = 1;//特殊功能寄存器 IE 外部中断中断阀门 EA = 1; //总开关 }中断服务程序(ISR)

interrupt关键字

1.中断服务函数一定是一个没有返回值的函数

2.中断服务函数一定是一个没有参数的函数

3.中断服务函数函数名的后面跟关键词 interrupt (C51特有的关键字)

4.interrupt n 中断向量标号 ( 0-4) 8051单片机只有5个中断源 8*n 0003h

0003H INT0

000BH T0

0013H INT1

001BH T1

0023H ES

中断向量入口地址 跳转指令

5.中断服务函数不能被主程序或其他程序调用

6、n后面跟using m(0-3) 切换工作寄存器组

sbit LED = P1^0; void EX0_Init(void); void EX0_ISR(void) interrupt 0; main() { EX0_Init(); while(1); } void EX0_ISR(void) interrupt 0 { LED = ~LED;//电平取反 }

猜您喜欢: