键控数码管(大二组)自己编的程序Word下载.doc
《键控数码管(大二组)自己编的程序Word下载.doc》由会员分享,可在线阅读,更多相关《键控数码管(大二组)自己编的程序Word下载.doc(3页珍藏版)》请在冰豆网上搜索。
sbitkey3=P3^5;
sbitwela1=P1^3;
//位选信号,即当此位为0时,左边第一个被选中
sbitwela2=P1^2;
//位选信号,即当此位为0时,左边第二个被选中
sbitwela3=P1^1;
//位选信号,即当此位为0时,左边第三个被选中
sbitwela4=P1^0;
//位选信号,即当此位为0时,左边第四个被选中
intnum,num1,flag=1;
//按键标志位
ucharcodetable[]={ //共阴数码管
0x3F,//"
0"
0x06,//"
1"
0x5B,//"
2"
0x4F,//"
3"
0x66,//"
4"
0x6D,//"
5"
0x7B,//"
6"
0x07,//"
7"
0x7E,//"
8"
0x6F,//"
9"
};
voiddelay(uintz) //延时函数
{
uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
}
voiddisplay() //数码管显示函数
wela1=0;
wela2=1;
P2=table[num];
delay(60);
if(flag>
=2)
{
wela2=0;
wela1=1;
P2=table[num1];
delay(60);
}
voidkeyscan() //键盘扫描函数
if(key1==0) //加
delay(50);
if(key1==0) //延时消抖
{
while(!
key1);
//松手检测
num++;
if(num==10&
&
flag>
{
num=0;
num1++;
}
elseif(num==10)
num=0;
}
}
if(key2==0) //减
if(key2==0) //延时消抖
key2);
num--;
if(num<
0&
if(num1==0)
num1=9;
elsenum1--;
num=9;
if(key3==0) //减
if(key3==0) //延时消抖
key3);
flag++;
voidmain() //主函数
num=0;
num1=0;
wela3=1;
wela4=1;
while
(1)
keyscan();
display();
}