/******单片机多任务模板******/
#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];
}
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』