- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IN_TIME_OS 操作系统操作系统
操作系统操作系统
很开心写下这篇文章,本人喜欢研究单片机的编程方法以及各种算法,最近因工作繁忙,
任务较多,编程频繁,所以研究一些可以提高编程效率的方法,因此想在单片机上做一个模
块,但是找了很久找不到可以各种单片机可以通用的模块,于是看到了陈明计的 51 单片操
作系统 非常感兴趣,画了一星期的时间研究,确实非常的好,可是发现该系统虽然占用内
存很小但是实时性还是有欠缺,而且内存比 51 还要小的单片机是很难应用该系统的,因此
我个人做了一个非常微型的操作系统用于内存小且 rom 也小的单片机中 比如义隆的 时速
的,三星的,凌阳的 松瀚的 等等他们所发布的低端单片机中,本系统非常容易移植。
/*学习了陈明计的操作系统后,对 51 单片机的应用深有感触,因此闲暇之余参照了陈明计
以及网友发表的操作系统写下了本人的51 操作系统,是入门级的,
不足之处还望大家多多提意见,本人邮箱:zhudeng66@163.com,QQ:550606839 非常
欢迎网友提供宝贵的建议,本系统是基于时间片轮转的操作系统,
我设定了两个任务,无需扩展 RAM,在 51 和 52 上都可以运行,是一个非常简单的操作
系统,本系统自动保存断点,可以添加任务,但需注意内存是否够用
本 RTOS 命名为:IN_TIME_OS*/
#include reg52.h
#define uchar unsigned char
#define uint unsigned int
#define os_int(tid) { task_sp[tid]=task_stack[tid]+1;SP=task_sp[tid];}//
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3; // 引脚定义:我只是简单的通过这几个引脚演示了本操作
系统的工作
sbit P1_4=P1^4;
sbit P1_5=P1^5;
sbit P1_6=P1^6;
sbit P1_7=P1^7;
uchar task_stack[2][20]; // 定义 2 个任务私栈
uchar task_sp[2]; // 定义栈指针
uchar task_id=1; //定义任务号,如果想要 1 号任务先启动那么该值初始化为 1
uchar zz,aa,bb,cc; //定义的全局变量 是任务中要用到的变量,为静态变量
/***********************************
函数名称: task_load
** 功能描述: 装载任务
** 输 入: 任务地址 ID
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 朱登
** 日 期: 2011 年 7 月 1 日
**
** 修 改:
** 日 期:
****************************************/
void task_load(uint fn,uchar tid){
task_stack[tid][0]=(uint)fn0xff;
task_stack[tid][1]=(uint)fn8;
task_sp[tid]=task_stack[tid]+4;} // 中断产生3 字节压栈 调整栈顶 ,具体看 51 的堆栈操
作
/***********************************
函数名称: T0_int
** 功能描述:
文档评论(0)