微機原理實驗兩份_第1頁
微機原理實驗兩份_第2頁
微機原理實驗兩份_第3頁
微機原理實驗兩份_第4頁
微機原理實驗兩份_第5頁
已閱讀5頁,還剩69頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

完美.格式.編輯專業.資料.整理微型計算機原理實驗報告 學號 姓名 班級測控實驗一顯示程序實驗一般來說,程序需要顯示輸出提示運行的狀況和結果,有的還需要將數據區中的內容顯示在屏幕上。本實驗要求將指定數據區的數據以十六進制數形式顯示在屏幕上,并通過DOS功能調用完成一些提示信息的顯示。實驗中可使用DOS功能調用(INT21H)。流程圖2.試驗程序DATASEGMENTMESDB'Showaashex:',0AH,0DH,'$'SDDB'a'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESMOVAH,09HINT21HMOVDI,OFFSETSDMOVAL,DS:[DI]ANDAL,0F0HSHRAL,4CMPAL,0AHJBC2ADDAL,07HC2:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAL,DS:[DI]ANDAL,0FHCMPAL,0AHJBC3ADDAL,07HC3:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAX,4C00HINT21HCODEENDSENDSTART實驗二數據傳送實驗三、實驗內容將數據段中的一個字符串傳送到附加段中,并輸出附加段中的目標字符串到屏幕上試驗程序DATASEGMENTMSRDB"HELLO,WORLD!$"LENEQU$-MSRDDATAENDSEXDASEGMENTMSDDBLENDUP(?)EXDAENDSMYSTACKSEGMENTSTACKDW20DUP(?)MYSTACKENDSCODESEGMENTASSUMECS:CODE,DS:DDATA,ES:EXDASTART:MOVAX,DDATAMOVDS,AXMOVAX,EXDAMOVES,AXMOVSI,OFFSETMSRMOVDI,OFFSETMSDMOVCX,LENNEXT:MOVAL,[SI]MOVES:[DI],ALINCSIINCDIDECCXJNZNEXTPUSHESPOPDSMOVDX,OFFSETMSDMOVAH,9INT21HMOVAX,4C00HINT21HCODEENDSENDSTARTMOVBX,0MOVCX,LENNEXT:MOVAL,MSR[BX]MOVES:MSD[BX],ALINCBXLOOPNEXT2.實驗結果實驗三數碼轉換程序實驗將ASCII碼表示的十進制數轉換為二進制數流程圖2.試驗程序DATASSEGMENTNUMBERDB'00012'DATASENDSCODESEGMENTASSUMECS:CODE,DS:DATASSTART:MOVAX,DATASMOVDS,AXMOVCX,4MOVSI,OFFSETNUMBERMOVAL,[SI]SUBAL,30HMOVAH,00HMOVBL,10L1:MULBLADDAL,[SI+1]SUBAL,30HINCSIDECCXJNZL1MOVCX,8MOVBLNEXT:SHLBL,1JCONEMOVDL,30HJMPEXITONE:MOVDL,31HEXIT:MOVAH,02HINT21HDECCXJNZNEXTMOVAH,4CHINT21HCODEENDSENDSTART3.實驗結果將十進制數的ASCII碼轉換為BCD碼本實驗要求將鍵盤輸入的一個五位十進制數54321的ASCII碼存放入數據區中,轉換為BCD碼后,并將轉換結果按位分別顯示于屏幕上。若輸入的不是十進制數的ASCII碼,則輸出“FF”。提示:一字節ASCII碼取其低四位即變為BCD碼實驗流程圖2.實驗程序DATASSEGMENTBUFDB6DB?DB6DUP(?)BUFEDB'FF$'DATASENDSCODESEGMENTASSUMEDS:DATAS,CS:CODESTART:MOVAX,DATASMOVDS,AXMOVDX,OFFSETBUFMOVAH,10INT21HMOVCH,5MOVSI,DXL2:MOVBL,[SI+2]INCSICMPBL,39HJAL1SUBBL,30HANDBL,0FHMOVDH,4MOVCL,4;SHLAL,CLROLBL,CLNEXT:SHLBL,1JCONEMOVDL,30HJMPEXITONE:MOVDL,31HEXIT:MOVAH,2INT21HDECDHJNZNEXTDECCHJNZL2JMPL3L1:MOVDX,OFFSETBUFEMOVAH,9INT21HL3:MOVAH,4CHINT21HCODEENDSENDSTART3.實驗結果3.將十六進制數的ASCII碼轉換為十進制數十六位二進制數的值域為0-65535,最大可轉換為五位十進制數。五位十進制數可表示為:ND=D4×104+D3×103+D2×102+D1×10+D0因此,將十六位二進制數轉換為五位ASCII碼表示的十進制數,就是求D1-D4,并將它們轉化為ASCII碼。本實驗要求將緩沖區中存放的000CH的ASCII碼轉換成十進制數,并將轉結果顯示在屏幕實驗流程圖實驗程序DATASEGMENTBUFDB5DB?DB5DUP(?)HEXDB4DUP(?)DECIDB5DUP(0),'$'S1DB'16JINZHI:$'S2DB0AH,0DH,'10JINZHI:$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,S1MOVAH,9INT21HLEADX,BUFMOVAH,10INT21HMOVSI,2MOVDI,0CHECK:MOVAL,[SI][BUF]CMPAL,40HJSNUMCMPAL,47HJSCAPITALSUBAL,57HJMPSTORENUM:SUBAL,30HJMPSTORECAPITAL:SUBAL,37HJMPSTORESTORE:MOVHEX[DI],ALINCDIINCSICMPDI,4JNZCHECKLEADX,S2MOVAH,9INT21HMOVAX,WORDPTRHEXSHLAL,4ADDAH,ALMOVCH,AHMOVAX,WORDPTR2[HEX]SHLAL,4ADDAL,AHMOVAH,CHMOVSI,5MOVBX,10MOVDX,0CMPAX,0JNSCONVNEGAXPUSHAXPUSHDXMOVDL,2DHMOVAH,2INT21HPOPDXPOPAXCONV:DECSIDIVBXADDDX,30HMOVDECI[SI],DLXORDX,DXCMPAX,0JNZCONVLEADX,DECIMOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDSTART3.實驗結果4.BCD碼轉換為二進制碼本實驗要求將四個二位十進制數的BCD碼存放在某一內存單元中,轉換出的二進制數碼存入其后的內存單元中,轉換結束,送屏幕顯示。1.實驗流程圖2.實驗程序DATASEGMENTDASCDB3DB?DB3DUP(?)S1DB0AH,0AH,0DH,'10JINZHIMA:$'S2DB0AH,0DH,'BCDMA:$'S3DB0AH,0DH,'2JINZHIMA:$'STODB8DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDI,0MOVSI,4LOOPER:CALLWHOLEDECSIJNZLOOPERJMPEXITWHOLE:LEADX,S1MOVAH,9INT21HLEADX,DASCMOVAH,10INT21HLEADX,S2MOVAH,9INT21HMOVAX,WORDPTR2[DASC]SUBAX,3030HSHLAL,4ADDAL,AHMOV[DI][STO],ALMOVCH,2MOVCL,4PRE1:MOVDX,30HROLAL,1JNCDISP1ADDDX,01HDISP1:PUSHAXMOVAH,02INT21HPOPAXDECCLJNZPRE1PUSHAXMOVDL,20HMOVAH,2INT21HPOPAXDECCHMOVCL,4JNZPRE1LEADX,S3MOVAH,9INT21HMOVAL,[DI][STO]MOVBLANDBL,0FHSHRAL,4MOVCL,10MULCLADDAL,BLINCDIMOV[DI][STO],ALINCDIMOVCX,8PRE2:MOVDX,30HROLAL,1JNCDISP2ADDDX,01HDISP2:PUSHAXMOVAH,02INT21HPOPAXLOOPPRE2RETEXIT:MOVAH,4CHINT21HCODEENDSENDSTART實驗四運算類程序實驗二進制雙精度加法運算本實驗要求計算x+y=z,將結果z輸出到屏幕,其中x=001565a0h,y=0021b79eh.實驗流程圖2.實驗程序DATASEGMENTXDD421C65AYDD3C41B69BHSDB'X+Y=$'SUMDB4DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,WORDPTRXMOVBX,WORDPTRYADDAX,BXMOVWORDPTRSUM,AXMOVAX,WORDPTR2[X]MOVBX,WORDPTR2[Y]ADCAX,BXMOVWORDPTR2[SUM],AXLEADX,SMOVAH,9INT21HMOVCX,4MOVSI,3CHECK:MOVAL,SUM[SI]MOVAH,ALSHRAL,4CMPAL,0AHJSDISP1ADDAL,07HDISP1:ADDAL,30HMOVDL,ALPUSHAXMOVAH,02HINT21HPOPAXANDAH,0FHCMPAH,0AHJSDISP2ADDAH,07HDISP2:ADDAH,30HMOVDL,AHMOVAH,02HINT21HDECSILOOPCHECKEXIT:MOVAH,4CHINT21HCODEENDSENDSTART3.實驗結果(2)減法程序1.實驗流程圖2.實驗程序DATASEGMENTXDW0400HYDW0102HSDB'Z=X-Y=$'ZDW2DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,SMOVAH,9INT21HMOVAX,WORDPTRXMOVBX,WORDPTRYSUBAL,BLAASSUBAH,BHAASMOVZ,AXADDAX,3030HMOVBX,AXMOVDL,30HMOVAH,2INT21HMOVDL,BHMOVAH,2INT21HMOVDL,30HMOVAH,2INT21HMOVDL,BLMOVAH,2INT21HEXIT:MOVAH,4CHINT21HCODEENDSENDSTART3.實驗結果實驗五分支程序設計實驗實驗內容:實驗可以使用BH,BL作為暫存現行的最大值和最小值,且在程序的初始,將BH和BL初始化為首字節的內容,然后進入循環操作。在循環操作中,依次從字節序列中逐個取出一個字節的內容與BH,BL進行比較,若取出的字節內容比BH的內容大或比BL中的內容小,則修改之。當循環結束操作時,將BH,BL分別送屏幕顯示。實驗流程圖2.實驗程序DATASEGMENTBUFDB'Themaxnumber:$'CUFDB0AH,0DH,'Themininumber:$'DUFDB0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9HDATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETBUFMOVAH,9INT21HMOVSI,OFFSETDUFMOVCH,7MOVBH,[SI]MOVBL,[SI]L1:INCSIMOVAL,[SI]CMPAL,BHJBL2MOVBH,ALL2:CMPAL,BLJAL3MOVBLL3:DECCHJNZL1;MOVBH,0B9HXIANSHI:MOVAL,BH;顯示BH和BLMOVCL,4SHRAL,CLCMPAL,0AHJBC1ADDAL,07HC1:ADDAL,30HMOVDL,ALMOVAH,2INT21HMOVAL,BHANDAL,0FHCMPAL,0AHJBC2ADDAL,07HC2:ADDAL,30HMOVDL,ALMOVAH,2INT21HMOVDX,OFFSETCUFMOVAH,9INT21H;MOVBL,0B9HMOVAL,BLMOVCL,4SHRAL,CLCMPAL,0AHJBC3ADDAL,07HC3:ADDAL,30HMOVDL,ALMOVAH,2INT21HMOVAL,BLANDAL,0FHCMPAL,0AHJBC4ADDAL,07HC4:ADDAL,30HMOVDL,ALMOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART3.實驗結果實驗六循環程序設計實驗實驗內容:本實驗要求通過求某數據區內負數的個數來表現循環程序的結構形式。要求實驗程序在數據區中存放一組數據,為統計負數的個數,逐個判斷區內的數據,然后將所有數據中凡是符號位為1的數據的個數累加起來,即得到區內所包含負數的個數實驗流程圖2.實驗程序DATASSEGMENTBUFDB'Thenumberofnegtive:$'CUFDB12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01HDATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXMOVDX,OFFSETBUFMOVAH,9INT21HMOVBL,0MOVCX,10LEASI,CUFL2:MOVAL,[SI]INCSIANDAL,80HJZL1INCBLL1:DECCXJNZL2ADDBL,30HMOVDL,BLMOVAH,2INT21HMOVAX,4C00HINT21HCODESENDSENDSTART3.實驗結果接口實驗實驗一8259中斷控制器應用實驗一、實驗目的1.學習可編程中斷控制器8259的工作原理。2.掌握可編程中斷控制器8259的應用編程方法。二、實驗內容 1.單中斷實驗。利用系統總線上中斷請求信號INTR,設計一個單中斷應用。使用單次脈沖模擬中斷產生。編寫中斷處理程序,在顯示器屏幕上顯示一個字符。實驗步驟如下:①實驗接線圖如圖2-1所示,按圖接線。②運行Tdpit集成操作軟件,調用程序代碼(T8259-1.ASM),填寫程序代碼中的空缺處,編譯、鏈接。(程序源碼路徑:C:\TangDu\PitPP\ASM\)③使用運行命令運行程序,重復按單次脈沖開關KK1+,顯示屏會顯示字符“9”,說明響應了中斷。2.擴展中斷源查詢方式應用實驗。利用實驗平臺上8259控制器對系統總線上的中斷線INTR進行擴展。編寫程序對8259控制器的IR0和IRI中斷請求進行處理。實驗步驟如下:①實驗接線圖如圖2-3所示,按圖接線。②運行Tdpit集成操作軟件,調用程序代碼(T8259-2.ASM),填寫程序代碼中的空缺處,編譯、鏈接。(程序源碼路徑:C:\TangDu\PitPP\ASM\)③使用運行命令運行程序,按動KK1+、KK2+按鍵,觀察中斷是否產生。三、實驗所用儀表及設備1.PC機一臺。2.TD-PIT++實驗系統一套。四.實驗代碼1.單中斷實驗。INTR_IVADDEQU01C8H;INTR對應的中斷矢量地址INTR_OCW1EQU0A1H;INTR對應PC機內部8259的OCW1地址INTR_OCW2EQU0A0H;INTR對應PC機內部8259的OCW2地址INTR_IMEQU0FBH;INTR對應的中斷屏蔽字STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTMESDB'Pressanykeytoexit!',0AH,0DH,0AH,0DH,'$'CS_BAKDW?;保存INTR原中斷處理程序入口段地址的變量IP_BAKDW?;保存INTR原中斷處理程序入口偏移地址的變量IM_BAKDB?;保存INTR原中斷屏蔽字的變量DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMES;顯示退出提示 MOVAH,09H INT21H CLIMOVAX,0000H;替換INTR的中斷矢量MOVES,AXMOVDI,INTR_IVADDMOVAX,ES:[DI]MOVIP_BAK,AX;保存INTR原中斷處理程序入口偏移地址MOVAX,OFFSETMYISRMOVES:[DI],AX;設置當前中斷處理程序入口偏移地址ADDDI,2MOVAX,ES:[DI]MOVCS_BAK,AX;保存INTR原中斷處理程序入口段地址MOVAX,SEGMYISRMOVES:[DI],AX;設置當前中斷處理程序入口段地址MOVDX,INTR_OCW1;設置中斷屏蔽寄存器,打開INTR屏蔽位INAL,DXMOVIM_BAK,AL;保存INTR原中斷屏蔽字ANDAL,INTR_IMOUTDXSTIWAIT1:MOVAH,1;判斷是否有按鍵按下INT16HJZWAIT1;無按鍵則跳回繼續等待,有則退出QUIT:CLIMOVAX,0000H;恢復INTR原中斷矢量MOVES,AXMOVDI,INTR_IVADDMOVAX,IP_BAK;恢復INTR原中斷處理程序入口偏移地址MOVES:[DI],AXADDDI,2MOVAX,CS_BAK;恢復INTR原中斷處理程序入口段地址MOVES:[DI],AXMOVDX,INTR_OCW1;恢復INTR原中斷屏蔽寄存器的屏蔽字MOVAL,IM_BAKOUTDXSTIMOVAX,4C00H;返回到DOSINT21HMYISRPROCNEAR;中斷處理程序MYISRPUSHAXMOVDL,39H;輸出字符9MOVAH,2INT21HMOVDL,0DH;輸出字符回車MOVAH,2INT21HMOVDL,0AH;輸出字符換行MOVAH,2INT21HOVER:MOVDX,INTR_OCW2;向PC機內部8259發送中斷結束命令MOVAL,20HOUTDXMOVAL,20HOUT20H,ALPOPAXIRETMYISRENDPCODEENDSENDSTART2.擴展中斷源查詢方式應用實驗。INTR_IVADDEQU01C8H;INTR對應的中斷矢量地址INTR_OCW1EQU0A1H;INTR對應PC機內部8259的OCW1地址INTR_OCW2EQU0A0H;INTR對應PC機內部8259的OCW2地址INTR_IMEQU0FBH;INTR對應的中斷屏蔽字IOY0EQU3000H;片選IOY0對應的端口始地址MY8259_ICW1EQUIOY0+00H;實驗系統中8259的ICW1端口地址MY8259_ICW2EQUIOY0+04H;實驗系統中8259的ICW2端口地址MY8259_ICW3EQUIOY0+04H;實驗系統中8259的ICW3端口地址MY8259_ICW4EQUIOY0+04H;實驗系統中8259的ICW4端口地址MY8259_OCW1EQUIOY0+04H;實驗系統中8259的OCW1端口地址MY8259_OCW2EQUIOY0+00H;實驗系統中8259的OCW2端口地址MY8259_OCW3EQUIOY0+00H;實驗系統中8259的OCW3端口地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTMESDB'Pressanykeytoexit!',0AH,0DH,0AH,0DH,'$'CS_BAKDW?;保存INTR原中斷處理程序入口段地址的變量IP_BAKDW?;保存INTR原中斷處理程序入口偏移地址的變量IM_BAKDB?;保存INTR原中斷屏蔽字的變量DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMES;顯示退出提示 MOVAH,09H INT21H CLIMOVAX,0000H;替換INTR的中斷矢量MOVES,AXMOVDI,INTR_IVADDMOVAX,ES:[DI]MOVIP_BAK,AX;保存INTR原中斷處理程序入口偏移地址MOVAX,OFFSETMYISRMOVES:[DI],AX;設置當前中斷處理程序入口偏移地址ADDDI,2MOVAX,ES:[DI]MOVCS_BAK,AX;保存INTR原中斷處理程序入口段地址MOVAX,SEGMYISRMOVES:[DI],AX;設置當前中斷處理程序入口段地址MOVDX,INTR_OCW1;設置中斷屏蔽寄存器,打開INTR的屏蔽位INAL,DXMOVIM_BAK,AL;保存INTR原中斷屏蔽字ANDAL,INTR_IMOUTDXMOVDX,MY8259_ICW1;初始化實驗系統中8259的ICW1MOVAL,13H;邊沿觸發、單片8259、需要ICW4OUTDXMOVDX,MY8259_ICW2;初始化實驗系統中8259的ICW2MOVAL,08HOUTDXMOVDX,MY8259_ICW4;初始化實驗系統中8259的ICW4MOVAL,01H;非自動結束EOIOUTDXMOVDX,MY8259_OCW3;向8259的OCW3發送讀取IRR命令MOVAL,0AHOUTDXMOVDX,MY8259_OCW1;初始化實驗系統中8259的OCW1MOVAL,0FCH;打開IR0和IR1的屏蔽位OUTDXSTIWAIT1:MOVAH,1;判斷是否有按鍵按下INT16HJZWAIT1;無按鍵則跳回繼續等待,有則退出QUIT:CLIMOVAX,0000H;恢復INTR原中斷矢量MOVES,AXMOVDI,INTR_IVADDMOVAX,IP_BAK;恢復INTR原中斷處理程序入口偏移地址MOVES:[DI],AXADDDI,2MOVAX,CS_BAK;恢復INTR原中斷處理程序入口段地址MOVES:[DI],AXMOVDX,INTR_OCW1;恢復INTR原中斷屏蔽寄存器的屏蔽字MOVAL,IM_BAKOUTDXSTIMOVAX,4C00H;返回到DOSINT21HMYISRPROCNEAR;中斷處理程序MYISRPUSHAXQUERY:MOVDX,MY8259_OCW3;向8259的OCW3發送讀取IRR命令INAL,DX;讀出IRR寄存器值ANDAL,01HCMPAL,01HJEIR0ISR;若為IR0請求,跳到IR0處理程序JNEIR1ISR;若為IR1請求,跳到IR1處理程序JMPOVERIR0ISR:MOVAL,30H;IR0處理,顯示字符串STR0MOVAH,0EHINT10HMOVAL,20HINT10HJMPOVERIR1ISR:MOVAL,31H;IR1處理,顯示字符串STR1MOVAH,0EHINT10HMOVAL,20HINT10HJMPOVEROVER:MOVDX,INTR_OCW2;向PC機內部8259發送中斷結束命令MOVAL,20HOUTDXMOVAL,20HOUT20H,ALPOPAXIRETMYISRENDPCODEENDSENDSTART五.實驗現象及分析1.單中斷實驗。按單次脈沖開關KK1+,顯示屏會顯示字符“9”2.擴展中斷源查詢方式應用實驗。注:與03H與,和與01H與時的優先級不一樣。和03h與,同時按應當出1;和01h與,同時按應當出0。六.思考題1.單中斷與多中斷有何不同?單中斷只需要中斷一次,不存在優先級的問題。而多中斷需要考慮優先級的問題,以及是否允許中斷嵌套。2.如何改變中斷優先級的順序?首先通過選擇中斷優先級管理方式,有全嵌套方式、特殊嵌套方式、優先級自動循環方式、優先級特殊循環方式、查詢方式。其中有的是不能改變優先級的,如全嵌套方式,其IR0級別最高,IR7最低。而本代碼中使用的查詢方式,根據查詢得到的中斷值來決定誰的優先級高,其中有一個AND指令,若是和03H與,同時觸發時,響應的是IR1;而用01H與,同時觸發,響應的是IR0。3.可編程中斷控制器8259A在協助CPU處理中斷事務中起哪些作用?用于管理和控制80X86的外部中斷請求,可實現中斷優先級判定,提供中斷類型號,屏蔽中斷輸入等。4.可屏蔽中斷與8259A是什么關系?8259A可以提供中斷屏蔽的方式,通過置位復位IR0到IR7控制中斷類型號。實驗二8255并口控制器應用實驗一、實驗目的1.掌握8255的工作方式及應用編程。2.掌握8255典型應用電路的接法。二、實驗內容1.基本輸入輸出實驗。編寫程序,使8255的A口為輸出,B口為輸入,完成撥動開關到數據燈的數據傳輸。要求只要開關撥動,數據燈的顯示就改變。實驗說明:本實驗使8255的端口A作為輸出口工作在方式0,端口B作為輸入口工作在方式0。用一組開關信號接入端口B,端口A輸出線接至一組數據燈上,然后通過對8255芯片編程來實現輸入輸出功能。圖3-28255基本輸入輸出實驗參考接線圖實驗步驟如下:①實驗接線圖如圖3-2所示,按圖連接實驗線路圖。②運行Tdpit集成操作軟件,根據實驗內容,調用程序代碼(T8255-1.ASM),填寫程序代碼中的空缺處,編譯、鏈接。(程序源碼路徑:C:\TangDu\PitPP\ASM\)③運行程序,改變撥動開關,同時觀察LED顯示,驗證程序功能。2.流水燈顯示實驗。編寫程序,使8255的A口和B口均為輸出,數據燈D7~D0由左向右,每次僅亮一個燈,循環顯示,D15~D8與D7~D0正相反,由右向左,每次僅點亮一個燈,循環顯示。實驗說明:使8255的A口和B口均為輸出,數據燈D7~D0由左向右,每次僅亮一個燈,循環顯示,D15~D8與D7~D0正相反,由右向左,每次僅點亮一個燈,循環顯示。參考實驗程序流程如圖3-3所示。 圖3-3流水燈顯示參考程序流程圖實驗步驟如下:①實驗接線圖如圖3-4所示,按圖連接實驗線路圖。②運行Tdpit集成操作軟件,根據實驗內容,調用程序代碼(T8255-2.ASM),填寫程序代碼中的空缺處,編譯、鏈接。(程序源碼路徑:C:\TangDu\PitPP\ASM\)③運行程序,觀察LED燈的顯示,驗證程序功能。④自己設計流水燈的流動模式,編寫程序并實現。

圖3-48255流水燈顯示參考接線圖三、實驗所用儀表及設備1.PC機一臺。2.TD-PIT++實驗系統一套。四.程序代碼1.基本輸入輸出實驗。IOY0EQU3000H;片選IOY0對應的端口始地址MY8255_AEQUIOY0+00H*4;8255的A口地址MY8255_BEQUIOY0+01H*4;8255的B口地址MY8255_CEQUIOY0+02H*4;8255的C口地址MY8255_MODEEQUIOY0+03H*4;8255的控制寄存器地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,MY8255_MODE;初始化8255工作方式MOVAL,83H;工作方式0,A口輸出,B口輸入OUTDXLOOP1:MOVDX,MY8255_B;讀B口INAL,DXMOVDX,MY8255_A;寫A口OUTDXMOVAH,1;判斷是否有按鍵按下INT16HJZLOOP1;無按鍵則跳回繼續循環,有則退出QUIT:MOVAX,4C00H;結束程序退出INT21HCODEENDSENDSTART2.流水燈顯示實驗。IOY0EQU3000H;片選IOY0對應的端口始地址MY8255_AEQUIOY0+00H*4;8255的A口地址MY8255_BEQUIOY0+01H*4;8255的B口地址MY8255_CEQUIOY0+02H*4;8255的C口地址MY8255_MODEEQUIOY0+03H*4;8255的控制寄存器地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTLADB?;定義數據變量LBDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,MY8255_MODE;定義8255工作方式MOVAL,81H;工作方式0,A口和B口為輸出OUTDXMOVDX,MY8255_A;寫A口發出的起始數據MOVAL,80HOUTDXMOVLA,ALMOVDX,MY8255_B;寫B口發出的起始數據MOVAL,01HOUTDXMOVLB,ALLOOP1:CALLDALLYMOVAL,LA;將A口起始數據右移再寫入A口ROLAL,1MOVLA,ALMOVDX,MY8255_AOUTDXMOVAL,LB;將B口起始數據左移再寫入B口RORAL,1MOVLB,ALMOVDX,MY8255_BOUTDXMOVAH,1;判斷是否有按鍵按下INT16HJZLOOP1;無按鍵則跳回繼續循環,有則退出QUIT:MOVAX,4C00H;結束程序退出INT21HDALLYPROCNEAR;軟件延時子程序PUSHCXPUSHAXMOVCX,0FFFHD1:MOVAX,0FFFFHD2:DECAXJNZD2LOOPD1POPAXPOPCXRETDALLYENDPCODEENDSENDSTART五.實驗現象及分析基本輸入輸出實驗。數據燈亮D7D6D5D4D3D2D1D0無影響開關打開常亮K7K6K5K4K3K2K1K0只要對應的開關撥動,數據燈的顯示就會發生改變。2.流水燈顯示實驗。D15-D8從右到左、D7-D0從左到右依次亮起來,循環往復,周而復始。六.思考題1.并口通信需要注意哪些問題?并口通信具有傳輸速得快、效率高的優點,但要求的數據線較多,不適合長距離傳輸。2.比較并口通信與串口通信的異同。同:都是傳輸數據的作用。異:串口只用一根數據線,但是可以長距離、穩定的傳輸,在遠程通信時更是不可或缺。并口則更多是用于短距離大容量傳輸。3.8255A端口與外設之間的單向和雙向傳送是指什么?3個并口中哪個并口具有雙向傳送功能?單向是指一根數據線只能做輸入或者只能做輸出,而雙向是指一根數據線既可以做輸入也可以做輸出。只有A口可以雙向選通(C方式)。實驗三8254定時/計數器應用實驗一、實驗目的1.掌握8254的工作方式及應用編程。2.掌握8254典型應用電路的接法。二、實驗內容1.計數應用實驗。編寫程序,應用8254的計數功能,用開關模擬計數,使每當按動KKI+五次后,產生一次計數中斷,并在屏幕上顯示一個字符‘5’實驗說明:編寫程序,將8254的計數器0設置為方式0,計數值為5,用微動開關KKl+作為CLK0時鐘,OUT0連接INTR,每當KKl+按動5次后產生中斷請求,在屏幕上顯示字符“5”圖4-18254計數應用實驗一參考接線圖實驗步驟如下:①實驗接線如圖4-1所示,按圖接線。②運行Tdpit集成

溫馨提示

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

評論

0/150

提交評論