新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 單片機經典實驗實例精華詳解(附源程序) (三)

        單片機經典實驗實例精華詳解(附源程序) (三)

        作者: 時間:2013-05-26 來源:網絡 收藏
        二、兩位數碼管循環(huán)顯示00~99的實驗

          現在讓我們用實驗板上的兩個數碼管來做一個循環(huán)顯示00~99數字的實驗,先來完成必要的硬件部分,

          數碼管有共陰和共陽的區(qū)分,都可以進行驅動,但是驅動的方法卻不同,并且相應的0~9的顯示代碼也正好相反。

          首先我們來介紹兩位共陽數碼管的驅動方法,電路如下圖:

          單片機經典實驗實例精華詳解(附源程序) (三) 單片機經典實驗實例精華詳解(附源程序) (三)

          網友可以看到:P2.6和P2.7端口分別控制數碼管的十位和個位的供電,當相應的端口變成低電平時,驅動相應的三極管會導通,+5V通過IN4148二極管和驅動三極管給數碼管相應的位供電,這時只要P0口送出數字的顯示代碼,數碼管就能正常顯示數字。

          因為要顯示兩位不同的數字,所以必須用動態(tài)掃描的方法來實現,就是先個位顯示1毫秒,再十位顯示1毫秒,不斷循環(huán),這樣只要掃描時間小于1/50秒,就會因為人眼的視覺殘留效應,看到兩位不同的數字穩(wěn)定顯示。

          下面我們再介紹一種共陰數碼管的驅動方法,電路如下圖:

          單片機經典實驗實例精華詳解(附源程序) (三)

          網友可以看到:+5V通過1K的排阻直接給數碼管的8個段位供電,P2.6和P2.7端口分別控制數碼管的十位和個位的供電,當相應的端口變成低電平時,相應的位可以吸入電流。單片機的P0口輸出的數據相當于將數碼管不要顯示的數字段對地短路,這樣數碼管就會顯示需要的數字。

          網友可以看到,共陰數碼管的硬件更簡單,所以在批量生產時,硬件開銷小,節(jié)省PCB面積,減少焊接工作量,降低綜合成本,所以采用共陰數碼管更有利于批量生產,現在銷售的試驗板都是采用共陰數碼管了。

          以下是用AT89C51實驗板的兩位數碼管顯示00~99依次循環(huán)的匯編語言程序

          a_bit equ 20h ;數碼管個位數存放內存位置

          b_bit equ 21h ;數碼管十位數存放內存位置

          temp equ 22h ;計數器數值存放內存位置

          star: mov temp,#0 ;初始化計數器,從0開始

          stlop: acall display;調用顯示子程序

          inc temp;對計數器加1

          mov a,temp

          cjne a,#100,next ;判斷計數器是否滿100?

          mov temp,#0;滿100就清零重新開始

          next: ljmp stlop;不滿就循環(huán)執(zhí)行

          ;顯示子程序

          display: mov a,temp ;將temp中的十六進制數轉換成10進制

          mov b,#10 ;10進制/10=10進制

          div ab

          mov b_bit,a ;十位在a

          mov a_bit,b ;個位在b

          mov dptr,#numtab ;指定查表啟始地址

          mov r0,#4

          dpl1: mov r1,#250 ;

          dplop: mov a,a_bit ;取個位數

          MOVC A,@A+DPTR ;查個位數的7段代碼

          mov p0,a ;送出個位的7段代碼

          clr p2.7 ;開個位顯示

          acall d1ms ;顯示162微秒

          setb p2.7;關閉個位顯示,防止鬼影

          mov a,b_bit ;取十位數

          MOVC A,@A+DPTR ;查十位數的7段代碼

          mov p0,a ;送出十位的7段代碼

          clr p2.6 ;開十位顯示

          acall d1ms ;顯示162微秒

          setb p2.6;關閉十位顯示,防止鬼影

          djnz r1,dplop ;循環(huán)執(zhí)行250次

          djnz r0,dpl1 ;循環(huán)執(zhí)行250X4=1000次

          ret

          ;2+2X80=162微秒,延時按12MHZ計算

          D1MS: MOV R7,#80

          DJNZ R7,$

          RET

          ;實驗板上的7段數碼管0~9數字的共陰顯示代碼

          numtab: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH

          end

          ;如果是共陽數碼管的顯示代碼

          numtab: DB 30H,0FCH,0A2H,0A4H,06CH,25H,21H,0BCH,20H,24H

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


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


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




        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 晋州市| 左贡县| 阳城县| 长兴县| 晋州市| 灵宝市| 河北省| 莱西市| 客服| 麻阳| 南京市| 桐乡市| 高密市| 中方县| 三台县| 墨竹工卡县| 土默特左旗| 睢宁县| 辽源市| 静海县| 山丹县| 怀集县| 黄山市| 多伦县| 彝良县| 鹤山市| 扎赉特旗| 米泉市| 封开县| 壶关县| 什邡市| 天台县| 玉龙| 黄浦区| 通化县| 龙泉市| 凭祥市| 保山市| 银川市| 西乌| 黔西|