微機(jī)與接口技術(shù)實(shí)驗(yàn)_第1頁(yè)
微機(jī)與接口技術(shù)實(shí)驗(yàn)_第2頁(yè)
微機(jī)與接口技術(shù)實(shí)驗(yàn)_第3頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、PC微機(jī)原理與接口技術(shù)實(shí)驗(yàn)報(bào)告admin200800120100實(shí)驗(yàn)一 上機(jī)練習(xí)實(shí)驗(yàn)?zāi)康模?掌握用編輯軟件編輯程序文本的方法。在DOS環(huán)境下,熟練掌握用MASM5.0宏匯編程序?qū)?ASM 文件進(jìn)行編譯、連接等操作步驟。2、熟悉用DEBUG調(diào)試程序。實(shí)驗(yàn)要求:選取教科書中一典型例題,用編輯軟件在PC機(jī)中形成ASM文件,然后編譯、連接,生成目標(biāo)文件和可執(zhí)行文件。再用DEBUG程序進(jìn)行調(diào)試。實(shí)驗(yàn)步驟: 實(shí)驗(yàn)程序如下: data segmentary1 db 12,34,45,56,67,78,89,90,18contl equ $-ary1 ;ary1 的長(zhǎng)度sum1 dw ?ary2 db 13h

2、,24h,57h,68h,9ah,0bch,0cdh,0deh,80h,50hcont2 equ $-ary2sum2 dw ?data endscode segmentassumecs:code, ds:datastart: mov ax,datamov ds,axlea si,ary1mov cx,cont1 ;設(shè)定循環(huán)次數(shù)為ary1的個(gè)數(shù)call sumlea si,ary2mov cx,cont2call summov ah,4ch ;結(jié)束程序功能調(diào)用 4CHint 21hsum proc;求和程序段,求該段所有數(shù)之和xor ax,ax;ax清零為下面加法準(zhǔn)備next1: add al

3、,siadc ah,0inc siloop next1mov si,axret;返回調(diào)用程序sum endp ;程序段結(jié)束code endsend start點(diǎn)擊“運(yùn)行”點(diǎn)擊“編譯成目標(biāo)文件” ,編譯成功后,再“運(yùn)行” =“生成可執(zhí) 行文件”,然后運(yùn)行,即可。運(yùn)行成功以后, 可進(jìn)行調(diào)試。點(diǎn)擊工具欄的調(diào)試按鈕, 出現(xiàn)調(diào)試框。其命令如下: 輸入a,進(jìn)行逐行匯編,輸入c,比較兩內(nèi)存塊,輸入d,內(nèi)存信息以16進(jìn)制顯 示;輸入e,修改內(nèi)存指定的字節(jié);輸入f,可以預(yù)置一段內(nèi)存; 輸入g,執(zhí)行 程序;輸入h,制算術(shù)運(yùn)算;輸入i,從指定端口地址輸入;輸入I,讀盤;輸入 m,內(nèi)存塊傳送;輸入n,置文件名;輸入o

4、,從指定端口地址輸出;輸入q,結(jié) 束DEBUG調(diào)試;輸入r,顯示和修改寄存器;輸入s,查找字節(jié)串;輸入t,跟蹤 執(zhí)行;輸入u,反匯編;輸入w,存盤操作。實(shí)驗(yàn)總結(jié):1、通過(guò)實(shí)驗(yàn),熟悉了 MASM環(huán)境,了解了程序書寫,編譯和運(yùn)行的方法。2、實(shí)驗(yàn)過(guò)程中,在調(diào)試的時(shí)候,各調(diào)試命令的用法十分復(fù)雜,如指令 P,單輸 入 p 只會(huì)執(zhí)行一步,若要一次執(zhí)行多步,可以在后面加上數(shù)字。通過(guò)練習(xí),熟悉 了各調(diào)試指令。實(shí)驗(yàn)二 兩個(gè)多位十進(jìn)制數(shù)相加實(shí)驗(yàn)?zāi)康模?、學(xué)習(xí)數(shù)據(jù)傳送和算術(shù)運(yùn)算指令的用法。2、熟悉在PC機(jī)上建立、匯編、連接、調(diào)試和運(yùn)行匯編語(yǔ)言程序過(guò)程。 實(shí)驗(yàn)要求:將兩個(gè)多位十進(jìn)制數(shù)(如四位)相加,要求被加數(shù)、加數(shù)以

5、 ASCI碼形式按順序 存放在以DATA1和DATA2為首的5個(gè)內(nèi)存單元中(低位在前)。結(jié)果顯示在屏幕 上。實(shí)驗(yàn)步驟:實(shí)驗(yàn)程序如下:DATASSEGMENTnum1 db '3','2','4','5','0' ;被加數(shù)num2 db'2','6','7','1','0'加數(shù)db '5423+1762=$'顯示的公式形式, $表示輸出結(jié)束DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DAT

6、AS,ES:DATASSTART:MOV AX,DATASMOV DS,AX;DS旨向數(shù)據(jù)段mov ES,AX;E&指向數(shù)據(jù)段mov cx,5;5次循環(huán)lea dx,s;要顯示的字符串的首偏移地址mov ah,9hint 21h;9號(hào)DOS功能調(diào)用顯示字符串smov si,offset numl ; s脂向 numl 首地址mov di,offset num2 ; di 指向 num2 首地址clc;清零進(jìn)位寄存器 CFadds: LODSBadc al, di;有符號(hào)加法aaa;調(diào)整ASC碼加法結(jié)果指令stosb;所得結(jié)果以字節(jié)為單位存儲(chǔ)到數(shù)據(jù)段di指向的位置,di+1loop ad

7、ds;循環(huán)知道CX為零,CX-1mov ah,02h;以下為輸出加法結(jié)果mov cx,5adjust:mov dl,di-1; 共有 5位數(shù)循環(huán) 5次or dl,30h;二進(jìn)制數(shù)轉(zhuǎn)換成其相應(yīng)ASC碼dec di; 輸出下一位int 21h loop adjustMOV AH,4CHINT 21H;21號(hào)功能調(diào)用程序退出CODESENDSENDSTART輸入程序編譯成功以后,顯示如下圖:總 G:sasmbinDIVTemp.exe 5眨Press any key to continuE實(shí)驗(yàn)總結(jié):1、通過(guò)實(shí)驗(yàn),學(xué)會(huì)了使用匯編語(yǔ)言實(shí)現(xiàn)多位十進(jìn)制數(shù)的相加運(yùn)算。2、實(shí)驗(yàn)中應(yīng)注意,在聲明data的部分?jǐn)?shù)字

8、的順序和實(shí)際中數(shù)字的順序是相反的, 因?yàn)榇鎯?chǔ)器是從低位到高位存儲(chǔ)的。3、要為DATAS段指定兩個(gè)段寄存器DS和ES分別存放加數(shù)和被加數(shù),同時(shí)相加 結(jié)果也存放在ES段中。4、了解LODSB勺用法,每次循環(huán)后SI都會(huì)自動(dòng)加一,與此類似的STOS使用時(shí), 寄存器DI指向的地址也會(huì)自動(dòng)后移一位。5、通過(guò)實(shí)驗(yàn),我還了解了 ASCII碼到BCD碼運(yùn)算的轉(zhuǎn)變,以及運(yùn)算結(jié)果的 BCD 碼通過(guò)調(diào)整轉(zhuǎn)變成 ASCI碼存儲(chǔ)和顯示。實(shí)驗(yàn)三兩個(gè)數(shù)相乘實(shí)驗(yàn)?zāi)康模赫莆粘朔ㄖ噶畹挠梅▽?shí)驗(yàn)要求:實(shí)現(xiàn)一個(gè)多位十進(jìn)制數(shù)和一個(gè)一位十進(jìn)制數(shù)的乘法,被乘數(shù)和乘數(shù)均以ASCII碼形式存放在內(nèi)存中,結(jié)果顯示在屏幕上實(shí)驗(yàn)步驟:實(shí)驗(yàn)程序如下:D

9、ATASEGMENTADB'5' ,'7','4','1',3;被乘數(shù)BDB'7';乘數(shù)MDB6 DUPJO);6位字節(jié)型存儲(chǔ)單元SDB'31475*7=$'輸出的公式DATA ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV ES,AXCLD;將方向標(biāo)志寄存器DFF青零,指令LODSB口STOS中di,s做自增1的處理MOV SI,OFFSETA;A為源操作數(shù);B為目的操作數(shù)MOV DI,OFFSET

10、MMOV CX,5AND B,0FHMOV BYTE PTRDI,0L1: mov al,siLODSBAND AL,0FHMUL BAAMADD AL,DIAAA mov di, al inc diSTOSBMOV DI,AHinc siLOOP L1MOV DX,OFFSETSMOV AH,9INT 21HMOV CX,6L2: MOV DL,DIADD DL,30H MOV AH,02H;將ASC碼數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制形式; 乘數(shù)與被乘數(shù)相乘; 結(jié)果的存儲(chǔ)INT 21H;顯示所得數(shù)據(jù)DECDILOOP L2MOV AX,4CHINT 21HCODEENDSENDSTART實(shí)驗(yàn)結(jié)果如下圖所示:

11、K昂 GbinUV/gmp.eKe31475*7100774Press any ke to continue實(shí)驗(yàn)總結(jié):1、通過(guò)實(shí)驗(yàn)學(xué)會(huì)了,使用匯編語(yǔ)言完成相乘運(yùn)算。2、試驗(yàn)中通過(guò)設(shè)定CX的值控制循環(huán)的次數(shù)。3、 在LODSB和STOSB旨令中,SI和DI會(huì)每次自動(dòng)增加1。4、 在A串中,由于數(shù)據(jù)是按從低地址到高地址的順序存放的,所以 A DB '5','7','4','1',3其實(shí)表示的是 31475。5、程序的L2循環(huán)使得所存二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成相對(duì)應(yīng)的 ASCII碼,并通過(guò) DOS功能調(diào)用輸出。實(shí)驗(yàn)四字符匹配程序?qū)嶒?yàn)?zāi)康模赫莆沾?/p>

12、作指令的用法。實(shí)驗(yàn)要求:用串操作指令設(shè)計(jì)程序。實(shí)現(xiàn)在指定存儲(chǔ)區(qū)(長(zhǎng)度:100H)中尋找匹配字符,遇空格字符(20H)結(jié)束,顯示查找結(jié)果。實(shí)驗(yàn)步驟:實(shí)驗(yàn)程序如下:DATASEGMENTTISHI_1 DB OdH,OAH;Please input a character to search: $'TISHI_2DB 0DH,0AH;The string to be searched is:'STRINGDB10 DUPCA');20H;15DUPfB');'$'COUNT EQU $-STRING50 DB 0DH,0AH; FOUND! $

13、9;51 DB 0DH,0AH;NOT FOUND! $' CHAR DB ?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATAGO: MOV AX,DATAMOV DS,AXMOV ES,AXmov dx, offset TISHI_1 ;顯示字符串mov ah,09int 21HJmov ah,1;從鍵盤輸入數(shù)據(jù)int 21Hmov CHAR, al ;輸入數(shù)據(jù)保存JMOV DI,OFFSETSTRINGMOV CX,COUNTCLD;自增MOV AL,CHARREPNE SCASB ;字符串字節(jié)查找直到相等JZ FOUND;ZF=0時(shí)

14、跳至U FOUND旨令MOV DX,OFFSETS1JMP DSPLYFOUND:MOV DX,OFFSETS0 ;找至DSPLYM: OV AH,09H ;顯示INT 21Hmov dx,offset TISHI_2mov ah,09int 21HJMOV AH,4CHINT 21HCODEENDSEND GO實(shí)驗(yàn)總結(jié):1、程序中用到了三個(gè)DOS功能調(diào)用,分別是9號(hào)調(diào)用顯示字符串,1號(hào)調(diào)用從 鍵盤輸入字符和4CH調(diào)用終止程序。9號(hào)使用DX指向字符串首地址,1號(hào)結(jié) 果存在AL中。通過(guò)實(shí)驗(yàn),對(duì)DOS功能調(diào)有了更加深刻的認(rèn)識(shí)。2、 在對(duì)字符串的查找過(guò)程中,使用了 SCASB旨令,并且前面有REPN

15、Z該指令 表示在一直查找直到ZF=0即找到與AL寄存器相等的值為止。這個(gè)指令稍 微有些復(fù)雜,再加上前綴的變化,使其可以滿足不同的查找需要。3、程序中出現(xiàn)了 JMP指令。單獨(dú)的JMP指令為無(wú)條件轉(zhuǎn)移,不過(guò)JMP還常常與 標(biāo)志寄存器一起使用,使其功能更強(qiáng)大。如題目中的JZ指令表示ZF=1即相 等時(shí)轉(zhuǎn)移。實(shí)驗(yàn)五字符串匹配程序?qū)嶒?yàn)?zāi)康模赫莆仗崾拘畔⒌氖褂梅椒版I盤輸入信息的用法。 實(shí)驗(yàn)要求:編寫程序,實(shí)現(xiàn)兩個(gè)字符串比較。若相同,則顯示'MATCH,否則顯示'0 MATCH, 實(shí)驗(yàn)步驟:實(shí)驗(yàn)程序如下:DATASEGMENTSTRING1DB 'ABCDEFG$'C0UNT

16、1 EQU $-STRING1STRING2DB 'ABCDEDG$'COUNT2 EQU $-STRING250 DB ' MATCH$'51 DB ' NOT MATCH$'SHIFT DB 0DH,0AH:$'回車換行DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATAGO: MOV AX,DATAMOV DS,AXMOV ES,AXMOV DX,OFFSETSTRING1 ;顯示字符串 1MOV AH,09HINT 21HMOV DX,OFFSETSHIFT ;回車換行INT 21HMO

17、V DX,OFFSETSTRING2 ;顯示字符串 2INT 21HMOV DX,OFFSETSHIFTINT 21HMOV AL,COUNT1 ;首先比較字符串長(zhǎng)度是否相等MOV AH,COUNT2CMP AH,ALJNZ NMATCHMOV DI,OFFSETSTRING1 ;長(zhǎng)度相等比較內(nèi)容MOV SI,OFFSETSTRING2MOV CX,COUNT1CLD ;自增REPE CMPSB ; 一直比較直到不相等JZ MATCH;ZF=(相目等則跳轉(zhuǎn)NMATCH:MOV DX,OFFSETS1 ;NO MATCHJMP DSPLYMATCH:MOV DX,OFFSETS0 ;MATCHD

18、SPLYM: OV AH,09HINT 21HMOV AH,4CH;終止程序INT 21HCODEENDSEND GO實(shí)驗(yàn)總結(jié):1、本實(shí)驗(yàn)與上一個(gè)實(shí)驗(yàn)內(nèi)容類似,不過(guò)不同之處在于直接比較兩個(gè)已存在的字 符串內(nèi)容是否相等。2、程序設(shè)計(jì)中,為比較字符串是否相同,先對(duì)其長(zhǎng)度比較,若長(zhǎng)度不同則可以確定它們一定不相同。3、對(duì)字符串內(nèi)容比較時(shí),使用了 CMPSB旨令對(duì)字符串的每個(gè)字節(jié)進(jìn)行比較。 可 以看出,CMPSB指令需要用SI和DI分別指向兩個(gè)字符串的首地址,并且有 DF 控制方向,同時(shí)比較結(jié)果影響標(biāo)志位 ZF4、指令中實(shí)驗(yàn)的JMP和REPE旨令也都是重點(diǎn)。實(shí)驗(yàn)六從鍵盤輸入數(shù)據(jù)并顯示實(shí)驗(yàn)?zāi)康模赫莆战邮真I

19、盤數(shù)據(jù)的方法,并了解將鍵盤數(shù)據(jù)顯示時(shí)須轉(zhuǎn)換為ASCI碼的原理實(shí)驗(yàn)要求:編寫程序,將鍵盤接收到的四位十六進(jìn)制數(shù)轉(zhuǎn)換為等值的二進(jìn)制數(shù),并顯示在屏 幕上。若輸入的不是0 F間的數(shù)字,則顯示出錯(cuò)信息,并要求重新輸入。實(shí)驗(yàn)步驟:實(shí)驗(yàn)程序如下:CRLF MACRO ;回車換行MOV AH,2MOV DL,0DHINT 21HMOV AH,2MOV DL,0AHINT 21HENDMDATA SEGMENTS0 DB 4 DUP(?)S1 DB 'Please input Hex numbers: $'S2DB 'The corresponding bin numbers: $

20、9;S3DB 'Input error! Please input again$'DATA ENDS CODE SEGMENTASSUMECS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AXCRLF;回車換行LEA DX,S1 ;顯示字符串 S1MOV AH,09HINT 21HCRLFLEASI,S0LLL:MOV CX,4 ;循環(huán) 4次KKK:MOV AH,1 ;從鍵盤輸入INT 21HMOV SI,ALCMP AL,30HJB ERROR;輸入比'小則跳到ERR0指令CMP AL,39HJA ERR0R1;輸入比''

21、;大則跳到ERROR繼續(xù)判斷JMP END1ERROR1C: MP AL,40H;'A'看空間JB ERROR;比'小CMP AL,46H;'F'JA ERROR;比'大JMP END1JERROR: CRLFLEADX,S3MOV AH,09HINT 21H ; 輸入字符串 S3CRLFJMP LLLEND1:INC SI ;控制16進(jìn)制數(shù)的輸入LOOP KKKCRLFLEADX,S2MOV AH,09HINT 21HCRLFMOV CX,4MOV SI,OFFSETS0MMM: MOV AL,BYTE PTRSICMP AL,3AHJB EN

22、D2JSUBAL,07HEND2:SUBAL,30H mov bl, alPUSHCXMOV cl,4shl bl,clmov cx,04hNNN: rol bl,1;16進(jìn)制轉(zhuǎn)換成 2進(jìn)制數(shù)MOV DL,blAND DL,01hADD DL,30HMOV AH,2INT 21HLOOP NNNPOPCXCRLFINC SILOOP MMMMOV AX,4CHINT 21HCODE ENDSENDSTART實(shí)驗(yàn)總結(jié):1、本實(shí)驗(yàn)程序可以分為兩個(gè)部分。第一部分是對(duì)輸入數(shù)據(jù)的判斷,第二部分是 將輸入的有效數(shù)據(jù)轉(zhuǎn)換成其二進(jìn)制形式并輸出。 再判斷時(shí),09或是AF分開(kāi) 判斷,并且由于程序原因af不可以被識(shí)

23、別,也會(huì)被當(dāng)做無(wú)效數(shù)據(jù)要求重新輸 入。第二部分將16進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)。2、 實(shí)驗(yàn)程序中出現(xiàn)了 CMP指令,并結(jié)合JMP指令的JB和JA當(dāng)目的操作數(shù)比 源操作數(shù)大時(shí),JA指令發(fā)生跳轉(zhuǎn),小時(shí)則JB跳轉(zhuǎn)。實(shí)驗(yàn)七字符和數(shù)據(jù)的顯示程序?qū)嶒?yàn)?zāi)康模赫莆兆址蛿?shù)據(jù)的顯示方法實(shí)驗(yàn)要求:顯示信息“輸入字符串,回車或空格結(jié)束”,回車或空格后顯示輸入字符串 總字節(jié)數(shù),數(shù)字字符(1-9)及非數(shù)字字符數(shù)。實(shí)驗(yàn)步驟:實(shí)驗(yàn)程序如下:DSEGSEGMENTAA DB'INPUT STRING,THE END FLAG IS $'EE DB 0DH,0AH'$'BB DB 100,?,100

24、DUPT)CC DB 0DH,0AH?,?,'$'DSEGENDSSSEG5EGMENTSTACKDB 234 DUR0)SSEGENDSCSEG5EGMENTASSUMECS:CSEG,SS:SSEG,DS:DSEGBEGIN: MOV AX,DSEGL1:MOV DS,AXMOV BL,0MOV DX,OFFSETAAMOV AH,09HINT 21HLEADX,BBMOV AH,0AHINT 21HMOV SI,0MOV CH,0MOV CL,BB+1MOV AL,BBSI+2CMP AL,39HJA NEXTCMP AL,30HJB NEXTINC BLNEXT: IN

25、CSIL2:LOOP L1 LEADX,EE MOV AH,09H INT 21H LEADX,BB+2MOV AH,09HINT 21HMOV BH,BL MOV CL,4 SHRBH,CL CMP BH,10 JB L2 ADD BH,07 ADD BH,30H MOV CC+2,BH AND BL,0FH CMP BL,10 JB L3ADD BL,07L3:ADDBL,30HMOV CG3,BL LEADX,CCMOV AH,09HINT 21HMOV AH,4CHINT 21HCSEG ENDSEND BEGIN實(shí)驗(yàn)八排序?qū)嶒?yàn)實(shí)驗(yàn)?zāi)康模赫莆沼脜R編語(yǔ)言編寫氣泡排序程序的思路和方法。實(shí)驗(yàn)

26、要求:從首地址為1000H內(nèi)存區(qū)開(kāi)始存放50個(gè)數(shù),設(shè)計(jì)程序?qū)⑦@些數(shù)由小到大排序, 排序后的數(shù),仍放在原區(qū)域中。實(shí)驗(yàn)步驟:實(shí)驗(yàn)程序如下:DATASSEGMENTDATADB 50,?,50 DUR?)MESSAGEDB' Please in put numbers:$'MESSAGE2DB'Result:$'MESSAGED 13,10,'$'DATASENDSSTACK SEGMENTSTACK1DB 200 DUP(?)STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKS START:M

27、OV AX,DATASMOV DS,AX MOV AX,STACKS MOV SS,AX LEADX,MESSAGE1 MOV AH,09H INT 21H MOV AH,0AH LEADX,DATA INT 21H LEADX,MESSAGE3 MOV AH,09H INT 21H MOV CL,DATA+1 DECCLLOOP1P: USHCXMOV BX,0LOOP2:MOV AL,DATA+2BX CMP AL,DATA+2BX+1 JL NEXT XCHGAL,DATA+2BX+1 MOV DATA+2BX,ALNEXTI:NCBXLOOP LOOP2POPCX;輸入提示語(yǔ);回車換行

28、;設(shè)置外循環(huán)次數(shù);保存外循環(huán)次數(shù);備份;相鄰兩個(gè)數(shù)比較;相鄰兩個(gè)數(shù)交換;外循環(huán)次數(shù)出棧;提示語(yǔ)LOOP LOOP1 LEADX,MESSAGE2 MOV AH,09H INT 21HLEABXQATA2MOV CLQATA1MOV DI,0DISPLAWOV DL,BX+DI;輸出顯示MOV AH,02HINT 21HINC DILOOP DISPLAYMOV AH,4CH;返回 DOSINT 21HCODESENDSENDSTART實(shí)驗(yàn)九 8255芯片應(yīng)用實(shí)驗(yàn)?zāi)康模喝适煜?255芯片的應(yīng)用。2掌握控制字等的使用。實(shí)驗(yàn)要求:將8255的某個(gè)口作為輸入口,接8個(gè)開(kāi)關(guān)。8255的某個(gè)口作為輸出口,

29、接由74LS245驅(qū)動(dòng)的發(fā)光二極管,輸出口的8位數(shù)據(jù)線接74LS245的輸入引腳,74LS245 輸出引腳接發(fā)光二極管的負(fù)極,發(fā)光二極管的正極通過(guò)限流電阻接+5V。編程,將輸入口的數(shù)據(jù)輸出,寫入輸出口。運(yùn)行程序后,撥動(dòng)一下開(kāi)關(guān),開(kāi)關(guān)接地,則發(fā)光二極管亮。撥動(dòng)一下開(kāi)關(guān),開(kāi)關(guān)接 +5V則二極管滅。實(shí)驗(yàn)匯編源程序如下:data segme ntdata ends stack segment stack sta dw 50 dup(?) top equ length sta stack endscode segmentassume cs:code,ds:data,es:data,ss:stack st

30、art:mov dx,203h mov al,90h ;命令字 out dx,al xor ax,axloop1: mov dx,200h in al,dx ;讀取 A 端口信息 mov dx,202h out dx,al ;輸出到 C 端口 jmp loop1code ends end start實(shí)驗(yàn)總結(jié):1、本實(shí)驗(yàn)使用通用并行接口芯片 8255進(jìn)行控制 8個(gè)二極管亮滅。其中 8255由3個(gè) 端口,A、B C。實(shí)驗(yàn)中使用A作為輸入端,C作為輸出端,B也被定義為輸出 端但并未使用。2、芯片端口命令字地址為203h,超過(guò)8位要使用dx。用out指令輸出命令字指定 端口 A輸入方式0,端口 B、C

31、輸出方式0。3、端口 C有專門的控制字,但是本題中不需要使用。只是把從 A端口有開(kāi)關(guān)狀態(tài) 控制的信號(hào)輸出到C端口并到二極管,控制其亮和滅。實(shí)驗(yàn)十 交通燈實(shí)驗(yàn)?zāi)康模菏煜な褂?8255 芯片。實(shí)驗(yàn)原理: 應(yīng)了解交通燈的運(yùn)行規(guī)律,初始狀態(tài)全為紅。根據(jù)流程圖編寫使交通燈正常工作的程序。74LS240驅(qū)動(dòng)雙色燈發(fā)光,74LS240俞出端接雙色燈,輸入端DG1DR4 數(shù)據(jù)最低位DG1,最高位DR4DG1DR4可以接8255某個(gè)口,將數(shù)據(jù)送到74LS240, 驅(qū)動(dòng)雙色燈放光。74LS240的2,4,6,8腳是低四位數(shù)據(jù)輸入腳,11,13,15, 17是高四位數(shù)據(jù)輸入腳。通過(guò) 8255某個(gè)口送 0或 1數(shù)據(jù)時(shí)

32、應(yīng)返送,在綠燈閃三 次之前,先滅綠燈。實(shí)驗(yàn)匯編源程序如下:data segmentdata endsstack segmentsta dw 50 dup(?)top equ length stastack endscode segment assume cs:code,ds:data,es:data,ss:stackstart:mov dx,203hmov al,90h ; A 輸入 BC輸出out dx,almov al,0fhmov dx,202hout dx,alcall delay1;延時(shí)loop1:mov al,96h ;10010110 南北綠,東西紅mov dx,202hout

33、dx,alcall delay1mov al,9fh ;10011111 東西紅 (滅綠)mov dx,202hout dx,alcall delay2mov al,96h ;10010110 南北綠,東西紅 (亮綠)mov dx,202hout dx,alcall delay2mov al,9fh ;10011111 東西紅 (滅綠)mov dx,202hout dx,alcall delay2mov al,96h ;10010110 南北綠,東西紅 (亮綠 ) mov dx,202hout dx,alcall delay2mov al,9fh ;10011111 東西紅 (滅綠)mov d

34、x,202hout dx,alcall delay2mov al,96h ;10010110 南北綠,東西紅 (亮綠 )mov dx,202hout dx,alcall delay2mov al,06h ;00000110 南北黃,東西紅mov dx,202hout dx,alcall delay1mov al,69h ;01101001 南北紅,東西綠 (綠亮)mov dx,202hout dx,alcall delay1mov al,6fh ;01101111南北紅 (綠滅)mov dx,202hout dx,alcall delay2mov al,69h ;01101001 南北紅,東西

35、綠 (綠亮 )mov dx,202hout dx,alcall delay2mov al,6fh ;01101111南北紅 (綠滅)mov dx,202hout dx,alcall delay2mov al,69h ;01101001 南北紅,東西綠 (綠亮 )mov dx,202hout dx,alcall delay2mov al,6fh ;01101111南北紅 (綠滅)mov dx,202hout dx,alcall delay2mov al,69h ;01101001 南北紅,東西綠 (綠亮 )mov dx,202hout dx,alcall delay2mov al,99h ;10011001 南北紅,東西黃mov dx,202hout dx,alcall delay1jmp loop1 delay1 proc ;延遲

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論