版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、-O一一二O二學(xué)年第一學(xué)期信息科學(xué)與工程學(xué)院自動(dòng)化系課程設(shè)計(jì)計(jì)劃書課程名稱:微機(jī)原理及應(yīng)用課程設(shè)計(jì)班級:自動(dòng)化0901姓名:王立學(xué)號:4032二o年十二月六日一、課題名稱簡易計(jì)算器設(shè)計(jì)二、課題目的利用8088和8255設(shè)計(jì)一個(gè)簡易計(jì)算器,并將其結(jié)果顯示在 LED數(shù)碼管上。熟悉系統(tǒng)設(shè)計(jì)的基本步驟,掌握8088與8255的接 口設(shè)計(jì),掌握通過8255設(shè)計(jì)鍵盤掃描技術(shù),掌握通過8255顯示七 段共陰極數(shù)碼管設(shè)計(jì)。加強(qiáng)對8088數(shù)據(jù)總線,地址總線及接口尋 址的理解,加深對8255的端口控制的理解。三、需求分析(1)能夠?qū)崿F(xiàn)99以內(nèi)的加減乘法運(yùn)算,并顯示在2位LED上。(2)對于減法運(yùn)算產(chǎn)生的負(fù)數(shù),可在
2、LED上顯示號,若負(fù) 量超過9,則顯示“E0S四、方案選擇方案一:該方案將LED顯示電路直接接在8088的DB上,而鍵盤則 采用8255進(jìn)行掃描。方案二:該方案則是將LED顯示電路和鍵盤掃描電路分別接在兩個(gè)不同的8255上,掃描和顯示時(shí),選中不同的8255。方案三:該方案則只用一片8255驅(qū)動(dòng)LED顯示和鍵盤掃描電路。方案評估:方案一:LED顯示驅(qū)動(dòng)電路實(shí)現(xiàn)起來較簡單,但是很浪費(fèi)系統(tǒng)總 線資源,舍棄!方案二:釋放了系統(tǒng)數(shù)據(jù)總線,但是方案缺乏經(jīng)濟(jì)性,因?yàn)椴捎?了兩片8255,與建設(shè)資源節(jié)約型社會初衷沖突!舍棄!方案三:此種方案較為經(jīng)濟(jì),方便,具有模塊化的特點(diǎn)(因?yàn)閷?計(jì)算和顯示電路全部集成在了
3、8255上,應(yīng)用時(shí),直接掛接8255即可實(shí)現(xiàn)要求?。┚C上所述:采用方案三!五、程序流程圖程序總流程圖:判斷輸入流程圖:斷電開始I六. 系統(tǒng)原理圖鍵盤映射圖:789*456+1f230=鍵盤編碼圖:777B7D7EB7BBBDBED7DBDDDEE7EBEDEE系統(tǒng)原理圖:注:1、復(fù)位電路單獨(dú)畫在旁邊,其參數(shù)設(shè)置符合6MHZo2、74HC04反相器由于位置不夠,本人自己畫了一個(gè)小型的 74HC04。3、IOW, IOR信號線由于采用了最大系統(tǒng)組態(tài),故由8288的 IORC 和 AIOWC 代替。4.8088的CLK由8284A提供,其電路連接方式參照Datasheet5、最大系統(tǒng)組態(tài)連接方式參照
4、課本。6、LED與鍵盤掃描電路的上拉電阻阻值統(tǒng)一采用,保證數(shù)碼 管有足夠亮度。7、所有芯片的電源和GND均未標(biāo)出。8、7段數(shù)碼管為共陰極連接方式。9、74LS373和74LS245作為提高總線驅(qū)動(dòng)能力的作用而存在。10、8259A的INT信號和8088的INTR信號相連,由于紙張大 小問題,用網(wǎng)絡(luò)標(biāo)號“INT8259A”表明他們是相連的。11、CAD圖紙見附件。七、元件清單元件名稱參數(shù)值數(shù)量8088U118255U218284U318288U418259AU5174LS245U6174LS373U7 18 19374LS00110174LS30Uli1S74HC04U12 L13 U14 L1
5、54RES2RlR2020RES2R21 2001RES2R22 IK1RES1R11DIODE(DI1CAPCl1CAPC2 22uF1SW-PBS0S15167-SEG-DPYDS1 DS22CRYSTALY1(1A.程序源代碼PAGE 60J32TITLECalculator A program to calculate with 8088 and 8255DI SPLAY MACRO;送至LED顯示函數(shù)MOV DX,383H;控制字寄存器的端口地址(8255)MOV AL,80H;方式選擇字BOUT DX,ALMOV DX, 381H; B端口的地址送DXMOV AL,HIGH NUM
6、 ;段碼送至B端口顯示OUT DX,ALMOV DX,383HMOV AL,80H;方式選擇字BOUT DX.ALMOV DX,382H;C端口地址送DXMOV AL,LOW NUM;段碼送至C端口顯示OUT DX.ALJMP Allscan.Key ;顯示完成,跳至鍵盤掃描ENDMCALCDIVTENMOVDX,AXCBWMOVBX,AXMOVCL,LEDBXMOVHIGH NUM,CLMOVAX,DXXCHGAH,ALCBWMACRO;計(jì)算結(jié)果并存至HIGH NUM,LOW NUM中;除10取余和商分別顯示;保存計(jì)算結(jié)果;將商AL符號擴(kuò)展至AX;高位段碼送至HIGH NUM (乘結(jié)果):交
7、換AH和AL,將余數(shù)放在AL準(zhǔn)備符號擴(kuò)展;將余數(shù)AL符號擴(kuò)展至AXMOV BX,AXMOV CHLEDBXMOV LOW NUM, CH ;低位段碼送至LOW NUM (乘結(jié)果)ENDM MMBw MM MMM MMV*fMODEL SMALL;程序大小為SMALL數(shù)據(jù)段和代碼段均小于64KBSTACK 100;堆棧大小100個(gè)字 DATA;數(shù)據(jù)段KEYTAB DB 0E7H,0D7HODBH,ODDH.0B7H,OBBH,ODBH;鍵盤編碼09 * + -=DB 77H,7BH.7DH,7EHOBEH,ODEH.OEEHLED DB 3FH,06H5BH,4FH.66H.6DH,7DH,07
8、H.7FH,6FH:LED 顯示字模(共陰極)OPERANDDB0;用于存放運(yùn)算符號TENDB10NUM1 DB10;用于存放第一個(gè)計(jì)算數(shù)JNUM2 DB0;用于存放第二個(gè)計(jì)算數(shù)HIGH NUMDB0:用于存放結(jié)果的高位段碼LOW NUMDB 0;用于存放結(jié)果的低位段碼.CODEMAIN PROC FARMOV AX,data;代碼段:主程序開始 ;將05指向DATAAlisean Key:MOV DX,383HMOV AL,80HOUT DX.ALMOV DX.380HXOR AL,ALOUT DX.ALMOV DX.383HMOV DS,AX;控制字寄存器地址的端口地址(8255) ;方式
9、控制字B;端口 A的地址送DX;送0,全鍵盤掃描MOV AL,90HOUT DX,ALMOV DX,380HIN AL.DX;方式控制字B A輸入;端口 AAND AL,0FH;屏蔽掉送回來的AL中的高四位CMP AL,OFHJZAllscanKey;相等說明沒有鍵按下,重新全鍵盤掃描MOV BX,0MOV AH,7FH;保存掃描設(shè)定初量Scan key:MOV DX.383HMOV AL,80H;方式控制字,A輸出OUT DX,ALMOV DX,380H;端口 AMOV AL,AH;逐行掃描OUT DX,ALMOV DX,383HMOV AL,90H汕輸入OUT DX.ALMOV DX.38
10、0H;端口 AINAL.DX;讀按鍵狀態(tài)AND AL,OFH;取數(shù)據(jù)的低四位CMP AL,OFHJNEDecode(ROR AH,1;向右循環(huán)移位,掃描下一行JMPAllscanKeyDecode:AND AH,OFOHORAL, AH:AL, AH或操作組合編碼CMP AL,KEYTABBX;比較編碼JENextINCBXJMPDecodeNext:CMPBX.13;13的偏移量表示編碼值為EE,即7JECalc;檢測到,計(jì)算結(jié)果CMPBXJO;10的偏移量表示編碼值為7E,即JNSStroe:比10大,表示按下或+或-MOVAL,OPERANDCMPAL,0;OPERAND若為0,表示為按
11、下運(yùn)算符號;將計(jì)算結(jié)果存至HIGH NUM,LOW NUM中 ;送至LED顯示:79H為飛的段碼;3FH為V的段碼:NUM1+NUM2JNENumber:OPERAND非0,說明按下過運(yùn)算符號MOVAL.NUM1MULTEN:NUM1*1O+BLADDAU BLMOVNUM LAL:將第一個(gè)運(yùn)算數(shù)保存在Nb11中JMPAll scanKeyStroe:MOV OPERAND,BL:按下了運(yùn)算符號并存入OPERAND中JMPAllscanKeyNumber:MOVAL,NUM2MILTEN;NUM2*10+BLADDAL,BLMOVNUM2.AL;將第二個(gè)運(yùn)算數(shù)保存在NIJM2中Calc:CMP
12、BL JOJZMui;乘法CMPBL, 11JZ_Add;加法CMPBL, 12JZ_Sub;減法Mui:MOVAL,NUM1MIL1m2CMP/L, 100;結(jié)果超過99,則顯示-E0JAEOverflowCALCDISPLAYOverflow:MOV HIGH NUMt79HMOV LOW NUM,3FHJMP AllscanAdd:MOV AL,NUM1ADD AL,NUM2JAE OverflowCALCDISPLAYSub:MOV AL,NUM1SBBAL.NUM2JCNegtiveCALCDISPLAYNegtive:CMP AL,-9JS OverflowMOV HIGH NUM
13、,4OHNEG ALCBWMOV BX.AXMOV CL.LEDBXMOV LOW NL1M,CL;低位段碼送至LOW NUM;溢出;將計(jì)算結(jié)果存至HIGH NUM,LOW NUM中;送至LED顯示;有借位,說明結(jié)果為負(fù)數(shù);將計(jì)算結(jié)果存至HIGH NUM.LOW NUM中 ;送至LED顯示;負(fù)量超過9 了嗎:超過了,則溢出,顯示E0- :40H為的段碼:求補(bǔ);AL符號擴(kuò)展至AXJMP Allscan_KeyMOV AX,4C00HINT 21HMAIN ENDPEND MAIN九、參考文獻(xiàn)1 朱定華,微機(jī)原理、匯編與接口技術(shù)清華大學(xué)出版社,2005 Page: 163 (8088引腳圖)、17
14、1 (最大系統(tǒng)組態(tài)連接方式)、176(最大系統(tǒng)組態(tài)時(shí)的I/O讀寫時(shí)序圖)、221 (4x4鍵盤掃描)、264 (8255引腳圖)、266272 (方式0輸入輸出程序例程)。2 張毅剛,新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)(第3版)哈爾濱工 業(yè)大學(xué)出版社,2003Page: 26(按鍵電平復(fù)位電路)3 8088pdf 8255pdf8088CLK時(shí)鐘產(chǎn)生電路由8284產(chǎn)生。十、心得與體會此次的微機(jī)原理課程設(shè)計(jì)從開始的方案設(shè)計(jì),方案選擇,到原 理圖的設(shè)計(jì),原理圖的繪制,再到最后的接口程序編寫只用了兩天 的時(shí)間。其中編寫手畫原理圖和編寫程序用了 一天,上機(jī)用Protel 畫圖外加整理報(bào)告用了一天。這兩天感
15、覺很充實(shí),因?yàn)檫@是我有史 以來第一次完全設(shè)計(jì)一個(gè)具有實(shí)用性的系統(tǒng)接口電路。在設(shè)計(jì)的過程當(dāng)中,以前總是感覺一上來就開始連接電路,但 是腦海里的思緒似乎都很亂,沒有一條很清晰的線路。于是就靜下 心來,發(fā)現(xiàn)設(shè)計(jì)一個(gè)電路首先需要的是一個(gè)方案,于是方案選擇的 模塊就誕生了,并且在思考的過程當(dāng)中,發(fā)現(xiàn)了幾種不同的設(shè)計(jì)方 案,當(dāng)時(shí)心里就開心了起來,畢竟都是突然冒出來的點(diǎn)子,比較有 成就感,尤其是選擇了一個(gè)具有模塊化的方案三。選擇好了方案就開始設(shè)計(jì)電路的連接:8088與8255的連接, 鍵盤的掃描,LED的接口顯示很快就完成了。然后根據(jù)畫出來的系 統(tǒng)連接引腳圖,開始了接口的程序設(shè)計(jì),我想這應(yīng)該是重頭戲了, 我
16、用了一天的時(shí)間來做他。之前編寫程序的時(shí)候也總是不喜歡什么程序流程圖之類的東 西,感覺拿東西沒必要,而且很浪費(fèi)時(shí)間,還不如自己直接寫代碼 來的爽。剛開始感覺沒問題,后來就卡了一個(gè)輸入檢測的地方。因 為從8255傳來的數(shù)據(jù)可能是第一個(gè)運(yùn)算數(shù),也可能是第二個(gè)運(yùn)算 數(shù),還可能是-. *之類的運(yùn)算符號,甚至是號。于是很自 然的就開始話條件判斷語句開始程序的跳轉(zhuǎn)指令設(shè)計(jì)。完成之后, 乍眼一看才發(fā)現(xiàn)原來我寫的是流程圖。隨后根據(jù)這個(gè)流程圖很快就 把這個(gè)難點(diǎn)給攻破了。經(jīng)過幾經(jīng)周折,終于把程序編好了,于是就開始上機(jī)用Protel 畫圖,讓我重拾了當(dāng)年使用Protel的快感。不過在畫到8088的 AEN信號時(shí),我卡了殼(之前設(shè)計(jì)時(shí),以為AEN在8088引腳上, 采用的是最小系統(tǒng)組態(tài))。后來一翻書,才發(fā)現(xiàn)8088只有在最大系 統(tǒng)組態(tài)中的8288總線控制器上才有AEN這個(gè)信號,于是就忍痛可 愛的將辛辛苦苦畫的最小系統(tǒng)換成了最大系統(tǒng),于是就有了 8259Ao在引出AEN信號之后,工程就差不多完成了 ,只是在74LS30 八輸入與非門那里,由于紙張的原因,不得不自己畫了一個(gè)小型的 74HC04反相器才得以解決問題。另外說一句,LED數(shù)碼管的上拉電阻由于沒找到8255的最大 灌電流參數(shù),所以選用的,如果太
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版高鐵車輛采購與維護(hù)服務(wù)合同
- 2024版安置房房票買賣合同
- 2024高校產(chǎn)學(xué)研合作研發(fā)協(xié)議
- 2024重要會議活動(dòng)場地出租合同書版B版
- 2024版五金建材銷售合同范本
- 2024門面房的租賃合同
- 2024甲乙雙方關(guān)于電商平臺運(yùn)營合作合同
- 2025年城市地下空間開發(fā)承包合同3篇
- 2025年度安置房市場調(diào)研與銷售策略咨詢合同3篇
- 音像店電梯采購協(xié)議
- 2022年外交學(xué)院輔導(dǎo)員招聘筆試題庫及答案解析
- 磁致伸縮液位傳感器KYDM-路線設(shè)置使用
- (完整版)建筑業(yè)10項(xiàng)新技術(shù)(2017年最新版)
- 收割機(jī)轉(zhuǎn)讓協(xié)議
- 中學(xué)歷史教育中的德育狀況調(diào)查問卷
- 煤礦煤業(yè)掘進(jìn)工作面班組安全確認(rèn)工作記錄表 模板
- 第8期監(jiān)理月報(bào)(江蘇版)
- 建筑工程質(zhì)量管理體系文件
- 乙丙橡膠電力電纜絕緣一步法硅烷交聯(lián)工藝
- 中止施工安全監(jiān)督申請書(范例)
- 世界各國標(biāo)準(zhǔn)鋼號對照表
評論
0/150
提交評論