微機原理與接口技術課程設計報告_第1頁
微機原理與接口技術課程設計報告_第2頁
微機原理與接口技術課程設計報告_第3頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、微機原理與接口技術課程設計報告/項目名稱:十進制數計算器的設計與實現名稱f:計算機科學與技術(交通信息工程)學生 :俊(201324020311) 教師:馬榮貴2016年1月1日一、項目名稱及要求 31項目名稱 32項目要求 3二、項目背景及設計目的 31項目背景 32項目目的 3三、設計思路31總體設計思路 32設計流程圖 4四、項目方案及原理圖 51項目方案 52并行接口 8255A 53鍵盤輸入模塊 64 LED數碼管輸岀模塊 75原理圖設計 8五、結果與分析81實現現象 82現象分析 8六、總結及體會 9七、附錄91參考文獻 92源代碼 9、項目名稱及要求1項目名稱十進制數計算器的設計

2、與實現2項目要求運用學過的微機原理與接口技術課程以及本學期的上機實驗操作經驗, 根據題目設計要求進行軟硬件系統的設計和實現,從而加深對本課程知識 點的理解。通過具體項目的實踐,來提高學生的動手能力以及實時解決問 題的能力,使學生綜合能力得到顯著提升。本課題要求學生熟練運用并行接口 8255A芯片、4*4鍵盤輸入模塊以及LED 數碼管輸出模塊的工作原理以及相應元件驅動程序的編寫。要求通過4*4鍵盤輸入,LED數碼管顯示來完成簡單計算器的功能(加減 乘除操作)、項目背景及設計目的1項目背景大學課程設計是為了輔助學生加深對本課程的理論知識的理解和提高。通 過動手完成實際的項目設計及實現,減小理論與實

3、踐的距離,讓同學對實 際項目實現的流程有個大體的感受。通過合作完成項目,提高同學的合作 意識,以及模塊化設計理念。2項目目的通過十進制數計算器的設計與實現,了解proteus軟件使用;熟練掌握原理圖的設計方法知道各硬件的功能以及電路實現三、設計思路1總體設計思路4*4鍵盤輸入模塊:鍵盤“ 09”對應數字09鍵盤“ A”對應符號“ +”鍵盤“ B”對應符號“-”鍵盤“C”對應符號“* ”鍵盤“ D”對應符號“ / ”鍵盤“ E”對應符號“ CE鍵盤“ F”對應符號“=”并行接口 8255AA 口用于LED數碼管的段碼輸出 B 口用于LED數碼管的位碼輸出C 口用于4*4鍵盤的輸入LED數碼管輸出

4、模塊:8255A中A 口中的段碼顯示采用動態顯示的方式,將并行接口2設計流程圖開始初始化四、項目方案及原理圖1項目方案先設計原理圖,然后用PCB布線仿真,最后去實驗室用實驗器材實現設計2并行接口 8255A并行接口 8255A8255A是通用可編程并行接口芯片,是有40個引腳的雙列直插式組件, 其基本功能為:8255A接口芯片有3個8位并行輸入/輸出端口,可利用編程 方法設置3個端口是作為輸入端口還是輸出端口;8255A能適應CPU與 I/O接口之間的多種數據傳送方式的要求,如無條件傳送、查詢方式傳送、中 斷方式傳送。與此相對應,8255A設置了方式0、方式1以及方式2;8255A的C 口比較

5、特殊,除作為數據口之外,在工作方式1和方式2下, 它的部分信號線被分配作為專用的聯絡應答信號。8255A引腳圖:DO皿0 D1PPID2PA2D3DTD5臥躲D63RAWRD-&2.S 5AP班WRPB1ADPB2*1AlPB-1E5CTPB4CSPBSPB6-GNDPB”PC4PSPC&PClPC6PC2PPC7P08255A的工作原理:方式0基本輸入輸出方式;方式1選通式輸入/輸出方式;方式2:雙向選通輸入/輸出方式。8255的控制字:工作方式選擇控制字,D7D0空制位的含義見下圖:本實驗中使8255端口 C高四位(PC7-PC4與鍵盤掃描行連接,低四位 (PC0-PC3與鍵盤掃描列連接,

6、B 口低四位(PB0-PB3用于控制數碼管 位碼,端口 A輸出段碼信號用于控制數碼管對鍵盤數值的顯示。3鍵盤輸入模塊4*4鍵盤:矩陣鍵盤又稱為行列式鍵盤,它是用 4條I/O線作為行線,4條I/O線作 為列線組成的鍵盤。在行線和列線的每一個交叉點上,設置一個按鍵。這 樣鍵盤中按鍵的個數是4X 4個。這種行列式鍵盤結構能夠有效地提高單片 機系統中I/O 口的利用率。4*4鍵盤的電路實現:4 LED數碼管輸出模塊LED數碼管:8段數碼顯示管用于一般的狀態或數字的顯示 共陰極對應字符的段碼表:顯示字形dpgfedcba段碼0001111113fh10000011006h201011o115bh3010

7、011114fh40110011066h5011011016dh6011111017dh70000011107h8011111117fh9011011116fh.1000000080hV001111103eh5原理圖設計五、結果與分析1實現現象2現象分析由于LED顯示是動態的,就沒有以圖片的方式展示,不過在電子版的報告 中,現象視頻在附錄文件中。上述現象包含加減乘除以及混合運算的演示 其中已經演示了包含高于兩位十進制數、負數的運算。六、總結及體會這次實驗真是一波三折,剛開始我的選題是8259的級聯,我和我的小組成 員已經將實驗的流程以及具體實施方案規劃好了。但是由于臨時的變動了 選題,我們開始

8、重新設計,利用課余時間陸陸續續的完成了整個設計流程。 至般設的第一天,我們開始連線,以及將驅動程序寫入,但是測試的時候 出現各種問題,比如說顯示不正常,屏幕閃爍太頻繁。我們晚上回去思考, 第二天重新調試,得到了預期的結果。由于課設的時間還沒有結束,我們 又將其功能進行了擴展:可以實現多位計算器,可實現負數運算,可實現 連續運算。不足的地方在于,沒有實現對不同級別運算的先后順序的判斷。七、附錄1參考文獻微機原理與接口技術,郭蘭英等編著,清華大學,2006年 C+語言程序設計(第四版),麗等編著,清華大學,2010年 TPC-ZK產品說明,清華大學器材部編寫,清華大學,2008年2源代碼實驗名稱:

9、云算著器 */實驗容:實現加減乘除運算*/ 作: 俊 豐予翔 */時間:2015-11-21* */#in clude#in clude#i nclude ApiExusb.h#pragma comme nt(lib,ApiExusb.lib)char Ied18=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40;/* 0F 無字符 負號 */void toshu(byte *a,int &shu1)/*將數組a中的字符轉化為一個數*/if(a3=16)shu 1=

10、0;else if(a2=16)shu1=a3;else if(a1=16)shu1=a3+10*a2;else if(a0=16)shu1=a3+10*a2+100*a1;else shu1=a 3+10*a2+100*a1+1000*a0;void shuto(byte* a,int shu1)/*將一個數的各個位轉化到數組a中*/int fuhaol;if(shu10)fuhao1=-1;shu1=-shu1;a0=shu1/1000%10;/*保證溢出的時候仍能正常顯示低位*/a1=shu1/100%10;a2=shu1/10%10;a3=shu1%10;if(a0=0&a1=0&a2

11、=0&a3=0)a0=16;a1=16;a2=16;a3=0;else if(a0=0&a1=0&a2=0)a0=16;a1=16;a2=16;if(fuhao10)a2=17;else if(a0=0&a1=0)a0=16;a1=16;if(fuhao10)a1=17;else if(a0=0)a0=16;if(fuhao1=0&i!=OxOf)/*只有四個led數碼管,通過查看a 口來判斷是否有鍵按下*/i=data;Sleep(50);PortWriteByte(0x28b,0x88);PortWriteByte(0x28a,0xf0);PortReadByte(0x28a,&data)

12、;Sleep(20);i=i|data;if(ll=1 &k=3)a0=16;a1=16;a2=16;a3=0;if (i=0x77)ak=0;pri ntf(0);Sleep(1000);/*鍵和對應的功能*/else if(i=0x7b)l=1;pri ntf(1);ll=0;else if(i=0x7d)l=2;pri ntf(2);ll=0;else if(i=0x7e)l=3;pri ntf(3);ll=0;else if(i=0xb7)l=4;pri ntf(4);ll=0;else if(i=0xbb)l=5;pri ntf(5);ll=0;else if(i=0xbd)l=6;

13、pri ntf(6);ll=0;else if(i=0xbe)l=7;pri ntf(7);ll=0;else if(i=0xd7)l=8;pri ntf(8);ll=0;else if(i=0xdb)l=9;pri ntf(9);ll=0;else if(i=0xdd)prin tf(+);toshu(a,shu1);jisua n( shu1,shu2,fuhao);shu2=shu1;shuto(a,shu2);fuhao=+;k=4;ll=1;else if(i=0xde)prin tf(-);toshu(a,shu1);jisua n( shu1,shu2,fuhao);shu2=s

14、hu1;shuto(a,shu2);fuhao二-;k=4;11=1;else if(i=0xe7) prin tf(*);toshu(a,shu1);jisua n( shu1,shu2,fuhao); shu2=shu1;shuto(a,shu2); fuhao=*;k=4;ll=1;else if(i=0xeb) prin tf(/);toshu(a,shu1);jisua n( shu1,shu2,fuhao); shu2=shu1;shuto(a,shu2); fuhao=/;k=4;ll=1;else if(i=0xed)shu1=0;shu2=0; fuhao=+;shuto(a,shu2);k=

溫馨提示

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

評論

0/150

提交評論