51操作系统IN_TIME_OS.pdfVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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)

mwap + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档