当前位置: 首页 > wzjs >正文

专业网站建设基本流程制作公司网站大概多少钱

专业网站建设基本流程,制作公司网站大概多少钱,黄页直播免费观看大全网站,上海市企业服务云简介早就想写写这个了,正好赶上有点时间,写了一下基于51单片机的时间片轮转调度系统,简单的rtos,呵呵。直接上代码。 //基于51单片机时间片轮转的简单rtos。 #include"reg52.h" sbit led1 P2^7; sbit led2 P2^0; sbit key…

早就想写写这个了,正好赶上有点时间,写了一下基于51单片机的时间片轮转调度系统,简单的rtos,呵呵。直接上代码。


//基于51单片机时间片轮转的简单rtos。
#include"reg52.h"
sbit led1 = P2^7;
sbit led2 = P2^0;
sbit key = P1^0;
#define MAX_TASKS     3       //定义任务个数.必须和实际任务数一至 
#define PUSH_TIMES    3 	  //时间中断中push使用的次数用debug看进入时间中断时的次数。
#define MAX_TASK_DEP  (PUSH_TIMES+4)  //任务槽深度;
//经过实验,看debug的push次数,加上4就行了。//没有考虑中断嵌套。有嵌套的再大。
unsigned char idata task_stack[MAX_TASKS][MAX_TASK_DEP];      //任务堆栈.
unsigned char current_id;         //当前活动任务号 
unsigned char task_sp[MAX_TASKS];	//堆栈指针组,每个任务一个字节,任务调度前指向入栈的pc高字节。
unsigned int cicle1,cicle2;
void Timer0_Init(void)		//10毫秒@11.0592MHz
{AUXR &= 0x7F;			//定时器时钟12T模式TMOD &= 0xF0;			//设置定时器模式TL0 = 0x00;				//设置定时初始值TH0 = 0xDC;				//设置定时初始值TF0 = 0;				//清除TF0标志ET0 = 1;				//使能定时器0中断EA=1;					//开总中断
}//任务装入函数,将任务的首地址(参数1)装入(参数2)指定的任务槽中.
void task_load(unsigned int func, unsigned char taskid)
{ task_stack[taskid][0] = (unsigned int)func & 0xff;  //把任务地址的低八位装入任务槽0号地址。task_stack[taskid][1] = (unsigned int)func >> 8;    //把任务地址的高八位装入任务槽1号地址task_sp[taskid] = (unsigned char)&task_stack[taskid][0]; //把堆栈的首地址送给sp数组。task_sp[taskid]++;//先把保存的数组sp值加1,使它指向堆栈入栈pc的高位
//这里模拟了入栈过程,先把任务地址放在任务槽的最低位置,下次切换的时候就直接来这里找。if(taskid!=0)									   //如果不是0号任务;{task_sp[taskid]+= PUSH_TIMES;					   //给push和pop语句留下空间,用debuge看汇编进入中断后的push//次数,在文件首部改数字值;}
} void  os_start() 	 //启动程序{current_id = 0;	 //把0号sp当作当前的首个spSP = task_sp[0];} 
void task1()	//任务1,循环够5万次灯闪动一次
{ while(1){ cicle1++;if (cicle1>50000){cicle1=0;led1=!led1;}} 
} 
void task2()  	//任务2,循环够5万次灯闪动一次
{ while(1){ cicle2++;if (cicle2>30000){cicle2=0;led2=!led2; }} 
} void task3()
{ while(1){ if(key==0)cicle2=10000;//  cicle1=10000;} 
} void Timer0_Isr(void) interrupt 1	 //时间中断。调度任务。
{EA=0; //进入核心临界区关中断task_sp[current_id] = SP; 		//将进入时钟中断时的sp存入任务槽。if(++current_id == MAX_TASKS) 	//当前任务指向下一个任务号。如果任务号超过任务总数current_id=0;				//指向任务0;SP = task_sp[current_id];	//把新任务的pc地址给sp,这样在时间中断出函数的时候系统自动把sp指向的值作为pc高8位;并出栈。EA=1; //开中断。
}
void main()
{//这里装载了三个个任务,因此在文件首部定义MAX_TASKS时也必须定义为3 task_load(task1, 0);//将task1函数装入0号槽,任务可以装入任意槽。 task_load(task2, 1);//将task2函数装入1号槽 task_load(task3, 2);//将task3函数装入2号槽 Timer0_Init();		//定时器0初始化key=1;				//口线置位。TR0 = 1;			//开始计时os_start();         //必须从任务在0号槽的任务开始;}

虽然简单,也可以继续学习了。

http://www.dtcms.com/wzjs/228209.html

相关文章:

  • 网站开发人员 生活绍兴seo网站推广
  • wordpress用什么框架开发seo包括哪些方面
  • 瑞安做网站建设哪家好怎样注册个人网站
  • 单位建设网站的意义网络营销成功的原因
  • 能用dw做动态网站吗电商网站seo优化
  • 寿光专业做网站杭州优化seo
  • 酷狗音乐网站开发语言手机网页链接制作
  • 武汉网站建设找问一问公司抖音企业推广
  • 茂港网站建设公司广州新一期lpr
  • 深圳手机网站制作公司排名ip域名解析查询
  • 做淘宝的人就跟做网站一样平台做推广的技巧
  • 个人网站需要多大空间seo优化方法网站快速排名推广渠道
  • 美国哪个网站做diy电脑武安百度seo
  • 查网站独立ip网络营销的发展现状及趋势
  • 做智能家居网站打广告的免费软件
  • WordPress搭建手机网站合肥网站优化搜索
  • 东莞本地的发布平台网络快速排名优化方法
  • 设计师投稿网站发广告推广平台
  • 厦门哪家公司做网站自助网站建设平台
  • wordpress 有道智云天津搜狗seo推广
  • 网站二次开发nba赛程排名
  • 客户说做网站价格高武汉seo楚天
  • 上传自己做的网站微信公众号怎么做文章推广
  • 海岸城网站建设在线培训系统
  • 厦门做网站找谁竞价托管 微竞价
  • 先申请域名后做网站深圳全网信息流推广公司
  • 孙红雷做的二手车网站网络推广的具体方式
  • 自己做网站是否要买云主机北京网站sem、seo
  • 网站底部加备案号互联网销售是什么意思
  • 北京做电商网站网站流量查询网站统计查询