单片机中断

本文详细介绍了51单片机的中断机制,包括中断的含义、过程、中断源、处理函数、与中断相关的寄存器等内容。通过具体实例展示了外部中断、定时器/计数器中断和串行通信中断的初始化函数和中断服务函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                 蓝桥杯单片机之中断

1、中断含义及过程

中断是指CPU在处理A事情时,发现B请求CPU立刻去处理(中断发生),于是CPU去处理B(中断服务), 处理完B后又再次回到A被中断的地方,继续处理A(中断返回)

2、中断源

51单片机有五个中断源,分为外部 中断源(2个),定时器/计数器 中断源(2个)、串行通信 中断(1个)

每个中断源都有固定的入口地址和中断号,学习时要注意中断源与中断号的对应关系

3、中断的处理函数

(1)中断初始化函数

(2)中断服务 函数     三个特点:<1>没有返回值也不能带参数

                                                       <2>函数后面跟一个关键字:interrupt

                                                        <3>在关键字interrupt后面跟一个中断号

4、与中断 相关的寄存器

一、TCON    低4位给外部中断请求源使用,高4位给内部中断系统寄存器

外部请求源(第四位)

<1>  IT0  :IT0 = 0时, INT0为低电平触发方式, IT0 = 1, INT0为负 跳变触发方式。总之是INT0触发方式控制位,可由软件进行置位和复位。

<2>IE0 :    INT0中断请求标志位,当有外部中断请求时,该位就置1(硬件来完成),在CPU响应中断后,硬件将IE0又清0

<3> IT1:   类似  不过是定时器1的相关位

<4>IE1:   SAME

内部 请求源(高四位)

<1>TF0:定时/计数器T0溢出中断标记。当T0产生溢出时,TF0置位,当CPU响应中断后,硬件再把TF0复位

<2>TR0 :T0的开关控制位, TR0 = 1  定时器计数器打开, TR0= 0   定时器计数器关闭

注:TF1、TR1 与TF0 和TR0相似 。只是一个是定时器0的,一个是定时器1的

二、SCON :低二位与串口中断相关

TI:串行口发送中断

RI :串行口接收中断

三、IE    中断允许寄存器

EA : 中断总控制位    EA =1 ,CPU开放所有中断   EA = 0, CPU禁止所有中断

ES:     串行口中断控制位 ES =1, 允许串行口中断, ES= 0, 屏蔽串行口中断

ET1:   定时/计数器TI中断控制位。ET1=1,允许T1中断;ET1=0,禁止T1中断

EX1:外部中断1中断控制位。EX1=1,允许外部中断1中断;EX1=0禁止外部中断1中断

ETO:定时/计数器T0中断控制位。ETO=1,允许T0中断;ETO=0,禁止T0中断

EXO:外部中断0中断控制位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0断。

四、IP  中断优先级寄存器

执行时先将高级优先级执行后才会执行低的

PS  :串行口中断优先级控制位

PT1:定时器1优先级控制位
PX1:外部中断1优先级控制位
PTO:定时器0优先级控制位
PX0:外部中断0优先级控制位

5、对于每一个外设,我们都需要写一个初始化函数和中断服务函数。

下面分别展示外部中断   定时器\计数器中断    串行借口中断的部分代码

6

6、单片机补充:

《1》三大外设:外部中断、定时/计数器、串行通信

《2》sfr P0 = 0x80    和 P0 = 0x02的区别        前者用SFR来找了P0口的地址,为0X80, 后者是把0x02赋给P0口

《3》INT0  和INT1是中断控制器里面的,称为外部中断申请输入端

在INT0 或INT1 输入一个信号(低电平或者是下降沿),就可以使单片机临时停下正在执行的事情, 转去执行B事情

《4》KEIL使用建工程:project---new uvison project---source group----add existing files to group.写完之后记得点魔术棒,生成Greate HEX Files

在断电状态下单击下载,然后再上电  程序就自动下载到芯片了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值