- 论坛徽章:
- 0
|
#include<absacc.h>;
#include<reg51.h>;
#define uchar unsigned char
#define uint unsigned int
sbit Di=P1^1;
sbit frq_src=P1^2;
uchar flag,i;
uint count;
uchar code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void int_0(void) interrupt 0 using 1
{
Di=0;
flag=0;
TR0=0;TR1=0;
TH0=-50000/256;TL0=-50000%256;
TH1=0;TL1=0;
TR0=1; TR1=1;
while(TF0==0);
TR0=0;TR1=0;
TF1=0;TF0=0;
count=(TH1*256+TL1);
flag=1;
}
void display(uchar *P)
{
uint t;
uchar sel=0x01,j;
if(*P==0&&*(P+1)==0&&*(P+2)==0&&*(P+3)==0)
{ P0=table[*P];
P2=0x01;
}
else
{ for(j=0;j<4;j++)
{
if(j==2)P0=table[*P]+0x80;
else P0=table[*P];
P2=sel;
P++;
sel=sel<<1;
for(t=0;t<200;t++);
}
}
}
main(void)
{
uint f;
uchar idata dis_buf[4];
TMOD=51;
EA=1;
EX0=0;
ET0=0;ET1=0;
Di=0;
for(f=0;f<2000;f++);
EX0=1;
TF0=0;TF1=0;
do
{
if(flag==1)
{
flag=0;
if(frq_src==0)
{
if(count>;1770 && count<1830)Di=1;
else Di=0;
}
else if (frq_src==1)
{
if(count>;2950&&count<3050)Di=1;
else Di =0;
}
for(i=0;i<4;i++)
{
dis_buf=count%10;
count=count/10;
}
}
display(dis_buf);
}while(1);
}
文件烧录后 没有执行 |
|