軟硬件實驗報告(微機原理與接口技術(shù)上機實驗)_第1頁
軟硬件實驗報告(微機原理與接口技術(shù)上機實驗)_第2頁
軟硬件實驗報告(微機原理與接口技術(shù)上機實驗)_第3頁
軟硬件實驗報告(微機原理與接口技術(shù)上機實驗)_第4頁
軟硬件實驗報告(微機原理與接口技術(shù)上機實驗)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

.實驗一 實驗環(huán)境熟悉與簡單程序設(shè)計實驗?zāi)康模?) 掌握DEBUG調(diào)試程序的使用方法。(2) 掌握簡單程序的設(shè)計方法。實驗內(nèi)容編程將BH中的數(shù)分成高半字節(jié)和低半字節(jié)兩部分,把其中的高半字節(jié)放到DH中的低4位(高4位補零),把其中的低半字節(jié)放到DL中的低4位(高4位補零)。如:BH=10110010B則運行程序后DH=00001011BDL=00000010B實驗準(zhǔn)備(1) 熟練掌握所學(xué)過的指令。(2) 根據(jù)實驗內(nèi)容,要求預(yù)先編好程序。實驗步驟(1) 利用DEBUG程序輸入、調(diào)試程序。(2) 按下表要求不斷地修改BH的內(nèi)容,然后記錄下DX的內(nèi)容。 BH100111011101100100111111DHDL實驗報告(1) 給出程序清單。(2) 詳細說明程序調(diào)試過程。程序:CODE SEGMENT START : MOV BH,00111111B MOV AL,BH MOV CL,4 SHR AL,CL MOV DH,AL MOV AL,BH AND AL,00001111B MOV DL,AL MOV CL,0CODE ENDS END START實驗二 簡單程序設(shè)計實驗?zāi)康模?) 掌握DEBUG調(diào)試程序的使用方法。(4) 掌握簡單程序的設(shè)計方法。實驗內(nèi)容試編寫一個匯編語言程序,要求實現(xiàn)功能:在屏幕上顯示:Hello worldMy name is Li Jianguo參考程序如下:(有錯)data segment out1 db Hello world ax db My name is Li Jianguo data ens code segment assume cs:code;ds:data lea dx,out1mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h mov dl,0dh moo ah,2 int 21h lea dx,ax mov ah, int 21h code ends實驗步驟(3) 利用IDE86程序輸入、調(diào)試程序。實驗報告(3) 給出正確的程序清單。(4) 詳細說明程序調(diào)試過程。程序:DATAS SEGMENT STRING1 DB 13,10,Hello World!,13,10,$;13為回車,10為換行,$為結(jié)束符 STRING2 DB 13,10,My name is LI Jianguo,13,10,$ DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX LEA DX,STRING1 MOV AH,9 INT 21H LEA DX,STRING2 MOV AH,9 INT 21H MOV AH,4CH INT 21HCODES ENDS END START實驗三 循環(huán)程序設(shè)計實驗?zāi)康模?) 掌握在PC機上建立、連接、調(diào)試和運行8086匯編語言程序的過程。(2) 掌握數(shù)據(jù)傳送和算術(shù)運算指令的使用方法。(3) 了解部分DOS系統(tǒng)調(diào)用的使用方法。實驗內(nèi)容將兩個5位十進制數(shù)相加。要求被加數(shù)和加數(shù)均以ASCII碼形式各自順序存放在以DATA1和DATA2為首地址的5個內(nèi)存單元中(低位在前),結(jié)果送回DATA1處。另外,程序利用DOS的9號調(diào)用功能完成將被加數(shù)、加數(shù)和最后的和在顯示器上的顯示。參考程序如下:data segmentdata1 db 32h, 38h, 30h, 36h, 37h,$data2 db 33h, 35h, 33h, 38h, 32h, $data endsstac segmentsta db 100 dup (?)stac endscode segmentassume cs:code, ds:data, ss:stac, es:datastart proc farpush dsxor ax, axpush axmov ax, datamov ds, axmov es, axmov ah, 9mov dx, offset data1int 21hmov ah, 2mov dl, +int 21hmov ah, 9mov dx, offset data2int 21hmov si, offset data1mov di, offset data2mov bx, 5push bxpush siconv1: and byte ptrsi+bx-1, 0fhand byte ptrdi+bx-1, 0fhdec bxjnz conv1mov cx, 5xor ax, axadd1: mov al, si+4mov bl, di+4adc al, blaaamov si+4, aldec sidec diloop add1pop sipop bxconv2: or byte ptrsi+bx-1, 30hdec bxjnz conv2mov ah, 2mov dl, =int 21hmov ah, 9mov dx, siint 21hretstart endpcode endsend start實驗準(zhǔn)備(1)仔細閱讀本書第一章,掌握源程序的編輯、匯編、連接和調(diào)試方法。(2)閱讀教材,熟練掌握數(shù)據(jù)傳送和算術(shù)運算指令的使用方法。(3)閱讀有關(guān)DOS系統(tǒng)調(diào)用的參考書,掌握1號調(diào)用、2號調(diào)用、7號調(diào)用、8號調(diào)用和9號調(diào)調(diào)用的使用方法。(4) 仔細閱讀參考程序。實驗步驟(1) 首先用IDE86軟件輸入?yún)R編語言源程序,然后對此源程序進行匯編,再用LINK程序進行連接,最后執(zhí)行。如果程序運行結(jié)果不正確: 重復(fù)以上過程,并記錄下修改經(jīng)過,直至程序正確運行為止。 在步驟(1)中,如果程序運行結(jié)果不正確,可使用DEBUG程序進行動態(tài)調(diào)試,直到程序正確運行為止。(2) 利用DEBUG程序修改被加數(shù)和加數(shù),運行程序,并記錄下程序運行結(jié)果。將被加數(shù)修改為:31H,32H,33H,34H,35H將加數(shù)修改為:35H,34H,33H,38H,39H程序運行后,請照實寫出屏幕顯示結(jié)果。(3) 修改你編寫的或前面給出的參考程序。利用DOS系統(tǒng)功能完成5位被加數(shù)和加數(shù)的鍵盤輸入,程序完成加法后,輸出相加的和,記錄下程序運行過程及結(jié)果。實驗四 子程序及分支結(jié)構(gòu)程序設(shè)計實驗?zāi)康模?) 掌握分支程序及子程序設(shè)計的方法。(2) 進一步熟悉匯編語言源程序的上機過程。實驗內(nèi)容設(shè)有10個學(xué)生的成績分別為:76、69、84、90、73、88、99、63、100、80,試編制一個程序統(tǒng)計60到69、70到79、80到89、90到99和100分的人數(shù),分別放到五個存儲單元中,然后在屏幕上顯示。統(tǒng)計部分和顯示部分要求用子程序?qū)崿F(xiàn)。要求用堆棧進行參量傳遞。實驗準(zhǔn)備(1) 認真閱讀教材,掌握分支程序的編程方法。(2) 繪制程序流程圖,編寫程序。實驗步驟(1) 完成匯編語言源程序的編輯和連接過程。(2) 利用DEBUG進行程序調(diào)試和運行。(3) 撰寫實驗報告。DATAS SEGMENT SCORE db 76,69,84,90,73,88,99,63,100,80 STR1 db THE NUMBER OF 100 IS: ,$ STR2 db THE NUMBER OF 90-100 IS: ,$ STR3 db THE NUMBER OF 80-90 IS: ,$ STR4 db THE NUMBER OF 70-80 IS: ,$ STR5 db THE NUMBER OF 60-70 IS: ,$ COUNT EQU 10 GRADEA db ? GRADEB db ? GRADEC db ? GRADED db ? GRADEE db ?DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX LEA BX,SCORE MOV CX,COUNTA1:MOV AL,BX CALL COMPARE INC BX LOOP A1 CALL OUTPUT MOV AH,4CH INT 21H COMPARE PROC PUSH BX CMP AL,100 JE L1 CMP AL,90 JAE L2 CMP AL,80 JAE L3 CMP AL,70 JAE L4 CMP AL,60 JAE L5L1:INC GRADEA JMP DONEL2:INC GRADEB JMP DONEL3:INC GRADEC JMP DONEL4:INC GRADED JMP DONEL5:INC GRADEE JMP DONEDONE: POP BX RET COMPARE ENDP OUTPUT PROC LEA DX,STR1 MOV AH,9 INT 21H ADD GRADEA,30H MOV DL,GRADEA MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H LEA DX,STR2 MOV AH,9 INT 21H ADD GRADEB,30H MOV DL,GRADEB MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H LEA DX,STR3 MOV AH,9 INT 21H ADD GRADEC,30H MOV DL,GRADEC MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H LEA DX,STR4 MOV AH,9 INT 21H ADD GRADED,30HMOV AH,2 MOV DL,GRADED INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H LEA DX,STR5 MOV AH,9 INT 21H ADD GRADEE,30H MOV DL,GRADEE MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H RET OUTPUT ENDPCODES ENDS END START實驗五 簡單I/O口擴展實驗一、實驗?zāi)康?1、 利用74LS273,74LS244擴展 I/0 。 2、 掌握用鎖存器、三態(tài)門擴展簡單的并行輸入、輸出口的方法。二、實驗內(nèi)容1熟悉74LS273,74LS244的應(yīng)用接口方法。2掌握用鎖存器(74LS273)、三態(tài)門擴展簡單的并行輸入。3擴展的方法:a邏輯電平開關(guān)(CZ1)作為74LS244(U10)的輸入。b發(fā)光二極管(CZ2)作為74LS273的輸出,c編寫程序,使得邏輯電平開關(guān)的輸入狀態(tài)從發(fā)光二極管上顯示出來。三、實驗原理圖:四、實驗步驟1、 連線: a. 將74LS244 ( IC25)的輸入SI0SI7分別與邏輯電平開關(guān)電路的K1K8相連。b. 從I/O地址片選信號CS0CS7中任選一個與74LS244的片選信號相連。(例如CS0)。c. 將74LS273(IC24)的輸出S00S07分別與發(fā)光二極管電路的L1L8相連。d. 從I/O地址片選信號CS0CS7中任選一個與74LS273的片選信號(CSU8)相連。(如CS1)。 2、 打開計算機上已安裝的DB86軟件,參照.軟件的使用a.編寫程序。b.編譯連接。c.調(diào)試程序。d.單步運行。e.如果調(diào)試通過后,全速運行,觀察實驗結(jié)果。 3、 全速運行后拔動開關(guān),其變化反應(yīng)的到發(fā)光二極管上。當(dāng)作為信號輸入量的開關(guān)任意位拔上時,對應(yīng)的發(fā)光二極管點亮、拔下時熄滅。 4. 編寫實驗報告五、實驗說明 用邏輯電平開關(guān)(CZ1)作為74LS244 (IC25) 的輸入, 用發(fā)光二極管(CZ2)作為 74LS273 (IC24) 的輸出。編寫程序,使得邏輯電平開關(guān)的輸入狀態(tài)從發(fā)光二極管上顯示出來。邏輯電平開關(guān)拔上時為5V,拔下時為0V。發(fā)光二極管輸入1為亮、0為滅。從74LS244讀入的數(shù)據(jù)后從輸出口輸出。在8086CPU 中有四個16位通用數(shù)字寄存器,其中僅 AX( AH, AL) 有輸入輸出功能。本實驗通過輸入語句( IN ),將開關(guān)量輸入存到 AL 中,在通過輸出語句 ( OUT ) 將 AL 值輸出到發(fā)光二極管,從而實現(xiàn)開關(guān)控制發(fā)光二極管。當(dāng)開關(guān)量換作其他形式控制輸入,發(fā)光二極管換作其他形式控制對象,輸入數(shù)據(jù)后對輸入量做一定的運算處理再輸出時,就實現(xiàn)了計算機控制,同時這些輸入輸出點均為I/O 擴展口,當(dāng)輸入輸出點較多時,這種擴展十分必要六、程序框圖結(jié)束AL從CS1口地址單元輸AX讀輸入口CS0單元值至AX初 始 化開 始實驗六 8255并行口實驗一、實驗?zāi)康睦?8255A 實現(xiàn)并行接口實驗二、實驗內(nèi)容1. 掌握8255A的編程原理。2. 熟悉計算機并行接口的使用方法三、實驗原理圖:四、實驗步驟:1. 連線:a 8255A(IC37)的PA0PA7分別與邏輯電平開關(guān)電路的 K1-K8 相連。b PB0PB7 分別與發(fā)光二極管電路的L1L8相連。c 從CS0CS7中任選一個與8255A的片選( CS8255)端相連。(如CS0)其他線路均已連好。 2軟件: 與實驗一相同3編寫實驗程序。 五、實驗說明: 邏輯電平開關(guān)撥上時5V,撥下時0V;發(fā)光二極管輸入為1時亮,輸入為0時滅。撥動開關(guān),觀察發(fā)光二極管(CZ2)的變化。當(dāng)開關(guān)(CZ1)某位撥上時,對應(yīng)的發(fā)光二極管點亮,撥下時熄滅。 8255A是并行接口電路中比較常用的一種芯片, 8255A有三個8位的輸入輸出端口,由于內(nèi)部電路原因,通常將A端口(PA0PA7)作輸入用,B端口(PB0PB7)作輸出用,C端口作輔助控制用,本實驗也是如此。本實驗中,輸入輸出都比較簡單,控制相對簡單,因此可選擇在基本輸入輸出方式(方式0,即輸入輸出設(shè)置與上相同)下工作。在設(shè)計程序時,先設(shè)置8255的工作方式(控制端口地址為04A6H),然后循環(huán)讀PA端口開關(guān)狀態(tài)(地址為04A0H),輸出至PB端口發(fā)光二極管(地址為04A2H)。A_port EQU 04A0HB_port EQU 04A2HC_port EQU 04A4Hctrc_port EQU 04A6HCODES SEGMENT ASSUME CS:CODESorg 100hSTART: mov dx,ctrc_port mov al,90h out dx,al add1: mov dx,04a0h in al,dx mov dx,B_port out dx,al jmp add1 MOV AH,4CH INT 21HCODES ENDS END START六、程序框圖開始設(shè)置8255工作方式讀A口從B口輸出結(jié)束實驗七 8253定時器/計數(shù)器接口實驗一、實驗?zāi)康?掌握8253定時器的編程原理,用示波器觀察不同模式下的輸出波形。二、實驗內(nèi)容 編程將計數(shù)器0,1,2設(shè)置為模式2(分頻方式),并觀察其輸出波形。三、實驗原理圖四、實驗步驟1、 連線:a 從CS0CS7中任選一個(如CS0)與8253的片選信號(CS8253)相連,8253的OUT0與CLK2相連,bOUT2與發(fā)光二極管 L1相連,c. OUT1接示波器,其他未提信號均已接好或無需連接。2. 軟件:同實驗一。3. 編寫實驗報告。五、實驗說明8253的時鐘端CLK0,CLK1均為1/8 M。CLK2的時鐘由OUT0來控制。8253位8086系統(tǒng)中常用的可編程定時器/計數(shù)器,內(nèi)部有三個相互獨立的計數(shù)器,發(fā)別稱為計數(shù)器0,計數(shù)器1、計數(shù)器2。8253有多種工作模式,其中模式2為方波方式。當(dāng)給定初值后,自動將所設(shè)周期平分為兩個部分,前一部分保持為高電平“1”,后一部分保持為低電平“0”,輸出為一方波。CLK0、CLK1的頻率均為1M/8,設(shè)計數(shù)器0的初值為0F24H(十進制為62500)時,方波周期為0.5s。在計數(shù)器2中設(shè)置不同的初值2n時,可的周期n0.5s的方波,n的最大值為7FFFH(十進制為32767)時,周期最長為16383.5s(4小時33分3.5秒),此時的初值為7FFEH。因此,采用兩級計數(shù)疊加后,輸出周期范圍可大幅度提高。如能合理設(shè)置初值,這種廣域范圍的周期設(shè)定在實際控制中非常有用。CODES SEGMENT ASSUME CS:CODES ORG 100H START:MOV AL,00110110BMOV DX,04A6HOUT DX,ALMOV AX,750MOV DX,04A0HOUT DX,ALMOV AL,AHOUT DX,ALMOV AL,10110110BMOV DX,04A6HOUT DX,ALMOV AX,1000MOV DX,04A4HOUT DX,ALMOV AL,AHOUT DX,ALMOV AL,01110110BMOV DX,04A6HOUT DX,ALMOV AX,750MOV DX,04A2HOUT DX,ALMOV AL,AHOUT DX,ALCODES ENDS END START六、程序框圖開始寫計數(shù)器0方式控制字寫計數(shù)器0計數(shù)常數(shù)寫計數(shù)器1方式控制字寫計數(shù)器1計數(shù)常數(shù)寫計數(shù)器2方式控制字寫計數(shù)器2計數(shù)常數(shù)空操作 實驗八 A/D實驗一、 實驗?zāi)康氖煜/D轉(zhuǎn)換的基本原理,掌握ADC0809的使用方法。二、實驗內(nèi)容 按查詢方式采樣三路A/D轉(zhuǎn)換數(shù)據(jù),用簡單輸入口(U10)查詢EOC信號。每循環(huán)一次0,1,2通道各采樣一次。采樣結(jié)果是0通道放入CX中,CL有效,1通道放入BX中,BL有效,2通道放入AX中AL有效。三、實驗原理圖三、實驗步驟1、 連線:a. 將可變電位器KB1,KB2,KB3分別與ADC0809的IN0、IN1、IN2相連。b. 從CS0CS3中任選一個(如CS1)與ADC0809的片選端相連。c. 將ADC0809的EOC與IC25(74LS244)的SI0相連。d. 從CS0CS7中任選一個(如CS1)與U10的片選端相連。2、 軟件: 同實驗一。3、 編寫實驗報告。四、實驗說明1、 實驗電路中啟動信號START與地址鎖存信號相連,所以啟動A/D轉(zhuǎn)換的方法為: MOV DX ,PADC ;PADC是ADC0809的端口地址OUT AL, DX ;發(fā)片選及IOW信號,這是0通道 ;啟動1通道時,DX應(yīng)加1程序:CODE SEGMENT ASSUME CS:CODEORG 100HSTART:MOV DX,04A0H OUT DX,AL XOR AH,AHDAC:MOV DX,04B0H IN AL,DX TEST AL,01H JZ DAC MOV DX,04A0H IN AL,DX MOV CL,AL JMP DACCODE ENDS END START(此處設(shè)置斷點)開始DX-0 通道啟動地址啟動A/D通道0讀EOC信號至AX,即從CS1單元讀,最低位為1有效AX AND 1HAX=0讀A/D轉(zhuǎn)換結(jié)果,存入CX通道啟動地址加1啟動A/D通道1讀EOC信號至AXAX AND 1HAX=0讀A/D轉(zhuǎn)換結(jié)果,存入BX通道啟動地址加1啟動A/D通道2讀EOC信號至AXAX AND 1HAX=0讀A/D轉(zhuǎn)換結(jié)果,存入CX五、程序框圖實驗九 DA實驗一、實驗?zāi)康?熟悉數(shù)模轉(zhuǎn)換的基本原理,掌握DAC0832

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論