<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

          作者: 時間:2016-12-01 來源:網絡 收藏
          在第6課里,我們講到數碼管的靜態(tài)顯示,利用靜態(tài)顯示法,通過控制位選和段選,可以讓數任意幾位數碼管顯示任意字符,但由于所有位數碼管的相同的段選全部接在一起,所以只能同時顯示相同的數字,例如8位同時顯示8字,1、3、5位同時顯示3字。但大家想一下,如果我們要讓數碼管同一時刻顯示不同的數字,如圖1所示的現象,用靜態(tài)顯示的方法就不能夠實現,這里就只能用到動態(tài)顯示的方法,今天這一節(jié)我們主要講解數碼管動態(tài)顯示的原理的程序實現的方法。
          圖1 數碼管同時顯示123456
          在講解動態(tài)顯示方法之前,我們先介紹在種數碼管及單片機程序開發(fā)過程常用的方法-數組編碼法。
          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后可節(jié)約單片機數據存儲器的空間。
          上一頁 1 2 3 下一頁

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();