新聞中心

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

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

作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
在第6課里,我們講到數(shù)碼管的靜態(tài)顯示,利用靜態(tài)顯示法,通過控制位選和段選,可以讓數(shù)任意幾位數(shù)碼管顯示任意字符,但由于所有位數(shù)碼管的相同的段選全部接在一起,所以只能同時顯示相同的數(shù)字,例如8位同時顯示8字,1、3、5位同時顯示3字。但大家想一下,如果我們要讓數(shù)碼管同一時刻顯示不同的數(shù)字,如圖1所示的現(xiàn)象,用靜態(tài)顯示的方法就不能夠?qū)崿F(xiàn),這里就只能用到動態(tài)顯示的方法,今天這一節(jié)我們主要講解數(shù)碼管動態(tài)顯示的原理的程序?qū)崿F(xiàn)的方法。
圖1 數(shù)碼管同時顯示123456
在講解動態(tài)顯示方法之前,我們先介紹在種數(shù)碼管及單片機(jī)程序開發(fā)過程常用的方法-數(shù)組編碼法。
1、數(shù)組編碼
在跟數(shù)碼管相關(guān)的程序中,可以對位進(jìn)行編碼,也可對段進(jìn)行編碼,這里我們以段編碼進(jìn)行講解。通過第8課的程序我們知道,在位選確定后,要顯示數(shù)字8時,P0=0x80,顯示數(shù)字3時P0=0xb0,也就是0xb0,0x80分別可以表示數(shù)字3和8,按此方法,我們把在數(shù)碼管上顯示0-f,16個數(shù)字全部用16制度表示出來,這16個16進(jìn)制數(shù)就稱為數(shù)碼管可顯示0-f的相應(yīng)的編碼,如圖2所示(注意共陽和共陰極數(shù)碼管相應(yīng)的編碼有所不同,這里以實驗板上共陽極的為例)。
圖2 共陽極數(shù)碼管編碼
在編程中,編碼的表示方法如下:
unsigned char code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e };
這里編碼表示的方法與C語言中數(shù)組定義的方法基本一樣。table是數(shù)組名,后面需加[],中括號中需加上數(shù)組中元素的個數(shù),也可以不寫。等號的右邊用一個大括號將所有元素包含起來,里面的元素之間用“,”隔開,在大括號外用“;”結(jié)束。等號左邊的unsigned char 是數(shù)據(jù)元素的數(shù)據(jù)類型,這里定義為無符號字符型,也就是元素的值范圍只能是0-255之間。Code表示把這個數(shù)組定義為編碼,這樣定義的好處是其元素轉(zhuǎn)化成二進(jìn)文件后可能直接存儲到程序存儲器中,當(dāng)然這里也可以不加code,但是這樣編譯后會將其直接存儲到數(shù)據(jù)存儲器中,要知道單片機(jī)中數(shù)據(jù)存儲器的容量是非常有限的,定義為code后可節(jié)約單片機(jī)數(shù)據(jù)存儲器的空間。
上一頁 1 2 3 下一頁

評論


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

關(guān)閉