51单片机使用RTX实时操作系统
序言
- 工程准备
- 创建工程
- 拷贝并修改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实时操作系统相关推荐
- 51单片机rtx51-Tiny嵌入式实时操作系统初试
什么是RTOS系统 RTOS是Real Time Operation System的缩写,即实时操作系统! rtos51介绍 rtx51是什么 rtx51是keil官方开发的用于8051系列处理器多任 ...
- 基于51单片机运行RTX51 Tiny操作系统源码模板之1.LED闪烁
什么是RTX51 Tiny: RTX51 Tiny是一种实时操作系统(RTOS),可以用它来建立多个任务(函数)同时执行的应用.能灵活的调度系统资源,像CPU和存储器,并且提供任务间的通信.RTX51 ...
- KEIL MDK RTX 实时操作系统
Keil RTX 是免版税的确定性实时操作系统,适用于 ARM 和 Cortex-M 设备.使用该系统可以创建同时执行多个功能的程序,并有助于创建结构更好且维护更加轻松的应用程序. 产品的几大亮点 带 ...
- 基于51单片机的DS1302实时时钟
本讲内容: 介绍DS1302实时时钟芯片基本知识,演示DS1302例程. DS1302实时时钟: DS1302能提供包括秒.分.时.日期.月份和年份信息.闰年可自行调整,可选择12小时制和24小时制, ...
- 基于51单片机的DS1302实时时钟程序
DS1302概述 DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片.它可以对年.月.日.周.时.分.秒进行计时,且具有闰年补偿等多种功能. 工作原理 DS1302 是 ...
- Windows环境下的RTX实时操作系统学习记录
在一次编程的时候,debug结束以后无法终止调试,甚至没法关机,找了一番原因,原来是我在主函数的while循环中没有延时,导致不停的按照最小时间间隔在运行,没有办法终止调试,解决方法:1.编程时避免过 ...
- 51单片机课设项目大全
1-基于51单片机的音乐彩灯 2-基于51单片机的蓝牙智能台灯设计 3-基于51单片机的篮球计分器 4-基于51单片机的无线病床呼叫系统设计 5-基于51单片机的语音实时采集系统 6-基于51单片机的 ...
- 基于51单片机的语音采集系统设计(录音笔选择方案)
功能: 基于51单片机的语音实时采集系统 系统由STC89C52单片机+ISD4004录音芯片+LM386功放模块+小喇叭+LCD1602+按键+指示灯+电源构成 具体实现功能: (1)可通过按键随时 ...
- RTOS实时操作系统
RTOS实时操作系统 RTOS的起源与目的 RTX实时操作系统模块 任务创建.消灭 任务调度 调度方式---抢占式.时间片.合作式 优先级修改 任务间同步 事件标志组 信号量 互斥信号量 进程锁 任务 ...
最新文章
- n条直线相交最多有几个邻补角_【东升二中数字课堂】创意微课直线的交点|Super数学璐...
- Centos6.10源码部署zabbix-3.2.6
- python中cmd是什么_python中的cmd是什么
- MDI端口和MDIX端口是什么? 又有什么作用?
- 使用ldconfig命令将/usr/local/lib加入到默认库
- 自建服务器同步软件,自建Syncthing中继服务器(私密传输或造福大众)
- python 安装pyautogui图形自动化
- 转SQL中判断是否存在..........
- linux svn pacman,【图片】manjaro Linux 中的etc pacman.conf设置错误了,谁发个默认的我看看,谢谢大佬们了_manjaro吧_百度贴吧...
- linux运行非法指令,illegal instruction非法指令的解决思路
- flink EventTime与Window
- csrss.exe病毒查杀
- 042_Unicode对照表八
- 北疆游记 - 照片在左边相册
- windows 文件系统
- 中国人应该知道的知识
- 新房装修如何知道是否需要更换电线
- 应用程序 iis 中的服务器错误,unhandled-exception
- 三星java游戏打雪仗下载_三星拱照之驸马镇邪
- C++ Reference: Standard C++ Library reference: C Library: cstdio: vsnprintf
热门文章
- 艾永亮:成为中国版“YouTube”,B站做的不仅是拿下版权
- ELK 搭建日志分析系统 + Zipkin服务链路追踪整合
- 万剑归宗:Matplotlib,绘图如此简单
- 自定义PMD检测的类型集合(详解)
- [运维]它给我带来了什么
- 游戏思考17:寻路引擎recast和detour学习二:recast导航网格生成流程\源码剖析流程\局限性,附录计算点线面举例代码
- 小白学数据分析------相关分析之距离分析在道具购买量的应用探索
- YOLOV8最强操作教程.
- beaglebone black从SD卡启动Android和安兔兔跑分评测
- 奇幻诡异画中画 别让眼睛上了当(10)