兩位數(shù)碼管循環(huán)顯示00_第1頁
兩位數(shù)碼管循環(huán)顯示00_第2頁
兩位數(shù)碼管循環(huán)顯示00_第3頁
兩位數(shù)碼管循環(huán)顯示00_第4頁
兩位數(shù)碼管循環(huán)顯示00_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、兩位數(shù)碼管循環(huán)顯示00 99的實(shí)驗(yàn)現(xiàn)在讓我們用實(shí)驗(yàn)板上的兩個(gè)數(shù)碼管來做一個(gè)循環(huán)顯示0099數(shù)字的實(shí)驗(yàn),先來完成必要的硬件部分,數(shù)碼管有共陰和共陽的區(qū)分,單片機(jī)都可以進(jìn)行驅(qū)動(dòng),但是驅(qū)動(dòng)的方法卻不同,并且相應(yīng)的 09 的顯示代碼也正好相反。首先我們來介紹兩位共陽數(shù)碼管的單片機(jī)驅(qū)動(dòng)方法,電路如下圖:網(wǎng)友可以看到:2.6和P2.7端口分別控制數(shù)碼管的十位和個(gè)位的 供電,當(dāng)相應(yīng)的端口變成低電平時(shí),驅(qū)動(dòng)相應(yīng)的三極管會(huì)導(dǎo)通,+5V通 過IN4148二極管和驅(qū)動(dòng)三極管給數(shù)碼管相應(yīng)的位供電,這時(shí)只要P0 口 送出數(shù)字的顯示代碼,數(shù)碼管就能正常顯示數(shù)字。因?yàn)橐@示兩位不同的數(shù)字,所以必須用動(dòng)態(tài)掃描的方法來實(shí)現(xiàn),

2、就是先個(gè)位顯示 1 毫秒,再十位顯示1 毫秒,不斷循環(huán),這樣只要掃描 時(shí)間小于1/50秒,就會(huì)因?yàn)槿搜鄣囊曈X殘留效應(yīng),看到兩位不同的數(shù) 字穩(wěn)定顯示。面我們再介紹一種共陰數(shù)碼管的單片機(jī)驅(qū)動(dòng)方法,電路如下圖:網(wǎng)友可以看到:5V通過1K的排阻直接給數(shù)碼管的8個(gè)段位供電,P2.6 和 P2.7 端口分別控制數(shù)碼管的十位和個(gè)位的供電,當(dāng)相應(yīng)的端口 變成低電平時(shí),相應(yīng)的位可以吸入電流。單片機(jī)的P0 口輸出的數(shù)據(jù)相 當(dāng)于將數(shù)碼管不要顯示的數(shù) 字段對地短路,這樣數(shù)碼管就會(huì)顯示需要 的數(shù)字。網(wǎng)友可以看到,共陰數(shù)碼管的硬件更簡單,所以在批量生產(chǎn)時(shí), 硬件開銷小,節(jié)省PCB面積,減少焊接工作量,降低綜合成本,所以采

3、 用共陰數(shù)碼管更有利于批量生產(chǎn),現(xiàn)在銷售的試驗(yàn)板都是采用共陰數(shù)碼 管了。以下是用AT89C51實(shí)驗(yàn)板的兩位數(shù)碼管顯示0099依次循環(huán)的匯編語言程序a_bit equ 20h ;數(shù)碼管個(gè)位數(shù)存放內(nèi)存位置b_bit equ 21h ;數(shù)碼管十位數(shù)存放內(nèi)存位置temp equ 22h ;計(jì)數(shù)器數(shù)值存放內(nèi)存位置star: mov temp,#0 ;初始化計(jì)數(shù)器,從 0 開始st lop: acall display;調(diào)用顯示子程序inc temp; 對計(jì)數(shù)器加 1mov a,tempcjne a,#100,next ;判斷計(jì)數(shù)器是否滿 100?mov temp,#0 ;滿100 就清零重新開始nex

4、t: ljmp st lop;不滿就循環(huán)執(zhí)行; 顯示子程序display: mov a,temp ;將temp中的十六進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制mov b,#10 ;10 進(jìn)制/10=10 進(jìn)制div abmov b_bit,a ; 十位在 amov a_bit,b ; 個(gè)位在 bmov dptr,#numtab ; 指定查表啟始地址mov r0,#4dpl1: mov r1,#250 ;dplop: mov a,a_bit ; 取個(gè)位數(shù)MOVC A,A+DPTR ;查個(gè)位數(shù)的 7 段代碼mov p0,a ; 送出個(gè)位的 7 段代碼 clr p2.7 ; 開個(gè)位顯示acall d1ms ;顯示 16

5、2 微秒 setb p2.7;關(guān)閉個(gè)位顯示,防止鬼影mov a,b_bit ; 取十位數(shù)MOVC A,A+DPTR ; 查十位數(shù)的 7 段代碼 mov p0,a ; 送出十位的 7 段代碼clr p2.6 ; 開十位顯示acall d1ms ; 顯示 162 微秒setb p2.6; 關(guān)閉十位顯示, 防止鬼影djnz r1,dplop ; 循環(huán)執(zhí)行 250 次djnz r0,dpl1 ; 循環(huán)執(zhí)行 250X4=1000 次ret;2+2X80=162 微秒, 延時(shí)按 12MHZ 計(jì)算D1MS: MOV R7,#80DJNZ R7,$RET;實(shí)驗(yàn)板上的7段數(shù)碼管09數(shù)字的共陰顯示代碼numtab

6、: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH end; 如果是共陽數(shù)碼管的顯示代碼numtab: DB 30H,0FCH,0A2H,0A4H,06CH,25H,21H,0BCH,20H,24H兩位數(shù)碼管顯示 00-99 依次循環(huán)實(shí)驗(yàn)設(shè)備JS100A,JS200,JS300 等仿真器,實(shí)驗(yàn)板都可直接實(shí)驗(yàn)。使用 Keil51 仿真軟件, 單步運(yùn)行調(diào)試程序,查看寄存器,內(nèi)部數(shù)據(jù)存儲器的具體變化,使學(xué)習(xí)者明確每 條指令的用途。實(shí)驗(yàn)?zāi)康募皟?nèi)容8 段數(shù)碼管顯示 . 兩位數(shù)碼管顯示 00-99 依次循環(huán) ( 動(dòng)態(tài)掃描方式 ).p1 做 LED 顯 示數(shù)據(jù)

7、輸出口 .p3.2;p3.3分別控制數(shù)碼管個(gè)位數(shù)和十位數(shù)顯示.用單片機(jī)進(jìn)行數(shù)碼顯示應(yīng)具有顯示器件;應(yīng)用最廣泛的是 8 段數(shù)碼管。8 段數(shù)碼管從內(nèi)部接線上分共陽和共陰兩種。在電路設(shè)計(jì)時(shí)應(yīng)根據(jù)情況決定采用 共陽或共陰,其基本原則是:若單片機(jī)IO 口直接驅(qū)動(dòng)數(shù)碼管個(gè)段,最好采用共 陽數(shù)碼管,因?yàn)?1單片機(jī)10 口輸出高電平時(shí)輸出的電流很小,數(shù)碼管不會(huì)太 亮;若數(shù)碼管是通過驅(qū)動(dòng)芯片與單片機(jī)相連的,就要看驅(qū)動(dòng)芯片對數(shù)碼管極性的 要求啦。 下面的實(shí)驗(yàn)采用共陽數(shù)碼管。3 LO3 IOV(:C6Q7prP15CDPl10AEQR17Z!K7PIS14133 LO3 IOV(:C6Q7prP15CDPl10AE

8、QR17Z!K7PIS1413DD3 in t_)、A8550DS18X2LED;constant define ;常數(shù)定義 csp equ 60h ;堆棧開始使用的位置.;variable define ;變量定義vadigit equ 30h ;數(shù)碼管個(gè)位數(shù)存放內(nèi)存位置 vbdigit equ 31h ;數(shù)碼管十位數(shù)存放內(nèi)存位置 vcnt1 equ 32h ;計(jì)數(shù)器數(shù)值存放內(nèi)存位置 ;Func: 程序開始.org 0000h ajmp main org 0030h ;到0030h處避開0030h的敏感地址;Func: 程序初始化.main: ;初始化特殊寄存器及變量mov sp,#csp

9、;指定堆棧開始使用的位置. star:mov vcnt1,#0 ;初始化計(jì)數(shù)器,從 0 開始lop1:acall display ;調(diào)用顯示子程序inc vcnt1 ;對計(jì)數(shù)器加 1mov a,vcnt1cjne a,#100,lop1 ;判斷計(jì)數(shù)器是否滿 100? mov vcnt1,#0 ;滿 100 就清零重新開始 ljmp lop1 ;不滿就循環(huán)執(zhí)行 ;Func: 8.字型 LED 顯示子程序;Input: vcnt1 display:mov a,vcnt1 ;將 temp 中的十六進(jìn)制數(shù)轉(zhuǎn)換成 10 進(jìn)制 mov b,#10 ;10 進(jìn)制/10=10 進(jìn)制div ab ;a除以b,商

10、在a,余數(shù)在b.mov vbdigit,a ; 十位在 amov vadigit,b ; 個(gè)位在 bmov dptr,#digittab ; 指定查表起始地址mov r0,#4 dpl1:mov r1,#250 ; dplop:mov a,vadigit ; 取個(gè)位數(shù)movc a,a+dptr ; 查個(gè)位數(shù)的 7 段代碼mov p1,a ; 送出個(gè)位的 7 段代碼 clr p3.2 ; 開個(gè)位顯示 acall delayus ; 顯示 162 微秒 setb p3.2 ; 關(guān)閉個(gè)位顯示, 防止鬼影mov a,vbdigit ; 取十位數(shù)movc a,a+dptr ; 查十位數(shù)的 7 段代碼 mov p1,a ; 送出十位的 7 段代碼 clr p3.3 ; 開十位顯示acall delayus ; 顯示 162 微秒 setb p3.3 ; 關(guān)閉十位顯示, 防止鬼影 djnz r1,dplop ; 循環(huán)執(zhí)行 250 次 djnz r0,dpl1 ;循環(huán)執(zhí)行 250X4=1000 次 ret;Func: 162us 延時(shí)子程序 delayus:mov r7,#80 ;/2+2X80=162

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論