了解什么是中断
好,今天我来给大家讲一下我们什么是中断以及如何去运用外部中断源。
首先,我们学习单片机的时候,一定听说过学会中断才是单片机的入门。因为中断系统大大提高了单片机对随机事件的实时处理能力,并且提高了单片机的工作效率。
当然,中断这个概念对初学者会有点难以理解,这里我们举一个例子,比如我在家里看书,这时候有快递员送货上门我听到敲门声,那我肯定是先暂停看书先去开了门,然后取完快递后,再继续回去开始看书。
这里过程我们可以分析为:
1.在家里看书是我当前执行的主程序
2.听到敲门声是中断申请
3.暂停看书去开了门,并且取完快递是单片机对中断的响应和处理
4.回去开始看书是中断结束返回继续执行被打断的主程序
这样分析大家是否对中断有一个初步的认识,就是打断正在执行的程序去做中断的程序,做完了再回来继续做原来的程序。
中断有哪些以及该怎么设置
那我们知道了中断的概念后,我们要去实现中断该怎么做呢?
首先,你要明白用单片机的哪个中断源,其次你要怎么实现这个中断,要设置哪些参数。
这里我们介绍一下对于51单片机的话中断源只有五个,分别为

总体上可分为外部中断源(外部中断0和外部中断1)和内部中断源(定时器0、定时器1和串行口中断),相对于其他单片机如stm32来说,其中断源更多和中断体系更加复杂,所以建议大家先把51这五个中断源弄明白了,后面遇到的其他复杂中断都是从这些基础上过来的。
知道了有哪些中断源后我们就可以根据自己的需要来选择自己想要用的中断源,比如我想要当系统中的某个输入信号变为低电平时候或者出现下降沿时候执行中断,那我用到外部中断源,那我就选择外部中断0或者外部中断1。
而当我想设计计时多久就来一个其他程序执行,那我就要用到内部中断源里面的定时器0和定时器1,一般用到计时或者计算脉冲边沿数量等等的采用定时器来做中断源。
当我想要用pc或者其他无线传输发送过来的命令来使单片机产生中断的话,我们就可以使用串口中断,比如当我接收到特定的字符时候就执行中断。
现在我们知道了中断是什么,以及我也知道了中断源有哪些可以用,并且我也知道了我要用的是哪个中断源。那现在就是该怎么设置使我实现中断。这里告诉大家,我们要实现中断控制就要去设置中断相关的寄存器。设置好了我们才能使用中断。而相对于的寄存器有哪些呢?
这里我们先列出
1.定时控制寄存器TCON

2.串行控制寄存器SCON

3.中断屏蔽寄存器IE

4.中断优先级寄存器IP(IP寄存器这里下面例子没用到,所以只列出相关位)

一共有四个,这里我们先不深入将这四个中断寄存器,而是先给大家一个概念先,等后面大家熟悉了,大家就明白这四个寄存器的作用。
或许到了这里有些小伙伴会问,我知道要用这四个寄存器来设置相应中断,但是我该怎么设置呢?要设置哪些呢?我当时学的时候也是这样的,学了一遍也不懂,直到我看到了这张中断控制系统图。

我们从图中可以很明显的看出当我们要用什么中断的时候,要去设置哪些寄存器位。当年,


1万+

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



