微機(jī)原理實(shí)驗(yàn)簡(jiǎn)易計(jì)算器_第1頁
微機(jī)原理實(shí)驗(yàn)簡(jiǎn)易計(jì)算器_第2頁
微機(jī)原理實(shí)驗(yàn)簡(jiǎn)易計(jì)算器_第3頁
微機(jī)原理實(shí)驗(yàn)簡(jiǎn)易計(jì)算器_第4頁
微機(jī)原理實(shí)驗(yàn)簡(jiǎn)易計(jì)算器_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

【實(shí)驗(yàn)題目】簡(jiǎn)易計(jì)算器設(shè)計(jì)【實(shí)驗(yàn)?zāi)康摹烤C合測(cè)試學(xué)生微機(jī)接口技術(shù)及應(yīng)用能力,包括系統(tǒng)構(gòu)思設(shè)計(jì)、電路設(shè)計(jì)搭建、軟件調(diào)試等;結(jié)合應(yīng)用實(shí)際,培養(yǎng)學(xué)生運(yùn)用微機(jī)技術(shù)服務(wù)應(yīng)用、服務(wù)實(shí)際的能力?!净疽蟆?)利用實(shí)驗(yàn)箱上的4x4鍵盤及6位數(shù)碼管,實(shí)現(xiàn)兩個(gè)16位寬的非負(fù)整數(shù)(0~65535)進(jìn)行+、

一、X運(yùn)算,計(jì)算結(jié)果限制在范圍-65535-65535,超過范圍在數(shù)碼管最低位顯示E;2)16個(gè)按鍵的分配可以自行指定;【擴(kuò)展要求】1)按基本要求保持輸入的范圍不變(16位寬),擴(kuò)展計(jì)算結(jié)果的范圍到用足6位數(shù)碼管,當(dāng)計(jì)算結(jié)果超過-65535-999999時(shí),顯示E;2)增加:的功能,有小數(shù)顯示;【實(shí)驗(yàn)程序】;該程序?qū)崿F(xiàn)了基本要求及擴(kuò)展要求的2)DSEGSEGMENTNEXT:BUFFDB6DUP()MOVBYTEPTR[SI],16LED_7DBINCSI3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39LOOPNEXTH,5EH,79H,71H,00H,40HCALLSHOW;將顯示緩沖區(qū)中內(nèi)容在LED上一次顯POSITIONDB0DFH,0EFH,0F7H,0FBH,0FDH,0FEH示出來UNIT10DW10000,1000,100,10,1MOVCOUNT,0;記按下了幾位數(shù)NEWNUMDB0NEXT2:COUNTDB0CALLSHOWFLAGDB0;是否有鍵按下的標(biāo)志CALLSCAN;判斷是否有按鍵按下NEGTIDB0;是否為負(fù)數(shù)的標(biāo)志CMPFLAG,1NUMDW0JZOKNUM1DW0JMPNEXT2NUM2DW0OK:TAGDB0;運(yùn)算種類標(biāo)志MOVFLAG,0POINTDB0;除法結(jié)果添加小數(shù)點(diǎn)標(biāo)志MOVPOINT,0RESULTDW0MOVDX,3000H;判斷是哪一個(gè)鍵被按下DSEGENDSMOVAL,0FFHCSEGSEGMENTOUTDX,ALASSUMEDS:DSEG,CS:CSEGMOVCH,-1;CH用于保存當(dāng)前被掃描的列號(hào)START:MOVCL,07FHMOVAX,DSEGXL:MOVDS,AXROLCL,1MOVDX,300CH;8255初始化INCCHMOVAL,81HMOVDX,3000HOUTDX,ALMOVAL,CLLEASI,BUFFOUTDX,ALMOVCX,6MOVDX,3008HINAL,DXANDAL,0FHCMPAL,0FHJZXL;選中下一列被掃描CMPAL,0EHJNZFOURMOVCL,0;CL保存行號(hào)JMPFREEFOUR:CMPAL,0DHJNZBAMOVCL,4JMPFREEBA:CMPAL,0BHJNZSHIERMOVCL,8JMPFREESHIER:CMPAL,07HJNZXLMOVCL,12FREE:ADDCH,CL;行列值相加為按鍵代表的值CMPCH,9JBESHUZICMPCH,12;加法JZJIAFACMPCH,13;減法JZJIANFACMPCH,14;乘法JZCHENGFACMPCH,15滁法JZCHUFACMPCH,11;等號(hào)時(shí)進(jìn)行運(yùn)算JZYUNSUANCMPCH,10;此鍵清屏重新輸入JZCLEARSHUZI:INCCOUNTMOVNEWNUM,CHCALLCOPY;將新輸入的按鍵值送入顯示緩沖區(qū)的最末位MOVDX,3000H;將LED關(guān)顯示MOVAL,0FFHOUTDX,ALCALLDELAY2JMPNEXT2JIAFA:MOVTAG,1;置加法標(biāo)志CALLTO_DEC;將輸入的數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)保存MOVAX,NUMMOVNUM1,AXJMPSTART;繼續(xù)輸入第二個(gè)按鍵數(shù)JIANFA:MOVTAG,2CALLTO_DECMOVAX,NUMMOVNUM1,AXJMPSTARTCHENGFA:MOVTAG,3CALLTO_DECMOVAX,NUMMOVNUM1,AXJMPSTARTCHUFA:MOVTAG,4CALLTO_DECMOVAX,NUMMOVNUM1,AXJMPSTARTCLEAR:JMPSTARTYUNSUAN:CALLTO_DEC;將第二次輸入的數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)保存MOVAX,NUMMOVNUM2,AXCMPTAG,1JZSJIAFCMPTAG,2JZSJIANFCMPTAG,3JZSCHENGFCMPTAG,4JZSCHUFYEAH:CALLCHULI;將結(jié)果中零的位置16關(guān)顯示MOVTAG,0MOVNEGTI,0CALLSHOWJMPNEXT2SJIAF:CALLJIAJMPYEAHSJIANF:CALLJIANJMPYEAHSCHENGF:CALLCHENGJMPYEAHSCHUF:CALLCHUJMPYEAHMOVAH,4CHINT21HJIAPROCNEARPUSHAXPUSHCXPUSHSIMOVAX,NUM1ADDAX,NUM2JCYC1;溢出MOVRESULT,AXCALLTO_SHOWSHUJMPOVER1YC1:LEASI,BUFFMOVBYTEPTR[SI],14INCSIMOVCX,5SS0:MOVBYTEPTR[SI],16INCSILOOPSS0OVER1:POPSIPOPCXPOPAXRETJIAENDPJIANPROCNEARPUSHAXPUSHCXPUSHSIMOVAX,NUM1CMPAX,NUM2JAPOSITIVEMOVNEGTI,1;結(jié)果為負(fù)數(shù)MOVAX,NUM2SUBAX,NUM1JCYC2JMPOVPOSITIVE:MOVAX,NUM1SUBAX,NUM2JCYC2OV:MOVRESULT,AXCALLTO_SHOWSHUJMPOVER2YC2:LEASI,BUFFMOVBYTEPTR[SI],14INCSIMOVCX,5SS2:MOVBYTEPTR[SI],16INCSILOOPSS2OVER2:POPSIPOPCXPOPAXRETJIANENDPCHENGPROCNEARPUSHAXPUSHCXPUSHSIMOVAX,NUM1MULNUM2JCYC3MOVRESULT,AXCALLTO_SHOWSHUJMPOVER3YC3:LEASI,BUFFMOVBYTEPTR[SI],14INCSIMOVCX,5SS3:MOVBYTEPTR[SI],16INCSILOOPSS3OVER3:POPSIPOPCXPOPAXRETCHENGENDPCHUPROCNEARZHENG:PUSHAXPOPCXPUSHCXPOPSIPUSHDXCHULIENDPPUSHSITO_DECPROCNEARXORDX,DXPUSHSIMOVAX,NUM1PUSHAXDIVNUM2PUSHBXPUSHDXPUSHCXMOVRESULT,AXLEASI,BUFFCALLTO_SHOWSHUMOVAL,COUNTMOVPOINT,1XORAH,AHLEASI,BUFFADDSI,AXADDSI,5DECSIMOVCX,5XORAX,AXPEA:XORCH,CHMOVAL,[SI-1]MOVCL,COUNTMOV[SI],ALAGAIN:DECSIADDAX,AXLOOPPEAMOVBX,AXPOPDXADDAX,AXMOVAX,10ADDAX,AXMULDXADDAX,BXXORDX,DXMOVBH,0DIVNUM2MOVBL,[SI]MOV[SI],ALADDAX,BXPOPSIDECSIPOPDXLOOPAGAINPOPCXMOVNUM,AXPOPAXPOPCXRETPOPBXCHUENDPPOPAXCHULIPROCNEARPOPSIPUSHSIRETPUSHCXTO_DECENDPLEASI,BUFFTO_SHOWSHUPROCNEARADDSI,5PUSHSIXX:PUSHDICMPBYTEPTR[SI],0PUSHAXJNZNOZEROPUSHBXMOVBYTEPTR[SI],16PUSHCXDECSILEADI,BUFFJMPXXADDDI,5NOZERO:LEASI,UNIT10CMPNEGTI,1MOVAX,RESULTJNZZHENGMOVBYTEPTR[DI],0INCSIDECDIMOVBYTEPTR[SI],17LOP0:XORCL,CLXLATMOVBX,[SI]ORAL,80H;填小數(shù)點(diǎn)LOP1:MOVDX,3004HSUBAX,BXOUTDX,ALJBLOP3MOVDX,3000HINCCLMOVAL,[DI]JMPLOP1OUTDX,ALLOP3:CALLDELAY;延時(shí),使一位穩(wěn)定顯示ADDAX,BXINCSIMOV[DI],CLINCDIINCSIMOVCL,4INCSIAA2:DECDIMOVAL,[SI]CMPBX,1LEABX,LED_7JNZLOP0XLATPOPCXMOVDX,3004HPOPBXOUTDX,ALPOPAXMOVDX,3000HPOPDIMOVAL,[DI]POPSIOUTDX,ALRETCALLDELAY;延時(shí),使一位穩(wěn)定顯示TO_SHOWSHUENDPINCSISHOWPROCNEARINCDIPUSHAXDECCHPUSHBXJZREALSTOPPUSHCXDECCLPUSHDXJNZAA2PUSHSIJMPAA3PUSHDINOPOINT:CMPPOINT,1;是否需添加小數(shù)點(diǎn)MOVCH,0FFHJNZNOPOINTAA1:MOVCH,0FFHLEASI,BUFFAA3:LEADISPOSITIONLEASI,BUFFMOVCL,6LEADISPOSITIONAA:MOVAL,[SI]MOVAL,[SI]LEABX,LED_7LEABX,LED_7XLATXLATMOVDX,3004HMOVDX,3004HOUTDX,ALOUTDX,ALMOVDX,3000HMOVDX,3000HMOVAL,[DI]MOVAL,[DI]OUTDX,ALOUTDX,ALCALLDELAY;延時(shí),使一位穩(wěn)定顯示CALLDELAY;延時(shí),使一位穩(wěn)定顯示INCSIINCSIINCDIINCDIMOVAL,[SI]DECCHLEABX,LED_7JZREALSTOPDECCLSCANPROCNEARJNZAAPUSHAXJMPAA1PUSHDXREALSTOP:KS:POPDIMOVDX,3000HPOPSIMOVAL,0POPDXOUTDX,ALPOPCXMOVDX,3008HPOPBXINAL,DXPOPAXANDAL,0FH;屏蔽高四位RETCMPAL,0FHSHOWENDPJZJIESHUDELAYPROCNEARMOVFLAG,1PUSHBXJIESHU:PUSHCXPOPDXMOVBX,3FFHPOPAXDEL1:RETMOVCX,0FFFHSCANENDPDEL2:COPYPROCNEARLOOPDEL2PUSHSIDECBXPUSHCXJNZDEL1PUSHAXPOPCXMOVCX,5

溫馨提示

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

評(píng)論

0/150

提交評(píng)論