|
無(wú)標(biāo)題.jpg (295.02 KB, 下載次數(shù): 47)
下載附件
2018-12-16 20:23 上傳
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P3^0; //HL-1
sbit wela=P3^1; //HL-1
sbit key =P3^2;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
uchar code table1[]={0x00,0x76,0x79,0x38,0x38,0x6e,0x00,0x00};//HELLY
uchar data dis_buf[8];
uint num=0;
void keyscan()//按鍵程序
{
static uchar count; //計(jì)數(shù)消抖變量
static bit key_sign=0; //按鍵自鎖標(biāo)志
uchar a;
if(key==0) //檢測(cè)輸入如果為0
{
if((++count>=100)&&(key_sign==0))
{
key_sign=1; //按鍵自鎖標(biāo)志置1,防止重復(fù)響應(yīng)
num++;
dis_buf[0]=num;
for(a=8;a>0;a--)
dis_buf[a]=dis_buf[a-1];
if(num>9)
num=0;
}
}
else
{
count=0; //計(jì)數(shù)變量清0
key_sign=0; //按鍵自鎖標(biāo)志清0
}
}
void display()//顯示程序
{
static uchar i=0,j; //計(jì)數(shù)變量
if(++j>100)//調(diào)整數(shù)碼管刷新頻率
{
j=0;
P2=0x00;
dula=1;
dula=0;
switch(i)
{
case 0:
P2=0xfe;
wela=1;
wela=0;
if(num>7)
{
if(num==9)
P2=table1[0];
else
P2=table[dis_buf[8]];
}
else P2=0x00;
dula=1;
dula=0;
i++;
break;
case 1:
P2=0xfd;
wela=1;
wela=0;
if(num>6)
{
if(num==9)
P2=table1[1];
else
P2=table[dis_buf[7]];
}
else P2=0x00;
dula=1;
dula=0;
i++;
break;
case 2:
P2=0xfb;
wela=1;
wela=0;
if(num>5)
{
if(num==9)
P2=table1[2];
else
P2=table[dis_buf[6]];
}
else P2=0x00;
dula=1;
dula=0;
i++;
break;
case 3:
P2=0xf7;
wela=1;
wela=0;
if(num>4)
{
if(num==9)
P2=table1[3];
else
P2=table[dis_buf[5]];
}
else P2=0x00;
dula=1;
dula=0;
i++;
break;
case 4:
P2=0xef;
wela=1;
wela=0;
if(num>3)
{
if(num==9)
P2=table1[4];
else
P2=table[dis_buf[4]];
}
else P2=0x00;
dula=1;
dula=0;
i++;
break;
case 5:
P2=0xdf;
wela=1;
wela=0;
if(num>2)
{
if(num==9)
P2=table1[5];
else
P2=table[dis_buf[3]];
}
else P2=0x00;
dula=1;
dula=0;
i++;
break;
case 6:
P2=0xbf;
wela=1;
wela=0;
if(num>1)
{
if(num==9)
P2=table1[6];
else
P2=table[dis_buf[2]];
}
else P2=0x00;
dula=1;
dula=0;
i++;
break;
case 7:
P2=0x7f;
wela=1;
wela=0;
if(num>0)
{
if(num==9)
P2=table1[7];
else
P2=table[dis_buf[1]];
}
else P2=0x00;
dula=1;
dula=0;
i=0;
break;
}
}
}
void main()
{
while(1)
{
keyscan();
display();
}
}
|
|