老王单片机中断学习理解
官解什么是中断:CPU在处理某一事件A时,发生的另外某一事件B请求CPU去处理(产生了中断),随后CPU暂时中断当前正在执行的任务,去对事件B进行处理,CPU处理完事件B后再返回之前中断的位置继续执行原来的事件A,这一过程总称为中断。
凡人理解:就是你打LOL过程中挂了等复活,这时候你就想切出去看电影的感觉。估摸着差不多复活了然后再暂停电影播放,切回去打游戏。
中断分为4个步骤:中断请求->中断响应->中断处理->中断返回。
单片机一共支持5个中断源,其中2个外部中断源,3个内部中断源
(1)外部中断0,由INT0(P3.2引脚)输入。
(2)外部中断1,由INT1(P3.3引脚)输入。
(3)定时/计数器0溢出中断(T0)请求。
(4)定时/计数器0溢出中断(T1)请求。
(5)串行口发送/接收中断请求。
//第一步设置中断源比如说:设置外部中断0
1、设置中断触发方式,即IT0=1或0, IT1=1或0
当IT0=0时,为电平触发方式。
当IT0=1时,为边沿触发方式(下降沿有效)。
//低电平触发和下降沿触发有什么区别?
低电平触发是中断允许后,只要中断引脚的信号是低电平,就触发中断,使用时注意,如果低电平一直保持,会导致多次触发中断。
下降沿触发是中断允许后,只要中断引脚的信号出现下降沿,就触发中断,使用时注意,如果信号出现抖动,会导致多次触发中断。
理解下低电平是一直按着按钮动作,下降沿是每按一下动作一下
2、开对应的外部中断,EX0=1; 外部中断0允许位
EX1=1;外部中断1允许位
3、开总中断,即EA=1;
4、等待外部设备产生中断请求,即通过P3.2,P.3.3口连接外部设备产生中断
5、中断响应,执行中断服务函数
中断服务函数:当有中断请求时,程序运行转移到标记有“interrupt”关键字的函数内进行相关中断的处理。
Kei1开发环境中,中断请求的处理过程是以函数的方式来实现的,即中断服务函数,它的格式如下:
中断服务函数格式
void 函数名(void)interrupt 中断号
void Int0(void) interrupt 0
程序顺序就是主函数void main 通过Timer_int0设定中断触发 程序跳转到中断服务函数 完成后回到主程序
使用中断的步骤:
* 1.中断初始化函数(只需要调用一次,不要放到循环里重复调用)
* 2.编写中断处理函数
* 3.主函数中调用中断初始化函数