序言

  • 工程准备
    • 创建工程
    • 拷贝并修改A51文件
    • 添加LED任务代码
  • 工程链接

最近我翻出了大学时玩51的开发板,主芯片还是STC的89C52RC,超大的DIP封装的那种。虽然板上资源较小,但这板确实是带我入门了。
毕业以后也从事相关的工作。同时也遇到了一些无语的面试,在我介绍自己项目时上来就是一个跑操作系统了没?额,这看具体项目需求,一些简单的应用没必要跑,跑起来反而会拉低性能。随即开始介绍起我擅长的rtthread、ucos、rxt三种操作系统的优劣。最后一刻介绍到51也可以跑操作系统的时候,谁知对方轻蔑一笑。。。
结果可想而知,凉了。随即我也换一家入职,公司规模比它大100多倍,哼哼。
今天就分享一下51单片机跑操作系统吧,意义还是有的,因为咋国产的51单片机还是有些主频高内存大的,到时候跑个这样的操作系统还可以提升性能。

工程准备

大学刚进实验室的时候一个学姐送的开发板,今天测试了下340芯片坏了,只能发不能收。不过没关系,这芯片我一直都有,嘿嘿。
主芯片89C52RC有8K的程序空间、RAM512Byte、EEPROM4K。

创建工程

选择芯片新建工程

使能使用RTX

拷贝并修改A51文件

拷贝Conf_tny.A51文件,在如下文件夹目录下,MDK自带有的。其中D:\MDK529是我MDK的安装目录。将其拷贝到工程目录下并加载到工程里面。

D:\MDK529\C51\RtxTiny2\SourceCode\Conf_tny.A51

修改A51文件中的时钟,因为不同的51单片机的时钟频率不一样(我的板子的晶振是11.0592M),同样的时钟周期也不一样,所以具体取值要重新计算,当然对实时性没有那么高要求保持默认也可。

添加LED任务代码

最后一步添加上两个LED任务的代码即可;任务的切换是依赖于定时器0的运行来完成的,当我在任务1中将定时器停掉的时候了的任务将不进行切换。

#include <rtx51tny.h>
#include <reg52.h>sbit led0 = P1^0;
sbit led1 = P1^5;void Delay100ms()     //@11.0592MHz
{unsigned char i, j;i = 180;j = 73;do{while (--j);} while (--i);
}void task_led0(void) _task_ 0
{os_create_task(1);//创建任务  //最大可执行16个任务while(1){os_wait2(K_TMO,20);led0 = !led0;}
}void task_led1(void) _task_ 1
{unsigned char x;static char y = 0;while(1){os_wait2(K_TMO,30);if(y == 0){y = 1;TR0 = 0;for(x=0;x<50;x++){Delay100ms();led1 = !led1;}TR0 = 1;}else led1 = !led1;os_wait2(K_TMO,10);y++;if(y==100){os_delete_task(1);//删除任务}}
}

工程链接

最后附上代码链接

51单片机使用RTX实时操作系统相关推荐

  1. 51单片机rtx51-Tiny嵌入式实时操作系统初试

    什么是RTOS系统 RTOS是Real Time Operation System的缩写,即实时操作系统! rtos51介绍 rtx51是什么 rtx51是keil官方开发的用于8051系列处理器多任 ...

  2. 基于51单片机运行RTX51 Tiny操作系统源码模板之1.LED闪烁

    什么是RTX51 Tiny: RTX51 Tiny是一种实时操作系统(RTOS),可以用它来建立多个任务(函数)同时执行的应用.能灵活的调度系统资源,像CPU和存储器,并且提供任务间的通信.RTX51 ...

  3. KEIL MDK RTX 实时操作系统

    Keil RTX 是免版税的确定性实时操作系统,适用于 ARM 和 Cortex-M 设备.使用该系统可以创建同时执行多个功能的程序,并有助于创建结构更好且维护更加轻松的应用程序. 产品的几大亮点 带 ...

  4. 基于51单片机的DS1302实时时钟

    本讲内容: 介绍DS1302实时时钟芯片基本知识,演示DS1302例程. DS1302实时时钟: DS1302能提供包括秒.分.时.日期.月份和年份信息.闰年可自行调整,可选择12小时制和24小时制, ...

  5. 基于51单片机的DS1302实时时钟程序

    DS1302概述 DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片.它可以对年.月.日.周.时.分.秒进行计时,且具有闰年补偿等多种功能. 工作原理 DS1302 是 ...

  6. Windows环境下的RTX实时操作系统学习记录

    在一次编程的时候,debug结束以后无法终止调试,甚至没法关机,找了一番原因,原来是我在主函数的while循环中没有延时,导致不停的按照最小时间间隔在运行,没有办法终止调试,解决方法:1.编程时避免过 ...

  7. 51单片机课设项目大全

    1-基于51单片机的音乐彩灯 2-基于51单片机的蓝牙智能台灯设计 3-基于51单片机的篮球计分器 4-基于51单片机的无线病床呼叫系统设计 5-基于51单片机的语音实时采集系统 6-基于51单片机的 ...

  8. 基于51单片机的语音采集系统设计(录音笔选择方案)

    功能: 基于51单片机的语音实时采集系统 系统由STC89C52单片机+ISD4004录音芯片+LM386功放模块+小喇叭+LCD1602+按键+指示灯+电源构成 具体实现功能: (1)可通过按键随时 ...

  9. RTOS实时操作系统

    RTOS实时操作系统 RTOS的起源与目的 RTX实时操作系统模块 任务创建.消灭 任务调度 调度方式---抢占式.时间片.合作式 优先级修改 任务间同步 事件标志组 信号量 互斥信号量 进程锁 任务 ...

最新文章

  1. n条直线相交最多有几个邻补角_【东升二中数字课堂】创意微课直线的交点|Super数学璐...
  2. Centos6.10源码部署zabbix-3.2.6
  3. python中cmd是什么_python中的cmd是什么
  4. MDI端口和MDIX端口是什么? 又有什么作用?
  5. 使用ldconfig命令将/usr/local/lib加入到默认库
  6. 自建服务器同步软件,自建Syncthing中继服务器(私密传输或造福大众)
  7. python 安装pyautogui图形自动化
  8. 转SQL中判断是否存在..........
  9. linux svn pacman,【图片】manjaro Linux 中的etc pacman.conf设置错误了,谁发个默认的我看看,谢谢大佬们了_manjaro吧_百度贴吧...
  10. linux运行非法指令,illegal instruction非法指令的解决思路
  11. flink EventTime与Window
  12. csrss.exe病毒查杀
  13. 042_Unicode对照表八
  14. 北疆游记 - 照片在左边相册
  15. windows 文件系统
  16. 中国人应该知道的知识
  17. 新房装修如何知道是否需要更换电线
  18. 应用程序 iis 中的服务器错误,unhandled-exception
  19. 三星java游戏打雪仗下载_三星拱照之驸马镇邪
  20. C++ Reference: Standard C++ Library reference: C Library: cstdio: vsnprintf

热门文章

  1. 艾永亮:成为中国版“YouTube”,B站做的不仅是拿下版权
  2. ELK 搭建日志分析系统 + Zipkin服务链路追踪整合
  3. 万剑归宗:Matplotlib,绘图如此简单
  4. 自定义PMD检测的类型集合(详解)
  5. [运维]它给我带来了什么
  6. 游戏思考17:寻路引擎recast和detour学习二:recast导航网格生成流程\源码剖析流程\局限性,附录计算点线面举例代码
  7. 小白学数据分析------相关分析之距离分析在道具购买量的应用探索
  8. YOLOV8最强操作教程.
  9. beaglebone black从SD卡启动Android和安兔兔跑分评测
  10. 奇幻诡异画中画 别让眼睛上了当(10)