一种基于C51的多任务机制及应用 摘要:本文介绍了一种在MCS51单片机程序中实现多任务机制的简单方法,并给出了源代 码和一个应用实例。通过中断进行实时任务切换,具有结构简单清晰、代码量少、不需 使用汇编等优点。该方法亦可应用于其他单片机系统。 关键词:多任务系统 单片机 C51 中断 安防系统 引言 传统的单片机程序一般采用单任务机制,单任务系统具有简单直观、易于控制的优点。 然而由于程序只能按顺序依次执行,缺乏灵活性,只能使用中断函数实时地处理一些较 短的任务,在较复杂的应用中使用极为不便。嵌入式多任务操作系统的出现解决了这个 问题。在多任务系统中,可以同时执行多个并行任务,任务之间可以相互跳转。但是嵌 入式操作系统在提供强大功能的同时,也带来了代码量大、结构复杂、对硬件要求较高 、开发难度大且成本高等问题。而很多时候只需要实现简单的多任务操作就可以满足实 际需要,本文设计的这种简单的多任务机制,在只增加极少量C语言代码的前提下,不需 使用汇编,无需对原本的程序进行大改动,就可以实现多任务操作。 实时操作系统RTOS的核心是中断,利用中断进行任务切换。在大部分RTOS如μC/OS- II中,每个任务都有自己的堆栈,用来保存任务的一些信息,任务之间通过信号量、邮 箱、消息队列等传递信息。在很多情况下并不需要这些功能,只需要使单片机在接收到 控制信号后,切换到不同的工作状态,也就是只要进行任务切换,不需要保存任务的相 关信息。舍弃这些复杂的功能可以使程序结构变得简洁易用。 两种……