|
本人剛學(xué)單片機不久。
程序如下,一些I0口定義沒有給出。
程序運行沒錯,燒入單片機可以運行,按下key32也能計數(shù)。
唯一的問題是:當我按下key32時,按理說應(yīng)該兩個數(shù)碼管都亮,但是僅有顯示個位數(shù)的數(shù)碼管亮。當松手時,兩個數(shù)碼管又都亮了。
想請教下各位,這是為什么?
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)//用兩個數(shù)碼管顯示num的值。
{
P0=0xff;//關(guān)閉所有顯示,防止混亂
wela=1;
P0=0xfe;
wela=0;
dula=1;
P0=smg[num%100/10];//十位數(shù)
dula=0;
delay(5);
P0=0xff;//關(guān)閉所有顯示,防止混亂
wela=1;
P0=0xfd;
wela=0;
dula=1;
P0=smg[num%10];//個位數(shù)
dula=0;
delay(5);
}
void main()//主程序
{
while(1)
{
keyscan();
display(num);
}
}
這是我在論壇搜到的 和我遇到的問題一樣 我直接復(fù)制過來了 不當之處請作者諒解,我也是著急尋求解決答案!!
|
|