单片机整理笔记 联系客服

发布时间 : 星期二 文章单片机整理笔记更新完毕开始阅读7bfa01ea551810a6f52486f1

#1楼主:快捷共享《删繁就简-单片机入门到精通》之中断

文章发表于:2010-04-01 20:59

1.10. 方便实用的中断

每个周末丁丁小朋友的父母会要求他独立完成一些家务,来培养他的劳动习惯,家务是固定的三件事情:烧两壶开水、炖一锅排骨、将家里的地板拖一遍。如果单独完成这些事情,烧一壶开水大概需要十分钟,炖排骨大概二十五分钟,拖地板大概需要三十分钟,烧开水只要等水开了倒进保温瓶里,排骨炖好后关掉火就行。

第一周,丁丁小朋友先开始烧水和炖排骨,然后去拖地板,为了看水有没有烧开和排骨有没有炖好,拖一会地板就要停下来跑到厨房去看一看,这样看一次需要一分钟,总共看了十次,四十分钟后三样家务全部做完。

虽然四十分钟把家务全部做完,但丁丁小朋友是隔几分钟才去看一下水有没有烧开,于是水被烧开了一会丁丁小朋友才发现,水烧开后从壶里溢出流到煤气灶上,有点危险,显然从家务完成的质量来看不是很理想。

第二周,丁丁小朋友吸取了上周的经验,烧水换用水烧开后可以自动鸣笛的壶,排骨有上周的经验知道炖二十五分钟火候差不多,于是炖的时候用一个闹钟定时二十五分钟,接下来专心开始拖地板。大约十分钟后,第一壶水烧开鸣笛,丁丁小朋友停下拖地板去把水倒进保温瓶接着烧第二壶,继续拖地板;又过了大约十分钟,第二壶水烧开,丁丁小朋友同样处理;二十五分钟时间到,闹钟响起,丁丁小朋友过去看排骨,已经炖好于是关火,接着拖地板;三十三分钟,地板拖完,家务全部完成。

和第一周对比,时间少用了七分钟,而且水一开就去倒掉,消除了潜在危险,完成的质量自然要好一些,看来日常生活中的一些事情,不同的处理方法做出来的效果也会有明显差异。

丁丁小朋友做家务的例子对应单片机同时需要处理几个工作任务的两种基本方法:轮流查询和中断响应。开水烧开了不马上处理就会有危险,拖地板被打断有延时不会发生什么意外,但烧开水只要把水倒进壶里烧就行,烧的过程中并

不需要做其它事情,拖地板则需要一直拖到全部地板拖完。如果说第一周的方法是轮流查询那二周的方法就是中断响应,水烧开鸣笛和闹铃为中断发生信号,从丁丁小朋友两周完成的结果可以看出中断响应效果要好过轮流查询。

图1.10.-1 丁丁第一周家务流程图

图1.10.-2 丁丁第二周家务流程图

序言中就说过单片机技术是一门实用工程技术学科,和日常生活息息相关,正是为了应付丁丁小朋友做家务例子中烧水炖排骨这类问题,单片机有了中断的概念。中断就是在工作过程中突然有更紧要的事情去要去处理,于是将当前的工作打断,处理好更紧要的事情后再继续当前的工作。单片机的中断可分为两大类:一种是单片机内部控制电路在某种条件下产生的叫内部中断,另外一种则是由单片机外部器件产生的叫外部中断。

丁丁小朋友烧水和炖排骨对于他是两个独立的外部事情,这两个外部事情所产生的“中断信号”分别属于外部中断和内部中断。水烧开是水壶主动发出笛声,这个笛声和丁丁小朋友没有直接的关联,他不知道具体会在什么时候响,只要水开就会由水壶产生并传到丁丁小朋友的耳朵里,笛声是他的“外部中断信号”;闹铃是丁丁小朋友用他的闹钟来产生的,和炖排骨没有直接联系,只是因为丁丁小朋友知道排骨二十五分钟可以炖好才设置成这个时间,他自己是知道闹铃什么时候会响,只是他不想频繁地去看时间才用闹钟定时,闹铃声是他的“内部中断信号”。

通过丁丁小朋友做家务的例子我们明白了中断的原理和方法:单片机在工作的时候往往需要处理多个事情,有些事情只并不需要单片机时刻进行控制,只是需要在某些特定的条件下由单片机做出相应处理,有些事情则需要单片机花比较多的时间逐步控制,一旦停止控制就无法进行下一步操作,中断的引入可以让单片机面对这样的问题时有更高的工作效率,对于不需时刻进行控制的事情在需要被干预时发出中断信号让单片机来进行相应处理,需要时刻控制的就由单片机主程序循环持续控制。

单片机中断分为内部中断和外部中断两大类,外部中断由单片机外部设备产生,中断产生后通过单片机的外部管脚传递给单片机,传递这个中断信号最简单的方法就是规定单片机的管脚在什么状态下有外部中断产生,这样单片机通常是有一个或多个IO口当在输入状态时可以用来检测外部中断信号。有外部中断产生的条件通常也就是这五种:IO口输入为高、IO口输入为低、IO口输入由高变为低、IO口输入由低变为高、IO口输入由高变低或者由低变高。

一个连接到单片机的外部设备,如果想要使用单片机的外部中断,就必须在自己请求单片机中断响应的时候给单片机提供单片机在这五种信号中所支持的类型来触发单片机中断。程序运转中,一个中断不是只产生一次,一般都会间隔持续产生,这五种外部中断触发信号前四种都有一个问题,就是外设发出请求中断信号后如果信号请求线状态不改变,外设会无法向单片机提供下一次中断请求信号。让我们来看看以单片机和外部设备采用负跳变触发中断为例的触发情况。

外部设备以负跳变触发单片机中断,第一次中断请求外部设备的中断请求输出脚可以从高变低,触发单片机中断,第一次中断请求发生后中断请求脚保持输出低,外部设备无法产生第二次中断的触发负跳变信号。