新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > C51二位數(shù)碼管顯示程序設計

C51二位數(shù)碼管顯示程序設計

作者: 時間:2016-11-27 來源:網絡 收藏

#define uint unsigned int
#define uchar unsigned char
sbit k1=P2^0;
sbit k2=P2^1;
uint code table[]={0X00,0X80,0X10,0X90,0X20,0XA0,0X30,0XB0,0X40,0XC0};
void delay(uint z)
{
uint a,b;
for(a=z;a>0;a--)
{
for(b=z;b>0;b--);
}
}
void main()
{
int c=99,t,shi,ge;
for(t=99;t>0;t--)
{
shi=c/10;
ge=c;
k1=0,k2=1;
P1=table[shi];
delay(300);
P1=0XFF;

k2=0,k1=1;
P1=table[ge];
delay(200);
P1=0XFF;
k1=0,k2=0;
c--;
if(c==0)
c=99;

本文引用地址:http://m.butianyuan.cn/article/201611/322475.htm


}
}

回答:

肯定不同時的啊 因為你是顯示為十再顯示個的

其實所謂的同時顯示就是循環(huán)掃描 時間間隔短了 自然看著就是同時了

你要做的就是在顯示延時的同時顯示一下十位 再顯示一下個位 而不是顯示完一個再顯示另一個

最好的做法是放在中斷中 這樣能確保顯示效果

bit flag;

int shi ,ge;

這三個為外部變量在延時的過程中調用這個函數(shù) 應該就OK了

void showled()

{

if (flag==0)

{

P1=table[shi];k2=1,k1=0;

}

else

{

P1=table[ge];k2=0,k1=1;

}

flag=~flag;

}



評論


技術專區(qū)

關閉