我最近在做按键实验时,碰到当我按下按键时,数码管上只能显示出个位数,其他位则不能显示。当松手后则可以正常显示而来。。。。。。。请大虾门帮我看看问题出在哪了。。。。。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^2;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar num;
void delay(uint ms)
// 11.0592M晶振一毫秒延时
{
uint x,y;
for(x=ms;x>0;x--)
for(y=114;y>0;y--);
}
void display(uint temp)
{
uchar ge,shi,bai;
bai=temp/100;
shi=(temp%100)/10;
ge=temp%10;
P2=0xf8;
P0=table[bai];
delay(1);
P2=0xf9;
P0=table[shi];
delay(1);
P2=0xfa;
P0=table[ge];
delay(1);
}
void key()
{
if(key1==0)
{
// display(num);
if(key1==0)
{
while(!key1);
num++;
if(num==66)
{
num=0;
}
}
}
}
void main()
{
while(1)
{
display(num);
key();
}
} |