单片机内部中断和外部中断——摘自《删繁就简单片机入门到精通》

 

每个周末丁丁小朋友的父母会要求他独立完成一些家务,来培养他的劳动习惯,家务是固定的三件事情:烧两壶开水、炖一锅排骨、将家里的地板拖一遍。如果单独 完成这些事情,烧一壶开水大概需要十分钟,炖排骨大概二十五分钟,拖地板大概需要三十分钟,烧开水只要等水开了倒进保温瓶里,排骨炖好后关掉火就行。
    第一周,丁丁小朋友先开始烧水和炖排骨,然后去拖地板,为了看水有没有烧开和排骨有没有炖好,拖一会地板就要停下来跑到厨房去看一看,这样看一次需要一分钟,总共看了十次,四十分钟后三样家务全部做完。
虽然四十分钟把家务全部做完,但丁丁小朋友是隔几分钟才去看一下水有没有烧开,于是水被烧开了一会丁丁小朋友才发现,水烧开后从壶里溢出流到煤气灶上,有点危险,显然从家务完成的质量来看不是很理想。
    第二周,丁丁小朋友吸取了上周的经验,烧水换用水烧开后可以自动鸣笛的壶,排骨有上周的经验知道炖二十五分钟火候差不多,于是炖的时候用一个闹钟定时二十 五分钟,接下来专心开始拖地板。大约十分钟后,第一壶水烧开鸣笛,丁丁小朋友停下拖地板去把水倒进保温瓶接着烧第二壶,继续拖地板;又过了大约十分钟,第 二壶水烧开,丁丁小朋友同样处理;二十五分钟时间到,闹钟响起,丁丁小朋友过去看排骨,已经炖好于是关火,接着拖地板;三十三分钟,地板拖完,家务全部完 成。
    和第一周对比,时间少用了七分钟,而且水一开就去倒掉,消除了潜在危险,完成的质量自然要好一些,看来日常生活中的一些事情,不同的处理方法做出来的效果也会有明显差异。
丁丁小朋友做家务的例子对应单片机同时需要处理几个工作任务的两种基本方法:轮流查询和中断响应。开水烧开了不马上处理就会有危险,拖地板被打断有延时不会发生什么意外,但烧开水只要把水倒进壶里烧就行,烧的过程中并不需要做其它事情,拖地板则需要一直拖到全部地板拖完。
如果说第一周的方法是轮流查询那二周的方法就是中断响应,水烧开鸣笛和闹铃为中断发生信号,从丁丁小朋友两周完成的结果可以看出中断响应效果要好过轮流查询。
    序言中就说过单片机技术是一门实用工程技术学科,和日常生活息息相关,正是为了应付丁丁小朋友做家务例子中烧水炖排骨这类问题,单片机有了中断的概念。中 断就是在工作过程中突然有更紧要的事情去要去处理,于是将当前的工作打断,处理好更紧要的事情后再继续当前的工作。单片机的中断可分为两大类:一种是单片 机内部控制电路在某种条件下产生的叫内部中断,另外一种则是由单片机外部器件产生的叫外部中断。
    丁丁小朋友烧水和炖排骨对于他是两个独立的外部事情,这两个外部事情所产生的“中断信号”分别属于外部中断和内部中断。水烧开是水壶主动发出笛声,这个笛 声和丁丁小朋友没有直接的关联,他不知道具体会在什么时候响,只要水开就会由水壶产生并传到丁丁小朋友的耳朵里,笛声是他的“外部中断信号”;闹铃是丁丁 小朋友用他的闹钟来产生的,和炖排骨没有直接联系,只是因为丁丁小朋友知道排骨二十五分钟可以炖好才设置成这个时间,他自己是知道闹铃什么时候会响,只是 他不想频繁地去看时间才用闹钟定时,闹铃声是他的“内部中断信号”。
    通过丁丁小朋友做家务的例子我们明白了中断的原理和方法:单片机在工作的时候往往需要处理多个事情,有些事情只并不需要单片机时刻进行控制,只是需要在某 些特定的条件下由单片机做出相应处理,有些事情则需要单片机花比较多的时间逐步控制,一旦停止控制就无法进行下一步操作,中断的引入可以让单片机面对这样 的问题时有更高的工作效率,对于不需时刻进行控制的事情在需要被干预时发出中断信号让单片机来进行相应处理,需要时刻控制的就由单片机主程序循环持续控制
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 单片机外部中断和定时器中断是常见的中断方式。外部中断是指在单片机运行时,由部设备或元件引起的中断,例如部触发器、按键等。当部设备引起中断时,单片机会暂停正在执行的程序,转而执行外部中断服务程序。定时器中断是指单片机内部的计时器到达设定的时间后,引起的中断。当定时器中断发生时,单片机会暂停正在执行的程序,转而执行定时器中断服务程序。 在单片机编程中,外部中断和定时器中断常用于处理实时性要求较高的任务,例如按键检测、定时采样等。这些任务需要在单片机运行的同时,能够及时响应部事件,并进行相应的处理。外部中断和定时器中断的使用,能够大大提高单片机的实时性和处理能力,提高系统的稳定性和可靠性。 ### 回答2: 单片机外部中断是指当单片机部发生特定事件时,通过部信号触发中断,将CPU从正常运行状态切换到中断服务程序的一种机制。外部中断可以用于处理紧急事件或实时响应的需要。例如,当按下一个按钮时,可以通过配置单片机外部中断来检测到按钮状态的改变并触发一个中断,进行相关的操作。 定时器中断是指通过定时器计数到达一个预设的值时,会触发中断请求,使CPU跳转到中断服务程序进行相应的操作。定时器中断用于实现时间精确控制、周期性任务的执行、定时触发事件等应用场景。例如,可以通过定时器中断来实现LED灯的闪烁,每隔一定时间切换LED的亮灭状态。 外部中断和定时器中断在工作原理上有一些区别。外部中断需要监测部引脚的电平变化,当检测到部信号的变化时,触发中断。而定时器中断则需要设置定时器的初值和计数方式,当定时器计数到达预设值时,触发中断。 两者在应用上也分别有各自的优势。外部中断适用于对部信号实时响应的场景,如按键检测、部传感器触发等;而定时器中断适用于周期性任务的管理,如定时采样、定时触发等。在实际应用中,根据具体需求的不同,可以选择合适的中断方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值