微機課程設計報告

2022-12-25 14:18:04 字數 4732 閱讀 8300

( 2013—2023年度第一學期)

名稱: 微機原理及應用

題目: 8255/273實現六位簡單計算器

院系: 控計學院

設計週數: 1周

成績日期:2023年1月3日

一、課程設計的目的與要求

目的:在微機原理及應用課程中分別學過了微機原理各個基本組成模組的原理和程式設計技術的基礎上,綜合應用各部分知識,在實驗室現有裝置的情況下,設計乙個具有一定功能的應用系統,達到對各部分知識加深理解、融會貫通的目的,並進一步鍛鍊學生的動手能力和綜合分析能力,同時培養學生的團隊精神。要求每個同學獨立完成自己分擔的部分,整體方案可以組內同學討論確定。

要求:能完成六位十進位制數的加、減、乘、除運算以及平方運算,操作過程與普通計算器相同,即先輸入乙個運算元,然後按下鍵,再輸入下乙個運算元,按等號鍵開始運算並顯示結果,若結果超過六位,則顯示「e」。

要求盡量與真實計算器相似。

任務:我負責的是軟體整體構建,和對加法,減法,乘法,除法,平方,清零以及帶小數運算程式的編寫和除錯。

二、設計正文

將可程式設計外圍介面晶元8255a 與鍵盤和七段led 連線,通過對8255a 程式設計及對鍵盤的操作實現計算功能。鍵盤碼包括數字0~9、運算符號和清零「cl」鍵。

首先利用程式不斷掃瞄件鍵盤是否有輸入,如果沒有就一直掃瞄,如果有就停止掃瞄,完成輸入。通過鍵盤依次輸入第乙個運算數字、運算符號、第二個運算數字、「=」,在七段led 燈上顯示運算結果,期間數字輸入有誤可按「c」鍵之後重新輸入。

三、課程設計總結

1. 本次課程設計選擇了簡易計算器設計的題目,不僅使我加深了對介面程式設計的認識,對可程式設計並行i/o介面晶元8255的工作原理也有了進一步的了解,更重要的是培養了我們發現問題,解決問題的能力。

2. 根據微機原理課程所學相關知識及實驗教程相關內容,在基於proteus平台,使用組合語言,以8086為核心的情況下,配合可程式設計並行介面器件8255a,led數碼管等器件實現可進行簡單六位數加減乘除法及清零擴充套件功能的十進位制計算器。在課程設計實踐中,我們不僅鍛鍊了實際動手能力,培養了團隊精神和嚴肅認真的工作態度,更增強了自己在實際的工程設計中查閱資料,撰寫設計報告表達設計思想和結果的能力。

3. 在程式設計過程中,需要很多細節的注意和推敲。本來很簡單的想法,到了實際的程式設計過程中,就發現並不是那麼簡單。如減法的每次迴圈過程中的借位,時時刻刻都得注意,稍不留神就可能出錯。

程式設計不僅使我們對微機有了更深的理解,也教會了我們不要眼高手低,得腳踏實地,幫我們養成了嚴謹的思想。還有,本次課設中有各種新的知識不在課本中,就需要我們去查閱資料,上網搜尋之類。在這個過程中,不僅僅是反映在這幾頁報告中的知識,更多的也有如protues的作圖,**過程中的各類問題的解決方法;以及鍵盤的各類知識。

有些東西,我們天天接觸,但要是讓我們親自做一下的時候,可能就會暴露出我們更多的問題。很感謝能有這樣的機會去用已有的知識做一些我們力所能及的事。

四、參考文獻

[1]《清華大學tpc-2003a實驗指導書》,2006版

[2] 李繼燦,《新編16/32位微型計算機原理及應用》,清華大學出版社,第四版,2023年

[3] 楊國田,高明明 《微機原理實驗指導書》 校內待出版,第一版,2023年3月

附錄1. 軟體設計流程圖

2.硬體設計概要:

2.1. led 顯示的功能及實現

七段 led 顯示器由七個發光段構成,每段均是乙個led 二極體。這七個發光段分別稱為a,b,c,d,e,f,g,通過控制不同段的點亮和熄滅,以顯示所要得到的數字。七段led 的輸出功能也是通過8255的並行輸出實現。

led 顯示數字編碼表

0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0ffh,0ffh,0ffh,0ffh,0ffh,86h,0bfh

2.2、8255工作原理

2.2.1.8255 引腳功能說明:

d0~d7:資料線,三態雙向數8位緩衝器,8255 與cpu 資料傳送的通道,當cpu 執行輸入輸出指令時,通過它實現8 位資料的讀/寫操作,控制字和狀態資訊也通過資料匯流排傳送。

a0~a1:位址線,用於選擇埠,即用其來選擇a口、b口、c口或暫存器控制口。

rd(低電平有效):讀訊號線,當這個輸入引腳為低電平時,允許8255 通過資料匯流排向cpu 傳送資料或狀態資訊,即cpu 從8255 讀取資訊或資料。

wr(低電平有效):寫入訊號,當這個輸入引腳為低電平時,允許cpu 將資料或控制字寫8255。

cs(低電平有效):片選訊號線,當這個輸入引腳為低電平時,表示晶元被選中,允許8255 與cpu 進行通訊。

reset(高電平有效):復位輸入線,當該輸入端外於高電平時,所有內部暫存器(包括控制暫存器)均被清除,所有i/o 口均被置成輸入方式。

pa0~pa7:埠a 輸入輸出線,8位資料輸入鎖存器和8位資料輸出鎖存器/緩衝器。

pb0~pb7:埠b 輸入輸出線,8位資料輸入緩衝器和8位資料輸出鎖存器/緩衝器

pc0~pc7:埠c 輸入輸出線,埠b 輸入輸出線,8位資料輸入緩衝器和8位資料輸出鎖存器/緩衝器

實際使用時,可以把a口、b口、c口分成兩個控制組,即a組和b組。a組控制電路由埠a和埠c的高4位(pc4~pc7)組成,b組控制電路由埠b和埠才的低4位(pc0~pc3)組成。

2.2.2.8255 的讀寫控制:

8255 的讀/寫控制邏輯電路接受cpu 發來的控制口號rd、wr、reset 和位址訊號a1~a0。然後根據命令埠,控制訊號的要求,將埠的資料讀出選信cpu 或者將cpu送來的資料寫入埠,各埠的工作狀態。通過用輸出指令對8255a 的控制字暫存器程式設計,寫入設定工作方式的控制字,可以讓3個資料口以不同的方式工作,埠a 可工作於3 種方式的任一種,埠b 只能工作於方式0 和方式1,埠c 除了用於輸入輸出埠外,還能配合a 口和b 口工作,為這兩個埠的輸入輸出操作提供聯絡訊號。

2.2.3.資料匯流排緩衝器

它是乙個雙向三態的8位資料緩衝器,8255a正是通過它與系統資料匯流排相連,用於輸入/輸出資料以及傳送由cpu發給8255a的控制字

2.2.4.定義工作方式控制字

工作方式0:8255a中各埠的基本輸入/輸出方式。

2.3 微處理器8086晶元

當引腳接高電平時,cpu工作於最小方式(單處理器系統方式,適合於較小規模的應用)。此時,引腳功能如下:

(1)ad15~ad0:分時復用的儲存器或埠的位址和資料匯流排。傳送位址時為單向的三態輸出,而傳送資料時為雙向三態輸入/輸出。

(2)io/m儲存器/輸入、輸出控制訊號(輸出、三態):它用於區分cpu當前是訪問儲存器還是訪問輸入/輸出埠。高電表示訪問儲存器,說明當前要進行cpu與儲存器之間的資料傳送。

低電平表示訪問輸入/輸出裝置。表示當前要進行cpu與i/o埠之間的資料傳送。在dma時,它被置為浮空。

(3)wr/lock(輸出,低電平有效,三態): 訊號有效,即為低電平時,表示cpu正在執行儲存器或i/o寫操作,在寫週期中,wr在t2、t2、tw期間都有效。在dma時,wr被置為浮空。

(4)inta:可遮蔽中斷響應訊號,輸出,低電平有效。 cpu通過訊號對外設提出的可遮蔽中斷請求做出響應。為低電平時,表示cpu已經響應外設的中斷請求,即將執行中斷服務程式。

(5)ale:位址鎖存允許訊號,輸出,高電平有效。 cpu利用ale訊號可以把ad15 ~ad0位址/資料、a19/s6~a16/s3位址/狀態線上的位址資訊鎖存在位址鎖存器中。

(5)dt:資料傳送/接收訊號,輸出,三態。 dt/訊號用來控制資料傳送的方向。

dt/為高電平時,cpu傳送資料到儲存器或i/o埠;dt/為低電平時,cpu接收來自儲存器或i/o埠的資料。

(6)den:資料允許控制訊號,輸出,三態,低電平有效。訊號用作匯流排收發器的選通控制訊號。當為低電平時,表明cpu進行資料的讀/寫操作。

(7)hold:匯流排保持請求訊號,輸入,高電平有效。在dma資料傳送方式中,由匯流排控制器8237a發出乙個高電平有效的匯流排請求訊號,通過hold引腳輸入到cpu,請求cpu讓出匯流排控制權。

(8)hlda:匯流排保持響應訊號,輸出,高電平有效。hlda是與hold配合使用的聯絡訊號。

在hlda有效期間,hlda引腳輸出乙個高電平有效的響應訊號,同時匯流排將處於浮空狀態,cpu讓出對匯流排的控制權,將其交付給申請使用匯流排的8237a控制器使用,匯流排使用完後,會使hold訊號變為低電平,cpu又重新獲得對匯流排的控制權。

(9)rd:讀控制訊號,三態,輸出。當rd=0時,表示cpu執行儲存器或i/o埠的讀操作。

是對記憶體單元還是對i/o埠讀取資料,取決於m/io訊號。在執行dma操作時,rd被浮空。

(10)ready:「準備好」訊號線,輸入。該引腳接受被定址的記憶體或i/o埠發給cpu的響應訊號,高電平時表示記憶體或i/o埠已準備就緒,cpu可以進行資料傳輸。

cpu在t3狀態開始對ready訊號取樣。若檢測到ready為低電平,表示記憶體或 i/o埠尚未準備就緒,則cpu在t3狀態之後自動插入等待狀態tw,直到ready訊號變為高電平,記憶體或i/o埠已準備就緒,cpu才可以進行資料傳輸。

2.4、74ls273鎖存器

d0~d7:出入;

q0~q7:輸出;

第一腳wr:主清除端,低電平觸發,即當為低電平時,晶元被清除,輸出全為0(低電平);

cp(clk):觸發端,上公升沿觸發,即當cp從低到高電平時,d0~d7的資料通過晶元,為0時將資料鎖存,d0~d7的資料不變。

3.鍵盤輸入輸出模組:

鍵盤是常用資訊輸入元件,由乙個個按鈕組成。

下圖是乙個4*4鍵盤結構圖,將4*4鍵盤的八個管腳接8255的pc口,因為進行鍵盤掃瞄一般要求有一部分的i/o口工作方式是輸入,另一部分i/o是輸出,具體到4*4鍵盤則要求四個i/o口輸入,另外四個輸出。行資訊連c口低四位,列資訊連a口低四位。

微機原理課程設計報告

第一章微機應用系統課程設計的目的意義 1.1 課程設計的目的意義 學習和掌握計算機中常用介面電路的應用和設計技術,充分認識理論知識對應用技術的指導性作用,進一步加強理論知識與應用相結合的實踐和鍛鍊。通過這次設計實踐能夠進一步加深對專業知識和理論知識學習的認識和理解,使自己的設計水平和對所學的知識的應...

微機原理課程設計報告 時鐘設計

微機原理及組合語言 課程設計報告 內容提要 本課程設計報告重點闡述了課程設計的原理,過程實現,以及 闡述,流程圖表示以及在實驗中遇到的問題,實驗過程等等。本報告旨在總結微機課程設計中的收穫以及完成的過程。微機課程設計是我們本學期進行的難度最大且最具有實踐性的課程設計。對於我們剛剛學完微機理論基礎的同...

微機原理課程設計

學號0814206 微型計算機原理與接 術 課程設計 2008級本科 題目 交通燈控制系統 系 部 院 物理與機電工程學院 專業電氣工程及其自動化 作者姓名 董光鵬 指導教師 張靜職稱 副教授 完成日期 2011 年 6 月 30 日 課程設計任務書 2011 年秋季學期 前言隨著計算機科學技術的不...