【51单片机 C51 应用编程 Keil C Protues】(一)中断难点整理
这个专栏拿来记录我学习51单片机的内容。内容限于
单片机:51单片机
编程语言:C51语言
编程方式:纯软件编程(没有实物)
软件:Keil C+Protues(这个不是很重要,不打算写软件使用的方法,主要是发代码)
内容:项目代码+一些难点的整理
1 中断概念
能看到这篇文章的朋友估计是有一些基础的,我就简单讲一下这个中断概念的内容。我觉得这张图还挺形象的。
上图是生活中的中断的例子,某人正在看报纸(主程序)👉电话铃响(产生一个中断请求)👉他放下报纸(响应中断请求)👉去接电话(进入第一个中断程序)👉中途又发现水开了(产生一个更高级的中断请求)👉他放下电话(响应中断请求)👉去厨房关水(进入第二个中断程序)👉关完水之后(第二个中断程序结束)👉回来接着打电话(继续第一个中断程序)👉电话打完后(第一个中断程序结束)👉继续看报(继续主程序)
2 中断意义
目前我接触到的程序中,中断主要是用来响应更高级的需求(突发、应急、人工干预等)。
比如说,我的主程序正在跑马灯,这时候我突然按下了一个按键,这个动作我定义成更高的需求,那么就要进入中断,来响应我的 按下了按键 的动作,告诉单片机别跑马灯了,有更重要的事情要做啦!
3 一些名词解释
- 中断源:首先,我们知道有一些动作能够让单片机进入中断。比如:A引脚产生了低电平、B计数器产生了溢出……那么A引脚的电平、B计数器的溢出标志位的状态,就叫中断源
- 中断请求标志:当中断源出现某种信号时(例如上面提到的A引脚产生了低电平、B计数器产生了溢出),对应的中断请求标志位会自动置1,告诉单片机:快让我进入中断!
- 中断号:给各个中断源编了一个号,这个编号是固定的,不过没有具体意义
4 正题
拿最典型的80C51举例,共5个中断源。
中断源 | 中断源名称 | 中断号 | 中断触发方式 | 中断请求标志 |
---|---|---|---|---|
P3.2引脚的电平/脉冲状态 | INT0 ‾ \overline{\text{INT0}} INT0 | 0 | P3.2出现低电平/负跳变脉冲 | IE0 |
定时/计数器0的溢出标志位状态 | T0 | 1 | 定时/计数器0溢出 | TF0 |
P3.3引脚的电平/脉冲状态 | INT1 ‾ \overline{\text{INT1}} INT1 | 2 | P3.3出现低电平/负跳变脉冲 | IE1 |
定时/计数器1的溢出标志位状态 | T1 | 3 | 定时/计数器1溢出 | TF1 |
串口数据缓冲器的状态 | TX/RX | 4 | 串行数据发送/接收 | TI=1,RI=1 |
因为我说了我用的是C51语言,就不在这里说中断向量了,没啥子用。
懒得写了。下次填坑。