#include
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit beep=P2^3;
uint a,b;
uchar key,shu[20];
int i=-1;
uint code Freqtab[] = {
64580,64684,64777,
64820,64898,64968,65030};
uchar code table[]={
0x00,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void send(uchar x)
{
SBUF=x;
while(!TI);
;
TI=0;
}
void display(uchar num)
{
dula=1;
P0=table[num];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(5);
}
uchar matrixkeyscan()
{
uchar temp;
P3=0xfb;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xeb:
key=1;
// beep=1;
a=Freqtab[0]/256;
b=Freqtab[0]%256;
TR0=1; i++;
shu[i]=1;
delay(150);