今日就以51单片机的外部中止0为例,来简略解说一下单片机中止的用法。
151单片机的中止源
51单片机共有5个中止源,分别为:
外部中止0
定时器0中止
外部中止1
定时器1中止
串口中止
每一个中止都对应一个中止向量,中止向量表如下所示:
2什么是中止工作
傍边止产生时单片机将正在履行的程序暂时放下而去处理中止工作,傍边止工作处理完毕后再接着去处理之前的工作,这样能够大大下降单片机的资源,进步履行功率。举个比如阐明一下什么是中止:
在这个比如里,打游戏便是主使命,水烧开便是中止,吱吱叫便是中止向量,听到吱吱响我就明白水烧开了,这时我要把打游戏这个主使命暂时放下,转而去处理水烧开了这个中止工作,水倒完后我就又回到了游戏这个主使命中。这样是不是进步了打游戏的功率呢?
3中止的硬件完成
51单片机的外部中止0引脚接一只按键,该按键通过上拉电阻接到电源,即没有按键产生时单片机检测到的是高电平,当按键按下时单片机检测到的是低电平。单片机的P0.0引脚以灌电流的方法接了一只LED,当按键按下时LED灯点亮,没按键时LED灯平息。
4中止的软件完成
单片机中止函数的写法比较固定,51单片机中止函数的写法如下:
void Initd() interrupt 0
其间:
void:为中止函数的回来类型,中止函数多为空类型;
Initd():是中止函数的称号,这个函数名契合C言语函数命名标准就能够,随意起;
interrupt:为51单片机中止的关键字,有必要这么写(51单片机有必要这么写);
0:为中止向量,该值详看第一个表格,如果是外部中止1就写2,如果是定时器1中止就写3;
中止函数不用在主函数中调用,只需中止工作产生,单片机自己自动会调到中止函数中。
该比如的函数如下所示:
5仿真完成
当按键产生时,LED灯点亮,如下图所示。留意比照两种图中按键的状况。