版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 目錄</b></p><p> 一 摘要………………………………………………………………………………2</p><p> 二 引言………………………………………………………………………………2</p><p> 三 課程設計的目的和任務………………………………………………………2</p><
2、;p> 四 設計思路 ………………………………………………………………………3五 硬件選擇及單元電路分析…………………………………………………3</p><p> 六 程序流程圖……………………………………………………………………10七 仿真 、調試……………………………………………………………………12</p><p> 八 課程設計體會 ………………………………………………
3、………………12</p><p> 九 參考文獻 ……………………………………………………………………14</p><p><b> 摘要:</b></p><p> 匯編語言是面向機器的程序設計語言,是一種功能很強的程序設計語言,也是利用計算機所有硬件特性并能直接控制硬件的語言。在匯編語言中,用助記符代替操作碼,用地址符或標號代替地址
4、碼。</p><p> 本次程序設計是以計算器為任務,運用匯編語言來完成。任務要求有計算器的界面,并顯示出來。所以程序中一個重要的程序段界面的設計。另外對于兩個數字和運算符的輸入存儲和顯示也是比較重要的一段。程序中,我們用了較多的子程序,使得程序的閱讀理解比較清晰簡單。</p><p><b> 引言:</b></p><p> 通過本次
5、課程設計使學生熟練掌握微機系統與接口擴展電路的設計方法,熟練應用8086匯編語言編寫應用程序和實際設計中的硬軟件調試方法和步驟,來設計一個計算器。</p><p><b> 計算器要求如下:</b></p><p> 1、可以顯示輸入數字與運算結果的數碼管,有可供使用的16個按鍵,16個鍵對應于0~9數字以及+、-、*、/、=以及重新開始;</p>
6、<p> 2、能實現10以內的加、減、乘、除單步運算并顯示結果,</p><p> 3、能夠顯示“錯誤”提示;</p><p> 4、能夠中止還未輸入完的計算式。</p><p> 三、課程設計的目的和任務</p><p> 通過課程設計,要求學生熟悉和掌握微機系統的軟件、硬件設計的方法、設計步驟,使學生得到微機開發(fā)應用方
7、面的初步訓練。讓學生獨立或集體討論設計題目的總體設計方案、編程、軟件硬件調試、編寫設計報告等問題,真正做到理論聯系實際,提高動手能力和分析問題、解決問題的能力,實現由學習知識到應用知識的初步過渡。通過本次課程設計使學生熟練掌握微機系統與接口擴展電路的設計方法,熟練應用8086匯編語言編寫應用程序和實際設計中的硬軟件調試方法和步驟,熟悉微機系統的硬軟件開發(fā)工具的使用方法。</p><p> 通過課程設計實踐,不僅
8、要培養(yǎng)學生事實求是和嚴肅認真的工作態(tài)度,培養(yǎng)學生的實際動手能力,檢驗學生對本門課學習的情況,更要培養(yǎng)學生在實際的工程設計中查閱資料,撰寫設計報告表達設計思想和結果的能力。</p><p><b> 四、設計思路:</b></p><p> 首先利用程序不斷掃描鍵盤是不是有輸入,如果沒有就一直掃描,如果有就調用子程序進行判斷,是數值則進行存儲并同時進行顯示,是運算符
9、號等就調用相應的子程序進行操作,操作后則繼續(xù)利用程序不斷掃描鍵盤是不是有輸入,從而實現4位十進制數以內的加減乘除法運算。運算完成后將運算的結果儲存并顯示到LED數碼顯示器上。</p><p><b> 硬件選擇:</b></p><p> 微處理器8086芯片</p><p> 當引腳接高電平時,CPU工作于最小模式。此時,引腳信號24~
10、31的含義及其功能如下: </p><p> ?。?)IO/M/(memory I/O select):存儲器、I/O端口選擇控制信號。 信號指明當前CPU是選擇訪問存儲器還是訪問I/O端口。為高電平時訪問存儲器,表示當前要進行CPU與存儲器之間的數據傳送。為低電平時,訪問I/O端口,表示當前要進行CPU與I/O端口之間的數據傳送。 </p><p> ?。?)WR/(write):寫信號
11、,輸出,低電平有效。 信號有效時,表明CPU正在執(zhí)行寫總線周期,同時由信號決定是對存儲器還是對I/O端口執(zhí)行寫操作。</p><p> (3)INTA/(interrupt acknowledge):可屏蔽中斷響應信號,輸出,低電平有效。 CPU通過信號對外設提出的可屏蔽中斷請求做出響應。為低電平時,表示CPU已經響應外設的中斷請求,即將執(zhí)行中斷服務程序。 </p><p> ?。?)A
12、LE(address lock enable):地址鎖存允許信號,輸出,高電平有效。 CPU利用ALE信號可以把AD15 ~AD0地址/數據、A19/S6~A16/S3地址/狀態(tài)線上的地址信息鎖存在地址鎖存器中。 </p><p> (5)DT/(data transmit or receive):數據發(fā)送/接收信號,輸出,三態(tài)。 DT/信號用來控制數據傳送的方向。DT/為高電平時,CPU發(fā)送數據到存儲器或I/
13、O端口;DT/為低電平時,CPU接收來自存儲器或I/O端口的數據。 </p><p> ?。?)DEN/(data enable):數據允許控制信號,輸出,三態(tài),低電平有效。信號用作總線收發(fā)器的選通控制信號。當為低電平時,表明CPU進行數據的讀/寫操作。 </p><p> ?。?)HOLD(bus hold request):總線保持請求信號,輸入,高電平有效。在DMA數據傳送方式中,由
14、總線控制器8237A發(fā)出一個高電平有效的總線請求信號,通過HOLD引腳輸入到CPU,請求CPU讓出總線控制權。 </p><p> ?。?)HLDA(hold acknowledge):總線保持響應信號,輸出,高電平有效。HLDA是與HOLD配合使用的聯絡信號。在HLDA有效期間,HLDA引腳輸出一個高電平有效的響應信號,同時總線將處于浮空狀態(tài),CPU讓出對總線的控制權,將其交付給申請使用總線的8237A控制器使
15、用,總線使用完后,會使HOLD信號變?yōu)榈碗娖?,CPU又重新獲得對總線的控制權。 </p><p> 可編程并行接口芯片8255A</p><p> 微機系統的信息交換有兩種方式:并行通信接口方式和串行通信接口方式。接口電路在CPU和I/O設備之間起著信號的變換和傳輸的作用。8255A可為86系列CPU與外部設備之間提供并行輸入/輸出的通道。由于它是可編程的,可以通過軟件來設置芯片的工作
16、方式,因此,用8255A連接外部設備時,通常不用再附加外部電路,使用教方便。并行接口是在多根數據線上,以數據字節(jié)/字與I/O設備交換信息。 在輸入過程中,輸入設備把數據送給接口,并且使狀態(tài)線“輸入準備好”有效。接口把數據存放在“輸入緩沖寄存器”中,同時使“輸入回答”線有效,作為對外設的響應。外設在收到這個回答信號后,就撤消數據和“輸入準備好”信號。數據到達接口中后,接口會在“狀態(tài)寄存器”中設置輸入準備好標志,或者向CPU發(fā)一個中斷請
17、求。CPU可用查詢方式或中斷方式從接口中讀取數據。接口中的數據被讀取后,接口會自動清除狀態(tài)寄存器中的標志,且撤消對CPU的中斷請求?! ≡谳敵鲞^程中,每當輸出寄存器可以接收數據,接口就會將狀態(tài)寄存器中“輸出準備好”狀態(tài)置1或向CPU發(fā)一個中斷請求,CPU可用查詢或中斷方式向接口輸出數據。當CPU輸出的數據到達接口后,</p><p> A口:是一個獨立的8位I/O口,它的內部有對數據輸入/輸出的鎖存功能。
18、·B口:也是一個獨立的8位I/O口,僅對輸出數據的鎖存功能。 ·C口:可以看作是一個獨立的8位I/O口;也可以看作是兩個獨立的4位I/O </p><p> 輸入元件:4×4矩陣按鍵:</p><p> 鍵盤是常用信息輸入元件,其實鍵盤也是由一個個按鈕組成,如果是獨立按鈕的話必須要需要一個I/O口對它進行檢測,而鍵盤往往這需要鍵盤按鈕數一半的I/O口數對
19、它進行檢測,也許對一個比較簡單的系統I/O口數一般不是問題,但對于一個大型、復雜的系統來說I/O資源就顯得非常珍貴了,盡量減少I/O使用是非常利于降低成本,另外一方面鍵盤比用獨立按鍵要美觀,這也是鍵盤能夠長期得到人們青睞的原因,可是硬件上的節(jié)省必然導致軟件上編程的復雜,那就來看看鍵盤到底使軟件編程有多復雜?</p><p> 因為4×4矩陣鍵盤有8個管腳,于是將鍵盤接8255A的PC口,至于為什么選擇
20、PC是有原因的,進行鍵盤掃描一般要求有一部分的I/O口的工作方式是輸入,另一部分I/O是輸出,具體到4×4鍵盤則要求4個I/O口輸入,另外4個輸出,這一點PC口剛好符合,而PA、PB口要么全部輸入或輸出,所以只能是PC口接鍵盤。</p><p> 輸出顯示:LED數碼管</p><p> LED為發(fā)光二極管構成的顯示器件,亦稱數碼管。由7個字符段和一個小數點段組成,每段對應一
21、個發(fā)光二極管,當發(fā)光二極管點亮時,相應的字符段點亮。LED有共陰極和共陽極兩種供應狀態(tài)。共陰極顯示時,將LED顯示的COM接地,將八個字符段端a、b、c、d、e、f、g、dp依次與一個8位I/O口的最低到最高位連接,當I/O給LED的哪個字符段送入一個高電平時,該段就被點亮,從而可從這7個字符段中被點亮的構成相應的字符顯示出來。同理,COM陽極即將COM端接Vcc,其顯示原理與COM陰極的基本相同,但I/O口送入低電平是相應的段才被點亮
22、。</p><p> 74LS373的工作原理(鎖存器)</p><p> 鎖存器(Latch)是一種對脈沖電平敏感的存儲單元電路,它們可以在特定輸入脈沖電平作用下改變狀態(tài)</p><p> 當三態(tài)允許控制端 OE 為低電平時,O0~O7 為正常邏輯狀態(tài),可用來驅動負載或總線。當 OE 為高電平時,O0~O7 呈高阻態(tài),即不驅動總線,也不為總線的負載,但鎖存器
23、內部的邏輯操作不受影響。</p><p> 74LS138(譯碼器)</p><p> 譯碼器的輸入是3個腳,輸出是8個腳。用高低電平來表示輸入和輸出。輸入是二進制。3只腳也就是3位二進制數。輸入可以3位二進制數。3位二進制最大是111 也就是8。輸出是8個腳,表示10進制。是根據輸入的二進制數來輸出。如果輸入是101 那么就是第5只腳高電平,表示二進制數是5。 其實3-8譯碼器的功能
24、就是把輸入的3位2進制數翻譯成10進制的輸出。</p><p><b> 硬件原理圖:</b></p><p> 本電路由8086、8255、數碼管、鎖存器、譯碼器、16個按鍵組成。</p><p> 1、不停的進行鍵盤掃描使其輸入數據及控制鍵</p><p> 2、通過幾個控制鍵調用控制鍵下的子程序進行加減乘除
25、運算</p><p> 3、通過數碼管進行數據顯示</p><p><b> 計算器工作原理圖</b></p><p><b> 程序流程圖</b></p><p> ?。?)鍵盤掃描程序流程圖:</p><p> ?。?)總程序流程圖:</p><
26、p><b> 六 仿真、調試</b></p><p> 第一步,進行數碼管顯示的仿真。編寫一段直接賦值送到數碼管顯示的程序,進行數碼管顯示的仿真。</p><p> 第二步,進行鍵盤掃描的仿真。編寫代碼,將掃描到的鍵值送到數碼管顯示。</p><p> 第三步,在數碼管顯示和鍵盤掃描程序都正確的基礎上,逐步增加代碼,增加功能,逐步
27、實現按鍵值的存儲與顯示、清零、加法、減法、乘法、除法等功能的仿真。</p><p><b> 任務分工</b></p><p> 韓鵬鵬:主要負責部分代碼的編寫和總體的調試與測試</p><p> 李輝輝:主要負責部分代碼的編寫和相關資料的收集</p><p><b> 七 課程設計體會</b&g
28、t;</p><p> 上學期剛學過微機原理,學得不是很深入,僅限于課本知識的掌握,而此次課程設計將會是一個很好的機會,來考察自己對課本知識的掌握以及應用情況。本次課程設計是四人一組,并且自由選擇設計課題,我們小組選擇了簡易計算器的課題,在做的過程中也遇到很多困難。</p><p> 在硬件設計模塊,參考了課本上的相關例題以及查閱相關資料,發(fā)現關于此次課程設計的所有課題的硬件原理圖都有
29、很大的共同之處,都是利用8086芯片經過地址鎖存器,再通過譯碼器,最后利用8255A或者更多芯片(如8253等)進行設計</p><p> 在軟件設計模塊,數碼管顯示和鍵盤掃描程序參考了書上的相關例題,也查閱了很多資料,發(fā)現原理都差不多,并且對此次課程設計有了較為清晰的思路。前一周基本上都在寫程序,期間一直沒有進行仿真。在寫好所有的程序時,才開始匯編,發(fā)現有很多語法錯誤,這是必然的,畢竟10多頁的程序,肯定會有
30、疏忽的地方。但沒有想到的是,在proteus里與硬件原理圖配合進行仿真時,遇到了大麻煩。程序絲毫不起作用,按鍵沒反應,數碼管也不亮,深受打擊。最后,不得不進行分部仿真。</p><p> 首先,進行數碼管顯示的仿真。改編了一段直接賦值送到數碼管顯示的程序,結果還有錯,并且花費了很長時間才搞定。主要問題是,四位數碼管采用一位靜態(tài)顯示時沒錯,當進行動態(tài)多位(比如4位)顯示時,倘若4位數值一樣,則顯示正確,只要數值不
31、全一樣就不能正確顯示,各個數碼管中的一個或多個二極管總是不亮(實際上應該亮的),也就是數值顯示的不完整,當調低頻率后,數碼管一個接一個單獨動態(tài)顯示時則正確,數值顯示得很完整,并且我們發(fā)現,在數碼管顯示的切換瞬間,上述所說的應該亮但沒亮的二極管比其它二極管先熄滅。這個花費了我們很長時間才解決。</p><p> 其次,再進行鍵盤掃描的仿真,這也是我們組所遇到的主要兩大困難的另一個。鍵盤掃描程序參考了課本上的例題,
32、對鍵盤掃描原理也理解的很透徹,為了適用于我們組所畫的原理圖,我們進行了改動,而且改動時特別注意與課本上原理圖的區(qū)別,鍵盤掃描原理都是一樣的。但是,在仿真時,按鍵沒有絲毫反應,在檢查、思考很多遍后任然沒有找到出錯之處。然后,又查閱了很多相關資料,發(fā)現原理都一樣,然后又仔細檢查,才發(fā)現8255A芯片的片選信號始終無效(即始終為高電平),這才找到出錯之處。</p><p> 最后,在數碼管顯示和鍵盤掃描程序都正確的基
33、礎上,逐步增加代碼,增加功能,逐步實現按鍵值的存儲與顯示、清零、加法、減法、乘法、除法等功能。在所有基本功能都實現后,又對源代碼進行了優(yōu)化整合。</p><p> 通過本次課程設計,我對微機原理有了進一步的理解,對8086、8255A的工作原理、用途以及使用時的注意事項等都有了深刻的認識,對這類的課程設計也從毫無概念到了有清晰的認識的轉變,相信再做這類的課程設計時不會再迷茫、不知從何入手。</p>
34、<p><b> 八:參考文獻</b></p><p> [1] 陳繼紅.微機原理及應用[M].北京:高等教育出版社,2011年,276-283頁</p><p> [2] 周明德.微型計算機系統原理及應用[M].北京:清華大學出版社,2007年</p><p> [3] 戴梅萼.微型計算機技術及應用[M].北京:清華大學出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論