|
本人刚学单片机不久。
程序如下,一些I0口定义没有给出。
程序运行没错,烧入单片机可以运行,按下key32也能计数。
唯一的问题是:当我按下key32时,按理说应该两个数码管都亮,但是仅有显示个位数的数码管亮。当松手时,两个数码管又都亮了。
想请教下各位,这是为什么?
void keyscan()//key32为独立按键。每按key32一次,num加1。达到60时,置0。
{
if (key32==0)
{
delay(10);
if (key32==0)
{
num++;
if(num==60)
num=0;
while(!key32);
}
}
}
void display(num)//用两个数码管显示num的值。
{
P0=0xff;//关闭所有显示,防止混乱
wela=1;
P0=0xfe;
wela=0;
dula=1;
P0=smg[num%100/10];//十位数
dula=0;
delay(5);
P0=0xff;//关闭所有显示,防止混乱
wela=1;
P0=0xfd;
wela=0;
dula=1;
P0=smg[num%10];//个位数
dula=0;
delay(5);
}
void main()//主程序
{
while(1)
{
keyscan();
display(num);
}
}
这是我在论坛搜到的 和我遇到的问题一样 我直接复制过来了 不当之处请作者谅解,我也是着急寻求解决答案!!
|
|