簡易計算機系統(tǒng)設計_第1頁
簡易計算機系統(tǒng)設計_第2頁
簡易計算機系統(tǒng)設計_第3頁
簡易計算機系統(tǒng)設計_第4頁
簡易計算機系統(tǒng)設計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、成績 Xxxxxxxxxxx課程設計說明書(論文)題 目 簡易計算器系統(tǒng)設計 課 程 名 稱 微型計算機原理與接口技術 二 級 學 院 xxxxxxxxxx 專 業(yè) xxxxxxxxxx 班 級 xxxxxxxxxxxxxxxxxxxxxx學 生 姓 名 xxxxxxxxxxxx 設 計 地 點 xxxxxxx 指 導 教 師 xxxxxxxxxxx 設計起止時間: 2016年6 月13日至2016 年6 月24 日 目錄 一、設計任務與要求3二、設計思路3三、硬件電路設計10四、軟件編程設計11五、仿真與調試15六、結論與心得18七、參考文獻18簡易計算器系統(tǒng)設計一、設計任務與要求1、可以進

2、行十進制數(shù)四則運算。用按鍵輸入數(shù)據(jù);具有清零和復位功能;具有連續(xù)運算功能。2、在設計中可以引用所需的參考資料,避免重復工作,加快設計進程,但必須和題目的要求相符合,保證設計的正確。學會掌握和使用各種已有的技術資料,不要盲目地、機械地抄襲資料,必須具體分析,使設計質量和設計能力都獲得提高。要在老師的指導下制定好自己各環(huán)節(jié)的詳細設計進程計劃,按給定的時間計劃保質保量的完成個階段的設計任務。設計中可邊設計,邊修改,軟件設計與硬件設計可交替進行,問題答疑與調試和方案修改相結合,提高設計的效率,保證按時完成設計工作并交出合格的設計報告。二、設計思路根據(jù)本次設計的設計目的及設計要求,可有下列兩種方案:1.

3、 方案1 模擬簡易計算器主要由鍵盤輸入和LED數(shù)碼管顯示兩部分組成,其界面如圖1所示:要設計一個模擬計算器,要用到可編程并行I/O接口芯片8255A,主要要解決8255A與鍵盤接口和8255A與LED數(shù)碼管接口的問題。1.1 8255A與鍵盤接口鍵盤是計算器的輸入設備,通過鍵盤把數(shù)據(jù)和操作命令輸入到計算器,實現(xiàn)人機對話。目前使用的鍵盤分為編碼鍵盤和非編碼鍵盤。編碼鍵盤帶有必要的硬件電路,能自動提供按鍵的ASC編碼,并能將數(shù)據(jù)保持到新鍵按下為止,還有消除抖動和防止多鍵、串鍵等保護裝置。編碼鍵盤軟件簡短,它根據(jù)編碼就能識別是什么鍵按下,但硬件電路復雜,價格較貴。 非編碼鍵盤僅僅是按行、列排列起來的

4、矩陣開關,其他的工作如識別鍵、提供代碼、去抖動等由軟件來解決。為了識別鍵盤上的閉合鍵,通??梢圆捎脙煞N方式:行掃描法和行反轉法。(1)行掃描法行掃描法識別按鍵的原理如下:首先判別是否有鍵按下。將所有行線置成0電平,然后通過列線輸入全部列值,如果讀入的列值全是1,則說明沒有任何一個鍵按下;反之,如果讀入的列值不全是1,著說明有鍵按下。也就是說,在鍵盤識別的開始先進行全掃描,若有鍵按下,則必須判別是哪個按鍵被操作。第二步確定哪個鍵被按下。一旦發(fā)現(xiàn)有鍵按下,就轉入采用逐行掃描的辦法來確定是那一個鍵被按下。先掃描第一行,即使它輸出0電平,其余的行線為高電平1,然后讀入列值。如果讀入的列值中有一位為低電

5、平0,則說明在此行的一個行、列交叉處有鍵被按下。如果讀入的列值全是1,說明這一行所有按鍵都未被按下。接著掃描第二行。依次類推,逐行掃描,直到掃完全部的行線為止。若在掃描的過程中,發(fā)現(xiàn)非全1的列值,就能找出被按下的鍵。 (2)行反轉法行反轉法識別閉和鍵時,要將行線接一個并行口,先讓它工作在輸出方式下;將列線也接一個并行口,先讓它工作在輸入方式下。程序使CPU通過輸出端口,向各行線上全部送低電平0,然后讀入列線的值(列值),如果此時有某一鍵被按下,則必定會使某一列線為0,輸入的列值其中某一位為0。然后,程序在對兩個并行端口進行方式設置,使行線工作在輸入方式,列線工作在輸出方式。利用輸出指令,使列線

6、全部輸出為0 值。再從行線輸入行線值(行值)。行值中閉合鍵所對應的位必然為底電平0。利用這種反轉法,可得到一對行值和列值,每一個按鍵唯一對應一組行值和列值,行值和列值組合起來可以形成一個按鍵的識別碼。(3)在掃描鍵盤的過程中,應注意解決以下問題:鍵抖動:當用手按下一個鍵時,往往會出現(xiàn)按鍵在閉合和斷開位置之間跳幾下才穩(wěn)定到閉合狀態(tài)的情況;在釋放一個鍵時,也會出現(xiàn)類似的情況,這就是抖動。這種抖動經常發(fā)生在鍵被按下或抬起的瞬間,一般持續(xù)幾毫秒到幾十毫秒,隨鍵的結構不同而不同。在掃描鍵盤過程中,必須想辦法消除鍵抖動,否則會引起錯誤。消除鍵抖動可以用硬件電路來實現(xiàn),它利用RS觸發(fā)器來鎖定按鍵狀態(tài),以消除

7、按鍵的影響。簡單的方法是利用軟件延時來消除鍵的抖動。也就是說,一旦發(fā)現(xiàn)有鍵按下,就延時20ms以后再去檢測按鍵的狀態(tài),這樣就避開了鍵發(fā)生抖動的那一段時間,再讀按鍵狀態(tài),數(shù)據(jù)可靠。重鍵:重鍵是指一個以上的按鍵同時按下而產生的不確定或錯誤問題。出現(xiàn)重鍵時,讀取的鍵值必然出現(xiàn)有一個以上的0。于是就產生了到底是否給予識別哪一鍵的問題。解決重鍵可采取的方法有:一是無效處理,當發(fā)現(xiàn)有一個以上按鍵同時按下時,認為此次按鍵輸入無效。二是等待釋放,將最后釋放的按鍵作為有效鍵處理。三是硬件封鎖,當發(fā)現(xiàn)有一按鍵按下時,硬件電路即刻封鎖其他按鍵的輸入直到該鍵處理完畢。應防止按一次鍵而產生多次處理的情況:這種情況的發(fā)生

8、是由于鍵掃描速度和鍵處理速度較快,當某一個按下的按鍵還未及時釋放時,鍵掃描程序和鍵處理程序已執(zhí)行了多遍,這樣由于程序執(zhí)行和按鍵動作不同步,而造成一次鍵有多個鍵輸入的錯誤狀態(tài)。為了避免發(fā)生這種情況,必須保證按一次鍵,CPU只對該鍵作一次鍵處理,為此,在鍵掃描程序中不僅要檢測是否有鍵按下,在有鍵按下的情況下,作一次鍵處理;而且在鍵處理完畢后,還應檢測按下的鍵是否釋放,只有當按下的鍵釋放以后,程序才繼續(xù)往下執(zhí)行。這樣每按一次鍵,只有一次鍵處理,使兩者達到了同步。 8*2鍵盤是一種行列式鍵盤,如圖2所示圖中有8行2列,8根行線與PB口相連,2根列線與PC口的PC6、PC7相連按鍵設置在行、列交交點處(

9、數(shù)字或字符為其鍵號),行、列線分別連接到按鍵開關的兩端。當列線通過上拉電阻接+5V時,接被鉗位在高電平行列式鍵盤電路狀態(tài)。鍵盤中有無按鍵按下是由列線送入全掃描字、列線讀入行線狀態(tài)來判斷的。這就是:被行線所有I/O線均置成低電平,然后讀入列線電平狀態(tài)。如果有鍵按下,總會有一根列線電平被拉至低電平,從而時列線輸入不全為1。 鍵盤中哪一個鍵是由行線逐行置成低電平后,檢查列線輸入狀態(tài)予以確定的。其方法是:依次給行線送低電平,然后查所有行線狀態(tài),如果全為1,則所按下之鍵必在此行。而且與0電平行線相交的交點上的那個鍵。鍵盤的工作方式采用編程掃描的工作方式,即通過調用子程序來響應鍵輸入的要求,在按鍵掃描子程

10、序中完成下述功能:判斷鍵盤上有無鍵按下。其方法是先使PB7PB00,然后讀PC6、PC7的狀態(tài),若為全1則鍵盤中無鍵按下;若不全為1,則說明鍵盤中有鍵按下。去除按鍵的機械抖動影響??勺鬟@樣的處理:當判斷有鍵按下后,軟件延時一段時間后再判斷鍵盤狀態(tài),如果仍為鍵按下狀態(tài),則認為有一個確定的鍵按下,否則按按鍵抖動處理。求按下鍵的鍵值及鍵號。鍵盤上的每一個鍵都對應一個鍵值。鍵盤中鍵號排列沒有規(guī)律,不能通過對鍵值直接運算得到鍵號。因此必須先判斷按下鍵是使PC70還是PC6=0,然后再查為零的列線上鍵按時其8位鍵值中是否有一位為零,若為零則可得到鍵值。求按下鍵值及鍵號的目的是使程序轉到相應的地址去完成該鍵

11、的操作。一般,對數(shù)字鍵就是直接將該號送到顯示緩沖區(qū)進行顯示,對功能鍵則必須先找到完成該功能鍵處理子程序的入口地址,并轉去執(zhí)行該鍵的命令。因此,當鍵號求到后,還必須找到功能鍵處理程序入口。 為保證鍵閉合一次CPU僅進行一次鍵功能操作。程序中需要等待鍵釋放以后再將鍵號送累加器AH。1.2 8255A與LED數(shù)碼管接口發(fā)光二級管數(shù)碼顯示器簡稱為LED(Light Emitting Diode)數(shù)碼顯示器,它由七段發(fā)光二級管組成。這種顯示器價格低廉、體積小、功耗低,而可靠性有很好,因此,從單板微型機、袖珍計算機到許多微型機控制系統(tǒng)及數(shù)字化儀器都用LED作為輸出顯示。LED數(shù)碼管的主要部分是七段發(fā)光二極

12、管,如圖3所示。這七段發(fā)光二極管分別稱為a、b、c、d、e、f、g,有的產品還附帶有一個小數(shù)點h,通過7個發(fā)光段的不同組合,可以顯示09和AF共16個字母數(shù)字或其它異形字符。 LED數(shù)碼管有共陽極、共陰極兩種結構,如圖4所示。如為共陽極結構,則共用的陽極應接高電平,各段則輸入低電平,方為有效。如為共陰極結構,共用的陰極必須接低電平,而各段處于高電平時便發(fā)光。表1表示了共陰極與共陽極結構字符0F的編碼表。編碼的低位為a,高位為g。表1:七段LED編碼表顯示數(shù)字編碼共陰極共陽極0123456789ABCDEF.3FH06H5BH4FH66H6DH7DH07H7FH67H77H7CH39H5EH79

13、H71H80HC0HF9HA4HB0H99H92H82HF8H80H98H88H83HC6HA1H86H8EH7FH要實現(xiàn)計算器的顯示功能,需要用6位七段LED數(shù)碼管來實現(xiàn)多位顯示。在這種方案中,硬件上用公共的驅動電路來驅動各數(shù)碼管;軟件上用掃描方法實現(xiàn)數(shù)字顯示。由于要顯示6位十進制數(shù),因此采用6位七段LED動態(tài)顯示電路,需要一個8位I/O口和一個6位I/O口,其中8位I/O控制段選碼,6位I/O控制位選。進行6位字符顯示時,采用掃描顯示方式,即在每一瞬間只使某一位顯示相應字符,在此瞬間,段選控制I/O輸出相應字符段選碼,位選控制I/O口在該顯示位送入選通電平(共陰極送低電平,共陽極送高電平)

14、,以保證該位顯示相應字符,如此輪流,使每位顯示該位應顯示字符,并保持延遲一段時間(15ms),以造成視覺暫留效果,不斷循環(huán)送出相應的段選碼、位選碼,就可以獲得視覺穩(wěn)定的顯示狀態(tài)。只要CPU通過段控制端口送出段代碼,然后通過位控制端口送出位代碼,指定的數(shù)碼管便顯示相應的數(shù)字。如果CPU順序地輸出段碼和位碼,依次讓每個數(shù)碼管顯示數(shù)字,并不斷地重復,當重復頻率達到一定程度,利用人眼的視覺暫留特性,從數(shù)碼管上便可見到相當穩(wěn)定的數(shù)字顯示。圖5是一個由8255A控制的6位共陰極顯示系統(tǒng),A口輸出LED字符7段代碼信息,C口輸出6個LED位選信號,由程序控制依次使Q0Q5低電平輪流有效,使得LED0LED5

15、輪流顯示。2. 方案2 用匯編語言編寫程序實現(xiàn)應用程序的功能,從而實現(xiàn)簡易計算器匯編程序的設計與實現(xiàn)。2.1 使用設備含有Windows匯編編譯環(huán)境的MASM軟件及Office 2003軟件的計算機一臺。2.2 參數(shù)定義在本程序中,定義了變量B1B8用來顯示提示信息的8個參數(shù)。定義了變量X和Y用來保存輸入的操作數(shù)。定義了變量C用來保存除法運算中的余數(shù)。定義了變量D用來保存輸入的操作符。定義了變量E等于10。3.2.3使用方法在masm環(huán)境下運行本程序,按提示依次輸入操作數(shù)、操作符,回車經運算后便可得到運算結果,在屏幕上顯示出來;在提示下按下“g”或是回車,則繼續(xù)進行運算或是退出程序。3、 硬件

16、電路設計8255A與鍵盤、顯示器的接口見下圖6,鍵盤的16個按鍵組成8×2矩陣,其中8根作為8255A的輸出線與PA7-PA0連接,2根作為8255A的輸入線與PC7、PC6連接。PB0-PB7向顯示器提供段碼,PC0、PC1、PC2給出位碼之后經74LS138譯碼之后選中6個數(shù)碼管中的一個。4、 軟件編程設計1.流程圖輸入第一個操作數(shù),從DAT_1開始,與0DH(回車)相比,若相同則跳轉到DAT_2除以10,保存余數(shù);否則乘以10保存,等待接收下一個數(shù)字。部分程序流程如圖8所示圖 8 輸入數(shù)據(jù)流程圖簡易計算器程序總流程圖如圖9。圖 9 輸入數(shù)據(jù)流程總圖2. 程序設計2.1 程序設計

17、思路經研究分析,本程序設計思路如圖7所示:圖 7 程序設計思路圖2.2 程序中的關鍵技術INT 21H 指令01H號功能:等待從標準設備輸入一個字符,將該字符的ASCII碼送給AL,并在標準輸出設備上顯示該字符。入口參數(shù):無。出口參數(shù):AL的內容為輸入字符的ASCII碼。02H號功能:顯示器輸出,用文本坐標下設置光標位置。入口參數(shù):DL的內容為輸出字符的ASCII碼。出口參數(shù):無09H號功能:在標準輸出設備上顯示某個字符串。入口參數(shù):DX的內容為要顯示的字符串的首地址。出口參數(shù):無從設計方案的可行性及經濟技術指標等方面綜合考慮,方案二更合理,具有可行性且運算方便快捷。故選擇方案二。五 、仿真與

18、調試 1.程序編寫第一步:對要實現(xiàn)的功能進行大體分析,畫出程序的總流程圖。第二步:將這些功能的實現(xiàn)分別編寫程序來實現(xiàn)。第三步;編寫代碼,上機調試和運行程序。 2.上機編譯與調試第一步:編輯源程序:即建立.ASM文件。第二步:匯編源程序。源文件建立后,要用匯編程序對源文件進行匯編,以便產生二進制的目標文件(.OBJ文件)。本程序用MASM.EXE編譯界面如圖10示。圖 10 用MASM.EXE編譯界面第三步;用LINK程序產生.EXE文件。匯編程序已產生出二進制的代碼文件(.OBJ),但.OBJ文件并不是可執(zhí)行文件,還必須使用(LINK)把.OBJ文件轉換為可執(zhí)行的.EXE文件。用LINK.EX

19、E連接為可執(zhí)行文件界面如圖11所示。圖 11 用MASM.EXE編譯界面第四步;程序的調試。建立KDW.EXE文件后,就可以直接在DOS下運行此程序,如下所示:C:KDW回車C:_程序運行結束后,返回DOS.如果運算結果正確且程序已把結果直接顯示在屏幕上,那么程序運行結束時結果也就得到了。如果程序不顯示結果,我們如何知道程序是否正確呢?這時,就要使用TD.EXE調試工具來查看運行結果。此外,大部分程序必須經過調試階段才能糾正程序執(zhí)行中的錯誤,調試程序時也要使用TD.EXE。 3.運行結果在masm環(huán)境下運行本程序,按提示依次輸入操作數(shù)、操作符,回車經運算后便可得到運算結果,在屏幕上顯示出來;在提示下按下“g”,則繼續(xù)進行運算或是退出程序。結果圖12和圖13所示:圖 12 加法和減法運行結果圖 13 乘法和除法運行結果本課程設計從匯編語言程序的編寫及應用出發(fā),設計了一個簡易計算器系統(tǒng),本設計能夠完成5位數(shù)以內的加減乘除四則運算,并且能夠顯示除法所得余數(shù),同時具有清零和復位功能,達到了連續(xù)運算的效果,可以解決日常生活中一些簡單四則運算,通過兩種方案的比較最終確定了

溫馨提示

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

評論

0/150

提交評論