新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 第7課 數碼管動態顯示

        第7課 數碼管動態顯示

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

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 全州县| 永平县| 乡宁县| 盐津县| 修水县| 盈江县| 桦甸市| 无为县| 青川县| 普宁市| 拉孜县| 晋宁县| 隆子县| 大方县| 开江县| 电白县| 松江区| 巩留县| 沾益县| 梁山县| 杭锦后旗| 出国| 东兴市| 大安市| 富宁县| 通州市| 佛坪县| 文登市| 越西县| 托克托县| 永兴县| 工布江达县| 登封市| 南江县| 子长县| 芒康县| 酒泉市| 新绛县| 满城县| 隆尧县| 陇南市|