微機原理簡易計算器課程設(shè)計_第1頁
微機原理簡易計算器課程設(shè)計_第2頁
微機原理簡易計算器課程設(shè)計_第3頁
微機原理簡易計算器課程設(shè)計_第4頁
微機原理簡易計算器課程設(shè)計_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、簡易計算機課程設(shè)計一、 設(shè)計目的本次課程設(shè)計的實驗?zāi)康氖峭ㄟ^該實驗掌握較復(fù)雜程序的設(shè)計。能夠獨立完成用程序?qū)?255控制鍵盤和LED顯示的控制,完成計算器加減法的應(yīng)用。獨立編寫程序,明白和掌握程序的原理和實現(xiàn)方式。為以后的設(shè)計提供經(jīng)驗。學(xué)習(xí)和掌握計算機中常用接口電路的應(yīng)用和設(shè)計技術(shù),充分認(rèn)識理論知識對應(yīng)用技術(shù)的指導(dǎo)性作用,進一步加強理論知識與應(yīng)用相結(jié)合的實踐和鍛煉。通過這次設(shè)計實踐能夠進一步加深對專業(yè)知識和理論知識學(xué)習(xí)的認(rèn)識和理解,使自己的設(shè)計水平和對所學(xué)的知識的應(yīng)用能力以及分析問題解決問題的能力得到全面提高。微機原理課程設(shè)計的意義是為了使學(xué)生加深對所學(xué)的微機原理知識的理解,培養(yǎng)學(xué)生的專業(yè)素質(zhì)

2、,提高其利用微機原理知識處理問題的能力,為今后專業(yè)課程的學(xué)習(xí)、畢業(yè)設(shè)計和工作打下良好的基礎(chǔ)。使學(xué)生能比較扎實地掌握微機原理的基礎(chǔ)知識和基本理論,掌握控制系統(tǒng)及有關(guān)設(shè)備的分析、開發(fā)等基本技能,受到必要工程訓(xùn)練、初步的科學(xué)研究方法訓(xùn)練和實踐鍛練,增強分析問題和解決問題的能力,了解微機原理和接口技術(shù)的新發(fā)展。 二、 設(shè)計內(nèi)容 設(shè)計一計算器,要求至少能完成2位數(shù)的加減運算。獨立完成用程序?qū)?255控制鍵盤和LED顯示的控制,完成計算器加減法的應(yīng)用。三、 設(shè)計要求 在課程設(shè)計時,1人1題,同批次同學(xué)中選擇同一題的人數(shù)不超過3人。在教師指導(dǎo)下,可以相互討論,但設(shè)計報告由學(xué)生獨立完成,不得互相抄襲。教師的主

3、導(dǎo)作用主要在于指明設(shè)計思路,啟發(fā)學(xué)生獨立設(shè)計的思路,解答疑難問題和按設(shè)計進度進行階段審查。學(xué)生必須發(fā)揮自身學(xué)習(xí)的主動性和能動性,主動思考問題、分析問題和解決問題,而不應(yīng)處處被動地依賴指導(dǎo)老師。同學(xué)應(yīng)積極主動的提出問題、解決問題、討論問題,互相幫助和啟發(fā)。學(xué)生在設(shè)計中可以引用所需的參考資料,避免重復(fù)工作,加快設(shè)計進程,但必須和題目的要求相符合,保證設(shè)計的正確。指導(dǎo)教師要引導(dǎo)學(xué)生學(xué)會掌握和使用各種已有的技術(shù)資料,不能盲目地、機械地抄襲資料,必須具體分析,使設(shè)計質(zhì)量和設(shè)計能力都獲得提高。學(xué)生要在老師的指導(dǎo)下制定好自己各環(huán)節(jié)的詳細(xì)設(shè)計進程計劃,按給定的時間計劃保質(zhì)保量的完成個階段的設(shè)計任務(wù)。設(shè)計中可邊

4、設(shè)計,邊修改,軟件設(shè)計與硬件設(shè)計可交替進行,問題答疑與調(diào)試和方案修改相結(jié)合,提高設(shè)計的效率,保證按時完成設(shè)計工作并交出合格的設(shè)計報告。四、設(shè)計原理與硬件電路設(shè)計的思路是:首先利用程序不斷掃描鍵盤是不是有輸入,如果沒有就一直掃描,如果有就停止掃描,完成輸入,利用匯編的程序核對輸入鍵的數(shù)值,通過調(diào)用子程序完成數(shù)據(jù)的儲存或者是加減的運算。運算完成后將運算的結(jié)果儲存并顯示到LED顯示器上。各部分硬件功能:可編程并行通信接口芯片8255A8255A內(nèi)部結(jié)構(gòu)1. 并行輸入/輸出端口A,B,C 8255A內(nèi)部包括三個8位的輸入輸出端口,分別是端口A、端口B、端口C,相應(yīng)信號線是PA7PA0、PB7PB0、P

5、C7PC0。端口都是8位,都可以作為輸入或輸出。通常將端口A和端口B定義為輸入/輸出的數(shù)據(jù)端口,而端口C則既可以作數(shù)據(jù)端口,又可以作為端口A和端口B的狀態(tài)和控制信息的傳送端口。2.A組和B組控制部件端口A和端口C的高4位(PC7PC4)構(gòu)成A組;由A組控制部件實現(xiàn)控制功能。 端口B和端口C的低4位(PC3PC0)構(gòu)成B組;由B組控制部件實現(xiàn)控制功能。 A組和B組利用各自的控制單元來接收讀寫控制部件的命令和CPU通過數(shù)據(jù)總線(D0D7)送來的控制字,并根據(jù)他們來定義各個端口的操作方式。3. 數(shù)據(jù)總線緩沖存儲器 三態(tài)雙向8位緩沖器,是8255A與8086CPU之間的數(shù)據(jù)接口。與I/O操作有關(guān)的數(shù)據(jù)

6、、控制字和狀態(tài)信息都是通過該緩沖器進行傳送。4. 讀/寫控制部件 8255A完成讀/寫控制功能的部件。能接收CPU的控制命令,并根據(jù)控制命令向各個功能部件發(fā)出操作指令。CS 片選信號:由CPU輸入,有效時表示該8255A被選中。 RD, WR 讀、寫控制信號:由CPU輸入。RD有效表示CPU讀8255A,WR有效表示CPU寫8255A。RESET 復(fù)位信號:由CPU輸入。RESET信號有效,清除8255A中所有控制字寄存器內(nèi)容,并將各個端口置成輸入方式。定義工作方式控制字:工作方式0:8255A中各端口的基本輸入/輸出方式。鍵盤輸入模塊鍵盤是常用信息輸入元件,其實鍵盤也是由一個個按鈕組成,如果

7、是獨立按鈕的話必須要需要一個I/O口對它進行檢測,而鍵盤往往這需要鍵盤按鈕數(shù)一半的I/O口數(shù)對它進行檢測,也許對一個比較簡單的系統(tǒng)I/O口數(shù)一般不是問題,但對于一個大型、復(fù)雜的系統(tǒng)來說I/O資源就顯得非常珍貴了,盡量減少I/O使用是非常利于降低成本,另外一方面鍵盤比用獨立按鍵要美觀,這也是鍵盤能夠長期得到人們青睞的原因,可是硬件上的節(jié)省必然導(dǎo)致軟件上編程的復(fù)雜,那就來看看鍵盤到底使軟件編程有多復(fù)雜?下圖是一個3*3鍵盤的結(jié)構(gòu)圖,因為3*4鍵盤有7個管腳,于是將鍵盤接8255A的PC口,至于為什么選擇PC是有原因的,進行鍵盤掃描一般要求有一部分的I/O口的工作方式是輸入,另一部分I/O是輸出,具

8、體到3*3鍵盤則要求3個I/O口輸入,另外3個輸出,這一點PC口剛好符合,而PA、PB口要么全部輸入或輸出,所以只能是PC口接鍵盤。硬件電路如下圖所示:五、設(shè)計流程圖六、程序代碼編程也可以主要分為三部分;鍵盤掃描、數(shù)據(jù)處理、數(shù)碼管顯示,另外還有譯碼電路,8255各口的地址所使用的是200H-207H。8255A采用的是方式0,A組輸入,B組輸出。code segmentassume cs:code,ds:codestart:jmp start1buffdb 1,2,3,4,5,6tablekdw3e07h,3e0bh,3d0bh,3b0bh,3e0dh,3d0dh,3b0dh,3e0eh,3d

9、0eh,3b0eh ;09鍵盤值dw 370eh,370dh,370bh,3707h,3b07h,3d07h,2f07h,2f0bh,2f0dh,2f0eh,1f07h,1f0bh,1f0dh;其他鍵值table db 3fh,6,5bh,4fh,66h,6dh,7dh,7,7fh,6fh,46h,40h,48h,00;09的字型碼xdw 0ydw 0fdb 0ndb 0cdb 0addfdb 0subfdb 0start1:mov ax,cs mov ds,axcall clearagain:mov dx,203hmov al,10001001bout dx,al;8255A初始化call

10、led;調(diào)用子程序call keycmp f,1jne againcmp bl,9;對比數(shù)字鍵盤jle d_procecmp bl,10je to_add;轉(zhuǎn)到加法cmp bl,11je to_sub;轉(zhuǎn)到減法cmp bl,12jmp again;返回clear1:call clearcall clbufjmp againd_proce:cmp n,1je d_p_ymov cl,4shl x,clmov bh,0add x,bxcall bshiftmov buff+5,bljmp againd_p_y:mov cl,4shl y,clmov bh,0add y,bxcall bshiftm

11、ov buff+5,bljmp againto_add: call bshift;加法程序mov buff+5,blmov f,0mov n,1movaddf,1jmp againto_sub: call bshift;減法程序mov buff+5,blmov f,0mov n,1mov subf,1jmp againto_s:mov bx,y;sub al,bldasmov bl,almov al,ahsbb al,bhdasmov bh,almov x,0mov y,0mov subf,0call storejmp againkeyproc;鍵盤的掃描程序mov dx,203hmov al

12、,10001001bout dx,al;初始化8255,寫控制字mov f,0mov dx,201hmov al,0out dx,al;初始化8255mov dx,202hin al,dx;初始化8255and al,0fhcmp al,0fhje k_exitmov cx,3000loop $;10msin al,dxand al,0fhpush axmov dx,203hmov al,10000010b;b_in,c_outout dx,alpop axmov bl,almov dx,202hout dx,almov dx,201hin al,dxand al,3fhmov bh,alle

13、a si,tablekmov cx,23mov ah,0nk:cmp bx,sije foundinc ahadd si,2loop nkfound:mov al,0;不斷掃描,等待輸入mov dx,202hout dx,almov dx,201hin al,dxand al,3fhcmp al,3fhjne foundmov cx,3000loop $mov f,1mov bl,ah ;鍵值k_exit:retkeyendpstoreproc;儲存程序mov word ptr buff,1414h ;不顯示,存儲lea si,buffmov ch,4s_re1:mov cl,4;儲存的方式r

14、ol bx,cl;循環(huán)左移4位mov al,bland al,0fhmov si+2,alinc sidec chjnz s_re1 call clearretstoreendpcodeendsend start七、設(shè)計總結(jié)體會 本次課程設(shè)計師自由選擇設(shè)計課題的,我選擇了簡易加減法計算器的題目,看起來不是很難,但是真正做起來才發(fā)現(xiàn)其困難之處。本次的課程設(shè)計是一個相對而言比較難的設(shè)計,因為這次設(shè)計不僅僅是課本上知識的整合,而且還有很多是課外的擴展。這次課程設(shè)計可以說是一個挑戰(zhàn)。我們做的題目是簡易計算器的設(shè)計。才開始思路很清晰?;蛟S是因為我們司空見慣了這種小機器,可是等做起來發(fā)現(xiàn)真的好難。首先82

15、55A的初始化和8086的接線也是十分簡單,但是等到編成的時候發(fā)現(xiàn)有很多不懂得地方,覺得很容易的算法在編程中很難實現(xiàn)。于是我開始查看課本和有關(guān)的資料,知道了一些編程常用的方法。受益匪淺。而后我用心編寫這程序。經(jīng)過自己的努力和同學(xué)的幫助終于完成了相應(yīng)的要求。本次課程設(shè)計,不僅使我加深了對接口程序設(shè)計的認(rèn)識,對接口各部件的工作原理也有了進一步的了解,也增強了分析故障的能力,更重要的是培養(yǎng)了我們面對問題、解決問題的能力。從理論知識上我對8086和8255的作用、功能以及初始化更加熟悉,并且有了客觀上的理解。對鍵盤的使用和數(shù)碼管顯示問題也完全弄懂了。這次課程設(shè)計還是比較成功的。當(dāng)然我還有很多不足之處,比如知識掌握的不

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論