微機原理試驗報告講解_第1頁
微機原理試驗報告講解_第2頁
微機原理試驗報告講解_第3頁
微機原理試驗報告講解_第4頁
微機原理試驗報告講解_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機原理實驗課程實驗研究性學(xué)習(xí)手冊姓名學(xué)號班級微機教師微機實驗老師時 間2014 年 12 月上課時間10-13 周實驗一: I/O 地址譯碼與交通燈控制實驗一、實驗?zāi)康?、掌握并行接口 8255 的基本原理2、掌握 8255 的編程方法3、掌握利用 X86 匯編語言技巧二、實驗內(nèi)容如圖, L7、L6、L5 作為南北路口的交通燈與PC7、PC6、 PC5相連, L2、L1、L0 作為東西路口的交通燈與 PC2、 PC1、PC0相連。編程使六個燈按交通燈變化規(guī)律燃滅。三、編程提示1、8255 控制寄存器端口地址28BHA 口的地址288HC 口的地址28AH2、十字路口交通燈的變化規(guī)律要求:1)

2、 南北路口的綠燈、東西路口的紅燈同時亮 3 秒左右。2) 南北路口的黃燈閃爍若干次,同時東西路口的紅燈繼續(xù)亮。3) 南北路口的紅燈、東西路口的綠燈同時亮 3 秒左右。4) 南北路口的紅燈繼續(xù)亮、同時東西路口的黃燈亮閃爍若干次5) 轉(zhuǎn)( 1)重復(fù)。四、參考流程圖五、實驗源程序CODE SEGMENTASSUME CS:CODESTART: MOV DX, 0EC0BH;8255 初始化,寫控制寄存器MOV AL,10010000BOUT DX,ALFIRST: MOV DX, 0EC0AH;C口地址MOV AL,00100100BOUT DX,AL南北綠,東西紅,寫入 C 口MOV CX,0送入

3、初值 65536( FFFF+1)MOV AX,4000H軟件長延時DELAY1: DEC AXJNZ DELAY1LOOP DELAY1 ; MOV BL,5 ;SECOND:MOV DX, 0EC0AH MOV AL,01000100B OUT DX,AL;MOV CX,3000H;MOV AX,0100H;LI1:DEC AXJNZ LI1LOOP LI1 ; MOV DX, 0EC0AH MOV AL,00000100B OUT DX,ALMOV CX,3000H;MOV AX,0100H;WEN1: DEC AXJNZ WEN1;LOOP WEN1DEC BLJNZ SECOND;T

4、HIRD: MOV DX, 0EC0AH MOV AL,10000001B OUT DX,AL ;MOV CX,0MOV AX,4000H ;DELAY2: DEC AX雙重循環(huán)黃燈閃 5 次南北黃,東西紅,寫入 C 口 寫入初值延時雙循環(huán)南北黃滅,寫入 C 口寫入初值延時軟件短延時黃燈閃 5 次寫入 C 口南北紅,東西綠,寫入 C 口;送初值 65536軟件長延時JNZ DELAY2LOOP DELAY2 MOV BL,5 ;FORTH: MOV DX, 0EC0AH MOV AL,10000010B OUT DX,AL ;MOV CX,3000H ;MOV AX,0100H ;LI2:DE

5、C AX黃燈閃 5 次寫入 C 口南北紅,東西黃,寫入 C 口 送初值短延時JNZ LI2 ; 軟件短延時LOOP LI2MOV DX, 0EC0AH ;CMOV AL,10000000BOUT DX,AL;MOV CX,3000H;MOV AX,0100H;WEN2: DEC AXJNZ WEN2LOOP WEN2DEC BLJNZ FORTH;MOV DL,0FFHMOV AH,06HINT 21H ;JZ FIRST ; 作系統(tǒng)MOV AH,4CHINT 21H ;口東西黃滅,寫入 C 口送初值短延時黃燈閃 5 次執(zhí)行鍵盤輸入操作若沒有輸入,繼續(xù)循環(huán);若有輸入,返回操返回操作系統(tǒng)CODE

6、 ENDS六、實驗遇到的問題和解決方法問題: 綠燈滅后黃燈沒有出現(xiàn)閃爍的效果,一直保持常亮解決方法: 修改程序,通過利用異或和循環(huán)指令使綠燈滅、紅燈亮后,黃燈口的 狀態(tài)從 0 到 1循環(huán)變換,并通過調(diào)用延遲子程序, 從而實現(xiàn)人眼可辨的黃燈閃的 效果。七、總結(jié)這是第一次的微機原理實驗,實驗內(nèi)容是 I/O 地址譯碼與交通燈控制實驗。 以前的實驗譬如數(shù)電實驗,模電實驗,信號系統(tǒng)研學(xué),都是要么是硬件實驗,要 么是軟件實驗, 這樣又要連接電路, 又要編寫程序的實驗這還是第一次做, 因此 這次實驗對我來說是一次全新的體驗。 通過這次實驗使我更加深入地了解微機接 口和匯編語言,對 8255 的芯片了解以及編

7、程的學(xué)習(xí)不僅停留在書本上,自己的 動手能力也得到了很大的提升, 在實踐的同時也進一步鞏固了微機原理的基礎(chǔ)知 識。實驗二:可編程定時器計數(shù)器一、實驗?zāi)康恼莆?8253 的基本工作原理和編程方法。二、實驗內(nèi)容1.按圖中虛線連接電路,將計數(shù)器 0 設(shè)置為方式 0,計數(shù)器初值為 N(N0FH), 用手動逐個輸入單脈沖,編程使計數(shù)值在屏幕上顯示, 并同時用邏輯筆觀察 OUT0電平變化(當(dāng)輸入 N+1 個脈沖后 OUT0變高電平)。2. 按圖 5-2連接電圖,將計數(shù)器 0、計數(shù)器 1 分別設(shè)置為方式 3,計數(shù)初值設(shè)為 1000,用邏輯筆觀察 OUT1 輸出電平的變化(頻率 1HZ)。三、編程提示18253

8、控制寄存器地址 283H 計數(shù)器 0地址 280H 計數(shù)器 1地址 281H CLK0連接時鐘 1MHZ。2參考流程圖:四、實驗原理8253具有 3 個獨立的計數(shù)通道,采用減 1 計數(shù)方式。在門控信號有效時,每 輸入 1個計數(shù)脈沖,通道作 1次計數(shù)操作。當(dāng)計數(shù)脈沖是已知周期的時鐘信號時, 計數(shù)就成為定時。 作計數(shù)器時, 要求計數(shù)的次數(shù)可直接作為計數(shù)器的初值預(yù)置到減“ 1”計數(shù)器中8253 中各通道可有 6 種可供選擇的工作方式, 以完成定時、計數(shù)或脈沖發(fā) 生器等多種功能。 本實驗用到的是方式 0計數(shù)結(jié)束中斷。 在寫入計數(shù)值 N 之后 的第一個 CLK的下降沿將 N 裝入計數(shù)執(zhí)行單元,待下一個

9、CLK的下降沿到來且門 控信號 GATE為高電平時,通道開始啟動計數(shù)。在計數(shù)過程中, OUT 一直保持低 電平,直到計數(shù)達“ 0”時, OUT輸出由低電平變?yōu)楦唠娖?,并且保持高電平?253 動態(tài)分配地址 :控制寄存器: 0C403H計數(shù)器 0 地址: 0C400H計數(shù)器 1 地址: 0C401H五、實驗程序源代碼實驗一:DATA SEGMENTCHL DB 0AH,0DH,$ ;換行指令DATA ENDSSTACK1 SEGMENTS TACKDW 100 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK1,DS:DATASTART:M

10、OV AX,DATAMOV DS,AXMOV AL,10H ;設(shè)置控制字 00010000B(計數(shù)器 0,方式 0,寫兩個字節(jié), 二進制計數(shù))MOV DX,0EC03H寫 ; 計數(shù)器 0 控制字OUT DX,ALMOV DX,0EC00H將 ; 計數(shù)初值 0FH寫入計數(shù)器 0MOV AL,0FHOUT DX,ALMOV CL,0FH ;給參考變量附初值 0FHLP1: MOV AL,00H ;將當(dāng)前 AL中存儲的計數(shù)值鎖存MOV DX,0EC03HOUT DX,ALMOV DX,0EC00H讀 ; 計數(shù)值IN AL,DXCMP CL,AL;執(zhí)行一次循環(huán)后, CL減1。而 AL中計數(shù)值變換的速度

11、由人手按鍵的速度決定。所以,為了避免在該段時間里,在 1MHz 時鐘作用下不斷 重復(fù)輸出同一計數(shù)值, 我們利用 CL與鎖存的 AL 值進行比較的方法, 是每個計數(shù) 值在屏幕上只顯示一次JNZ LP1DEC CLCALL DISP ;調(diào)用 DISP子程序PUSH DX;將 DX內(nèi)容保存到堆棧段(因為 DX 裝有端口地址所對應(yīng)的值,在后續(xù)程序中要用到 DX,所以先將值放入堆棧保存)MOV DL,0FFH ;執(zhí)行按鍵輸入操作MOV AH,06HINT 21HMOV DX,OFFSET CH輸L出; 換行MOV AH,09HINT 21HPOP DX;將 DX的內(nèi)容推出棧段IN AL,DXCMP AL

12、,0JNZ LP1;如果 DX的內(nèi)容是 0,就跳轉(zhuǎn)到 LP1MOV AH,4CH ;返回操作系統(tǒng)INT 21HDISP PROC NEAR;定義一個名為 DISP的子程序PUSH DX;把 DX的內(nèi)容保存到堆棧段中AND AL,0FH入 AL 中;將 AL寄存器的內(nèi)容與 0FH進行“與”運算,再把結(jié)果存MOV DL,AL;將 AL的值送入 DL寄存器CMP DL,9;比較 DL中的值與 9 的大小JLE NUM;如果 DL的值小于或等于 9 時,則跳轉(zhuǎn)到 NUMADD DL,7;將 DL的值與 7 進行相加后,再送入 DL中(在十六進制條件下,從 10 到 15 分別由 A到 F表示)NUM:

13、 ADD DL,30H;將 DL的值與 30H 進行相加后,再送入 DL中MOV AH,02H;將 02H 存入 AHINT 21H;調(diào)用 DOS21中斷POP DX;將 DX的內(nèi)容推出棧段RET;子程序在功能完成后返回調(diào)用程序繼續(xù)執(zhí)行DISP ENDPCODE ENDSEND START實驗二:DATA SEGMENTX DB ?DATA ENDSSTACK1 SEGMENT STACKDW 100 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATAMOV DS,AXMOV DX,0EC

14、03HMOV AL,36H ;計時器 0控制字(計數(shù)器 0,方式 3,寫兩個字節(jié),二進 制計數(shù))OUT DX,AL ;將 AL 的值送入 DX 端口MOV AX,1000 ;寫初值MOV DX,0EC00HOUT DX,ALMOV AL,AH ;將 AX的高 8 位存入 AL寄存器中OUT DX,ALMOV DX,0EC03HMOV AL,76H ;計數(shù)器 1 控制字(計數(shù)器 1,方式 3,寫兩個字節(jié),二進 制計數(shù))OUT DX,AL ;將 AL 的值送入 DX 端口MOV AX,1000MOV DX,0EC01HOUT DX,AL ;寫入計數(shù)器 1 低字節(jié)MOV AL,AH ;寫入計數(shù)器 1

15、高字節(jié)OUT DX,ALMOV AH,4CHINT 21HCODE ENDSEND START六、總結(jié)有了第一次微機實驗的經(jīng)驗之后,我這次在實驗前做了充足的預(yù)習(xí)工作,已 經(jīng)將程序?qū)懞?,檢查無誤,只需要在實驗室連接外部電路,調(diào)試程序即可,因此 實驗進行得很順利。這次實驗是針對可編程定時時鐘 /計數(shù)器( 8253),8253 有六種工作方式,我 在實驗中主要用到了 8253的工作方式 0 和工作方式 3,此外調(diào)用了 02號功能單 字符輸出顯示,以及 09 號功能輸出顯示字符串,我在做宏匯編研究性學(xué)習(xí)的時 候就已經(jīng)研究過這兩個功能的使用方法,所以這次使用得心應(yīng)手,要注意的是: 執(zhí)行 02號功能必須進

16、行 ASSIC碼轉(zhuǎn)換,執(zhí)行 09號功能必須在字符串結(jié)尾寫一個 符號$,表示字符串結(jié)束。此外,在實驗老師的指導(dǎo)下,我進一步熟悉了調(diào)試的 方法,之前只會 F8 單步調(diào)試,但是在遇到很長的循環(huán)程序時,就不能單步調(diào)試 的了,通過這次實驗我學(xué)會了如何使用 F4 讓程序進行到任意指定位置,這樣就 可以跳過循環(huán)繼續(xù)執(zhí)行代碼。實驗三、 PC機串行通信、實驗?zāi)康?、 進一步了解串行通信的基本原理。2、 掌握串行接口芯片 8250 的工作原理和編程方法。3、 熟悉 PC機串行口的基本連接方法二、實驗內(nèi)容1、PC機 RS-232串口自發(fā)自收。按照 PC機串口自發(fā)自收的連接方法連線。 編寫 PC機自發(fā)自收串行通信程序

17、, 要求:從鍵盤輸入一個字符, 將字符通過串口發(fā)送出去, 再由此串口將字符接收 回來并在屏幕上顯示,實現(xiàn)自發(fā)自收。2、 兩臺 PC機間 RS-232 串口通信。按照 PC機 RS-232串口直接互連的方法連接兩臺 PC機。 編寫 PC機直接互連串 行通信程序; 要求:由甲機鍵盤鍵入字符經(jīng)串口發(fā)送給乙機, 再由乙機通過串口 接收字符并顯示在屏幕上。當(dāng)鍵入感嘆號“! ”,結(jié)束收發(fā)過程。三、實驗原理及提示1連線圖2 8250 寄存器地址PC機自帶兩個串口,分為 COM1和COM2,地址分別在 3F8-3FFH,2F8-2FFH , 接口芯片選用 8250 。8250片內(nèi)有 10個寄存器,其中有幾個是

18、共用地址的,其識 別由線路控制寄存器( LCR)的最高位 DLAB來決定。各寄存器的地址和格式如 下所示:四、程序源代碼1. 自發(fā)自收程序:DATA SEGMENTCHL DB 0AH,0DH,$ ; 換行字符串DATA ENDSSTACK1 SEGMENT STACK ; 定義堆棧段DW 100 DUP(0)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATAMOV DS,AX;INITMOV DX,3FBH ;8250 初始化MOV AL,80H; DLAB=1OUT DX,ALMOV AX,0C

19、H;N =12 BAUD=9600bpsMOV DX,3F8H ;寫除數(shù)寄存器,低位OUT DX,ALMOV AL,AH;寫除數(shù)寄存器,高位INC DXOUT DX,ALMOV AL,03H; 八位數(shù)據(jù), 1停止,無校驗MOV DX,3FBH ; 線路控制 REGOUT DX,ALMOV AL,0 ;屏蔽全部中斷MOV DX,3F9HOUT DX,ALWAIT1: MOV DX,3FDH ; 讀線路狀態(tài)寄存器IN AL,DXTEST AL,1EH ; 判斷是否有錯JNZ ERRORTEST AL,01H ; 判斷是否收到JNZ RECEIVETEST AL,20H ; 判斷發(fā)送端是否空JZ W

20、AIT1MOV DL,0FFH ;六號功能調(diào)用讀入待發(fā)送數(shù)據(jù)MOV AH,06HINT 21HJZ WAIT1MOV DX,3F8H ; 寫發(fā)送 REGOUT DX,ALJMP WAIT1 ; 返回 WAIT1CHAR: PUSH AXMOV DL,AL ; 顯示接收MOV AH,02HINT 21HPOP AXJMP WAIT1ERROR: MOV DX,3FDHIN AL,DXMOV DL,? ; 對于錯誤顯示 ?MOV AH,02HINT 21HJMP WAIT1RECEIVE:MOV DX,3F8HIN AL,DX ; 讀數(shù)據(jù)接收寄存器 CMP AL,!;判斷是否結(jié)束JNE CHARM

21、OV AH,4CHINT 21HCODE ENDSEND START2. 兩臺 PC機間 RS-232串口通信 :( 1)發(fā)送端 :CODE SEGMENTASSUME CS:CODE;8250START: MOV AL,80H MOV DX,3FBH OUT DX,ALMOV AX,30H MOV DX,3F8H OUT DX,AL ;MOV AL,AHINC DXOUT DX,AL ;MOV AL,0AH ;7 MOV DX,3FBH OUT DX,AL ;初始化,設(shè) DLAB=1寫入除數(shù)低字節(jié)寫入除數(shù)高字節(jié)位數(shù)據(jù),1 位停止, 奇校驗寫入線路控制寄存器MOV AL,03HMOV DX,3

22、FCH請求發(fā)送、數(shù)據(jù)終端就緒: 0000 0011OUT DX,AL;寫入 Modem控制寄存器MOV AL,0MOV DX,3F9HOUT DX,AL; 寫中斷允許寄存器,屏蔽所有中斷WAIT1: MOV DX,3FDH; 讀線路狀態(tài)寄存器IN AL,DXTEST AL,1EH ;出錯否JNZ ERRORTEST AL,01H ;接收數(shù)據(jù)就緒否JNZ SEND ;發(fā)送TEST AL,20H ;發(fā)送寄存器空否 , 不空, 返回等待JZ WAIT1SEND: MOV AH,1INT 21H ;讀鍵盤CMP AL,21H;是 !?JZ EXIT; 是 , 返回操作系統(tǒng)MOV DX,3F8H;不是,

23、 則發(fā)送OUT DX,ALJMP WAIT1 ;返回等待ERROR: MOV DX,3FDH出錯則清除線路狀態(tài)寄存器IN AL,DXMOV DL,? ;MOV AH,02HINT 21HJMP WAIT1EXIT: MOV DX,3F8HOUT DX,ALMOV AH,4CHINT 21HCODE ENDSEND START(2) 接收端:CODE SEGMENTASSUME CS:CODESTART: MOV AL,80H ;8250MOV DX,3FBHOUT DX,ALMOV AX,30H;MOV DX,3F8HOUT DX,AL;MOV AL,AHINC DXMOV DX,3F9HOU

24、T DX,AL;顯示 ?初始化寫除數(shù)寫入除數(shù)低字節(jié)寫入除數(shù)高字節(jié)MOV AL,0AHMOV DX,3FBHOUT DX,AL ;寫入線路控制寄存器MOV AL,03HMOV DX,3FCHOUT DX,AL ;寫入 Modem控制寄存器MOV AL,0MOV DX,3F9HOUT DX,AL ;寫中斷允許寄存器,屏蔽所有中斷WAIT1: MOV DX,3FDH; 讀線路狀態(tài)寄存器IN AL,DXTEST AL,1EH ;出錯否JNZ ERRORTEST AL,01H ;接收數(shù)據(jù)就緒否JNZ RECEIVE ;轉(zhuǎn)接收TEST AL,20H ;發(fā)送寄存器空否 , 不空, 返回等待JZ WAIT1J

25、MP WAIT1 ;均返回等待RECEIVE: MOV DX,3F8H; 讀接收數(shù)據(jù)IN AL,DXAND AL,01111111B; 保留位數(shù)據(jù)CMP AL,21H ;是!?JNZ CHARMOV AH,4CH返回操作系統(tǒng)MOV AH,2ERROR: MOV DX,3FDH出錯則清除線路狀態(tài)寄存器INT 21HCHAR: PUSH AXMOV DL,AL顯示接受字符INT 21HPOP AX返回等待JMP WAIT1顯示 ?IN AL,DXMOV DL,?MOV AH,02HINT 21HJMP WAIT1CODE ENDSEND START五、實驗總結(jié)在這次實驗中, PC機 RS-232

26、串口自發(fā)自收實驗進行得比較順利,但是在兩 臺 PC機間 RS-232 串口通信時,遇到了問題:實驗題目要求從鍵盤輸入“! ”時, 結(jié)束雙機通信,可是我作為發(fā)送端可以在輸入感嘆號時立即結(jié)束通信并返回 DOS,而對方接收端確認就處于等待接收的狀態(tài)。一開始,我認為一定是接收端 的程序有漏洞, 反復(fù)檢查與調(diào)試運行都沒有發(fā)現(xiàn)問題, 然后冷靜下來重新審查全 部程序,發(fā)現(xiàn)竟然是發(fā)送端的錯誤, 當(dāng)判斷出此刻輸入的是感嘆號時, 沒有將感 嘆號發(fā)送給對方, 就立即結(jié)束了發(fā)送程序, 接收方一直接收不到代表終止通信命 令的感嘆號,所以一直在等待接收。由此我認識到排查錯誤時一定要全面考慮, 錯誤的發(fā)生點不一定是錯因的根

27、節(jié)點,某一環(huán)節(jié)出現(xiàn)錯誤或是有所遺漏,即使不 會對當(dāng)前部分有影響,也會埋下隱患,對其他環(huán)節(jié)造成不利影響,尤其是通信過 程每一環(huán)節(jié)都要做到面面俱到,萬無一失,才能保證提供可靠的通信質(zhì)量。實驗四:競賽搶答器一、實驗?zāi)康耐ㄟ^本實驗鍛煉接口技術(shù)完成一個較大的綜合設(shè)計,學(xué)會綜合使用本課程中 的接口芯片、中斷、定時、 DOS功能調(diào)用等知識,學(xué)會多種接口的配合使用,掌 握軟件、硬件協(xié)同工作,掌握微機原理與接口技術(shù)的綜合應(yīng)用。( 1)了解微機化競賽搶答器的基本原理。( 2)掌握微機通過 8255A控制七段數(shù)碼管的原理。( 3)掌握并行接口 8255、中斷、定時、 D0S功能綜合應(yīng)用。二、實驗內(nèi)容圖為競賽搶答器(模擬)的原理圖,邏輯開關(guān) K0K7 代表競賽搶答按鈕 07 號,當(dāng)某個邏輯電平開關(guān)置“ 1”時,相當(dāng)某組搶答按鈕按下。在七段數(shù)碼管 上將其組號( 07)顯示出來,并使喇叭響一下。從鍵盤上按空格鍵開始下一輪 搶答,按其它鍵程序退

溫馨提示

  • 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

提交評論