首页 理论教育 任务分析:单片机LED流水灯及紧急处理任务

任务分析:单片机LED流水灯及紧急处理任务

时间:2023-06-28 理论教育 版权反馈
【摘要】:分析一下本章的任务要求,我们可以得知如下情况。单片机的日常事务:LED0~LED3四个灯依次循环点亮。单片机需要紧急处理事务:LED5闪烁5次。1)日常事务——通过前3章的学习,这只是简单的流水灯任务。3)紧急处理事务——若是仅仅LED5闪烁5次,相信不难实现。

任务分析:单片机LED流水灯及紧急处理任务

通过前3章的学习,相信读者可以轻松地单独实现LED0~LED3的依次点亮并循环,以及LED5闪烁5次。这里不妨请读者立即验证一下吧。特别需要提醒的是:LED0~LED3是依次点亮并循环,即不断点亮;而LED5只是闪烁5次,就熄灭了,不构成循环。这点请读者在编程时务必注意区别。

单独实现本章两种情况的指示灯显示不成问题,那如何确保LED0~LED3平时依次点亮并循环,一旦有紧急情况,立即转去让LED5闪烁5次,处理后返回继续执行LED0~LED3的显示?首先,让我们先来感受一下现实生活中我们是如何处理类似的情况。

【实例1】你正在看书,突然电话响了。你使用书签等方式记录当前书页,便赶紧去接电话,聊毕,挂断电话,重新开始阅读。

现实生活中,当我们正在处理一些日常事务时,总会发生一些突发的、紧急的情况,需要我们快速去响应和处理,待处理完毕后,继续完成日常事务。因为有突发情况时,往往是我们日常事务的进行过程中,因此一般需要适当记录当前工作点,以方便处理完紧急事务返回时,可以继续从这里开始工作。

【实例2】你正在看书,突然电话响了。你一看是骚扰电话,就直接掐断电话,继续看书。

现实生活中,并不是所有的突发情况,我们都必须立即去响应,有时可以选择“屏蔽”。

【实例3】你正在看书,突然电话响了。是你妈妈打来的,问你什么时候回家。正说着,另外一个电话又响了,是你急着想要联系的朋友打来的。你就会暂停你妈妈的电话,接了朋友电话后再继续听你妈妈的电话,说完挂断,继续看书。

现实生活中,有时一件突发情况还在处理中,会发生另外一件更加紧急的突发情况,我们必须先去处理这个更加紧急的突发状况,处理完毕后再回来继续处理之前的突发情况,待全部处理完毕后,你才能继续做你的日常工作。很明显地,本实例中,我们假设你的朋友比你妈妈具有更高的“优先级”,因为他可以打断你妈妈的电话。

【实例4】你正在看书,突然电话响了。是你妈妈打来的,问你什么时候回家。正说着,另外一个电话又响了,是你朋友打来约几点吃饭的。你与妈妈讲完电话后,再去接你朋友的电话,通话结束后,继续看书。

这个例子告诉我们,你的妈妈和你的朋友具有“相同的优先级别”,这时本着“先来后到”的原则,你接听完你妈妈的电话才去接听你朋友的电话,最后才回来继续看书。

想一想

请读者结合上述几个实例,认真思考,回答如下问题。

1.是不是所有的突发情况都必须给予响应和处理?(www.xing528.com)

2.当一种突发情况正在处理中,发生了另外一件更加紧急的突发情况,你会怎么处理?

3.一般情况下,处理突发情况所占的时间,是越长越好,还是越短越好?

完成了上述思考问题后,转到我们的学习对象——单片机。分析一下本章的任务要求,我们可以得知如下情况。

➢单片机的日常事务:LED0~LED3四个灯依次循环点亮。【类似人在看书】

➢单片机遇到的突发、紧急情况:外部信号。【类似电话响】

➢单片机需要紧急处理事务:LED5闪烁5次。【类似接听电话、沟通事情】

那么现在问题的关键在哪里呢?

1)日常事务——通过前3章的学习,这只是简单的流水灯任务。【已解决】

2)突发情况的发生——怎么知道有突发情况发生了呢?一旦发生如何处理?【未解决,本章重点】

3)紧急处理事务——若是仅仅LED5闪烁5次,相信不难实现。但问题是:只要一有突发情况发生,这个事务必须立即被处理,不得延迟,这就是所谓的“效率”和“实时性”。【未解决如何立即处理,本章重点】

因此,要完成这个设计任务,必须学习并使用“中断”,平时单片机处理日常事务(LED0~LED3循环点亮),任何时刻,一旦出现外部紧急信号,则应立即暂停日常事务,转去处理紧急事务(LED5灯闪烁5次),处理完毕后返回。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈