新聞中心

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

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

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

評論


技術專區(qū)

關閉