一、中断是什么
中断的控制是我们学习单片机所必须掌握的,可以说“如果中断都不会,那根本谈不上掌握了单片机。”
那么中断是什么呢?
(1)中断
中断是单片机CPU在处理某一事件时,发生了另一事件B。CPU立马停止处理事件A,转去处理事件B。等到处理完事件B后在回去继续执行事件A的过程。
(2)中断优先级
既然有事件的执行有先后顺序,那么就涉及到一个非常重要的关键词——中断优先级。
以89C52单片机为例:52单片机有6个中断源
INT0——外部中断0
INT1——外部中断1
T0——定时器、计数器0中断
T1——定时器、计数器1中断
T2——定时器、计数器2中断
TI/RI——串行口中断

二、中断的使用
1.外部中断

同时我们也可以对中断的优先级进行更改

(2)定时器中断
定时器的实质是加一计数器(16位),由高八位和低八位两个寄存机构成。
TMOD——工作方式寄存器,确定中断控制方式和功能。
TCON——控制寄存器,控制中断源T0、T1的启动和停止。
一、定时器中断使用
单片机定时器中断实质上是加一计数器,每来一个脉冲加一,当加到计数器全唯一,再输入一个脉冲,计数器回零,并且向CPU发送中断请求。
这里补充一个概念知识点:1个机器周期等于12个振荡周期,即计数频率是晶振频率的1/12 。
计数值N×机器周期=定时时间
二、TMOD与TCON




这里控制TCON和TMOD既可以采用直接输入如GATE=1,也可以通过位操作直接控制。
例如我想要使GATE=0,C/T=0、M1=0、M0=1. 就可以写成TMOD=0x01
2.中断服务程序写法
代码如下(示例):
void T1_time()interrupt3//3为中断序号,这里使用定时器1 中断序号为3
{
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
}
T H1、TL1代表着定时器1的高八位和低八位数据。
总结
中断程序的设计:
1、 打开总中断
2、设置触发方式(IT0=0低电平触发、IT0=1下降沿触发)
3、选择中断
4、中断时间计算
5、编写中断服务程序
6、设置TMOD
本文详细介绍了单片机中断的概念,包括中断的定义和中断优先级,并以89C52单片机为例阐述了中断源。重点讲解了外部中断和定时器中断的使用,提到了TMOD和TCON寄存器的作用。此外,还展示了定时器中断服务程序的编写方法,强调了中断程序设计的关键步骤。
9372

被折叠的 条评论
为什么被折叠?



