在网上看到这段代码,所以自己尝试了,可以跑起来,但是没有精确的定时功能,仅仅是任务的调度而已. 数组中是11,而不是12.这里写错了... /* 简单的多任务操作系统 其实只有个任务调度切换,把说它是OS有点牵强,但它对于一些简单的开发应用来说, 简单也许就是最好的.尽情的扩展它吧.别忘了把你的成果分享给大家. 这是一个最简单的OS,一切以运行效率为重,经测试,切换一次任务仅20个机器周期, 也就是在标准51(工作于12M晶振)上20uS. 而为速度作出的牺牲是,为了给每个任务都分配一个私有堆栈…
应用单片机的时候,经常会遇到需要短时间延时的情况.需要的延时时间很短,一般都是几十到几百微妙(us).有时候还需要很高的精度,比如用单片机驱动DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错.这种情况下,用计时器往往有点小题大做.而在极端的情况下,计时器甚至已经全部派上了别的用途.这时就需要我们另想别的办法了.    以前用汇编语言写单片机程序的时候,这个问题还是相对容易解决的.比如用的是12MHz晶振的51,打算延时20us,只要用下面的代码,就可以满足一般的需要:     …
中断定义为CPU对系统内外发生的异步事件的响应.异步事件是指没有一定时序关系的.随机发生的事件. 与前后台系统中的中断服务子程序不同,uC/OS-Ⅱ要知道当前内核是否正在处理中断.是否脱离中断. OSIntNesting:中断嵌套层数跟踪技术器 [带仿真]51单片机实战UcosII操作系统: http://bbs.ednchina.com/BLOG_ARTICLE_3016026.HTM http://bbs.ednchina.com/BLOG_ARTICLE_3016081.HTM .....…
一.C语言相关 Q1:sbit与sfr代表是什么?有什么作用? Q2:#define OSC_FREQ  22118400L这句宏命令里的“L”是什么意思? Q3:我粘贴了别人的代码,怎么发现没有unit这个类型? Q4:为什么好多变量都是char类型?它不是字符类型吗?怎么可以用来计数? Q4.1:51单片机中的char,int,long,float,double各占多少个字节,取值范围多大? Q5:unsigned char data是什么数据类型? Q6:void timer() inte…
In Doing We Learning 在操作中学习.如果只是光看教程,没有实际的操作,对编程语言的理解很空泛,所以决定从单片机中学习C语言. #include<reg52.h>                 //包含的头文件. sbit LED = P0^0;                         //这里就是对P0寄存器进行位操作.相当于对P0^0位赋予了一个新的名字,LED.实际上这一块可以包含在头文件中.避免重复操作.sbit ADDR0 = P1^0;sbit ADDR…
零.前言 初学者开始学习51单片机时往往先是一愣,说好51单片机啊,咋个型号是AT89C52,这个S52又是咋回事?上学的时候大都懵懵懂懂就这么用着,但始终没整明白,所以今天我们就彻底搞明白这些“51”都是些啥51.文章最后我还准备了一份各型号的对比手册,大家可以对照参考. 一.8031指令集 51单片机是一个泛称,我们将所有兼容Intel 8031指令系统的都叫51单片机,所以无论是AT89C51.AT89S52.AT80C51.TS83C25等等,不管他叫什么名字都统称为51单片机.那为啥不…
参考资料: https://www.jianshu.com/p/88dfc09e7403 https://blog.csdn.net/feit2417/article/details/80890218 零.前言 我一直认为看资料还不如先动手试试,在“做”的过程中“学”,先打下基础.建立兴趣,再戒骄戒躁好好看看书,搞明白一些常识.但是网上的教程往往都比较片面,要么给几张图.几段代码就算完事了,环境如何安装.细节小问题是怎么回事都讲的不是很详细,所以这篇文章就是要把每一步都讲的详细了,真正0基础也能…
转自:http://www.51hei.com/mcu/2670.html 我们在用c语言编程时往往第一行就是头文件,51单片机为reg51.h或reg52.h,51单片机相对来说比较简单,头文件里面内容不多,像飞思卡尔.ARM系列的单片机头文件往往内容就非常多,尽管如此,对一些初次接触单片机的朋友来说,51的头文件还是搞不太清楚,今天具体来说明一下.       1)"文件包含"处理概念 所谓"文件包含"是指在一个文件内将另外一个文件的内容全部包含进来.因为被包含…
一.前言 终于完成windows通用应用“51单片机汇编”,半年前开始玩WindowsPhone开发的第一个真正意义上的App(还很多缺点=_=).开发从1月中旬考完试到今天,期间实习了半个月,玩了几天,算起来基本弄了3个多星期吧.不多说,总结总结. 二.开发数据准备 应用中主要的数据是单片机的汇编指令,我主要用XML文件来储存数据,没有使用SQLLite数据库,数据格式如下图: xml文件的数据是我手输入的,所以这是比较烦的.(可能有更简洁的办法获取数据). 而xml文件每个每个节点对应实例,…
MCS-51单片机在物理结构上有四个存储空间: 1.片内程序存储器2.片外程序存储器3.片内数据存储器4.片外数据存储器 但在逻辑上,即从用户的角度上,8051单片机有三个存储空间: 1.片内外统一编址的64K的程序存储器地址空间(MOVC)2.256B的片内数据存储器的地址空间(MOV)3.以及64K片外数据存储器的地址空间(MOVX)在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号. 程序内存ROM 寻址范围:000…