0 引言
51单片机在微型智能控制系统中应用很广,随着人们对控制系统的要求不断提高,51单片机的功能局限越发明显。特别是51系列单片机不具有实时多任务支持功能,大大限制其在控制系统中的进一步发展。而多任务恰恰是现在操作系统的突出特点,将多任务机制引入51单片机系统,可以大大提高先有单片机系统的工作效率,满足多任务要求。
1 多任务机制在51单片机上的实现原理
多任务要求在同一时间内执行多个任务,如果只有一个处理,计算机并不是真的在给定时间段内运行多个程序,而是按时间片在各个程序间飞快切换,由于求欢非常快,所以就有了在同一时间内运行多个程序的错觉了。
就操作系统的特点来看,多任务系统不外乎两种方式:协同式和抢占式。在一个协同式多任务系统中,每个运行的程序都要负责释放CPU控制权以便别的程序能有机会运行,不管是显式地(Explicitly)还是隐式地(Implicitly)交出控制权。当一个程序因执行为某个目的而安排的一个特殊的系统指令(如程序对磁盘绝对读写指令)时,称它 显式地放弃控制权;当它因为执行某条系统指令,而该指令在执行时又会放弃CPU的控制权(如操作系统虚拟内存技术的页面切换)时,称它隐式地放弃了控制权。
在抢占式多任务系统中,操作系统必须具有从任何一个运行的程序上取走控制权和使另一个程序获得控制权的能力。一个抢占式系统下运行的应用程序不用担心独占系统,因为会合理地给每个运行的任务分配时间片。将这种系统称作抢占式系统是因为它不管在所给时间块内会发生什么事,都抢占运行程序的控制权。
51单片机本身是单任务工作的,即程序只能按单一的线索顺序执行,一个任务完成之后(除非中断),才能进行下一个任务。但是,51单片机内提供了T0和T1两个16位定时/计数器,若系统时钟为12MHz,那么计时器最长可计时65.536ms,最短为1us。也即通过对定时器工作模式进行设置,可以进行1us-65.536ms的定时器工作模式进行设置,可以进行1us-65.536m