|
第一次用了與傳統(tǒng)程序架構(gòu)不同的方法,感覺不大適應(yīng),但是這是必須學(xué)的,只是一小步也有新高度!
#include<os.h>
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0FC;
TL0 = 0x66;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void Timer0Interrupt(void) interrupt 1
{ unsigned char i;
TH0 = 0x0FC;
TL0 = 0x66;
for(i=0;i<2;i++){if(task_delay[ i])task_delay[ i]--;}
}
void task0_xs()//數(shù)碼顯示任務(wù)
{
static unsigned char start;
switch (start)
{
case 0: task_delay[0]=2; //2ms
start=1;
P0=0xff;
d1=1;
d2=0;
break;
case 1: task_delay[0]=2; //2ms
start=0;
P0=0xff;
d1=0;
d2=1;
break;
}
}
void task1_jp()//鍵盤掃描任務(wù)
{ task_delay[1]=50; //50ms
if(j1==0)
{P0=0x99;}
if(j2==0)
{P0=0x00;}
}
void main(void)
{
unsigned char i;
InitTimer0();
task_delay[0]=2; //2ms
task_delay[1]=50; //50ms
while(1)
{
for(i=0;i<2;i++){
if(task_delay[0]==0){task0_xs(); }
if(task_delay[1]==0){task1_jp();}
break;
}
}
}
|
|