实时多任务操作系统(RTOS)在51单片机系统开发中的应用

时间:2022-09-28 02:09:45

实时多任务操作系统(RTOS)在51单片机系统开发中的应用

摘要:通过分析实时多任务操作系统(RTOS)的机制和特点,将其引入51单片机的系统开发当中,特别是尝试使用该方法解决单片机技能大赛比赛任务的编程问题,可有效改善程序结构,提高效率。

关键词:实时多任务;单片机;系统开发

引言

单片机系统开发主要包括硬件连接和软件编程,其难点在于软件编程。传统的单片机程序为单任务系统,虽然近年来单片机C语言编程已取代了汇编语言,程序结构更易于理解,但是其逻辑框架还是单任务,主函数作为整个程序的入口,由一个大的死循环构成,循环中间调用函数执行分时独立的动作,一些时间较短的任务采用定时中断完成。此种程序结构简单、易于理解和实现,在一般的单片机系统开发中多采用此种方式。

随着智能化控制系统的需求不断提高,需要单片机系统开发不断提高效率,必须改变传统的程序单任务机制,可以将任务分解为若干个程序子任务模块,并引进多任务机制进行管理,从而形成一套新的程序结构。近年来兴起的一套操作系统----RTX-51,是一种小型的实时多任务操作系统(RTOS),它允许多任务轮转切换,支持并行利用中断,RAM需求量不大,采用多任务并发机制,在应用于51单片机系统开发中时,被证明效果良好,也适合于解决比较复杂的单片机技能大赛系统开发任务。

1 RTX-51简介

RTX-51是德国Keil公司开发的适用于MCS-51单片机的实时多任务操作系统,它支持循环任务切换与信号传递, 还能并行的利用中断功能,不提供抢先的任务切换。在RTX-51 系统中就是一个C51 函数一个任务,该函数没有返回值,也没有参数。该函数体必须是一个无限的循环,以保证该函数不能返回。RTX-51系统中一个具体的任务通过下面的格式定义:

void taskname(void) _task_ num

num 是任务号,取值为0-15。taskname 是任务的名称。下面是一个具体的任务定义。

void init(void) _task_ 0{

while(){

/* 具体的操作语句*/

}}

2 RTX-51在51单片机系统开发中的应用

RTX-51建立在单片机硬件系统之上,用户的一切开发工作都进行于其上,因此它可以称作是一个平台。采用RTX-51的用户不必花大量时间学习硬件,与直接开发相比起点更高。RTX-51还是一个标准化的平台,它定义了每个应用任务和内核的接口,也促进了应用程序的标准化。应用程序标准化后便于软件的存档、交流、修改和扩展,为嵌入式软件开发的工程化创造了条件,减少开发管理工作量。嵌入式软件标准化推广到社会后,可以促进软件开发的分工,减少重复劳动,近来出现的建立于RTX-51上的文件和通信协议库函数产品等就是实例。

3 案例分析

通过RTX-51 系统进行编程实现的带温度显示的万年历系统。

3.1 硬件结构

硬件组成如图1所示。

图1 带单片机控制万年历硬件示意图

3.2 软件结构

将要实现的主要功能分解成5个子任务。init()任务用于创建其它的任务,它是第一个被系统执行的任务;lcd()任务用来处理在液晶屏1602上显示信息gettemper ()任务用来从DS18b20 传感器读取温度值;getclock()任务用来从DS1302芯片中读出时间信息;key()任务用于处理按键操作。程序流程图如图2所示。

图2 单片机控制万年历系统RTX-51软件系统示意图

4 结束语

将现代操作系统的多任务思想引入单片机系统开发,是一种新型的程序结构和开发模式。这种结构模块清晰,调度灵活,尤其适用于定时要求复杂、需动态改变执行结构的程序设计。在单片机嵌入式系统规模日益扩大的情况下,具有较高的实用价值。

参考文献:

[1] 宋蕴璞, 周文泳, 徐鸣谦 高校单片机教学实验设备与方式探讨实验室研究与探索,2009.11:6-7

[2] 刘春龙、张炜 单片机控制装置安装与调试备赛指导 高等教育出版社2010.3第1版

[3] 葛金印,商联红 单片机控制项目训练教程 高等教育出版社2010.3第1版

上一篇:校本原则下的高校体育教育管理模式探讨 下一篇:低年级班级管理工作的见解