![单片机软件设计论文(全文)_第1页](http://file4.renrendoc.com/view/df417d58078fd8eff6df1cb018c3055d/df417d58078fd8eff6df1cb018c3055d1.gif)
![单片机软件设计论文(全文)_第2页](http://file4.renrendoc.com/view/df417d58078fd8eff6df1cb018c3055d/df417d58078fd8eff6df1cb018c3055d2.gif)
![单片机软件设计论文(全文)_第3页](http://file4.renrendoc.com/view/df417d58078fd8eff6df1cb018c3055d/df417d58078fd8eff6df1cb018c3055d3.gif)
![单片机软件设计论文(全文)_第4页](http://file4.renrendoc.com/view/df417d58078fd8eff6df1cb018c3055d/df417d58078fd8eff6df1cb018c3055d4.gif)
![单片机软件设计论文(全文)_第5页](http://file4.renrendoc.com/view/df417d58078fd8eff6df1cb018c3055d/df417d58078fd8eff6df1cb018c3055d5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机软件设计论文(全文)单片机软件设计论文(全文)全文共8页,当前为第1页。单片机软件设计论文(全文)单片机软件设计论文(全文)全文共8页,当前为第1页。1概述
很多单片机的应用中都需要同时执行很多任务,对于这样的应用,我们可以利用实时操作系统来灵活地安排系统资源。RTX51是美国Keil公司开发的一种小型的应用于MCS51系列单片机的实时多任务操作系统,它可以工作所有8051单片机以及派生家族中,简化了复杂的软件设计,缩短了项目周期。我们实践中用RTX51来开发单片机软件。设计单片机操纵的GPS接收板软件,取得了很好的效果。
2RTX51介绍
RTX51有2个模式:RTX51完全模式和最小模式。RTX51最小模式版是RTX51完全版的一个子集,可以很容易地运行在8051系统上,而不需要外部RAM(DXATA)。RTX51完全模式有4个任务优先级,可以和中断函数并行处理,各个任务之间通过使用“邮箱”系统来进行信号和消息的传递,可以从内存池中申请和释放内存;同时,可以强制一个任务停止执行,等待一个中断,或者是其它中断传来的信号量或者消息。RTX51对系统硬件的要求如表1所列。
2.1RTX51任务
RTX51区分2类任务:快速任务和标准任务。快速任务有很快的响应速度,每个快速任务使用8051一个单独的寄存器组,并且有自己的堆栈区域。RTX51支持最大同时有3个快速任务。单片机软件设计论文(全文)全文共8页,当前为第2页。标准任务需要多一点的时间来进行任务切换,因此使用的内部RAM相对快速任务要少,所有的标准任务共用1个寄存器组和堆栈。当任务切换的时候,当前任务的寄存器状态和堆栈内容转移到外部存储器中。RTX51支持最大16个标准任务。
RTX51任务状态:
①运行(RUNNIGN)——当前正在运行的任务处于RUNNING状态,同一时间只有1个任务可以运行。
②就绪(READY)——等待运行的任务处于READY状态,在当前运行的任务退出运行状态后,就绪队列中优先级最高的任务进入到运行状态。
③堵塞(BLOCKED)——等待一个事件的任务处于BLOCKED状态,如果事件发生且优先级比正在运行的任务高,此任务进入运行状态;如果优先级比正在运行的任务低,此任务进入READY状态。
④删除(DELETED)——没有开始的任务处于删除状态。
⑤任务切换——RTX51包含一个事件驱动的任务切换机制,它能够按照任务的优先级进行切换,也就是抢占式多任务系统;另外还有一个可选的时间片轮转切换任务模式,在时间片轮转模式下,同级别的任务是按照时间片分别占用CPU的。RTX51任务有4个优先级:0、1、2可以分配给标准任务,优先级3是为快速任务保留的。每个任务都可以等待事件的发生,而并不增加系统的负担;任务可以等待消息、信号、中断、超时事件或者它们单片机软件设计论文(全文)全文共8页,当前为第3页。的组合。任务切换是按照一定规则进行的,包括:进入到“就绪”状态的优先级高的任务先执行;如果“就绪”状态的几个任务是同一个优先级,那么最先进入“就绪”状态的先执行。
RTX51任务切换图如图1所示。
2.2RTX51事件
超时(timeout):挂起运行的任务指定数量的时间周期。
间隔(interval):类似于超时,但是软件定时器没有复位,典型应用是产生时钟。
信号(signal):用于任务内部同步协调。
消息(message):适用于RTX51Full,用于信息的交换。我们可以把一个消息交送到一个特定的邮箱。消息由2字节组成,可以是用户按照自己的需求定主的数据,也可以是指向数据的指针。如果邮箱的消息列表满,而且是中断发送消息,这个消息将会丢失;如果是任务发送消息,那么任务将会进入到等待状态,直到邮箱重新有了位置可以接收这一条消息。邮箱是按照FIFO的原则来治理消息的,如果几个任务都在等待接收消息,那么最先进入等待接收队列的将接收消息。一个邮箱最多可以存储8条消息。当邮箱满的时候,最多只能有16个等待任务。
中断(interrup):适用于RTX51Full,信号量用于治理共享的系统资源。通过使用“令牌”,同意在同一时刻只有一个任务使用某些资源。如果几个任务申请访问同一个资源,那么首先提出申请的将同意访问,其它的任务进入等待队列,直到第1个单片机软件设计论文(全文)全文共8页,当前为第4页。任务操作完毕,下一个任务才能继续。
Os_wait()函数挂起一个任务来等待一个事件的发生。这样可以同步2个或几个任务。它的工作过程如下:当任务等待的事件没有发生的时候,系统挂起这个任务;当事件发生时,系统根据任务切换规则切换任务。
2.3RTX51中断处理
RTX51完全模式提供2种方法来处理中断:一种是C51的中断函数,另一种是RTX51的断。它又可以分为快速任务中断和标准任务中断。对于中断函数这种方法,它同时也可以在不使用RTX51的情况下使用,当中断发生的时候,程序就跳到了相应的中断函数,它和正在运行的任务是互相独立的,中断的处理是在RTX51系统之外,和任务切换规则没有关联。对于任务中断的方法,不管使用快速是标准任务来处理中断,如果中断发生,等待中断的任务就从“等待”状态进入到就绪状态,并按照任务切换规则进行切换。这种中断处理是完全集成在RTX51的内部,硬件中断事件的处理和信号、信息的处理是完全相同的。在系统响应中断使能寄存器,这样才能遵守任务的切换规则并保证中断程序的无误进行。必须注意中断使能寄存器是由RTX51完全操纵的,禁止用户手动的修改。
3应用实例
以下给出RTX51在单片机操纵的GPS接收板上的应用。
(1)系统硬件组成
单片机软件设计论文(全文)全文共8页,当前为第5页。单片机W77E58,快速8051内核、32KBROM、1KB的XDATARAM,符合使用RTX51的硬件要求;键盘、GPS定位模块、液晶显示模块。
(2)系统软件构成
软件运
行环境KEILuVision26.20集成开发环境加上RTX51完成版。任务KEY-BOARD,监测键盘的情况,如果有按键按下,把按键的编码发更新到邮箱1,外部中断1等待接收GPS数据,并把数据存储起来,向DISPLAY任务发出信号。任务DISPLAY根据接收到的不同的信号和消息,进行处理。任务SEND-OUT,把接收到的数据进行处理,并发送出去。任务VOICE进行语音输出。
系统硬件、软件结构如图2所示。
下面给出简写的源程序:
#include<RTX51.h>//包含RTX51头文件
#defineDISPLAY0
#defineSEND_OUT1
#defineKEY_BOARD2
#defineVOICE3
voidmain(void)
{initsystem();//系统初始化
osstartsystem(DISPLAY);//启动RTX51
}
单片机软件设计论文(全文)全文共8页,当前为第6页。voidtask0(void)_task_DISPLAY
{os_set_slice(1000);//设置时间片大小
os_enable_isr(0);//同意外部中断0
os_creat_task(SEND_OUT);//启动SEND_OUT任务
os_creat_task(VOICE);//启动VOICE任务
for(;;){
switch(os_wait(K_SIG+K_MBX+1,255,&keyboard))//等待接收信号和键盘消息,分类处理
{display1();break;
caseEVENT_MBOX;//当从邮箱接收到数据的时候switch(keyboard)
{case''''1'''';
…
os_send_signal(SEND_OUT);//向任务SEND_OUT发送信号
…
os_send_signal(VOICE);}//向任务VOICE发送信号
…;}
…;}
}
voidtask1(void)_task_SEND_OUT//处理发送数据任务
{while(1)
{os_wait(K_SIG,255,0)//等待信号
单片机软件设计论文(全文)全文共8页,当前为第7页。operation_send();
}
voidtask3(void)_task_VOICE
{while(1){
os_wait_signal(K_SIG,255,0);//等待语音处理信号
voice();}
}
voidinterrupt(void)interrupt2using1
{read_gps_data(p_gps_data);//接收数据
isr_send_signal(DISPLAY);//向DISPLAY任务发信号
}
#pragmaREGISTERBANK(2)//使用寄存器组2
voidtask2(void)_task_KEYBOARSD_priority_3//设置为快速任务
{os_attach_interrupt(0);//绑定任务和外部中断0
while(1){
os_wait(K_INT,255,0);//等待中断的发生
KEY=iic_read_keyboard();
os_send_message(1,KEY,0);}//将键盘编码发送到邮箱1
}
4结论
通过实践我们可以发现,使用RTX51开发单片机程序更加方单片机软件设计论文(全文)全文共8页,当前为第8页。便了。尤其是较大的程序,幸免了自
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 永川商用开水器施工方案
- 2025至2030年中国滋润沐浴露数据监测研究报告
- 2025至2030年中国六滚总成数据监测研究报告
- 2025至2030年中国不锈钢风机盘管接头数据监测研究报告
- 德州吸音棉喷涂施工方案
- 西峡钢结构房屋施工方案
- 2025年中国单面九脚托盘市场调查研究报告
- 2025年中国内丝承口三通市场调查研究报告
- 2024-2025学年高中物理第2章2原子的核式结构模型学案教科版选修3-5
- 2024-2025学年高中物理第15章相对论简介第1节第2节相对论的诞生时间和空间的相对性课后练习含解析新人教版选修3-4
- 四川省宜宾市中学2025届九上数学期末统考模拟试题含解析
- 贵州人民版五年级劳动下册教案
- 2024年包头市水务(集团)有限公司招聘笔试冲刺题(带答案解析)
- 知识库管理规范大全
- 华能分布式光伏项目EPC总承包工程投标文件-技
- 蜜雪冰城营销策略研究开题报告
- 《游戏界面设计》课件-01单元-游戏界面设计概论
- 2024版《公司法培训讲义》
- 2024年赣州民晟城市运营服务有限公司招聘笔试参考题库附带答案详解
- 领导干部报告个人事项
- 政府机关保安服务项目整体服务方案
评论
0/150
提交评论