基于8086數(shù)碼顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于8086數(shù)碼顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于8086數(shù)碼顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于8086數(shù)碼顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于8086數(shù)碼顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

課程設(shè)計(jì)的目的1.掌握LED數(shù)碼管顯示數(shù)字的原理。2.掌握共陰極LED數(shù)碼管的連接方法及其靜態(tài)和動態(tài)顯示方法。3.進(jìn)一步掌握并行接口芯片8255A的使用方法。2課程設(shè)計(jì)的任務(wù)與要求學(xué)習(xí)和掌握計(jì)算機(jī)中常用接口電路的應(yīng)用和設(shè)計(jì)技術(shù),充分認(rèn)識理論知識對應(yīng)用技術(shù)的指導(dǎo)性作用,進(jìn)一步加強(qiáng)理論知識與應(yīng)用相結(jié)合的實(shí)踐和鍛煉。通過這次設(shè)計(jì)實(shí)踐能夠進(jìn)一步加深對專業(yè)知識和理論知識學(xué)習(xí)的認(rèn)識和理解,使自己的設(shè)計(jì)水平和對所學(xué)的知識的應(yīng)用能力以及分析問題解決問題的能力得到全面提高。8086數(shù)碼顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn):要求:1.基于8086系統(tǒng);2.在數(shù)碼管上靜態(tài)顯示“0-99”;3.在數(shù)碼管上循環(huán)顯示“0-99”。3設(shè)計(jì)原理及功能說明3.1LED顯示原理靜態(tài)顯示就是顯示驅(qū)動電路具有輸出鎖存功能,單片機(jī)將所要顯示的數(shù)據(jù)送出后就不再管,直到下一次顯示數(shù)據(jù)需要更新時再傳送一次新數(shù)據(jù),顯示數(shù)據(jù)穩(wěn)定,占用很少的CPU時間。動態(tài)顯示需要CPU時刻對顯示器件進(jìn)行數(shù)據(jù)刷新,顯示數(shù)據(jù)有閃爍感,占用的CPU時間多。這兩種顯示方式各有利弊;靜態(tài)顯示雖然數(shù)據(jù)穩(wěn)定,占用很少的CPU時間,但每個顯示單元都需要單獨(dú)的顯示驅(qū)動電路,使用的硬件較多;動態(tài)顯示雖然有閃爍感,占用的CPU時間多,但使用的硬件少,能節(jié)省線路板空間?;镜陌雽?dǎo)體數(shù)碼管是由七個條狀發(fā)光二極管芯片排列而成的,可實(shí)現(xiàn)0~9的顯示。LED數(shù)碼管是由發(fā)光二級管顯示字段組成的顯示器,有8段和“米”字段之分,這種顯示器有共陽級和共陰極兩種。所謂共陽方式是指筆畫顯示器各段發(fā)光管的陽極(即P區(qū))是公共的,而陰極互相隔離。所謂共陰方式是筆畫顯示器各段發(fā)光管的陰極(即N區(qū))是公共的,而陽極是互相隔離的。3.2實(shí)驗(yàn)原理1.靜態(tài)顯示:按圖3-1連接好電路,將8255的A口PA0~PA6分別與七段數(shù)碼管的段碼驅(qū)動

輸入端a~g相連,位碼驅(qū)動輸入端S1接+5V(選中),S0、dp接地(關(guān)閉)。編程從鍵

盤輸入一位十進(jìn)制數(shù)字(0~9),在七段數(shù)碼管上顯示出來。圖3-1圖3-2動態(tài)顯示:按圖3-2連接好電路,七段數(shù)碼管段碼連接不變,位碼驅(qū)動輸入端S1,S0

接8255

C口的PC1,PC0。編程在兩個數(shù)碼管上循環(huán)顯示“00-99”。4參考流程圖(見圖4-1,圖4-2)圖4-1圖4-25單元電路的設(shè)計(jì)數(shù)碼管上靜態(tài)顯示數(shù)字的電路圖數(shù)碼管上循環(huán)顯示數(shù)字的電路圖6硬件的制作與調(diào)試6.1靜態(tài)顯示數(shù)字的代碼datasegmentioport equ1200h-0280hio8255a equioport+288hio8255b equioport+28bhleddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1db0dh,0ah,'Inputanum(0--9h):',0dh,0ah,'$'dataendscodesegment assumecs:code,ds:datastart:movax,data movds,ax movdx,io8255b;使8255的A口為輸出方式 movax,80h outdx,alsss:movdx,offsetmesg1;顯示提示信息 movah,09h int21h movah,01;從鍵盤接收字符 int21h cmpal,'0';是否小于0 jlexit;若是則退出 cmpal,'9';是否大于9;al為十位 jgexit;若是則退出 aaa;subal,30hmov[di],almov[di+1],ah;將所得字符的ASCII碼減30H movbx,offsetled;bx為數(shù)碼表的起始地址 xlat;求出相應(yīng)的段碼 movdx,io8255a;從8255的A口輸出 outdx,al jmpsss;轉(zhuǎn)SSSexit:movah,4ch;返回DOS int21hcodeendsendstart6.2循環(huán)顯示數(shù)字的代碼datasegmentioport equ1200h-0280hio8255a equioport+28ahio8255b equioport+28bhio8255c equioport+288hleddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;段碼buffer1db0,0;存放要顯示的十位和個位bzdw?;位碼dataendscodesegment assumecs:code,ds:datastart:movax,data movds,ax movdx,io8255b;將8255設(shè)為A口輸出 moval,80h outdx,almovdi,offsetbuffer1;設(shè)di為顯示緩沖區(qū)loop1: movcx,0300h;循環(huán)次數(shù)loop2: movbh,02lll: movbyteptrbz,bh pushdi decdi adddi,bz movbl,[di];bl為要顯示的數(shù) popdi movbh,0 movsi,offsetled;置led數(shù)碼表偏移地址為SI addsi,bx;求出對應(yīng)的led數(shù)碼 moval,byteptr[si] movdx,io8255c;自8255A的口輸出 outdx,al moval,byteptrbz;使相應(yīng)的數(shù)碼管亮 movdx,io8255a outdx,al pushcx movcx,0ffffh ;如果顯示過快,可更改cx值為最大0ffffhdelay: loopdelay;延時 popcx movbh,byteptrbz shrbh,1 jnzlll looploop2;循環(huán)延時 movax,wordptr[di] cmpah,09 jnzsetcmpal,09 jnzset movax,0000mov[di],al mov[di+1],ah jmploop1set: movah,01 int16h jneexit;有鍵按下則轉(zhuǎn)exit movax,wordptr[di] incal aaa mov[di],al;al為十位 mov[di+1],ah;ah中為個位 jmploop1exit: movdx,io8255a moval,0;關(guān)掉數(shù)碼管顯示 outdx,al movah,4ch;返回DOS int21hcodeends endstart7總結(jié)我想微機(jī)原理課程設(shè)計(jì)和其他課程設(shè)計(jì)有共同的地方,那就是不僅加深和鞏固了我們的課本知識,而且增強(qiáng)了我們自己動腦,自己動手的能力。這次課程設(shè)計(jì)也讓我們對實(shí)驗(yàn)臺有了足夠的了解,讓我們知道了實(shí)驗(yàn)臺上各個模塊的用法;而且它還讓我們對自己動手寫程序來控制實(shí)驗(yàn)臺的運(yùn)作有了一定的基礎(chǔ)。雖然實(shí)驗(yàn)臺只是一個小型的模擬平臺,但是通過對它的學(xué)習(xí)和操作,我們對有關(guān)接口的知識將會有一個更廣泛的認(rèn)識,而且它對我們以后的學(xué)習(xí)也會有幫助的。不可否認(rèn),這次課程設(shè)計(jì)存在不少缺點(diǎn)和不足,但通過這次課程設(shè)計(jì)找出了自己在學(xué)習(xí)上的不足,對以后的工作也有指導(dǎo)作用。我相信在以后的學(xué)習(xí)中會克服這些不足。 參考文獻(xiàn)1.張榮標(biāo),機(jī)械工業(yè)出版社,《微型計(jì)算機(jī)原理與接口技術(shù)第二版》2.張榮標(biāo),《微型計(jì)算機(jī)原理課程設(shè)計(jì)指導(dǎo)書》3.李干林,李升等,北京大學(xué)出版社《微機(jī)原理及接口技術(shù)試驗(yàn)指導(dǎo)書》4.胡全.51單片機(jī)的數(shù)碼管動態(tài)顯示技術(shù)[J].信息技術(shù)5.胡漢才.單片機(jī)原理及其接口技術(shù)(第2版)[M].北京:清華大學(xué)出版社.附錄1:總體電路原理圖附錄2:元器件清單TPC-USB實(shí)驗(yàn)系統(tǒng)(一塊USB總線接口模塊、一個擴(kuò)展實(shí)驗(yàn)臺及軟件集成實(shí)驗(yàn)環(huán)境)關(guān)鍵問題分析(靜態(tài)顯示):

1、

按鍵判斷和程序結(jié)束判斷

按鍵來說,由于程序中必須輸入數(shù)字,所以沒有必要對是否按鍵進(jìn)行判斷,只需要判斷按鍵是否在0-9之間即可。用以下程序即可:

cmp

al,'0'

jl

exit

jl,條件轉(zhuǎn)移指令,即在小于時轉(zhuǎn)移

cmp

al,'9'

jg

exit

jg,

條件轉(zhuǎn)移指令,即在大于時轉(zhuǎn)移

程序中還要用到“cmp”即比較指令,用來比較輸入數(shù)與0、9的大小關(guān)系。

程序結(jié)束:如若輸入的數(shù)字小于0或者大于9,必須直接跳出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論