<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 單片機經(jīng)典實(shí)驗實(shí)例精華詳解(附源程序) (三)

單片機經(jīng)典實(shí)驗實(shí)例精華詳解(附源程序) (三)

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

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

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

  首先我們來(lái)介紹兩位共陽(yáng)數碼管的驅動(dòng)方法,電路如下圖:

  單片機經(jīng)典實(shí)驗實(shí)例精華詳解(附源程序) (三) 單片機經(jīng)典實(shí)驗實(shí)例精華詳解(附源程序) (三)

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

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

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

  單片機經(jīng)典實(shí)驗實(shí)例精華詳解(附源程序) (三)

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

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

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

  a_bit equ 20h ;數碼管個(gè)位數存放內存位置

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

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

  star: mov temp,#0 ;初始化計數器,從0開(kāi)始

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

  inc temp;對計數器加1

  mov a,temp

  cjne a,#100,next ;判斷計數器是否滿(mǎn)100?

  mov temp,#0;滿(mǎn)100就清零重新開(kāi)始

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

  ;顯示子程序

  display: mov a,temp ;將temp中的十六進(jìn)制數轉換成10進(jìn)制

  mov b,#10 ;10進(jìn)制/10=10進(jìn)制

  div ab

  mov b_bit,a ;十位在a

  mov a_bit,b ;個(gè)位在b

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

  mov r0,#4

  dpl1: mov r1,#250 ;

  dplop: mov a,a_bit ;取個(gè)位數

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

  mov p0,a ;送出個(gè)位的7段代碼

  clr p2.7 ;開(kāi)個(gè)位顯示

  acall d1ms ;顯示162微秒

  setb p2.7;關(guān)閉個(gè)位顯示,防止鬼影

  mov a,b_bit ;取十位數

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

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

  clr p2.6 ;開(kāi)十位顯示

  acall d1ms ;顯示162微秒

  setb p2.6;關(guān)閉十位顯示,防止鬼影

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

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

  ret

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

  D1MS: MOV R7,#80

  DJNZ R7,$

  RET

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

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

  end

  ;如果是共陽(yáng)數碼管的顯示代碼

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

單片機相關(guān)文章:單片機教程


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>