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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機驅動數(shù)碼管顯示設計

          單片機驅動數(shù)碼管顯示設計

          作者: 時間:2013-01-15 來源:網(wǎng)絡 收藏


          看看修改后的程序將變得更加簡潔,直觀了,程序代碼從原來的15行減少到僅4行,一樣實現(xiàn)了相同的功能。這也就是我們要學習的編程技巧哦!在編程中盡量用最少的代碼實現(xiàn)相同的功能。程序第1行的功能是將要顯示的數(shù)字“6”的十六進制段碼"82H"送到P0口,程序第2行的功能就是將數(shù)碼管的選通代碼#0FEH(即二進制"11111110")送到P2口,從而控制第一位,其它數(shù)碼管熄滅。把修改過的程序編譯后的目標文件寫到上看到顯示效果是一樣的。程序中用一行代碼 MOVP0,#82H 就輸出了字形,因此我們要顯示其它字形時只要從上面的數(shù)碼管段碼表中查出對應的十六進制字形碼,用同樣的方法把段碼輸出到P0口就可以了。比如我們要顯示一個數(shù)字“8”, 只需將程序中的 MOVP0,#82H 語句改成 MOVP0,#80H 即可,至此,我們終于可以隨心所欲地控制數(shù)碼管要顯示的字形了,是不是很簡單呀 :) 。
          
          另外,如果想讓第二位數(shù)碼管DG2顯示,其它熄滅怎么辦呢?其實很簡單,只要把對應數(shù)碼管的選通端口輸出低電平就可以使該位了,如指令 CLRP2.1 就可以讓第二個。。。程序中如果使P2.0~P2.4都輸出低電平,那么實驗板上的5個數(shù)碼管都會被選通,顯示出相同的字形,即顯示“66666”。下面就是5位數(shù)碼管顯示出“66666”的程序,初學者可以實驗一下,以加深對數(shù)碼管顯示位選通(使能)控制的理解。

          MAIN:MOV P0,#82H ;將數(shù)字"6"的段碼輸出到P0口
           MOV P2,#0E0H;從P2口輸出數(shù)碼管選通代碼,使5位數(shù)碼管均選通,即輸出二進制“11100000”
           AJMPMAIN;跳轉到開始重新進行
           END ;程序結束

          驅動數(shù)碼管的動態(tài)顯示編程

          上面我們已經(jīng)學習了數(shù)碼管靜態(tài)顯示,接下來我們就學習數(shù)碼管動態(tài)顯示編程,編程讓實驗板上的數(shù)碼管顯示“89C51”。從原理圖中(圖5)我們可以看到,5個數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端是2連在一起的,那么當程序從P0口輸出字形碼時,在同一個時間所有數(shù)碼管都會接收到相同的字形碼。你一定會問,這樣不是5個數(shù)碼管都顯示相同的數(shù)字了嗎?如何顯示出5個不同的字符“89C51”呢?因此,就要使用動態(tài)掃描了,在程序中,首先顯示一個數(shù),然后關掉;然后顯示第二個數(shù),又關掉,顯示第三個數(shù),又關掉。。。直到所有要顯示的5個數(shù)完成,再從頭開始掃描。輪流點亮掃描過程中,每位顯示器的點亮時間是極為短暫的(約1ms),由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位顯示器并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。

          數(shù)碼管顯示“89C51”的具體編程思路如下:第一位數(shù)碼管顯示“8” → 延時1ms → 關閉所有數(shù)碼管顯示 → 第二位數(shù)碼管顯示“9” → 延時1ms → 關閉所有數(shù)碼管顯示 → 第三位數(shù)碼管顯示“C” → 延時1ms → 關閉所有數(shù)碼管顯示 → 第四位數(shù)碼管顯示“5” → 延時1ms → 關閉所有數(shù)碼管顯示 → 第五位數(shù)碼管顯示“1” → 延時1ms → 關閉所有數(shù)碼管顯示 → 返回到第一步重新進行新一輪掃描過程。下面就是根據(jù)該思路編出來的源程序,初學者可以把該程序粘貼到Keil工程中,編譯得到目標文件,然后燒寫到驗證一下。

          ; *********** 在數(shù)碼管上動態(tài)顯示"89C51" *************
          MAIN: MOV P0,#80H;第1位數(shù)碼管顯示“8”
          CLR P2.0 ;允許第1位數(shù)碼管顯示
          ACALL DELAY;顯示延時一段時間
          MOV P0,#0FFH ;清除P0口字形碼
          MOV P2,#0FFH ;停止所有數(shù)碼管顯示選通,關閉所有顯示

          MOV P0,#90H;第2位數(shù)碼管顯示“9”
          CLR P2.1 ;允許第2位數(shù)碼管顯示
          ACALL DELAY;顯示延時一段時間
          MOV P0,#0FFH ;清除P0口字形碼
          MOV P2,#0FFH ;停止所有數(shù)碼管顯示選通,關閉所有顯示

          MOV P0,#0C6H ;第3位數(shù)碼管顯示“C”
          CLR P2.2 ;允許第3位數(shù)碼管顯示
          ACALL DELAY;顯示延時一段時間
          MOV P0,#0FFH ;清除P0口字形碼
          MOV P2,#0FFH ;停止所有數(shù)碼管顯示選通,關閉所有顯示

          MOV P0,#92H;第4位數(shù)碼管顯示“5”
          CLR P2.3 ;允許第4位數(shù)碼管顯示
          ACALL DELAY;顯示延時一段時間
          MOV P0,#0FFH ;清除P0口字形碼
          MOV P2,#0FFH ;停止所有數(shù)碼管顯示選通,關閉所有顯示

          MOV P0,#0F9H ;第5位數(shù)碼管顯示“1”
          CLR P2.4 ;允許第5位數(shù)碼管顯示
          ACALL DELAY;顯示延時一段時間
          MOV P0,#0FFH ;清除P0口字形碼
          MOV P2,#0FFH ;停止所有數(shù)碼管顯示選通,關閉所有顯示

          AJMPMAIN ;跳轉到開始重新進行

          ;******** 延時子程序 ********
          DELAY:MOV R1,#10
          Y1: MOV R2,#100
          DJNZR2,$
          DJNZR1,Y1
          RET

          END

          【總結】 至此,我們已經(jīng)較全面地學習了數(shù)碼管的工作原理和使用方法,相信你對數(shù)碼管的靜態(tài)顯示、動態(tài)顯示有了新的認識,掌握了數(shù)碼管的這兩種使用方法,你就可以根據(jù)你自己的意愿及要求來編寫各種各樣的數(shù)字顯示程序了,如電子溫度計、時鐘、秒表、頻率計、計數(shù)器的制作等等,可以充分發(fā)揮你的想象達到你所需要的各種顯示效果。我們附帶的配套軟件資料光盤配有相關的實驗例程、實驗視頻錄像、單片機多媒體教程、實用電子圖書資料、單片機開發(fā)軟件及編程器、仿真器的全部驅動程序,供大家學習使用,以幫助初學者快速入門。

          手機電池相關文章:手機電池修復


          單片機相關文章:單片機教程


          單片機相關文章:單片機視頻教程


          單片機相關文章:單片機工作原理



          上一頁 1 2 3 4 下一頁

          評論


          相關推薦

          技術專區(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); })();