51单片机多任务机制的实现策略研究

51单片机多任务机制的实现策略研究

ID:33750400

大小:278.22 KB

页数:3页

时间:2019-02-28

51单片机多任务机制的实现策略研究_第1页
51单片机多任务机制的实现策略研究_第2页
51单片机多任务机制的实现策略研究_第3页
资源描述:

《51单片机多任务机制的实现策略研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第18卷第2期四川文理学院学报(自然科学)2008年3月Vol.18No.2SichuanUniversityofArtsandScienceJournal(NaturalScienceEdition)Mar.2008351单片机多任务机制的实现策略研究12罗江,户永清(1.四川文理学院计算机科学系,四川达州635000;2.四川文理学院物理与工程技术系,四川达州635000)【摘要】从操作系统实现多任务机制的原理入手,分析了51单片机实现多任务机制的基本条件,论述了51单片机实现多任务控制的二种方案。【关键词】51单片机;多任务机制;时间片;中断[中图分类号]TP368.1

2、[文献标识码]A[文章编号]1008-4886(2008)02-0082-03个运行的程序上取走控制权和使另一个程序获得控制权0引言的能力。一个抢占式系统下运行的应用程序不用担心独51单片机在微型智能控制系统中应用很广,随着人占系统,因为系统会合理地给每个运行的任务分配时间们对控制系统的要求不断提高,51单片机的功能局限越片。将这种系统称做抢占式系统是因为它不管在所给时发明显。特别是51系列单片机不具有实时多任务支持功间块内会发生什么事,都抢占运行程序的控制权。[1]能,大大限制其在控制系统中的进一步发展。而多任务51单片机本身是单任务工作的,即程序只能按单一恰恰是现代操作系

3、统的突出特点,将多任务机制引入51的线索顺序执行,一个任务完成之后(除非中断),才能进单片机系统,可以大大提高现有单片机系统的工作效率,行下一个任务。但是,51单片机内提供了T0与T1两个满足多任务要求。16位的定时/计数器,若系统晶振为12MHz,那么计时器最长可以计时65.536ms,最短为1μs。也即通过对定时器1多任务机制在51单片机上实现的原理工作模式进行设置,可以进行1μs-65.536ms的定时中多任务要求系统在同一时间内执行多个任务,如果只断。如果把定时中断用作时间片的分配,完全可以实现多[3]有一个处理器,计算机并不是真的在给定时间段内运行多个任务分时轮换执

4、行。同时,单片机还提供INT0与个程序,而是按时间片在各个程序间飞快地切换,由于切INT1两个外部中断(可通过8259扩充为多级中断)和P0、换非常快,所以就有了在同一时间内运行多个程序的错觉P1、P2三个可编程的I/O端口,与定时器配合下,完全可了。以实现具有优先权判别的多任务控制。就操作系统的特点来看,多任务系统不外乎两种方2实现策略[2]式:协同式和抢占式。在一个协同式多任务系统中,每个运行的程序都要负责释放CPU控制权以便别的程序能有2.1通过定时器分配时间片实现多任务轮换执行机会运行,不管是显式地(Explicitly)还是隐式地(Implicit2由于单片机内两个

5、定时器可以同时工作,只要在一个ly)交出控制权。当一个程序因执行为某个目的而安排的定时器内开启/关闭另一个定时器,定时器交替工作,就可一个特殊的系统指令(如程序对磁盘绝对读写指令)时,以实现更长时间的定时。两个16位定时器在不增加外部称它显式地放弃控制权;当它因为执行某条系统指令,而计数单元的情况下,理论上可以实现1μs-4.29s之间的该指令在执行时又会放弃CPU控制权(如操作系统虚拟定时。但是由于中断和初始化设置等需要消耗单片机时内存技术的页面切换)时,称它隐式地放弃控制权。间,所以单纯使用定时器产生的最长时间片比理论值短一[4]在抢占式多任务系统中,操作系统必须具有从任

6、何一些。这对于单片机内部的任务轮换来说已经足够了。3[收稿日期]2007—09—20[基金项目]四川省教育厅资助科研项目《基于多任务机制的51单片机在微型智能控制系统中的应用研究》(项目编号:2006B089)成果之一[作者简介]罗江(1978—),男,四川南江人,讲师,硕士,主要从事计算机教学与研究。8212罗江,户永清:51单片机多任务机制的实现策略研究2008年第2期假设多个任务控制着多个设备,可让单片机的I/O口movtl0,#low(65536-10000)连接相应设备。每个任务分配一定的时间片,在时间片内djnz40h,tim0c占用CPU,进行运算和控制外部设备

7、,多个任务之间实现clrtr1轮换,其程序主流程如图1所示。noplcallxxxx;调用任务调度程序mov40h,#100;重置时间片数mov42h,th1;保存t1的统计结果mov41h,tl1setbtr1tim0c:poppswpopaccreti;用t1统计某任务外部信号的频率tim1:clrtr1⋯;其他调度程序setbtr1reti图1通过定时器中断实现多任务轮换的程序流程2.2通过外部中断后扫描端口来切换任务若用T0产生时间片,时间片中断内计时间片数,T1如果单片机外接较多的传感器,任务

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。