微機原理電子秒表_第1頁
微機原理電子秒表_第2頁
微機原理電子秒表_第3頁
微機原理電子秒表_第4頁
微機原理電子秒表_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-.z.目錄TOC\o"1-2"\h\z\u中文摘要2方案論證3總體設計方案4硬件系統(tǒng)設計5軟件系統(tǒng)設計10硬件系統(tǒng)原理圖12程序清單13總結(jié)體會30參考文獻31中文摘要微機原理與接口技術(shù)是一門實踐性很強的電子信息工程專業(yè)的技術(shù)根底課程。因此,微機接口課程設計是一項實踐性很強的實訓環(huán)節(jié),結(jié)合運用所學的匯編語言及8086微處理芯片設計一個電子秒表,通過實踐能夠加深對匯編語言的理解以及對8086微處理器、8253可編程定時器、8259A可編程中斷控制器、8255A可編程并行I/O接口芯片等的根本功能的認識。本實驗利用8253可編程定時器等芯片的定時和記數(shù)的原理,結(jié)合實驗箱上的集成電路芯片8086、LED數(shù)碼管以及實驗箱上的按鍵來設計秒表。將軟、硬件有機地結(jié)合起來,要**現(xiàn)計時單位為1/100秒,利用功能鍵進展啟/??刂?,上電后計時器清0,當?shù)谝淮伟聪翶EY1啟/停鍵時開場計數(shù),按一下KEY2鍵清零,重新開場計時,在系統(tǒng)能夠正確地進展計時,使5位LED數(shù)碼管能夠正確地顯示時間。關(guān)鍵字:電子秒表、百分之一秒、停啟控制。方案論證根據(jù)課程設計的要求和我們所要增加的功能寫好程序流程圖,在程序流程圖的根底上,結(jié)合芯片的功能寫出相應的程序。然后再進展程序調(diào)試和相應的修改,以到達能夠?qū)崿F(xiàn)所要**現(xiàn)的功能的目的。在微機原理定匯編調(diào)試軟件上編輯源程序,并進展匯編,在匯編成功無誤后,選擇端口進展調(diào)試,然后裝入程序,至此,本次設計的軟件工作準備完畢。再根據(jù)硬件原理設計圖完成各芯片之間的連接,翻開實驗箱電源開關(guān)總體進展調(diào)試。在整個實驗過程中,在8253可編程定時器CLK端輸出管腳處接上一個計數(shù)的頻率為10KHZ的時鐘信號,由8253定時/計數(shù)器產(chǎn)生0.01秒的中斷并進展計數(shù),可編程并行I/O接口芯片8255A將偏移地址寫入內(nèi)存單元,進中斷更新數(shù)據(jù),然后將內(nèi)存數(shù)據(jù)送給LED數(shù)碼管顯示。定時器中斷就是定義初值,然后開中斷,剩下的就在中斷里寫了。保存數(shù)據(jù)段后,取中斷程序入口地址,定義可編程中斷控制器8259中斷7中斷矢量,讀8259中斷屏蔽字,開8259中斷7,六位數(shù)碼管用動態(tài)顯示,挨個點亮,六個I/O控制位,十二個I/O控制段碼,將8259的定時器設置在0.01秒進入一次中斷,交替輸出上下電平〔形成時鐘頻率〕,在計數(shù)器輸出使用組合邏輯電路連接LED燈的各個控制輸入端。總體設計方案設計一個利用微機原理與接口技術(shù)完成秒表的設計方案,該方案主要是選擇8253A的計數(shù)器2與計數(shù)器1產(chǎn)生一個1Hz的中斷脈沖,其輸出端與不可屏蔽中斷請求信號端相連接。利用1.19318MHz脈沖方波輸入CLK2,設置CLK2的初值為59659,將CLK2的輸出端連接到CLK1,設置CLK1的初值為20,將OUT1連接到8086CPU的NMI端。將NMI端有一個低電平信號輸入時,8086CPU將產(chǎn)生中斷進展秒計數(shù)。8086通過8255A將PA口作為段選信號輸出端,將PB口作為片選信號輸出端。方案設計框圖此方案的核心內(nèi)容是利用微機原理與接口技術(shù)完成秒表的設計方案,該方案主要是選擇8253A的計數(shù)器2和計數(shù)器1進展1s的定時,其輸出于OUT1與8086的NMI相連,當定時到1s的時候產(chǎn)生一個中斷信號,在中斷效勞程序進展秒的計數(shù),并送入相應的存儲單元;8255的A口接七段數(shù)碼管的段選信號,B口接七段數(shù)碼管的位選信號,秒的數(shù)值通過對8255的編程可以顯示在七段數(shù)碼管上面。該方案是利用微機接口技術(shù)的典范案例,就可行性而言,也是行之有效的。硬件系統(tǒng)設計8086簡介Intel8086擁有四個16位的通用存放器,也能夠當作八個8位存放器來存取,以及四個16位索引存放器(包含了堆棧指標)。資料存放器通常由指令隱含地使用,針對暫存值需要復雜的存放器配置。它提供64K,8位元的輸出輸入(或32K,16位元),以及固定的向量中斷。大局部的指令只能夠存取一個內(nèi)存位址,所以其中一個操作數(shù)必須是一個存放器。運算結(jié)果會儲存在操作數(shù)中的一個。Intel8086有四個內(nèi)存區(qū)段(segment)存放器,可以從索引存放器來設定。區(qū)段存放器可以讓CPU利用特殊的方式存取1MB內(nèi)存。8086把段地址左移4位然后把它加上偏移地址。而8086的尋址方式改變讓內(nèi)存擴大較有效率。8086處理器的時鐘頻率介于4.77MHz(在原先的IBMPC)和10MHz之間。8086沒有包含浮點指令局部〔FPU〕,但是可以通過外接數(shù)學輔助處理器來增強浮點計算能力。其I/O分配如下列圖所示:CPU8086及I/O接口電路8255簡介Intel8086/8088系列的可編程外設接口電路〔ProgrammablePeripheralInterface)簡稱PPI,型號為8255〔改良型為8255A及8255A-5〕,具有24條輸入/輸出引腳、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規(guī)模集成電路。8255A的通用性強,使用靈活,通過它CPU可直接與外設相連接。8255A在使用前要寫入一個方式控制字,選擇A、B、C三個端口各自的工作方式,共有三種;方式0:根本的輸入輸出方式,即無須聯(lián)絡就可以直接進展的I/O方式。其中A、B、C口的高四位或低四位可分別設置成輸入或輸出。方式1:選通I/O,此時接口和外圍設備需聯(lián)絡信號進展協(xié)調(diào),只有A口和B口可以工作在方式1,此時C口的*些線被規(guī)定為A口或B口與外圍設備的聯(lián)絡信號,余下的線只有根本的I/O功能,即只工作在方式0。方式2:雙向I/O方式,只有A口可以工作在這種方式,該I/O線即可輸入又可輸出,此時C口有5條線被規(guī)定為A口和外圍設備的雙向聯(lián)絡線,C口剩下的三條線可作為B口方式1的聯(lián)絡線,也可以和B口一起方式0的I/O線。8255A是一個并行輸入、輸出器件,具有24個可編程設置的I/O口,包括3組8位的I/O為PA口、PB口、PC口,又可分為2組12位的I/O口:A組包括A口及C口高4位,B組包括B口及C組的低4位。8086與8255連接圖8253簡介Intel8253是NMOS工藝制成的可編程計數(shù)器/定時器,有幾種芯片型號,外形引腳及功能都是兼容的,只是工作的最高計數(shù)速率有所差異,例如8253〔2.6MHz〕,8253-5(5MHz),8253內(nèi)部有三個計數(shù)器,分別成為計數(shù)器0、計數(shù)器1和計數(shù)器2,他們的機構(gòu)完全一樣。每個計數(shù)器的輸入和輸出都決定于設置在控制存放器中的控制字,互相之間工作完全獨立。每個計數(shù)器通過三個引腳和外部聯(lián)系,一個為時鐘輸入端CLK,一個為門控信號輸入端GATE,另一個為輸出端OUT。每個計數(shù)器內(nèi)部有一個8位的控制存放器,還有一個16位的計數(shù)初值存放器CR、一個計數(shù)執(zhí)行部件CE和一個輸出鎖存器OL。執(zhí)行部件實際上是一個16位的減法計數(shù)器,它的起始值就是初值存放器的值,而初始值存放器的值是通過程序設置的。輸出鎖存器的值是通過程序設置的。輸出鎖存器OL用來鎖存計數(shù)執(zhí)行部件CE的內(nèi)容,從而使CPU可以對此進展讀操作。順便提一下,CR、CE和OL都是16位存放器,但是也可以作8位存放器來用:一段程序?qū)懲瓿珊蟛荒芗庇谏蠙C調(diào)試,而是先進展邏輯分析、可行性分析。用EMU8086軟件進展調(diào)試,不能出現(xiàn)錯誤,警告可以有,只要不影響生成HE*文件即可。理解其實現(xiàn)的功能,預想程序應該出現(xiàn)的結(jié)果。先進展軟件仿真,出現(xiàn)錯誤馬上修改,不斷進展。先一個模塊一個模塊的仿真,準確后再連線總體仿真。仿真完后出現(xiàn)預期的效果后再下載程序到硬件進展驗證,往往還有問題,還得反復修改,編譯,調(diào)試,下載,驗證??梢砸粋€模塊一個模塊的下載調(diào)試這樣就可以知道問題的所在。采用Proteus和EMU8086結(jié)合仿真的可以大大簡化軟、硬件電路的設計過程。Proteus是英國Labeenterelectronics公司研發(fā)的EDA工具軟件。Proteus不僅是模擬電路、數(shù)字電路、模/數(shù)混合電路的設計與仿真平臺,更是目前世界最先進、最完整的多種型號微控制器系統(tǒng)的設計與仿真平臺。它真正實現(xiàn)了在計算機上完成從原理圖設計、電路分析與仿真、單片機代碼級調(diào)試與仿真、系統(tǒng)測試與功能驗證到形成PCB的完整電子設計與研發(fā)過程。Proteus產(chǎn)品系列也包含了革命性的VSM技術(shù),可以對基于微控制器的設計連同所有的外圍電子器件一起仿真。由于我們的設計外圍電路比擬簡單實現(xiàn)的功能葉不是很復雜,所以在Proteus仿真時我們是將主程序直接下載到芯片中仿真,主要是驗證是否采集到溫度還有溫度是否顯示正確。仿真可以在實物沒有出來前進展先期的驗證。最后加上我們的擴展功能一起仿真調(diào)試。由于沒有做硬件,我們采用Proteus仿真調(diào)試,通過將軟件編譯通過的程序下載到畫好的仿真圖中,這樣便于檢查軟、硬件設計的缺乏。但是Proteus仿真也存在缺乏的情況,仿真模擬的是理想的環(huán)境,不會差生誤差但是實際的測試會出現(xiàn)一定的誤差。由于程序設計的是,當系統(tǒng)運行后,數(shù)碼管開場顯示計數(shù)時間,根據(jù)仿真結(jié)果。說明此設計工作正常。軟件系統(tǒng)設計軟件設計要求及介紹這是一個利用微機原理與接口技術(shù)完成秒表的設計方案,該方案主要是選擇8253A的計數(shù)器2與計數(shù)器1進展1s的定時,其輸出于OU1與8086的NMI相連,當定時到1s的時候產(chǎn)生一個中斷信號,在中斷效勞程序進展秒的計數(shù),并送入相應的存儲單元;8255的A口接七段數(shù)碼管的段選信號,B口接七段數(shù)碼管的位選信號。我的數(shù)值通過對8255的編程可以顯示在七段數(shù)碼管上面。因此可以利用8086等器件的功能來完成設計。EMU8086是學習匯編必不可少的工具,它結(jié)合了一個先進的原始編輯器、組譯器、反組譯器、具除錯功能的軟件模擬工具〔虛擬PC〕,還有一個循序漸進的指導工具。該軟件包含了學習匯編語言的全部內(nèi)容。Emu8086集源代碼編輯器,匯編/反匯編工具以及可以運行debug的模擬器〔虛擬機器〕于一身,此外,還有循序漸進的教程。這里是軟件設計的流程,首先對所要用到的邏輯元器件的控制端口,I/O口進展初始化,接著通過按下按鍵"1〞來調(diào)用賦值子程序,這中間必須要應用一個延時程序來防抖,完成后就開場中斷,接著判斷按鍵"2〞按下去的次數(shù),如果是奇數(shù)次的話就繼續(xù)進展秒表計時,如果按下去的是偶數(shù)次的話,則暫停,顯示當前秒表的計數(shù)值。程序設計流程圖硬件系統(tǒng)原理圖程序清單DISMACROLOCAT,CODE;設置圖形顯示宏定義PUSHD*PUSHB*PUSHA*MOVD*,LOCAT;設置光標位置MOVBH,00MOVAH,02HINT10HMOVDL,CODE;輸出字符串MOVAH,02HINT21HPOPA*POPB*POPD*ENDMDATSEGMENT;設置數(shù)據(jù)段BUFDB'INPUTSTARTRESETENDCONTINUE$';設置功能說明BUFFERDB10DUP(");定義緩存區(qū)TIPDB'MEMORY$';定義記憶提示NUMDB1LODEQU0929HDATENDSCODSEGMENT;定義代碼段STARTPROCFARASSUMECS:COD,DS:DATMOVA*,DATMOVDS,A*MOVD*,OFFSETBUF;輸出功能說明MOVAH,09HINT21HCALLDISMER;記憶區(qū)提示符置光標MOVD*,OFFSETTIP;輸出記憶提示字符MOVAH,09HINT21HCALLCLR;圖形區(qū)清屏并設置顏色CALLCLRDAT;秒表數(shù)字區(qū)清屏并設置顏色CALLCLRMER;記憶區(qū)清屏并設置顏色DIS0419H,'<';通過宏調(diào)用顯示圖形DIS0517H,'<'DIS0715H,'<'DIS0914H,'<'DIS0B14H,'<'DIS060EH,'_'DIS0710H,'_'DIS0812H,'_'DIS0913H,'_'DIS0A14H,'_'DIS0915H,'_'DIS0816H,'_'DIS0718H,'_'DIS061AH,'_'DIS071CH,'*'DIS081EH,'*'DIS091FH,'*'DIS0B20H,'*'DIS0D21H,'*'DIS0F21H,'*'DIS1120H,'*'DIS131FH,'*'DIS141EH,'*'DIS151DH,'*'DIS161BH,'*'DIS1719H,'*'DIS1717H,'_'DIS1616H,'_'DIS1514H,'_'DIS1612H,'_'DIS1711H,'_'DIS170EH,'*'DIS160CH,'*'DIS150BH,'*'DIS140AH,'*'DIS1309H,'*'DIS1108H,'*'DIS0F07H,'*'DIS0D07H,'*'DIS0B08H,'*'DIS0909H,'*'DIS080AH,'*'DIS070CH,'*'DIS0C12H,'_'DIS0C13H,'_'DIS0C14H,'_'DIS0C15H,'_'DIS0C16H,'_'CALLGO;設置初植LOAD:CALLIOSET;光標定位CALLHALT;等待輸入MOVD*,0MOVCH,0AGAIN:CALLTIME;調(diào)用延時程序MOVAL,DL;百分之一秒加一ADDAL,1DAAJCNE*T1;滿一百進位MOVDL,ALJMPDISPY;不滿一百顯示NE*T1:MOVDL,0MOVAL,DH;秒位加一ADDAL,1DAAMOVDH,ALCMPAL,60HJNEDISPYCALLBELL;滿60提示鈴聲并進位MOVDH,0MOVAL,CH;分位加一ADDAL,1DAAMOVCH,ALCMPAL,60HJNEDISPY;滿60清零MOVCH,0DISPY:;顯示電子秒表MOVB*,OFFSETBUFFER;取緩沖區(qū)地址MOVAL,CHCALLTRAN;將分位轉(zhuǎn)變?yōu)锳SCII碼并送緩沖區(qū)INCB*INCB*MOVAL,DH;將秒位轉(zhuǎn)變?yōu)锳SCII碼并送緩沖區(qū)CALLTRANINCB*INCB*MOVAL,DL;將百分之一秒位轉(zhuǎn)變?yōu)锳SCII碼并送緩沖區(qū)CALLTRANPUSHB*PUSHC*PUSHD*CALLIOSET;光標置位MOVD*,OFFSETBUFFER;輸出緩沖區(qū)字符串MOVAH,09HINT21HPOPD*POPC*POPB*MOVAH,0BH;等待鍵盤輸入INT21HANDAL,ALJZAGAINMOVAH,08HINT21HCMPAL,'R';判斷輸入是否為RJNENE*T2;不是則判斷是否為ECALLMEMORY;假設是則調(diào)用記憶功能保存當前值MOVCH,0;初值清零重新計數(shù)MOVDL,0MOVDH,0JMPAGAINNE*T2:CMPAL,'E';判斷是否為EJNEAGAIN;不是則繼續(xù)計數(shù)NE*T3:;假設是則暫停計數(shù)MOVAH,08HINT21HCMPAL,'C';判斷是否輸入CJEAGAIN;假設是則繼續(xù)計數(shù)CMPAL,'R';判斷是否輸入RJNENE*T3;假設不是則繼續(xù)等待輸入CALLMEMORY;假設是則調(diào)用記憶功能CALLGO;重新設置初值等待重新啟動CALLIOSETMOVD*,OFFSETBUFFERMOVAH,09HINT21HJMPLOADRETSTARTENDPGOPROC;設置初值子程序MOVB*,OFFSETBUFFERMOVAL,'0'MOV[B*],ALINCB*MOVAL,'0'MOV[B*],ALINCB*MOVAL,':'MOV[B*],ALINCB*MOVAL,'0'MOV[B*],ALINCB*MOVAL,'0'MOV[B*],ALINCB*MOVAL,':'MOV[B*],ALINCB*MOVAL,'0'MOV[B*],ALINCB*MOVAL,'0'MOV[B*],ALINCB*MOVAL,'$'MOV[B*],ALRETGOENDPIOSETPROCMOVD*,0F10HMOVBH,00MOVAH,02HINT10HRETIOSETENDPHALTPROCMOVAH,08HINT21HCMPAL,'S'JNEHALTRETHALTENDPTRANPROC;十六進制轉(zhuǎn)ASCII碼子程序MOVCL,ALSHRAL,1SHRAL,1SHRAL,1SHRAL,1ORAL,30HMOV[B*],ALINCB*MOVAL,CLANDAL,0FHORAL,30HMOV[B*],ALRETTRANENDPTIMEPROC;延時子程序PUSHC*PUSHA*MOVA*,0EFHMOVC*,0FFFFHA1:DECA*JNZA2JMPA3A2:DECC*JNZA2JMPA1A3:POPA*POPC*RETTIMEENDPMEMORYPROC;記憶功能子程序PUSHD*PUSHB*PUSHA*CMPNUM,10JE*2ADDNUM,1*1:MOVD*,LODADDDH,NUMMOVBH,00MOVAH,02HINT10HMOVD*,OFFSETBUFFERMOVAH,09HINT21HPOPA*POPB*POPD*RET*2:CALLCLRMERMOVNUM,1JMP*1MEMORYENDPCLRPROC;圖形區(qū)清屏并設置顏色子程序MOVAH,06HMOVAL,14HMOVC*,0401HMOVD*,1721HMOVBH,0CHINT10HRETCLRENDPCLRDATPROC;數(shù)據(jù)區(qū)清屏并設置顏色子程序MOVAH,6MOVAL,1MOVC*,0F10HMO

溫馨提示

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

最新文檔

評論

0/150

提交評論