下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于at89c51芯片的多任务驱动设计 文辉余丽萍【摘 要】文章以单片机芯片at89c51为依托,利用高级编程c语言设计出8位单片机的多任务处理的方法。介绍了其设计的原理,从单任务入手逐步分析多任务处理的具体过程,从而实现多任务并发执行的功能。【关键词】at89c51;c语言;多任务传统的单片机程序一般采用单任务机制。所谓"单任务机制"是指该系统不能支持多任务并发操作,宏观串行地执行一个任务。由于程序只能按顺序依次执行,缺乏灵活性。多任务机制则可以宏观并行(微观上是串行)地"同時"执行多个任务。笔者设
2、计的这种多任务机制,不需使用汇编,采用常用的c语言编写,按照所给出的参数,添加自己的任务代码,就可以实现多任务的并发执行。1、单片机多任务机制的工作流程本文采用美国 atmel 公司生产的 mcs51 系列兼容芯片,在通常的单片 at89c51应用情况下,程序被设计成一段无限循环的代码while(1),即构成一个连续执行的单任务系统。2、多任务并发设计假设要控制一个led灯的闪烁,其实现过程为:点亮led,延时,关闭led,延时,依次循环下去。但是,如果需要控制两个led灯的闪烁,一个是每一秒闪烁一次,另一个没0.5秒闪烁一次,这就需要考虑将处理器的时间进行分割,不同的任务获得一定时间片段来执
3、行程序,当这个时间片到期了,就中断转而由另外任务来获得处理器的资源。本文所设计的方法为:采用一个自定义的进程控制器(变量stp)将其分成四个部分。在ledlight()函数中实现的伪代码如下。void ledlight(vopid)switch(stp)case 0:亮灯;stp+;break;case 1:延时;stp+;break;case 2:灭灯;stp+;break;case 3:延时;stp=0;break;每次进入ledlight这个函数只执行了其中的一个小部分。接下来,对其中的每个小部分进行改进为某个小的任务,而每个小任务又分成多个小部分。这样,就形成了如下图1所示的多任务机制
4、。图1 多任务结构程序流程图由于每个任务的执行时间不尽相同,因此引入定时器来处理不同的延时。其工作原理是程序判定任务的记时器是否满足条件而决定任务是否继续执行。因此上面的程序就改为:void ledlight(void)static unsigned int stp=0;switch(stp)case 0:亮灯;stp+;定时器初始化;break;case 1:if(定时器未到)break;stp+;break;case 2:灭灯;stp+;定时器初始化;break;case 3: if(定时器未到)break;stp=0;break;定时器就是用变量做累加或者递减,当所设定的值自增或自减到了
5、一定数量后(即消耗掉一定的时间)则作为一种程序的判定,如果定时器未到,则转为下一个任务执行,如果定时器到了,就开始执行本地的任务。为了使软件定时器更精准,就可以对硬件定时器的溢出次数计数。那软件定时器的定时时间就是硬件定时器溢出时间的整数倍。因此程序改为:unsigned char timer2; /*两个软件定时器*/void timere0irq(void) interrupt 1timer0+;timer1+;void ledlight(void)static unsigned int stp=0;switch(stp)case 0:亮灯;stp+;timer i=0;break;case 1:if(timeri< p>case 2:灭灯;stp+;timeri=0;break;case 3: if(timeri< p>3、结束语实现多任务操作除了本文中所介绍的方法之外还有其他的方法,如arm开发常用的?c/os-ii、rtx-51tiny等。但是rtx-51tiny必须采用keil公司的c51编译器,?c/os-ii则对芯片的ram空间要求比较高,51
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年教育心理学考试备考题库及答案一套
- 常州人才科创集团有限公司招收就业见习人员笔试参考题库及答案解析
- 2026年对口单招外贸试题附答案
- 2026重庆工信职业学院招聘12人笔试备考题库及答案解析
- 2026年徐州幼儿师范高等专科学校单招职业适应性考试题库及答案1套
- 2026年小学生考试心理考试题库及参考答案
- 2026年心理普查考试题库参考答案
- 2026广东中山市东凤东海学校教师招聘8人笔试备考题库及答案解析
- 2026浙江台州浙江大学科技园发展有限公司招聘2人笔试参考题库及答案解析
- 2026广东江门市供销集团侨通农产品有限公司招聘业务岗1人笔试参考题库及答案解析
- 医院检查、检验结果互认制度
- 2026年高考化学模拟试卷重点知识题型汇编-原电池与电解池的综合
- 2025青海省生态环保产业有限公司招聘11人笔试历年参考题库附带答案详解
- 2025浙江杭州钱塘新区建设投资集团有限公司招聘5人笔试参考题库及答案解析
- 2025年天津市普通高中学业水平等级性考试思想政治试卷(含答案)
- 2025年昆明市呈贡区城市投资集团有限公司及下属子公司第二批招聘(11人)备考核心题库及答案解析
- 2025年中国磁悬浮柔性输送线行业市场集中度、竞争格局及投融资动态分析报告(智研咨询)
- 学堂在线 雨课堂 学堂云 科研伦理与学术规范 期末考试答案
- 基于单片机的智能家居控制系统设计
- 锅炉大件吊装方案
- 昆明医科大学第二附属医院进修医师申请表
评论
0/150
提交评论