×
单片机 > 单片机程序设计 > 详情

单片机最简单的多任务模板

发布时间:2025-04-09 发布时间:
|

/******单片机多任务模板******/

#include

#define TASK_NUM 2 //任务数量

#define FRE(x) 10000/x  //定义频率

unsigned char code s[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管0---9

unsigned int task_delay[TASK_NUM];//定义每个任务所需延时 

unsigned int i=0;

void Init_Timer0(){

 

   EA=1;

   ET0=1;

   TR0=1;

   TMOD=0x02;

   TH0=TL0=256-100;  //12M晶振10000Hz

}

void task0(){     //   任务函数

 

 P0=~P0;

}

void task1(){     //    任务函数

 

 P1=~P1;

}

void main(){

 

 Init_Timer0();

 

 while(1){

 

  if(task_delay[0]==0){task0();task_delay[0]=FRE(1);}   //  扫描任务函数

  if(task_delay[1]==0){task1();task_delay[1]=FRE(10);}    //   扫描任务函数

  

 }

 

}

void timer0()interrupt 1{

 

 for(i=0;i

  if(task_delay[i])

   --task_delay[i];

  

 

}


关键字:单片机  多任务模板 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
arm体系架构知识汇总