|
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit BEEP=P3^6 ;
//sbit duan=P3^3 ;
uint j=0,flag=0;
uint tab1[]={ 0x48, //"0"
0x7E, //"1"
0xC4, //"2"
0x54, //"3"
0x72, //"4"
0x51, //"5"
0x41, //"6"
0x7C, //"7"
0x40, //"8"
};
uint tab2[] = { 64021,64103,64260,64400,64524,64580,64684,64777,
64820,64898,64968,65030,65058,65110,65157,65178};
void display(j)
{
//duan=0;
P1=tab1[j];
//duan=1;
}
void Timer0_Play_Music() interrupt 1
{
TH0 = tab2[ j ] / 256;
TL0 = tab2[ j ] % 256;
BEEP = ~BEEP;
flag++;
if(flag==2)
{flag=0;
BEEP=0;
TR0=0;}
}
void T1_timer() interrupt 3
{ uint z;
TH0 = (65536 - 50000)/256;
TL0 = (65536 - 50000)%256;
z++;
if( z== 20)
{
z = 0;
j++;
display(j);
TR0=1;
TR1=0;
if(j==7)
{ TR1=0;
j=0;}
}
}
void keyscan()
{
uint k=P2;
switch (k)
{
case 0xfe:j=1;TR0=1;display(j);break;
case 0xfd:j=2;TR0=1;display(j);break;
case 0xfb:j=3;TR0=1;display(j);break;
case 0xf7:j=4;TR0=1;display(j);break;
case 0xef:j=5;TR0=1;display(j);break;
case 0xdf:j=6;TR0=1;display(j);break;
case 0xbf:;j=7;TR0=1;display(j);break;
case 0x7f:TR1=1;j=0;break;
default : break;
}
}
void main()
{ BEEP=0;
TMOD=0x11;
EA=1;
ET0=1;
ET1=1;
TH0 = tab2[ j ] / 256;
TL0 = tab2[ j ] % 256;
TH1 = (65536 - 50000)/256;
TL1 = (65536 - 50000)%256;
// P1=0x00;
while(1)
{
keyscan();
}
}
|
評分
-
查看全部評分
|