📄 text1.c
字号:
/********************************************************************************
********************************************************************************/
#include <AT89X51.H>
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
unsigned int code tab[]={0,65058,65110,
65157,65178,65217,65252,
65283,63628,63835,64021,
64103,64260,64400,64524};
void Delay1ms(unsigned int count)
{
unsigned int i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++);
}
unsigned char STH0,STL0;
unsigned char temp;
unsigned char key;
unsigned char i,j;
void main(void)
{
TMOD=0x01;
ET0=1;
TR0=0;
EA=1;
while(1)
{
P3=0xff;
P3_4=0;
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
for(i=50;i>0;i--)
for(j=200;j>0;j--);
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
switch(temp)
{
case 0x0e:
key=4;//7
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR1=0;
break;
case 0x0d:
key=5;//8
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
break;
case 0x0b:
key=6;//9
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
break;
case 0x07:
key=7;//10
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
break;
}//第二个if对应的括号结束
}//第一个if对应的括号结束
}///////////////////////////////////
P3=0xff;
P3_5=0;
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
for(i=50;i>0;i--)
for(j=200;j>0;j--);
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
switch(temp)
{
case 0x0e:
key=0;//4
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
break;
case 0x0d:
key=1;//5
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
break;
case 0x0b:
key=2;//6
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
break;
case 0x07:
key=3;//11
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
break;
}//第二个if对应的括号结束
}//第一个if对应的括号结束
}///////////////////
P3=0xff;
P3_6=0;
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
for(i=50;i>0;i--)
for(j=200;j>0;j--);
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
switch(temp)
{
case 0x0e:
key=8;//1
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
break;
case 0x0d:
key=9;//2
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
break;
case 0x0b:
key=10;//3
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
break;
case 0x07:
key=11;//12
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=1;
break;
}//第二个if对应的括号结束
}//第一个if对应的括号结束
}///////////////////////////////////////////
P3=0xff;
P3_7=0;
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
for(i=50;i>0;i--)
for(j=200;j>0;j--);
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
switch(temp)
{
case 0x0e:
key=12;//0
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
break;
case 0x0d:
key=13;//13
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
break;
case 0x0b:
key=14;//14
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
break;
case 0x07:
key=15;//15
P0=table[key];
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
break;
}
}//第二个if对应的括号结束
}//第一个if对应的括号结束
}///////////////////
}//主函数的结束括号
void timer1(void) interrupt 1
{
TH0=STH0;
TL0=STL0;
P1_0=~P1_0;
TR0=1; ///当有键按下的时候定时器一开始记按键时间
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -