六位LED八段數(shù)碼管顯示_第1頁(yè)
六位LED八段數(shù)碼管顯示_第2頁(yè)
六位LED八段數(shù)碼管顯示_第3頁(yè)
六位LED八段數(shù)碼管顯示_第4頁(yè)
六位LED八段數(shù)碼管顯示_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、八段數(shù)碼管顯示1. 實(shí)驗(yàn)?zāi)康?:(1了解數(shù)碼管動(dòng)態(tài)顯示的原理。(2了解 74LS164 擴(kuò)展端口的方法。2. 實(shí)驗(yàn)內(nèi)容 :利用實(shí)驗(yàn)儀提供的顯示電路 , 動(dòng)態(tài)顯示一行數(shù)據(jù)。3. 實(shí)驗(yàn)線路 :PB 0 數(shù)據(jù) 輸入PB 1 時(shí)鐘 輸入說(shuō)明:這里只是顯示草圖,詳細(xì)原理參見(jiàn) " 8155 接口實(shí)驗(yàn) "4. 實(shí)驗(yàn)器材:(1 QTH2008下載式 綜合實(shí)驗(yàn)儀 1 臺(tái) (2 QTH2008仿真器 1 臺(tái)(3計(jì)算機(jī) 1 臺(tái)5. 實(shí)驗(yàn)說(shuō)明 :(1 本實(shí)驗(yàn)儀提供了 8 段碼 LED 顯示電路, 學(xué)生只要按地址輸出相應(yīng)數(shù)據(jù), 就可以實(shí)現(xiàn)對(duì)顯示器的控制。 顯示共有 6 位, 用動(dòng)態(tài)方式顯示。 8 段

2、碼是由 8155 的 PB0、 PB1 經(jīng) 74LS164“串轉(zhuǎn)并” 后輸出得到。 6 位位碼由 8155(或 8255 的 PA0-5 口輸出,經(jīng) uA2003 反向驅(qū)動(dòng)后,選擇相應(yīng)顯示位。74LS164 是串行輸入并行輸出轉(zhuǎn)換電路,串行輸入的數(shù)據(jù)位由 8155 的 PB0 控制, 時(shí)鐘位由 8155 的 PB1 控制輸出。 寫程序時(shí), 只要向數(shù)據(jù)位地址輸出數(shù)據(jù), 然后向時(shí)鐘位地址輸出一高一低兩個(gè)電平就可以將數(shù)據(jù)位置到 74LS164 中, 并且 實(shí)現(xiàn)移位。向顯示位選通地址輸出高電平就可以點(diǎn)亮相應(yīng)的顯示位。本實(shí)驗(yàn)儀中數(shù)據(jù)位輸出地址為 0e102H , 時(shí)鐘位輸出地址為 0e102H , 位選

3、通輸 出地址為 0e101H 。本實(shí)驗(yàn)涉及到了 8155 I0/RAM 擴(kuò)展芯片的工作原理以及 74LS164 器件的工作原理。 7. 參考程序 (SY10.ASM:OUTBIT equ 0e101h ; 位控制口CLK164 equ 0e102h ; 段控制口 (接 164 時(shí)鐘位 DAT164 equ 0e102h ; 段控制口 (接 164 數(shù)據(jù)位 IN equ 0e103h ; 鍵盤讀入口LEDBuf equ 60h ; 顯示緩沖Num equ 70h ; 顯示的數(shù)據(jù)DelayT equ 75horg 0000hljmp StartLEDMAP: ; 八段管顯示碼db 3fh, 06h

4、, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延時(shí)子程序mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDisplayLED:mov r0, #LEDBufmov r1, #6 ; 共 6 個(gè)八段管mov r2, #00100000b ; 從左邊開始顯示 Loop:mov dptr, #OUTBITmov a, #00hmovx dptr, a ; 關(guān)所有八段管mov a, r0mov B, #8 ; 送 1

5、64DLP:rlc amov r3, amov acc.0, cANL A, #0FDHmov dptr, #DAT164movx dptr, amov dptr, #CLK164orl a,#02hmovx dptr, aanl a,#0fDhmovx dptr, amov a, r3djnz B, DLPmov dptr, #OUTBITmov a, r2movx dptr, a ; 顯示一位八段管 mov r6, #1call Delaymov a, r2 ; 顯示下一位rr amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0m

6、ovx dptr, a ; 關(guān)所有八段管retStart: mov dptr,#0e100hmov a,#03hmovx dptr,amov sp, #40hmov Num, #0MLoop:inc Nummov a, Nummov b, amov r0, #LEDBufFillBuf:mov a, banl a, #0fhmov dptr, #LEDMapmovc a, a+dptr ; 數(shù)字轉(zhuǎn)換成顯示碼mov r0,a ; 顯示在碼填入顯示緩沖inc r0inc bcjne r0, #LEDBuf+6, FillBufmov DelayT,#30DispAgain:call Display

7、LED ; 顯示djnz DelayT,DispAgainljmp MLoopEND八位數(shù)碼管顯示:8155控制參考程序 2:對(duì) 8155初始化,使 I/O口控制 LED 的顯示情況。ORG 0000HMOV DPTR , #4400H ;指向 8155命令寄存器MOV A , #03HMOVX DPTR,A; 寫入控制字。 A 口、 B 口為輸出, C 口為輸入 INC DPTR ;指向 8155A 口MOV A , #00HMOVX DPTR, A ;向 A 口寫入 00H ,;輸出選中所有 8個(gè) LEDINC DPTR ;指向 8155B 口MOV A , #0FFHMOVX DPTR,

8、 A ;向 B 口寫入某個(gè)字型碼,輸出點(diǎn)亮 8個(gè) LEDSJMP $8155控制 8位數(shù)碼管和鍵盤電路圖2 多位動(dòng)態(tài)顯示接口應(yīng)用采用 8051與 8155接口, 再采用 8155的 I/O口控制數(shù)碼管的段碼 和位碼, 同時(shí), 采用動(dòng)態(tài)掃描方式依次循環(huán)點(diǎn)亮各位數(shù)碼管, 即可構(gòu)成多位動(dòng)態(tài)數(shù)碼管顯示 電路。整體設(shè)計(jì)思路如下:由 8155的 A 口控制段碼輸出, C 口控制位碼輸出。 采用定時(shí)器中斷方式實(shí)現(xiàn)動(dòng)態(tài)掃描, 每隔 20ms 掃描一次,每位數(shù)碼管點(diǎn)亮的時(shí)間為 1ms 。在單片機(jī)內(nèi)部 RAM 設(shè)置待顯示數(shù)據(jù) 緩沖區(qū),由查表程序完成顯示譯碼。將緩沖區(qū)內(nèi)待顯示數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的段碼,再將段碼通過(guò) 80

9、51的 P0口送至 8155的 A 口;位碼數(shù)據(jù)由累加器循環(huán)左移指令產(chǎn)生,再通過(guò) P0口送至 8155的 C 口。硬件電路設(shè)計(jì)如下:上圖為數(shù)碼管動(dòng)態(tài)顯示電路。其中, 8路驅(qū)動(dòng)采用 74LS244總線驅(qū)動(dòng)器, 6路驅(qū)動(dòng)采用 74LS07 OC門驅(qū)動(dòng)器。 74LS244輸出經(jīng) 300 上拉(或限流電阻后接至電源,同時(shí),接至 數(shù)碼管的各段, 控制數(shù)碼管的顯示字符。 74LS07輸出經(jīng) 1 k上拉電阻接至電源, 同時(shí)接至 各位數(shù)碼管的公共端, 控制每位數(shù)碼管的顯示時(shí)間, 實(shí)現(xiàn)動(dòng)態(tài)掃描。 模擬生產(chǎn)線計(jì)數(shù)的按鍵 信號(hào)接至 P3.3口。 六位實(shí)現(xiàn) 6位顯示的秒表:從左到右每 2位 LED 分別顯示小時(shí)、 分

10、和秒, 并正常計(jì)數(shù)進(jìn)位;上電后小時(shí) 00 00 00,當(dāng)顯示到 23 59 59后, 6位顯示清零,從頭開始顯 示。 軟件設(shè)計(jì)如下:以單片機(jī)內(nèi)部 RAM 的 30H 35H 單元作為顯示數(shù)據(jù)緩沖區(qū), 六位數(shù)碼管段碼的獲 取及每位數(shù)碼管的顯示時(shí)間均由顯示子程序完成。 采用定時(shí)器中斷方式實(shí)現(xiàn)動(dòng)態(tài)掃描, 每隔 50 ms掃描一次,每位數(shù)碼管點(diǎn)亮的時(shí)間為 1 ms。單片機(jī)每接收一次按鍵信號(hào)(即模擬交通 燈改變計(jì)數(shù)信號(hào) ,顯示緩沖區(qū)的待顯示數(shù)據(jù)被刷新一次,數(shù)碼管相應(yīng)的顯示數(shù)值也就隨之 發(fā)生變化。如連續(xù)按鍵進(jìn)行測(cè)試,即可產(chǎn)生計(jì)數(shù)數(shù)據(jù)從左至右循環(huán)移動(dòng)的效果。根據(jù)圖中 IO/、與單片機(jī)的連接可知,可以確定命令

11、 /狀態(tài)字 A 口、 B 口、 C 口、計(jì)數(shù)值低 8位寄存器 及高 6位和方式寄存器地址分別為:0100H 、 0101H 、 0102H 、 0103H 、 0104H 、 0105H 。 片內(nèi)資源分配如下表: 主程序:MSEC EQU 20H ; 50MS 計(jì)數(shù)單元SECOND EQU 21H ;秒單元MIN EQU 22H ;分單元HOUR EQU 23H ;小時(shí)單元ORG 0000HLJMP MAINORG 000BHLJMP CONTMAIN : MOV SP , #3FHMOV TMOD #01HMOV TH0, #3CHMOV TL0, #0B0HMOV IE, #82HMOV

12、SECOND, #00HMOV MIN, #00HMOV HOUR, #00HMOV MSEC, #14HMOV 35H, #00HMOV 34H, #00HMOV 33H, #00HMOV 32H, #00HMOV 31H, #00HMOV 30H, #00HSETB TR0START :LCALL DISPSJMP START; LED 動(dòng)態(tài)顯示子程序;功能:動(dòng)態(tài)顯示六個(gè)數(shù)碼管;入口:顯示緩沖區(qū) 30H 35H 中待顯示的 6個(gè)數(shù)據(jù)DISP: MOV R0, #30H ;顯示緩沖區(qū)首址MOV R7, #00H ;設(shè)定每位顯示延時(shí)時(shí)間MOV R2, #06H ;顯示位數(shù)MOV R3, #20

13、H ;共陽(yáng)管位碼初始值,從右端先亮 MOV A , R0 ;取顯示緩沖區(qū)的一個(gè)數(shù)據(jù) DISP1:MOV DPTR, #TAB ;查表首址給 DPTRMOVC A, A+DPTR ;查表得到顯示字符的字型碼 MOV P0 , A ; 將字型碼送 P0口MOV DPTR, #0101HMOVX DPTR, A ;字型碼送 8155A 口MOV A , R3 ;位選碼送 AMOV P2 , A ;位碼送 P2口MOV DPTR, #0103HMOVX DPTR, A ;位碼送 8155C 口DJNZ R7 , $ ;延時(shí)DJNZ R7 , $ ;延時(shí)RR A ;位碼右移MOV R3, A ;位碼回送

14、 R3INC R0 ;指向下一位MOV A , R0 ;取顯示緩沖區(qū)下一個(gè)數(shù)據(jù)DJNZ R2, DISP1 ; 6位顯示一遍嗎?RETTAB :DB 0C0H, 0F9H, 0A4H , 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H主程序流程圖: ;定時(shí)器中斷子程序:;功能:50MS 執(zhí)行一次,完成秒、分、小時(shí)單元的刷新并拆開放到顯示緩沖區(qū);出口:顯示緩沖區(qū) 30H 35H 中存放待顯示的 6個(gè)數(shù)據(jù)CONT :PUSH ACCMOV TH0, #3CHMOV TL0, #0B0HDJNZ MSEC, RN ;判斷到 20次嗎?(暨 1秒到 1秒,返回主程序MOV MS

15、EC, #14H ; 1秒到,重置 MSEC=20INC SECONDMOV A, SECONDMOV R1, #31H ;指向顯示緩沖區(qū)的 31H 單元LCALL BINBCD ; 調(diào)用拆字子程序, 將秒拆開為十位、 個(gè)位, 分別放 31H,30H MOV A, SECONDCJNE A, #60, RN ;到 60秒?未到返主程序MOV A, #0MOV SECOND, A ; 60秒到,秒單元清零顯示子程序流程圖: MOV R1, #31H ;指向 31H 單元LCALL BINBCD ;調(diào)用拆字子程序MOV A, MININC A ;分單元內(nèi)容加 1MOV MIN, AMOV R1,

16、#33H ; R1指向 33H 單元LCALL BINBCD ; 調(diào)用拆字子程序, 將分單元拆開為十位、 個(gè)位, 分別存放 33H 和 32H 單元MOV A, MINCJNE A, #60, RN ;到 60分嗎?未到返主程序MOV A, #00MOV MIN, A ; 60分到,分單元清零MOV R1, #33H ;指向 33H 單元LCALL BINBCD ;調(diào)用拆字子程序MOV A, HOURINC A ;小時(shí)單元內(nèi)容加 1MOV HOUR, AMOV R1, #35H ; R1指向 35H 單元LCALL BINBCD ; 調(diào)用拆字子程序, 將小時(shí)拆開為十位、 個(gè)位, 分別存放到 35H 和 34H 單元MOV A, HOURCJNE A, #24, RN ;到 24小時(shí)嗎?未到返回主程序M

溫馨提示

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

評(píng)論

0/150

提交評(píng)論