蓝桥杯单片机之中断
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
在断电状态下单击下载,然后再上电 程序就自动下载到芯片了