#include<reg51.h>
#define uchar unsigned char
uchar key,key_time,ajbz;
uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
/******************延æ¶å½æ°**********************/
void delay(uchar k)
{
uchar j;
while(k--)
for(j=0;j<50;j++);
}
/************é®çæ«æåç¿»è¯å½æ°***************/
uchar key_jz()
{
uchar key_dk;
c:
ajbz=0; //æé®æ å¿ä½ï¼â0â为æ æé®æï¼â1âææé®æä¸
P1 = 0xf0; //åP1端çé«4ä½éé«çµå¹³ä½4ä½éä½çµå¹³
key_dk = P1; //读åp1端å£çå¼éç»key_dk
P1 = 0x0f; //åP1端çé«4ä½éä½çµå¹³ä½4ä½éé«çµå¹³
key_dk |= P1; //å°P1端å£çå¼ä¸key_dkæä½æ并éåkey_dk
if((key_dk&0xff)!=0xff) //å¤ææ¯å¦ææé®æä¸
delay(10); //延æ¶å»æ
if((key_dk&0xff)!=0xff) //å次å¤ææ¯å¦ææé®æä¸ç¡®å®æ¯å¦ççæé®æä¸
{
switch(key_dk) //ç¿»è¯key_dkå¾å°æé®é®å¼
{
case 0x7d: key= 10;ajbz=1;break;
case 0x7e: key= 0;ajbz=1;break;
case 0xbb: key= 3;ajbz=1;break;
case 0xbd: key= 2;ajbz=1; break;
case 0xbe: key= 1;ajbz=1;break;
case 0xdb: key= 6;ajbz=1;break;
case 0xdd: key= 5;ajbz=1;break;
case 0xde: key= 4;ajbz=1;break;
case 0xeb: key= 9;ajbz=1;break;
case 0xed: key= 8;ajbz=1;break;
case 0xee: key= 7;ajbz=1;break;
default: goto c;
}
while((P1&0x0f)!=0x0f); //çå¾
æé®éæ¾
}
return key;
} void int_0()interrupt 1
{
key_time++;
if(key_time==160)
{
key_jz();
}
}
void display(uchar i)
{
P2=0x01;
P0=tab[i/10];
delay(20);
P0=0xff;
P2=0x02;
P0=tab[i%10];
delay(20);
P0=0xff;
}
void main()
{
uchar wz,t;
TMOD=0x02;
TH0=6;
TL0=6;
TR0=1;
EA=1;
ET0=1;
t=0;
while(1)
{
display(t);
if((ajbz==1)&&(key<10))
{
switch(wz)
{
case 0:wz++; t=t%10+key*10;break;
case 1:wz++;t=t/10*10+key;break;
}
ajbz=0;
}
if((ajbz==1)&&(key=10))
{
t=0;
wz=0;
ajbz=0;
}
}
}ç¨åºå°±è¿æ ·ï½è¦ä»¿ççé®ç®±ï½
温馨提示:答案为网友推荐,仅供参考