新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 第7課 數(shù)碼管動(dòng)態(tài)顯示

第7課 數(shù)碼管動(dòng)態(tài)顯示

作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
main函數(shù)內(nèi)的意思num從1開始,一直加到6,然后不斷的循環(huán) (程序?yàn)閒or(num=1;num<7;num++),當(dāng)num=1時(shí),先打開第一位數(shù)碼管,再讓第一位數(shù)碼管顯示1(程序P0=table[num],即P0=table[1]),然后進(jìn)行1s的延時(shí)(程序?yàn)閐elay(1000);)。緊接著當(dāng)num=2時(shí),打開第二位數(shù)碼管,并讓其顯示2,延時(shí)1s……,一直到num=6時(shí),打開第六位數(shù)碼管,并讓其顯示6,延時(shí)1s,再重復(fù)前的的程序。這個(gè)我們就可以在實(shí)驗(yàn)板上看到數(shù)碼管從第一位開始依次以1s的時(shí)間間隔依次顯示123456.
下面的程序下載到實(shí)驗(yàn)板現(xiàn)象如圖4所示。
圖4數(shù)碼管依次顯示123456
現(xiàn)在我們把延時(shí)程序縮短(注意上面是延時(shí)1s,依次100ms 10ms 1ms ….一直到10us,然后把每次改后的程序下載到實(shí)驗(yàn)板,.當(dāng)短到10us時(shí),可看到如下現(xiàn)象:
也就是此時(shí)我們看到的現(xiàn)象是6個(gè)數(shù)碼管在同一時(shí)刻按位依次顯示123456,可能大家馬上要提出疑問了,在上面不是說過利用靜態(tài)的寫法不是實(shí)現(xiàn)不了這種效果嗎?這里就是數(shù)碼管的動(dòng)態(tài)顯示。
所謂動(dòng)態(tài)顯示,就是依次向每位位數(shù)碼管同時(shí)送出字形碼和相應(yīng)的位選,位與位之間利用延時(shí)程序進(jìn)行延時(shí),當(dāng)延時(shí)程序非常短時(shí),由于發(fā)光管的余輝和人眼視覺暫留作用,此時(shí)我們的人眼就分辨不出位與位之間有延時(shí)存在,此時(shí)就感覺各位數(shù)碼管同時(shí)都在顯示,這樣我們實(shí)現(xiàn)在靜態(tài)不能實(shí)現(xiàn)的功能。
上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


技術(shù)專區(qū)

關(guān)閉