微機(jī)原理報告_第1頁
微機(jī)原理報告_第2頁
微機(jī)原理報告_第3頁
微機(jī)原理報告_第4頁
微機(jī)原理報告_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第一部分 接口實驗實驗一 使用ADC0809的A/D轉(zhuǎn)換實驗一、實驗?zāi)康?加深理解逐次逼近法模數(shù)轉(zhuǎn)換器的特征和工作原理,掌握ADC0809的接口方法以及A/D輸入程序的設(shè)計和調(diào)試方法。二、實驗步驟 1、正確連接好實驗線路 2、理解實驗原理 3、仔細(xì)閱讀,弄懂實驗程序 4、安裝軟件三、實驗結(jié)果 打開實驗源文件:在文件(FILE)欄目下選擇打開(OPEN),在本軟件所在的安裝目錄中8HASM子目錄下選擇源程序,如選H0809.ASM,屏幕上出現(xiàn)源文件窗口)。 編譯、連接并裝載目標(biāo)文件:點擊調(diào)試圖標(biāo),對當(dāng)前源文件窗口內(nèi)的源文件進(jìn)行編譯、連接并裝載到實驗板的RAM中。目標(biāo)文件裝載起始地址默認(rèn)為源文件

2、中ORG定義的程序段起始地址。在反匯編窗口內(nèi)顯示剛才裝入的程序,并有一紅色小箭頭指示在起始程序行上。 運行程序:點擊運行圖標(biāo),在數(shù)碼管上應(yīng)顯示“0809XX”。 調(diào)節(jié)電位器WD1,以改變模擬電壓值,顯示器上會不斷顯示新的A/D轉(zhuǎn)換結(jié)果。用ADC0809做A/D轉(zhuǎn)換,其模擬量與數(shù)字量對應(yīng)關(guān)系的典型值為+5VFFH,2.5V80H,0V00H。實驗結(jié)果如圖所示,實驗成功。實驗二 使用DAC0832的D/A轉(zhuǎn)換實驗(一)一、實驗?zāi)康?熟悉DAC0832數(shù)模轉(zhuǎn)換器的特性和接口方法,掌握D/A 輸出程序的設(shè)計和調(diào)試方法。二、實驗步驟 1 、 根據(jù)原理圖正確連接好實驗線路 2 、 正確理解實驗原理 3 、

3、 運行實驗程序 用示波器測量DOUT插孔,應(yīng)有方波輸出,方波的周期約為1ms。 三、實驗結(jié)果用示波器測量DOUT插孔,應(yīng)有方波輸出,方波的周期約為1ms。 實驗結(jié)果如圖所示,實驗成功。實驗三 使用DAC0832的D/A轉(zhuǎn)換實驗(二)一、實驗?zāi)康倪M(jìn)一步掌握數(shù)/模轉(zhuǎn)換的基本原理。二、實驗步驟 1、 根據(jù)原理圖正確連接好實驗線路。 2、 運行實驗程序三、實驗結(jié)果用示波器測量DOUT插孔,應(yīng)有鋸齒波輸出。實驗結(jié)果如圖所示,實驗成功。實驗四 8255A可編程并行口實驗(一)一、實驗?zāi)康?1、掌握并行接口芯片8255A和微機(jī)接口的連接方法。 2、掌握并行接口芯片8255A的工作方式及其編程方法。二、實驗步

4、驟 1、按實驗圖連好線路。 2、運行實驗程序,撥動K18,L0L7會跟著亮滅。三、實驗結(jié)果 運行實驗程序,撥動K18,L0L7會跟著亮滅。實驗結(jié)果如圖所示,實驗成功。實驗五 8253A定時/計數(shù)器實驗一、實驗?zāi)康?學(xué)習(xí)8253A可編程定時/計數(shù)器與8088CPU的接口方法;了解8253A的工作方式; 掌握8253A在各種方式下的編程方法。二、 實驗步驟 1、按圖連好實驗線路 2、 運行實驗程序 3、用示波器測量8253A的OUT2輸出插孔,應(yīng)有頻率為1KHZ的方波輸出,幅值04V。三、實驗結(jié)果實驗結(jié)果如圖所示,實驗成功。實驗六 使用8259A的單級中斷控制實驗一、實驗?zāi)康?1、掌握中斷控制器8

5、259A與微機(jī)接口的原理和方法。 2、掌握中斷控制器8259A的應(yīng)用編程。二、 實驗步驟 1、按圖62連好實驗線路 2、 運行實驗程序 在數(shù)碼管上顯示“82591”。 3、 按AN按鍵,每按一次產(chǎn)生一次中斷,在顯示器左邊一位顯示中斷次數(shù), 滿5次中斷,顯示器顯示“8259 good”。三、實驗結(jié)果正確連接線后,數(shù)碼管顯示825901,按AN后,顯示器沒有變化。反復(fù)分析后覺得實驗沒有錯誤,可能是實驗板IRQ3插孔損壞。實驗七 小直流電機(jī)調(diào)速實驗一、實驗?zāi)康?1、 掌握直流電機(jī)的驅(qū)動原理。 2、了解直流電機(jī)調(diào)速的方法。二、實驗步驟 1、確認(rèn)連線正確性。 2、從起始地址開始連續(xù)運行程序,觀察直流電機(jī)

6、的轉(zhuǎn)速。三、實驗結(jié)果實驗結(jié)果如圖所示,實驗成功。實驗八 用D/A、A/D實驗閉環(huán)測試一、實驗步驟1、加深理解逐次逼近法模數(shù)轉(zhuǎn)換器的特征和工作原理,掌握ADC0809的接口方法以及A/D輸入程序的設(shè)計和調(diào)試方法。2、熟悉DAC0832數(shù)模轉(zhuǎn)換器的特性和接口方法,掌握D/A 輸出程序的設(shè)計和調(diào)試方法。二、實驗步驟1)正確理解實驗原理。2)連接好實驗線路。3)運行實驗程序,觀察運行結(jié)果。三、實驗結(jié)果實驗結(jié)果如圖所示,實驗成功。實驗九 用0832和8255實現(xiàn)對直流電機(jī)的調(diào)速控制一、實驗?zāi)康?1、掌握直流電機(jī)的驅(qū)動原理。 2、了解直流電機(jī)調(diào)速的方法。二、實驗步驟 1 連好實驗線路。 2 運行實驗程序,

7、觀察實驗結(jié)果。三、實驗結(jié)果實驗結(jié)果如圖所示,實驗成功。實驗十 計數(shù)器實驗一、 實驗?zāi)康?、掌握8259中斷控制器的接口方法.2、掌握8259中斷控制器的應(yīng)用編程.二、實驗步驟1、連好實驗線路。2、運行實驗程序,在顯示器上上顯示"82591"。3、按AN按鍵,每按二次產(chǎn)生一次中斷,在顯示器左邊一位顯示中斷次數(shù),計數(shù)值在十進(jìn)制內(nèi)循環(huán)顯示。 三、實驗結(jié)果正確連接線后,數(shù)碼管顯示825901,按AN后,顯示器沒有變化。反復(fù)分析后覺得實驗沒有錯誤,可能是實驗板IRQ3插孔損壞。 第二部分 Debug實驗1、 實驗?zāi)康?、 掌握進(jìn)入和退出DEBUG程序的方法2、 掌握DEBUG中的a命

8、令、t命令、u命令等的使用 二、實驗內(nèi)容(1) 進(jìn)入debug(2) 輸入a執(zhí)行命令,能將指令直接匯編成機(jī)器碼輸入到內(nèi)存中。輸入程序代碼 Mov ax,1000 Mov bx,2000 Push ax Posh bx Pop ax Pop bx 執(zhí)行t命令,逐條跟蹤程序的執(zhí)行,每條指令執(zhí)行后都顯示各寄存器的內(nèi)容,如果指定起始地址,則t命令會從指定的地點開始跟蹤,我們還可以指定跟蹤一次所運行指令的個數(shù)。 (3) G指令執(zhí)行匯編命令 功能: 執(zhí)行正在調(diào)試的程序,當(dāng)達(dá)到斷點時停止執(zhí)行, 并且顯示寄存器標(biāo)志和下一條要執(zhí)行的命令。說明: 如果沒有指定起始地址,那么當(dāng)前指令地址由CS,IP寄存器的內(nèi)容來決

9、定,如果用戶指定起始地址就從指定的起始地址開始執(zhí)行。如果指定斷點,當(dāng)指令到達(dá)指令地址時停止執(zhí)行,并顯示各寄存器標(biāo)志位的內(nèi)容和下一條要執(zhí)行的命令,最多允許用戶設(shè)定10個斷點。 (4)U對機(jī)器代碼反匯編顯示 (5)R命令 功能: 一,顯示單個寄存器的內(nèi)容,并提供修改功能。二,顯示所有寄存器內(nèi)容, 再加上字母標(biāo)志位狀態(tài)以及要執(zhí)行的下一條指令。三,顯示8個標(biāo)志位狀態(tài), 并提供修改功能。若不想改變則回車即可。R cx 將寄存器的值設(shè)為100最后執(zhí)行r命令 觀看修改后的寄存器值(6)D命令 顯示內(nèi)存區(qū)域的內(nèi)容最左邊是內(nèi)存的起始地址,中間以16進(jìn)制形式顯示內(nèi)存值,從指定內(nèi)存單元開始的128個內(nèi)存單元的內(nèi)容,

10、最右邊以ascll碼的形式顯示內(nèi)存查看內(nèi)存13b7h處的內(nèi)容,d 段地址:偏移地址(7)E指令 改變內(nèi)存單位的內(nèi)容格式 E 起始位置按空格鍵繼續(xù) 按連續(xù)的兩個空格跳到后一個字節(jié) 綜合應(yīng)用1.實驗內(nèi)容: 設(shè)在A,B和C單元中分別存放著一個數(shù)。若三個數(shù)都不是0,則求出三數(shù)之和并存放于D單元中;若其中有一個為0,則把其他兩個單元也清零。2.實驗分析: 在A,B和C單元中分別存放著一個數(shù),分別將A,B,C與0進(jìn)行比較,有0則跳轉(zhuǎn)到NEXT,將A,B,C清零;沒0則將A,B,C相加,結(jié)果存放在D。3. 源代碼:date segmenta dw 2b dw 3c dw 1d dw 0date endsco

11、de segmentmain proc farassume cs: code, ds: datestart: push ds sub ax, axpush axmov ax, datemov ds, ax begin: cmp a, 0je nextcmp b, 0je nextcmp c, 0je nextmov ax, aadd ax, badd ax, cmov d, axjmp short exitnext: mov a, 0mov b, 0mov c, 0exit: retmain endpcode ends end start4.實驗截圖:5.結(jié)果分析:(1)第一個實驗圖:A,B,

12、C分別為2,3,1理論計算A=2,B=3,C=1,D為6。結(jié)果保存在DS中,查看DS寄存器的值,結(jié)果正確。(2)第二個實驗圖:A,B,C分別為0,3,1,理論計算A=0,B=0,C=0,D為0。結(jié)果保存在DS中,查看DS寄存器的值,結(jié)果正確。第三部分 匯編語言程序調(diào)試實驗實驗一1.實驗內(nèi)容通過查表,實現(xiàn)一位09十進(jìn)制數(shù)轉(zhuǎn)換為對應(yīng)格雷碼顯示。2.源代碼數(shù)據(jù)段DSEG SEGMENT 'DATA' TODO: add your data here!TAB DB 18H,34H,05H,06H,09H,0AH,0CH,11H,12H,14HNUM DB 05H,08HDSEG END

13、SSSEG SEGMENT STACK 'STACK' DW 100h DUP(?)SSEG ENDS代碼段CSEG SEGMENT 'CODE'*START PROC FAR; Store return address to OS: PUSH DS MOV AX, 0 PUSH AX; set segment registers: MOV AX, DSEG MOV DS, AX MOV ES, AX; TODO: add your code here!MOV BX,OFFSET TABMOV AL,NUMAND AL,0FHXLATMOV DL,ALMOV A

14、H,2INT 21HMOV AL,NUM+1AND AL,0FHXLATMOV DL,ALMOV AH,2INT 21H; return to operating system: RETSTART ENDP;*CSEG ENDS END START ; set entry point.CSEG SEGMENT 'CODE'*START PROC FAR; Store return address to OS: PUSH DS MOV AX, 0 PUSH AX; set segment registers: MOV AX, DSEG MOV DS, AX MOV ES, AX;

15、 TODO: add your code here!MOV BX,OFFSET TABMOV AL,NUMAND AL,0FHXLATMOV DL,ALMOV AH,2INT 21HMOV AL,NUM+1AND AL,0FHXLATMOV DL,ALMOV AH,2INT 21H; return to operating system: RETSTART ENDP;*CSEG ENDS END START ;3.實驗截圖實驗二 實驗?zāi)康模?、學(xué)習(xí)數(shù)據(jù)傳送和算術(shù)運算指令的用法。2、熟悉在PC機(jī)上建立、匯編、連接、調(diào)試和運行匯編語言程序過程。實驗要求:將兩個多位十進(jìn)制數(shù)(如四位)相加,要求被加數(shù)

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

17、CS:CODES,DS:DATAS,ES:DATASSTART: MOV AX,DATAS MOV DS,AX ;DS指向數(shù)據(jù)段 mov ES,AX ;ES指向數(shù)據(jù)段 mov cx,5 ;5次循環(huán) lea dx,s ;要顯示的字符串的首偏移地址 mov ah,9h ;9號DOS功能調(diào)用顯示字符串s int 21h mov si,offset num1 ; si指向num1首地址 mov di,offset num2 ; di指向num2首地址 clc ;清零進(jìn)位寄存器CFadds: LODSB adc al, di ;有符號加法 aaa ;調(diào)整ASCII碼加法結(jié)果指令 stosb ;所得結(jié)果以

18、字節(jié)為單位存儲到數(shù)據(jù)段di指向的位置,di+1 loop adds ;循環(huán)知道cx為零,cx-1 mov ah,02h ;以下為輸出加法結(jié)果 mov cx,5;共有5位數(shù)循環(huán)5次adjust:mov dl,di-1 or dl,30h ;二進(jìn)制數(shù)轉(zhuǎn)換成其相應(yīng)ASCII碼 dec di ;輸出下一位 int 21h loop adjust MOV AH,4CH INT 21H ;21號功能調(diào)用程序退出CODES ENDS輸入程序編譯成功以后,顯示如下圖:實驗總結(jié):1、 通過實驗,學(xué)會了使用匯編語言實現(xiàn)多位十進(jìn)制數(shù)的相加運算。2、 實驗中應(yīng)注意,在聲明data的部分?jǐn)?shù)字的順序和實際中數(shù)字的順序是相

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

20、DB '5','7','4','1','3' ;被乘數(shù) B DB '7' ;乘數(shù) M DB 6 DUP(0) ;6位字節(jié)型存儲單元 S DB ' 31475*7=$' ; 輸出的公式DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATASTART:MOV AX,DATA MOV DS,AX MOV ES,AX CLD ;將方向標(biāo)志寄存器DF清零,指令LODSB和STOSB中 di,si做自增1的處理 MOV SI,OFFSET A ;

21、A為源操作數(shù) MOV DI,OFFSET M ;B為目的操作數(shù) MOV CX,5 AND B,0FH ;將ASCII碼數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制形式 MOV BYTE PTRDI,0 L1: mov al,si ;乘數(shù)與被乘數(shù)相乘 LODSB AND AL,0FH MUL B AAM ADD AL,DI AAA mov di, al inc di STOSB MOV DI,AH ; 結(jié)果的存儲 inc si LOOP L1 MOV DX,OFFSET S MOV AH,9 INT 21H MOV CX,6 L2: MOV DL,DI ADD DL,30H MOV AH,02H INT 21H ;顯示所得

22、數(shù)據(jù) DEC DI LOOP L2 MOV AX,4CH INT 21HCODE ENDSEND START實驗結(jié)果如下圖所示:總結(jié):1、 通過實驗學(xué)會了,使用匯編語言完成相乘運算。2、 試驗中通過設(shè)定CX的值控制循環(huán)的次數(shù)。3、 在LODSB和STOSB指令中,SI和DI會每次自動增加1。4、 在A串中,由于數(shù)據(jù)是按從低地址到高地址的順序存放的,所以A DB '5','7','4','1','3'其實表示的是31475 。5、 程序的L2 循環(huán)使得所存二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成相對應(yīng)的ASCII碼,并通過DOS 功能調(diào)用輸出。實驗四實驗?zāi)康?從鍵盤輸入一個字符串,將其中小寫字母轉(zhuǎn)換為大寫字母,然后顯示。該程序的執(zhí)行,首先要判斷輸入字符是否為小寫字母(ASCII碼61H7AH),如果是,則轉(zhuǎn)換為大寫字母(ASCII碼41H5AH)。程序源代碼:DATA SEGMENT KEYNUM = 255KEYBUF DB KEYNUM DB 0 DB KEYNUM DUP(0)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV DX, OFFSET KEYBUF ;用DOS的0AH號功能調(diào)用 ;輸入一個字符串 MOV A

溫馨提示

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

評論

0/150

提交評論