单片机汇编版的多任务实时操作系统

单片机汇编版的多任务实时操作系统

ID:25600708

大小:47.32 KB

页数:11页

时间:2018-11-21

单片机汇编版的多任务实时操作系统_第1页
单片机汇编版的多任务实时操作系统_第2页
单片机汇编版的多任务实时操作系统_第3页
单片机汇编版的多任务实时操作系统_第4页
单片机汇编版的多任务实时操作系统_第5页
资源描述:

《单片机汇编版的多任务实时操作系统》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、51单片机汇编版的多任务实时操作系统    一个CPU核心是不可能同时处理多条指令的,只能是一条一条的顺序执行。如果我们需要同时执行多个任务,但又不能等一个任务执行完了再执行下一个任务,有的任务还需要等待一个信号触发才能往下执行,信号迟迟未来那就什么也做不了了!!操作系统的出现,就是为了解决这一问题的。它的功能就是能让CPU“同时”处理多个任务,当然不是真正的同时,它只是把这些任务的分成不同的时间段来处理,每个任务只执行很短的的时间(只执行一部分指令),然后保存断点就切换到下一个任务的指令去执行,同样只执行

2、很短的的时间(只执行一部分指令),再保存断点切换任务。等所有的任务都执行一次后再回来从断点处继续执行,时间到,再保存断点切换任务,如此反复。因为CPU的频率高,所以完成一次循环的时间极短,51单片机的频率一般40MHz以内,所需时间是ms、us级的,电脑的主频是GHz级别的,那更不用说,这样短的时间对于我们来说就是同时的。   学过C51的大都知道RTX51,它是单片机实时多任务系统,是kill51自带的,但是还有很多汇编爱好者不能使用它,因为它是C语言的。为此本人设计了两个个简单的汇编语言版的多任务实时系

3、统,专为汇编爱好者提供一个参考。高手勿喷!    本程序使用定时器中断的方法产生时间轮片,每个任务分配在一个时间轮片上。如果一个时间轮片(定时器的时间)是250us,那每个任务执行一次的时间就是250us(因为任务切换的时间极短,所以里省略了);有4个任务要执行,那么系统完成一次循环的时间是250*4=1000us=1ms。即先执行任务一250us,然后保存任务一的断点,切换到任务二执行250us,再保存任务二的断点,切换到任务三执行250us,接着保存任务三的断点,切换到任务四执行250us,保存任务四的

4、断点,再次切到任务一断点处继续往下执行250us,再保存再切换到下一个任务的断点处执行,照此循环。所以这些任务并不是同1us内完成的,而是同1ms内完成的,当然更是同时同分同秒完成的。程序只是个演示程序,功能的开发看个人要求而定!轻量四任务实时系统 ORG0000HRW1_SP DATA  20H;任务堆栈指针位置寄存器RW2_SP DATA  21HRW3_SP DATA  22HRW4_SP DATA  23H ORG0000HAJMPMAINORG000BHLJMPRWQHCXORG0076H   ;

5、================任务切换程序===========================================RWQHCX:JNB  RS0,LOOP3JNB  RS1,LOOP4;==============任务4现场保护PUSH ACC        ;需注意与任务4现场还原对应PUSH BPUSH PSWMOV  RW4_SP,SP  ;保存任务4的堆栈指针位置;==============任务2现场还原MOV  SP,RW1_SP  ;取任务1的堆栈指针位置,任务1使用寄存器0组

6、POP PSW          ;需注意与任务1现场保护对应POP BPOP ACCRETILOOP2:;==============任务1现场保护PUSH ACC        ;需注意与任务1现场还原对应PUSH BPUSH PSWMOV  RW1_SP,SP  ;保存任务1的堆栈指针位置;==============任务3现场还原MOV  SP,RW2_SP  ;取任务2的堆栈指针位置,任务2使用寄存器1组POP PSW          ;需注意与任务2现场保护对应POP BPOP ACCRETI

7、LOOP3:JNB  RS1,LOOP2;==============任务2现场保护PUSH ACC        ;需注意与任务2现场还原对应PUSH BPUSH PSWMOV  RW2_SP,SP  ;保存任务2的堆栈指针位置;==============任务4现场还原MOV  SP,RW3_SP  ;取任务3的堆栈指针位置,任务3使用寄存器2组POP PSW           ;需注意与任务3现场保护对应POP BPOP ACCRETILOOP4:;==============任务3现场保护PUSH

8、 ACC        ;需注意与任务3现场还原对应PUSH BPUSH PSWMOV  RW3_SP,SP  ;保存任务4的堆栈指针位置;==============任务1现场还原MOV SP,RW4_SP  ;取任务4的堆栈指针位置,任务4使用寄存器3组POP PSW         ;需注意与任务4现场保护对应POP BPOP ACCRETI ;========任务一程序==================

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

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

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