下面這個程序算是沒有添加延時函數嗎?
師傅要求用定時器做不要出現延時函數
單片機源程序如下:
#include<AT89X52.h>
unsigned char code
Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char Dat[]={0,0,0,0,0,0,0};
unsigned char Second=30,t,minute=40;
void main()
{
EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(1)
{
Dat[0]=Second/10;
Dat[1]=Second%10;
Dat[2]=minute/10;
Dat[3]=minute%10;
P0=Tab[Dat[0]];
P1=0xfb;
P1=0xff;
P0=Tab[Dat[1]];
P1=0xf7;
P1=0xff;
P0=Tab[Dat[2]];
P1=0xfe;
P1=0xff;
P0=Tab[Dat[3]];
P1=0xfd;
P1=0xff;
}
}
void intservl (void) interrupt 1 using 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t++;
if(t==20)
{
t=0;
Second++;
if(Second>=60)
{
Second=0;
minute=minute+1;
if(minute>=60)
minute=0;
}
}
}
|