




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實實 驗驗 報報 告告 課程名稱課程名稱 微機原理與接口技術微機原理與接口技術 專專 業(yè)業(yè) 計計 科科 班班 級級 五五 班班 姓姓 名名 胡胡 益益 學學 號號 指導教師指導教師 朱紅偉朱紅偉 實驗成績實驗成績 目錄目錄 實驗一實驗一 系統(tǒng)認識實驗系統(tǒng)認識實驗 .3 實驗二實驗二 數碼轉換編程及程序調試數碼轉換編程及程序調試 .8 實驗三實驗三 運算類編程實驗運算類編程實驗 .12 實驗四實驗四 分支程序設計實驗分支程序設計實驗 .17 實驗五實驗五 分支程序設計實驗分支程序設計實驗 2 .23 實驗六實驗六 循環(huán)程序設計循環(huán)程序設計 .31 實驗七實驗七 子程序設計子程序設計 .39 實驗
2、八實驗八 顯示程序實驗顯示程序實驗 .45 實驗九實驗九 中斷特性及中斷特性及 8259 應用編程實驗應用編程實驗 .49 實驗十實驗十 8255 并行接口應用實驗并行接口應用實驗 .55 實驗十一實驗十一 8253 定時定時/計數器應用實驗計數器應用實驗 .60 實驗十二實驗十二 8253 定時器應用實驗定時器應用實驗 .66 實驗十三實驗十三 A/D 轉換實驗轉換實驗.72 實驗十四實驗十四 D/A 轉換實驗轉換實驗.77 實驗十五實驗十五 8255 鍵盤及顯示接口實驗鍵盤及顯示接口實驗 .81 實驗十六實驗十六 步進電機實驗步進電機實驗 .85 實驗一實驗一 系統(tǒng)認識實驗系統(tǒng)認識實驗 一
3、一 實驗目的實驗目的 掌握 TDN86/51 或 TDN86、88 教學系統(tǒng)的基本操作。 二二 實驗設備實驗設備 TDN86/51 或 TDN86、88 教學實驗系統(tǒng)一臺 三三 實驗內容及步驟實驗內容及步驟 1.使用串行通訊電纜將實驗系統(tǒng)與 PC 微機相連。 2.打開實驗環(huán)境 WMD86. 3.輸入源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK ; ; DWDW 6464 DUP(?);DUP(?); STACKSTACK ENDSENDS CODECODESEGMENT;SEGMENT; ASSUMEASSUME CS:CODECS:CODE START:
4、MOVSTART:MOV DI,3500H;DI,3500H; MOVMOV CX,0010H;CX,0010H; MOVMOV AX,0000HAX,0000H A1:MOVA1:MOV DI,AL;DI,AL; INCINC DI;DI; LOOPLOOP A1;A1; A2:JMPA2:JMP A2A2 CODECODEENDS;ENDS; ENDEND START;START; 4.進行端口測試。 5. 進行匯編、鏈接。 6.調試無誤,并載入程序。 四四 實驗結果實驗結果 1.輸入 U2000 命令進行反匯編,檢查程序是否正確裝入。如圖(4- 1) 圖(4-1)檢查程序是否正確裝入 2
5、.當發(fā)現源程序輸入錯誤或需調試,輸入指令 A 來修改,如修改 2000 句 MOV DI,3500。如圖(4-2) 圖(4-2)修改 2000 句 3.對程序進行連續(xù)運行。結果如圖(4-3) 圖(4-3)連續(xù)運行 4.內存單元內容顯示,結果如圖(4-4) 圖(4-4)內存單元內容 5.內存單元內容的修改,如圖(4-5) 圖(4-5)修改單元內容 五五 思考與總結思考與總結 通過本次實驗,使我對 TDN86/88 教學系統(tǒng)的基本操作有了一定 的了解,對實驗有了更深的認識,更了解了自己所學的知識應該如 何應用。期間也遇到了不少困難,不過在老師和同學幫助之下都解 決了問題順利完成了實驗。 實驗二實驗
6、二 數碼轉換編程及程序調試數碼轉換編程及程序調試 一一 實驗目的實驗目的 1.掌握不同進制數及編碼相互轉換的程序設計方法,加深對數碼轉 換的理解。 2.熟悉鍵盤使用方法。 3.熟悉調試程序的方法。 二二 實驗設備實驗設備 TDN86/51 或 TDN86/88 教學實驗系統(tǒng)一臺 三三 實驗內容及步驟實驗內容及步驟 1.連接計算機與外設 2 輸入程序并檢查無誤,經匯編、連接后裝入程序。 STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT AS
7、SUMEASSUME CS:CODECS:CODE START:START:MOVMOV CX,0004HCX,0004H ; ;設置循環(huán)次數設置循環(huán)次數 MOVMOV DI,3500HDI,3500H ; ;將立即數將立即數 35003500 傳送給傳送給 DIDI 寄存器寄存器 MOVMOV DX,DIDX,DI ;將;將35003500單元的內容傳送給單元的內容傳送給 DxDx 寄存器寄存器 203B203B A1:A1: MOVMOV AX,DXAX,DX ;將;將 DXDX 寄存器的內容傳送給寄存器的內容傳送給 AxAx 寄存器寄存器 AX=203BAX=203B ANDAND AX
8、,000FHAX,000FH ;與操作。作用是:高;與操作。作用是:高 1212 位全部屏蔽掉,只保留原來的低位全部屏蔽掉,只保留原來的低 四位。結果存放在四位。結果存放在 AXAX 中。中。AX=000BHAX=000BH CMPCMP AL,0AHAL,0AH ;和;和 1010 比較比較 JBJB A2A2 ;JMPJMP ifif BelowBelow 如果如果 ALAL 小于小于 1010,那么跳轉到,那么跳轉到 A2A2; 加上加上 3030,轉換為對應的,轉換為對應的 ASCIIASCII 碼,結果存放在碼,結果存放在 ALAL ADDADD AL,07HAL,07H ;意味著;
9、意味著 ALAL 是大于等于是大于等于 1010 的,為的,為 A-FA-F 范圍內的數,先加范圍內的數,先加 上上 7 7,結果存放在,結果存放在 ALAL。 A2:A2: ADDADD AL,30HAL,30H ;繼續(xù)加;繼續(xù)加 3030,結果存放在,結果存放在 ALAL;以下是存放結果的程序;以下是存放結果的程序 MOVMOV DI+0AH,ALDI+0AH,AL ;將結果傳送到;將結果傳送到 3500+A,3500+A,即即350A350A單元單元 第一次循環(huán)的時第一次循環(huán)的時 候存放的是最地位的候存放的是最地位的 ASCIIASCII 碼碼 INCINC DIDI ;DIDI 加加
10、1 1,變?yōu)?,變?yōu)?35013501 PUSHPUSH CXCX ;將;將 CXCX 的內容壓入堆棧,目的是為了保存的內容壓入堆棧,目的是為了保存 CXCX 的原始內容的原始內容 MOVMOV CL,04HCL,04H ;將立即數;將立即數 0404 傳送給傳送給 CLCL 寄存器寄存器 SHRSHR DX,CLDX,CL ;將;將 DXDX 寄存器右移寄存器右移 CLCL 位。也就是右移位。也就是右移 4 4 位。位。DXDX 內容由內容由 203B203B 變?yōu)樽優(yōu)?02030203 POPPOP CXCX ;恢復;恢復 CXCX 的內容。的內容。 LOOPLOOP A1A1 ;循環(huán);循環(huán)
11、 A1A1,直到,直到 CXCX 為為 0 0 CODECODE ENDSENDS ENDEND STARTSTART 3.在 3500-3501H 單元中存入四位十六進制數 203B,即:E3500, 并輸入 3B、20。 4.D350A,輸入數字與結果 ASC碼對應順序相反。 5.反復調試幾組數據,考察程序的正確性。 四四 實驗結果實驗結果 1.在 3500-3501 單元中存入四位十六進制數 203B。如圖(4-1) 圖 4-1 存入十六進制數 2.運行程序。如圖(4-2) 圖 4-2 G=0000:2000 運行程序 3.顯示結果.如圖(4-3) 圖 4-3 結果 五五 思考與總結思考
12、與總結 1.在十六進制數轉換為 ASCII 碼時,存轉換結果后,為什么要把 DX 向右移四次? 答:對存放空間的要求,因為對于十六進制每四個 ASCII 碼從右往 左數是 4 個一次,算十六進制的一個位次,因此十六進制轉換成 ASCII 碼要把 DX 向右移四次。 2.自己的實驗感受 本次實驗是將十六進制數轉換為 ASCII 碼。首先經過 CPU 處理 后的十六進制數存放于起始地址為 3500H 的內存單元中,把它們轉 換成 ASCII 碼后,再分別存入起始地址為 350AH 的內存單元中。 實驗三實驗三 運算類編程實驗運算類編程實驗 一一 實驗目的實驗目的 1.掌握使用運算類指令編程及調試方
13、法。 2.掌握運算類指令對各狀態(tài)標志位的影響及其測試方法 二二 實驗設備實驗設備 TDN86/51 或 TDN86/88 教學實驗系統(tǒng)一臺 三三 實驗內容及步驟實驗內容及步驟 1.連接計算機與外設 2.輸入程序并檢查無誤,經匯編、連接后裝入程序。 STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS DATADATA SEGMENTSEGMENT XLXL DWDW ? ? XHXH DWDW ? ? YLYL DWDW ? ? YHYH DWDW ? ? ZLZL DWDW ? ? ZH
14、ZH DWDW ? ? DATADATA ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODE,DS:DATACS:CODE,DS:DATA START:MOVSTART:MOV AX,DATAAX,DATA MOVMOV DS,AXDS,AX MOVMOV AX,XLAX,XL ADDADD AX,YLAX,YL MOVMOV ZL,AXZL,AX MOVMOV AX,XHAX,XH ADCADC AX,YHAX,YH MOVMOV ZH,AXZH,AX A1:A1: JMPJMP A1A1 CODECODE ENDSENDS ENDEN
15、D STARTSTART 3.用 U0000:2000 查看 MOV AX,XXXX(DATA)語句,即得到數據段段地 址 CS:XXXX 用 E 命令 EXXXX:0000給 XL,XH,YL,YH 賦值存入二進 制數 A0 65 15 00 和 9E B7 21 00。 4.G=0000: 2000,運行以上程序。 5.DXXXX:0008,顯示計算結果。 6.反復調試幾組數據,考察程序的正確性。 四四 實驗結果實驗結果 1.查看 MOV AX,XXXX 語句,地道段地址。如圖(4-1) 圖 4-1 段地址 2.給 XL,XH,YL,YH 賦值二進制數。如圖(4-2) 圖 4-2 賦值數
16、3.運行程序并查看結果。如圖(4-3) 圖 4-3 實驗結果顯示 五五 思考與總結思考與總結 本次實驗我們做得是運算類編程實驗中二進制雙精度加法運算。 雙精度運算,是利用累加器 AX,先求低十六位和,并存入低址單元, 后求高 16 位和,再存入高址存儲單元。由于低位和可能向高位有進 位,因而高位字相加語句需用 ADC 指令,則低位相加有進位時, CF=1,高位字相加時,同時加上 CF 中的 1。這次實驗有很多細節(jié)需 要注意,在不注意的情況之下我們出了很多錯誤,后來在老師的指 導幫助下完成了實驗。 實驗四實驗四 分支程序設計實驗分支程序設計實驗 一一 實驗目的實驗目的 1.掌握分支程序的結構。
17、2.掌握分支程序的設計、調試方法。 二二 實驗設備實驗設備 TDN86/51 或 TDN86/88 教學實驗系統(tǒng)一臺 三三 實驗內容及步驟實驗內容及步驟 1.內容: 設計一數據塊間的搬移程序 設計思想:程序要求把內存中一數據區(qū)(稱為源數據塊)傳送到 另一存儲區(qū)(稱為目的數據塊) 。 注意: 當源數據塊首址目的塊首址時,從數據塊首地址開始傳送數據。 當源數據塊首址目的塊首址時,應從數據塊首地址開始 傳送數據。而當源數據塊首址目的塊首址時,應從數據塊首地址開始傳 送數據。而當源數據塊首址200 結束 程序源代碼: STACKSTACK SEGMENTSEGMENT DWDW 6464 DUP(?)
18、DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:START: MOVMOV DX,0001HDX,0001H ;將;將 0001H0001H 傳送給傳送給 DXDX,DX=0001HDX=0001H MOVMOV BL,02HBL,02H ;將;將 02H02H 傳送給傳送給 BLBL,BL=02HBL=02H A1:A1: MOVMOV AL,BLAL,BL ;將;將 BLBL 傳送給傳送給 ALAL INCINC BLBL ;對;對 BLBL 進行加一在傳送給進行加一在
19、傳送給 BLBL MULMUL BLBL ;將;將 ALAL 與與 BLBL 相乘并將結果傳送給相乘并將結果傳送給 AXAX ADDADD DX,AXDX,AX ;AXAX 與與 DXDX 相加并將結果傳給相加并將結果傳給 DXDX CMPCMP AX,00C8HAX,00C8H ;用目的操作數減去源操作數,;用目的操作數減去源操作數,AXAX 減去減去 00C8H00C8H,比較,比較 AXAX 數是否大于數是否大于 00C8H00C8H JNAJNA A1A1 ;當;當 CF=1CF=1 或或 ZF=1ZF=1 時進行跳轉,如跳轉則進行時進行跳轉,如跳轉則進行 A1,A1,如不跳轉則進行如
20、不跳轉則進行 A2A2 A2:A2: INTINT 03H03H ;對操作數加;對操作數加 1 1 CODECODE ENDSENDS ENDEND STARTSTART 實驗二:實驗二: 流程圖: 開始 數據區(qū)首址 D1 數據個數 CL CH、BL 置 0 DI 增 1 數據首位=1? BL+1 BL DI 增 1 CX=0 存結果 結束 Y N N 1.程序源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASS
21、UME CS:CODECS:CODE START:START: MOVMOV DI,3000HDI,3000H; ;設數據區(qū)首址,將設數據區(qū)首址,將 3000H3000H 傳給傳給 DIDI,DI=3000HDI=3000H MOVMOV CL,DICL,DI ; ;送數據個數,將送數據個數,將 DIDI 的值傳給的值傳給 CLCL XORXOR CH,CHCH,CH;CH;CH 清清 0 0 MOVMOV BL,CHBL,CH;BL;BL 清清 0 0 INCINC DIDI; ;指針指向第一個數據指針指向第一個數據 A1:A1: MOVMOV AL,DIAL,DI; ;將將 DIDI 的值
22、傳給的值傳給 ALAL TESTTEST AL,80HAL,80H ; ;判斷數據首位是否為判斷數據首位是否為 1 1 JEJE A2A2; ;判斷,當判斷,當 ZF=1ZF=1 時跳轉到時跳轉到 A2A2,如不是則順序執(zhí)行,如不是則順序執(zhí)行 INCINC BLBL; ;負數個數累加負數個數累加 A2:A2: INCINC DIDI; ;指針指向第一個數據指針指向第一個數據 LOOPLOOP A1A1; ;循環(huán)指令,循環(huán)執(zhí)行循環(huán)指令,循環(huán)執(zhí)行 A1A1 MOVMOV DI,BLDI,BL ; ;將將 BLBL 數據傳給數據傳給 DIDI INTINT 03H03H; ;對操作數進行加對操作數進
23、行加 1 1 CODECODE ENDSENDS ENDEND STARTSTART 2.輸入程序并檢查無誤,經匯編、連接后裝入系統(tǒng) 3. E3000輸入數據如下: 3000=06(數據個數) 3001=12、88、82、90、22、33 4.G=0000:2000,運行實驗程序。 5.D=3007,顯示結果 03 四四 實驗結果實驗結果 1.實驗一結果如圖(4-1)所示: 圖 4-1 實驗結果為 045FH 實驗二(結果): 1.輸入數據,結果如圖(4-2)所示: 圖 4-2 數據輸入 2.運行程序,查看結果如圖(4-3)所示: 五五 思考與總結思考與總結 這次實驗我們做得時關于循環(huán)程序的實
24、驗: S=1+2*3+3*4+4*5+N(N+1) ,直到 N*(N+1)項大于 200 為止。 本次實驗我通過觀察流程圖來自己設計有關程序,這樣使我對 循環(huán)結構有了更深的了解,加深了我對乘法指令和加法指令的理解。 掌握了循環(huán)結構程序設計的方法,知道如何對循環(huán)程序進行調試。 在實驗過程中也遇到了不少的困難,使實驗無法繼續(xù)進行下去,不 過在老師的幫助下解決了困難,順利完成了實驗,使我受益匪淺。 實驗七實驗七 子程序設計子程序設計 一一 實驗目的實驗目的 1學習子程序的定義和調用方法 2.掌握子程序的結構 3.熟練掌握子程序的程序設計、編制及調用 二二 實驗設備實驗設備 TDN86/51 或 TD
25、N86/88 教學實驗系統(tǒng)一臺 三三 實驗內容及步驟實驗內容及步驟 實驗實驗 1 1 編寫源代碼: DATADATA SEGMENTSEGMENT ARY1ARY1 DWDW 3 3 DUP(?)DUP(?) SUM1SUM1 DWDW ? ? ARY2ARY2 DWDW 3 3 DUP(?)DUP(?) SUM2SUM2 DWDW ? ? DATADATA ENDSENDS STACKSTACK SEGMENTSEGMENT STACKSTACK SASA DWDW 5050 DUP(?)DUP(?) TOPTOP EQUEQU LENGTHLENGTH SASA STACKSTACK EN
26、DSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODE,DS:DATA,SS:STACKCS:CODE,DS:DATA,SS:STACK MAINMAIN PROCPROC FARFAR START:START: MOVMOV AX,DATAAX,DATA; ;數據段數據設置數據段數據設置 MOVMOV DS,AXDS,AX; ;將將 AXAX 中的內容傳送給中的內容傳送給 DSDS MOVMOV AX,STACKAX,STACK MOVMOV SS,AXSS,AX; ;將將 AXAX 中的內容傳送給中的內容傳送給 SSSS MOVMOV SP,
27、TOPSP,TOP LEALEA SI,ARY1SI,ARY1; ;數組數組 1 1 首地址,入口參數首地址,入口參數 MOVMOV CX,LENGTHCX,LENGTH ARY1ARY1; ;數組數組 1 1 長度,入口參數長度,入口參數 CALLCALL SUMSUM; ;調用求和子程序調用求和子程序 LEALEA SI,ARY2SI,ARY2; ;數組數組 2 2 首地址,入口參數首地址,入口參數 MOVMOV CX,LENGTHCX,LENGTH ARY2ARY2; ;數組數組 2 2 長度,入口參數長度,入口參數 CALLCALL SUMSUM; ;調用求和子程序調用求和子程序 RE
28、TRET; ;無參數段內返回無參數段內返回 MAINMAIN ENDPENDP SUMSUM PROCPROC NEARNEAR; ;子程序子程序 XORXOR AX,AXAX,AX;AX;AX 清清 0 0 L1:ADDL1:ADD AX,WORDAX,WORD PTRSIPTRSI; ;加數組元素加數組元素 INCINC SISI; ;對對 SISI 進行加進行加 1 1 INCINC SISI; ;對對 SISI 進行加進行加 1 1 LOOPLOOP L1L1; ;結束結束 L1L1 MOVMOV WORDWORD PTRSI,AXPTRSI,AX ; ;數組和送入數組和送入 SUMS
29、UM MOVMOV AH,4CHAH,4CH; ;準備結束程序準備結束程序 INTINT 21H21H; ;中斷程序運行中斷程序運行 RETRET; ;無參數段內返回無參數段內返回 SUMSUM ENDPENDP; ;終止求和子程序終止求和子程序 CODECODE ENDSENDS ENDEND STARTSTART 2 編譯、連接、裝載 3u2000 查看是否裝載成功 4 E *:0000,輸入三個字數據(數組 1 的數據) 5 E *:0008,輸入三個字數據(數組 2 的數據) 6 運行程序 7 查看結果,結果存放在*:0006(數組 1 的累加和)和 *:000E 單元(數組 2 的累
30、加和) 實驗實驗 2 1 編寫源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:MOVSTART:MOV CX,001AHCX,001AH MOVMOV BL,41HBL,41H MOVMOV AH,01HAH,01H A1:MOVA1:MOV AL,BLAL,BL INTINT 10H10H INCINC BLBL PUSHPUSH CXCX MOVMOV C
31、X,0FFFFHCX,0FFFFH A2:LOOPA2:LOOP A2A2 POPPOP CXCX DECDEC CXCX JNZJNZ A1A1 INTINT 03H03H CODECODE ENDSENDS ENDEND STARTSTART 2 編譯、連接、裝載 3 運行程序并觀察結果 四四 實驗結果實驗結果 1.查看程序是否在如成功,結果如圖(4-1)所示: 圖 4-1 數據載入成功 2.輸入數據,如圖(4-2)所示: 圖 4-2 輸入數據 3.運行程序并查看數組 1 和數組 2 的結果,如圖(4-3)所示: 圖 4-3 程序結果數組 1 和數組 2 實驗實驗 2 2(結果)(結果)
32、1. 載入程序,如圖(4-4) 2. 運行程序,如圖(4-5) 五五 思考與總結思考與總結 本次實驗我們做得是子程序設計實驗。主要掌握子程序的結構 和分支程序的設計、調試方法。 這次實驗,我有一些不懂的地方,但是通過老師給的課件將所 有的程序都加以注釋,這樣使我對整個實驗的代碼都了解了,加深 了我對分支實驗各方面知識點的理解。 實驗八實驗八 顯示程序實驗顯示程序實驗 一一 實驗目的實驗目的 1.了解 INT 10H 各功能快的作用及用法。 2.掌握字符方式下 PC 機顯示器顯示控制。 二二 實驗設備實驗設備 TDN86/51 或 TDN86/88 教學實驗系統(tǒng)一臺 三三 實驗內容及步驟實驗內容
33、及步驟 1、連接試驗箱 2、打開實驗環(huán)境 3、輸入源代碼流程圖(如下) STACKSTACK SEGMENTSEGMENT STACKSTACK ; ;堆棧段定義堆棧段定義 DWDW 6464 DUP(?)DUP(?) ; ;重復重復 6464 次次 STACKSTACK ENDSENDS ; ;段定義結束段定義結束 CODECODE SEGMENTSEGMENT ; ;存放在堆空間中的代碼段存放在堆空間中的代碼段 ASSUMEASSUME CS:CODECS:CODE ; ;段分配語句(偽指令)段分配語句(偽指令) START:START:MOVMOV CX,001AHCX,001AH ;
34、;顯示字符個數(顯示字符個數(2626)送入)送入 CXCX MOVMOV BL,41HBL,41H ; ;顯示字符顯示字符AA MOVMOV AH,01HAH,01H ; ;顯示一個字符顯示一個字符 A1:A1: MOVMOV AL,BLAL,BL INTINT 10H10H INCINC BLBL ; ;顯示下一個字符顯示下一個字符 PUSHPUSH CXCX MOVMOV CX,0FFFFHCX,0FFFFH A2:A2: LOOPLOOP A2A2 POPPOP CXCX DECDEC CXCX JNZJNZ A1A1 INTINT 03H03H CODECODE ENDSENDS E
35、NDEND START4.START4. 5、連接 6、裝入程序 四四 實驗結果實驗結果 1、編譯成功: 2、鏈接成功: 3、裝入程序成功: 4、實驗運行結果截圖 五五 思考與總結:思考與總結: 通過此次試驗,我了解 INT 10H 各功能塊的作用及用法并掌握 了字符方式下 PC 機顯示器顯示控制,對其有了初步的了解。在實驗 當中雖然遇到很多的問題但是老師都一一為我解答了,讓我順利完 成了實驗。在以后的學習過程中還需要注意此類問題,真正的掌握 這些知識點,做到靈活運用自己所掌握的知識。 實驗九實驗九 中斷特性及中斷特性及 8259 應用編程實驗應用編程實驗 一一 實驗目的實驗目的 1認識 TD
36、N86/51 系統(tǒng)的中斷特性 2.掌握 8259 中斷控制器的工作原理 3.掌握 8259 可編程中斷控制器的應用編程 二二 實驗設備實驗設備 1.TDN86/51 或 TDN86/88 教學實驗系統(tǒng)一臺 2.排線、導線一根 三三 實驗內容及步驟實驗內容及步驟 實驗實驗 1 1 編寫源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:PUSHSTART:PUSH
37、DSDS; ;保存數據段保存數據段 MOVMOV AX,0000HAX,0000H; ;將將 AXAX 清零,將清零,將 00000000 傳給傳給 AXAX MOVMOV DS,AXDS,AX; ;數據段清零,將數據段清零,將 AXAX 內容傳給內容傳給 DSDS,所以,所以 DSDS 清零清零 MOVMOV AX,OFFSETAX,OFFSET IRQ7IRQ7; ;取中斷程序入口地址(相對地址)取中斷程序入口地址(相對地址) ADDADD AX,2000HAX,2000H; ;加裝載時加裝載時 IP=2000IP=2000 地址(絕對地址)地址(絕對地址) MOVMOV SI,003CH
38、SI,003CH; ;填填 82598259 中斷中斷 7 7 中斷矢量,把中斷矢量,把 003CH003CH 內容傳給內容傳給 SISI MOVMOV SI,AXSI,AX; ;填偏移量矢量,將填偏移量矢量,將 AXAX 地址傳給地址傳給 SISI MOVMOV AX,0000HAX,0000H; ;地址段地址段 CS=0000HCS=0000H MOVMOV SI,003EHSI,003EH; ;將將 003E003E 傳給傳給 SISI MOVMOV SI,AXSI,AX; ;填地址段矢量,將填地址段矢量,將 AXAX 地址傳給地址傳給 SISI CLICLI; ;關中斷關中斷 POPP
39、OP DSDS; ;彈棧彈棧 ININ AL,21HAL,21H; ;讀讀 82598259 中斷屏蔽字,把中斷屏蔽字,把 21H21H 端口內容給端口內容給 ALAL ANDAND AL,7FHAL,7FH; ;開開 82598259 中斷中斷 7 7 OUTOUT 21H,AL21H,AL; ;將將 ALAL 內容回傳給內容回傳給 21H21H MOVMOV CX,000AHCX,000AH; ;循環(huán)循環(huán) 1010 次次 A1:CMPA1:CMP CX,0000HCX,0000H; ;判斷是否完成循環(huán)判斷是否完成循環(huán) JNZJNZ A2A2; ;跳轉跳轉 ININ AL,21HAL,21H
40、; ;讀讀 82598259 中斷屏蔽字,把中斷屏蔽字,把 21H21H 端口內容給端口內容給 ALAL OROR AL,80HAL,80H; ;關關 82598259 中斷中斷 7 7 OUTOUT 21H,AL21H,AL; ;將將 ALAL 內容回傳給內容回傳給 21H21H STISTI HLTHLT A2:STIA2:STI JMPJMP A1A1; ;無條件跳轉至無條件跳轉至 A1A1 IRQ7:IRQ7:MOVMOV AX,0137HAX,0137H; ;中斷程序入口中斷程序入口 INTINT 10H10H; ;返回操作程序,結束程序運行返回操作程序,結束程序運行 MOVMOV
41、AX,0120HAX,0120H; ;中斷程序出口中斷程序出口 INTINT 10H10H; ;返回操作程序,結束程序運行返回操作程序,結束程序運行 DECDEC CXCX;CX;CX 自減自減 1 1 MOVMOV AL,20HAL,20H; ;將將 2020 傳給傳給 ALAL OUTOUT 20H,AL20H,AL; ;將將 ALAL 回傳給回傳給 2020 CLICLI IRETIRET CODECODE ENDSENDS ENDEND STARTSTART 2. 編譯、連接、裝載 3.G=0000:2000 運行程序 4.重復按 KK2 微動開關,顯示屏上應用“7”來響應,直到按 1
42、0 次 后,系統(tǒng)處于停機狀態(tài)。 實驗實驗 2 1 編寫源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:PUSHSTART:PUSH DSDS; ;保存數據段保存數據段 MOVMOV AX,0000HAX,0000H; ;將將 AXAX 清零,將清零,將 00000000 傳給傳給 AXAX MOVMOV DS,AXDS,AX; ;數據段清零,將數據段清零,將
43、AXAX 內容傳給內容傳給 DSDS,所以,所以 DSDS 清零清零 MOVMOV AX,OFFSETAX,OFFSET IRQ6IRQ6; ;取中斷程序入口地址(相對地址)取中斷程序入口地址(相對地址) ADDADD AX,2000HAX,2000H; ;加裝載時加裝載時 IP=2000IP=2000 地址(絕對地址)地址(絕對地址) MOVMOV SI,0038HSI,0038H; ;填填 82598259 中斷中斷 6 6 中斷矢量,把中斷矢量,把 0038H0038H 內容傳給內容傳給 SISI MOVMOV SI,AXSI,AX; ;填偏移量矢量,將填偏移量矢量,將 AXAX 地址傳
44、給地址傳給 SISI MOVMOV AX,0000HAX,0000H; ;地址段地址段 CS=0000HCS=0000H MOVMOV SI,003AHSI,003AH; ;將將 003A003A 傳給傳給 SISI MOVMOV SI,AXSI,AX; ;填地址段矢量,將填地址段矢量,將 AXAX 地址傳給地址傳給 SISI CLICLI; ;關中斷關中斷 POPPOP DSDS; ;彈棧彈棧 ININ AL,21HAL,21H; ;讀讀 82598259 中斷屏蔽字,把中斷屏蔽字,把 21H21H 端口內容給端口內容給 ALAL ANDAND AL,0BFHAL,0BFH; ;開開 825
45、98259 中斷中斷 6 6 OUTOUT 21H,AL21H,AL; ;將將 ALAL 內容回傳給內容回傳給 21H21H MOVMOV CX,000AHCX,000AH; ;循環(huán)循環(huán) 1010 次次 A1:CMPA1:CMP CX,0000HCX,0000H; ;判斷是否完成循環(huán)判斷是否完成循環(huán) JNZJNZ A2A2; ;跳轉跳轉 ININ AL,21HAL,21H; ;讀讀 82598259 中斷屏蔽字,把中斷屏蔽字,把 21H21H 端口內容給端口內容給 ALAL OROR AL,40HAL,40H; ;關關 82598259 中斷中斷 6 6 OUTOUT 21H,AL21H,AL
46、; ;將將 ALAL 內容回傳給內容回傳給 21H21H STISTI HLTHLT A2:STIA2:STI JMPJMP A1A1; ;無條件跳轉至無條件跳轉至 A1A1 IRQ6:IRQ6:MOVMOV AX,0136HAX,0136H; ;中斷程序入口中斷程序入口 INTINT 10H10H; ;返回操作程序,結束程序運行返回操作程序,結束程序運行 MOVMOV AX,0120HAX,0120H; ;中斷程序出口中斷程序出口 INTINT 10H10H; ;返回操作程序,結束程序運行返回操作程序,結束程序運行 DECDEC CXCX;CX;CX 自減自減 1 1 MOVMOV AL,2
47、0HAL,20H; ;將將 2020 傳給傳給 ALAL OUTOUT 20H,AL20H,AL; ;將將 ALAL 回傳給回傳給 2020 CLICLI IRETIRET CODECODE ENDSENDS ENDEND START2START2 編譯、連接、裝載編譯、連接、裝載 2. 編譯、連接、裝載 3.G=0000:2000 運行程序 4.重復按 KK2 微動開關,顯示屏上應用“6”來響應,直到按 10 次 后,系統(tǒng)處于停機狀態(tài)。 四四 實驗結果實驗結果 1.程序載入成功,結果如圖(4-1)所示: 圖 4-1 數據載入成功 2.按 KK2 微動開關屏上顯示“7”數據,如圖(4-2)所示
48、: 圖 4-2 結果顯示 實驗實驗 2 2(結果)(結果) 1.程序載入成功,結果如圖(4-3)所示: 圖 4-3 數據載入成功 2.按 KK2 微動開關屏上顯示“6”數據,如圖(4-4)所示: 圖 4-4 結果顯示 五五 思考與總結思考與總結 通過本次實驗我認識 TDN86/51 系統(tǒng)的中斷特性并掌握 8259 中斷控制器的工作原理,實驗當中遇到的一些問題,通過老師的點 撥與同學之間的互相幫助、互相學習得到了解決,今后要注意將學 習解決此類問題的方法,以后遇到也能輕松解決。 實驗十實驗十 8255 并行接口應用實驗并行接口應用實驗 一一 實驗目的實驗目的 1學習并掌握 8255 的各種工作方
49、式及其應用 2.學習載系統(tǒng)接口實驗單元上構造實驗電路 二二 實驗設備實驗設備 1.TDN86/51 或 TDN86/88 教學實驗系統(tǒng)一臺 2.排線、導線若干 三三 實驗內容及步驟實驗內容及步驟 實驗實驗 1 1 編寫源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:START: MOVMOV AL,82HAL,82H; ;設設 82558255 方式字方式字
50、A A 位輸出,位輸出,B B 口位輸入??谖惠斎?。 OUTOUT 63H,AL63H,AL; ;將將 ALAL 內容傳給控制寄存器內容傳給控制寄存器 A1:A1: ININ AL,61HAL,61H; ;將輸入口將輸入口 B B 口內容傳給口內容傳給 ALAL OUTOUT 60H,AL60H,AL; ;將將 ALAL 內容傳給輸出口內容傳給輸出口 A A 口完成輸入口完成輸入/ /輸出功能輸出功能 JMPJMP A1A1; ;無條件跳轉到無條件跳轉到 A1A1,循環(huán),循環(huán) CODECODE ENDSENDS ENDEND STARTSTART 2. 編譯、連接、裝載 3.G=0000:20
51、00 運行程序 實驗實驗 2 1 編寫源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:START: MOVMOV AL,90HAL,90H; ;設設 82558255 方式字方式字 B B 位輸出,位輸出,A A 口位輸入??谖惠斎?。 OUTOUT 63H,AL63H,AL; ;將將 ALAL 內容傳給控制寄存器內容傳給控制寄存器 A1:A1: ININ AL
52、,60HAL,60H; ;將輸入口將輸入口 A A 口內容傳給口內容傳給 ALAL OUTOUT 61H,AL61H,AL; ;將將 ALAL 內容傳給輸出口內容傳給輸出口 B B 口完成輸入口完成輸入/ /輸出功能輸出功能 JMPJMP A1A1; ;無條件跳轉到無條件跳轉到 A1A1,循環(huán),循環(huán) CODECODE ENDSENDS ENDEND STARTSTART 2. 編譯、連接、裝載 3.G=0000:2000 運行程序 四四 實驗結果實驗結果 1.程序載入成功,結果如圖(4-1)所示: 圖 4-1 數據載入成功 2.實驗結果,如圖(4-2)所示: 圖 4-2 結果顯示 實驗實驗 2 2(結果)(結果) 1.程序載入成功,結果如圖(4-3)所示: 圖 4-3 數據載入成功 2. 實驗結果,如圖(4-4)所示: 圖 4-4 結果顯示 五五 思考與總結思考與總結 通過本次實驗我學習到了載系統(tǒng)接口實驗單元上構造以及很簡 單的連接方法,本次實驗比較簡單,在不斷的對照,不斷的排解掉 一些因為粗心犯下的錯誤之后,解決了遇到的一些困難,順利完成 了實驗。 實驗十一實驗十一 8253 定時定時/計數器應用實驗計數器應用實驗 一、一、 實驗目的實驗目的 1、 熟悉 8253 在系統(tǒng)中的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 班主任工作室計劃-班級文化建設方案
- 初中音樂欣賞與實踐計劃
- 蘇教版二年級下冊數學教學活動計劃
- 建筑項目控制工程造價措施
- 科技型民營企業(yè)“逆向混改”的控制權安排與經濟績效研究-以贏合科技與捷順科技為例
- 江城柳影:高一作文寫作教案
- 基于核心素養(yǎng)培育的初中音樂教師課堂評價語研究-以杭州市A中學為例
- 大學生榜樣教育的有效性研究
- 耐磨高熵合金涂層的電火花沉積制備工藝及組織性能研究
- 湘教版九年級數學上冊教學計劃多元評價體系
- 【高中英語】2025年高考英語作文預測(10大主題+55篇范文)下
- (完整)北京版小學英語1至6年級詞匯(帶音標)
- 電梯故障維修記錄
- 員工招聘外文翻譯文獻
- 中國世界文化遺產課件
- 2022年四川省成都市青羊區(qū)七下期末數學試卷
- 智慧健康管理ppt課件
- 天牛的識別與防治PPT演示課件(PPT 99頁)
- 英語51閱讀理解主旨題(best-title)答題技巧
- 孔距尺寸的標注與孔的位置度公差的確定
- 服裝工藝(各工序)單價表
評論
0/150
提交評論