第一篇:北京郵電大學微機原理與接口技術硬件實驗報告
信息與通信工程學院
微機原理與接口技術硬件實驗報告
班
姓 學 序
級:
名:
號:
號:
日
期: 2015-10-30——2015-12-26 目錄
實驗一 I/O地址譯碼.............................................................................................................................3
一、實驗目的............................................................................................................................3
二、實驗原理及內容..............................................................................................................3
三、硬件接線圖與軟件程序流程圖..................................................................................3
四、源程序.......................................................................................................................................4
五、實驗結果..................................................................................................................................5
六、實驗總結..................................................................................................................................5
七、實驗收獲與心得體會...........................................................................................................5 實驗二簡單并行接口..............................................................................................................................5
一、實驗目的............................................................................................................................5
二、實驗原理及內容..............................................................................................................5
三、硬件接線圖與軟件程序流程圖........................................................................................6
四、源程序.......................................................................................................................................6
五、實驗結果..................................................................................................................................7
六、實驗總結..................................................................................................................................7
七、實驗收獲與心得體會...........................................................................................................7 實驗四七段數碼管..................................................................................................................................7
一、實驗目的..................................................................................................................................7
二、實驗原理及內容....................................................................................................................8
三、硬件接線圖與軟件程序流程圖........................................................................................8
四、源程序.......................................................................................................................................9
五、實驗結果...............................................................................................................................11
六、實驗總結...............................................................................................................................11
七、實驗收獲與心得體會........................................................................................................11 實驗八可編程定時器/計數器(8253/8254).........................................................................11
一、實驗目的...............................................................................................................................11
二、實驗原理及內容.................................................................................................................11
三、硬件接線圖與軟件程序流程圖.....................................................................................12
四、源程序....................................................................................................................................13
五、實驗結果...............................................................................................................................17
六、實驗總結與思考題............................................................................................................17
七、實驗收獲與心得體會........................................................................................................17 實驗十六串行通訊8251....................................................................................................................18
一、實驗目的...............................................................................................................................18
二、實驗原理及內容.................................................................................................................18
三、硬件接線圖與軟件程序流程圖.....................................................................................18
四、源程序....................................................................................................................................19
五、實驗結果...............................................................................................................................22
六、實驗總結與思考題............................................................................................................22
七、實驗收獲與心得體會........................................................................................................22
實驗一 I/O地址譯碼
一、實驗目的
掌握I/O地址譯碼電路的工作原理。
二、實驗原理及內容
1、實驗電路如圖1-1所示,其中74LS74為D觸發器,可直接使用實驗臺上數字電路實驗區的D觸發器,74LS138為地址譯碼器。譯碼輸出端Y0~Y7在實驗臺上“I/O地址“輸出端引出,每個輸出端包含8個地址,Y0:280H~287H,Y1:288H~28FH,??當CPU執行I/O指令且地址在280H~2BFH范圍內,譯碼器選中,必有一根譯碼線輸出負脈沖。例如:執行下面兩條指令 MOV DX,2A0H OUT DX,AL(或IN AL,DX)
Y4輸出一個負脈沖,執行下面兩條指令 MOV DX,2A8H OUT DX,AL(或IN AL,DX)Y5輸出一個負脈沖。
利用這個負脈沖控制L7閃爍發光(亮、滅、亮、滅、??),時間間隔通過軟件延時實現。
2、接線: Y4/IO地址接 CLK/D觸發器 Y5/IO地址接 CD/D觸發器
D/D觸發器接 SD/D角發器接 +5V Q/D觸發器接 L7(LED燈)或邏輯筆
三、硬件接線圖與軟件程序流程圖
硬件連接圖如下: 程序流程圖如下:
四、源程序
CODE SEGMENT
ASSUME CS:CODE ;定義代碼段
START:
MOV DX,2A0H
;選通Y4
OUT DX,AL
CALL DELAY
;延時
MOV DX,2A8H
;選通Y5
OUT DX,AL
CALL DELAY ;延時
MOV AH,1H
INT 16H;01號功能調用,從鍵盤接收按鍵 JZ START
;無鍵按下,返回START MOV AH,4CH;有鍵按下,返回DOS系統 INT 21H
DELAY PROC NEAR
;延時子程序,循環系數為100
MOV BX,100 LOOP1: MOV CX,0
LOOP2: LOOP LOOP2
DEC BX
JNZ LOOP1
RET
DELAY ENDP
CODE
ENDS
END START
五、實驗結果
按下鍵盤時L7閃爍發光,交替亮滅。
六、實驗總結
實驗一開始時不理解怎樣選通Y4和Y5的地址,對整個接口電路分析后才明白了譯碼電路真正的原理。
七、實驗收獲與心得體會
本次實驗主要了解了端口的輸出,D觸發器作為一個外部端口實現了向D觸發器內寫值并正確輸出,控制燈泡亮滅,實現了譯碼功能。對I/O接口有了更深的理解,對以后的實驗很有幫助。這次實驗是第一次用匯編語言來讓硬件實現功能,和之前學過的C++有很大的區別,也讓我進一步看到了他們的不同之處。
實驗二簡單并行接口
一、實驗目的
掌握簡單并行接口的工作原理及使用方法。
二、實驗原理及內容
1、按下面圖4-2-1簡單并行輸出接口電路圖連接線路(74LS273插通用插座,74LS32用實驗臺上的“或門”)。74LS273為八D觸發器,8個D輸入端分別接數據總線D0~D7,8個Q輸出端接LED顯示電路L0~L7。
2、編程從鍵盤輸入一個字符或數字,將其ASCⅡ碼通過這個輸出接口輸出,根據8個發光二極管發光情況驗證正確性。
3、按下面圖4-2-2簡單并行輸入接口電路圖連接電路(74LS244插通用插座,74LS32用實驗臺上的“或門”)。74LS244為八緩沖器,8個數據輸入端分別接邏輯電平開關輸出K0~K7,8個數據輸出端分別接數據總線D0~D7。
4、用邏輯電平開關預置某個字母的ASCⅡ碼,編程輸入這個ASCⅡ碼,并將其對應字母在屏幕上顯示出來。
5、接線:1)輸出
按圖4-2-1接線(圖中虛線為實驗所需接線,74LS32為實驗臺邏輯或門)2)輸入
按圖4-2-2接線(圖中虛線為實驗所需接線,74LS32為實驗臺邏輯或門)
三、硬件接線圖與軟件程序流程圖
硬件連接圖如下:
圖4-2-1
圖4-2-2
程序流程圖如下:
四、源程序 CODE SEGMENT;定義代碼段 ASSUME CS:CODE START:MOV AH,1 INT 21H;從鍵盤檢測輸入 CMP AL,00011011B JZ EXIT MOV DX,2A8H;送出ASCII碼 OUT DX,AL MOV DX,2A0H;讀入ASCII碼 IN AL,DX MOV DL,AL MOV AH,02H;屏幕顯示ASCII碼 INT 21H JMP START;循環檢測
EXIT:MOV AX,4C00H;返回DOS INT 21H CODE ENDS END START
五、實驗結果
從鍵盤輸入字符或數字,若不是Esc鍵,則二極管顯示其ASCII碼情況,若按下ESC,則返回dos,且各LED燈滅。
六、實驗總結
實驗一開始不太明白如何把輸入的字符通過二極管顯示出來,后來參考了實驗一的譯碼輸出,理解了實驗原理。
七、實驗收獲與心得體會
這次實驗是對I/O接口譯碼電路的運用,進一步熟悉了譯碼電路、鍵盤輸入檢測等功能的運用,讓我很好的明白了CPU的地址總線與外部接口是如何工作,也進一步了解了硬件實驗,希望在以后的實驗中有更多的收獲。
實驗四七段數碼管
一、實驗目的
掌握數碼管顯示數字的原理
二、實驗原理及內容
1、靜態顯示:按4-4-1連接好電路,將8255的A口PA0~PA7分別與七段數碼管的段碼驅動輸入端a~dp相連,位碼驅動輸入端S0、S1、S2、S3接PC0、PC1、PC2、PC3,編程在數碼管顯示自己的學號的后四位。(或編程在數碼管上循環顯示“00-99”,位碼驅動輸入端S0、S1 接PC0、PC1;S2、S3接地。)
2、接線: PA7~PA0/8255 接dp~a/LED數碼管 PC3~PC0/8255 接 S3~S0/LED數碼管 CS/8255 接 Y1/IO地址
三、硬件接線圖與軟件程序流程圖
硬件連接圖如下:
程序流程圖如下:
四、源程序
DATA SEGMENT;定義代碼段 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV DX,28BH;控制口地址
MOV AL,80H;控制字10000000設定工作方式0,所有口都置為輸出
OUT DX,AL
LOP1: MOV DX,288H ;A口地址
MOV AL,3fH;段選寫0 OUT DX,AL
MOV DX,28AH;位選第4個LED,C口地址
MOV AL,08H OUT DX,AL
MOV DX,28AH;熄滅數碼管
MOV AL,0 OUT DX,AL
MOV DX,288H;段選寫3 MOV AL,4fH OUT DX,AL
MOV DX,28AH ;位選第3個LED MOV AL,04H OUT DX,AL
MOV DX,28AH;熄滅數碼管
MOV AL,0 OUT DX,AL
MOV DX,288H ;段選寫0 MOV AL,3fH OUT DX,AL
MOV DX,28AH;位選第2個LED MOV AL,02H OUT DX,AL
MOV DX,28AH ;熄滅數碼管
MOV AL,0 OUT DX,AL
MOV DX,288H ;段選寫0 MOV AL,3fH OUT DX,AL
MOV DX,28AH ;位選第1個LED MOV AL,01H OUT DX,AL
MOV DX,28AH ;熄滅數碼管 MOV AL,0 OUT DX,AL
MOV AH,01H INT 16H JNZ EXIT;有鍵輸入則退出
JMP LOP1 EXIT: MOV AX,4C00H;返回DOS INT 21H CODE ENDS END START
五、實驗結果
結果顯示了學號的后四位0300,如下如所示:
當有鍵盤輸入時,返回DOS系統。
六、實驗總結
本次實驗用了8255并行接口芯片,采用方式0,所有口都用輸出模式,A口為段選,控制輸出的數據,C口為位選,控制不同的位不斷掃描、交替亮滅。
七、實驗收獲與心得體會
這次實驗在前兩次實驗的基礎上,用到了并行接口芯片和數碼管,在數碼管上顯示數據,在8255工作在方式0時,用兩個輸出端口,控制數碼管工作,數碼管在之前數電實驗的基礎上比較好理解,這次實驗較之前的實驗更有難度,不過學到了很多知識,由于理論還沒有講到8255,實驗有一定難度,不過對理論課也有一定的幫助。
實驗八可編程定時器/計數器(8253/8254)
一、實驗目的
學習掌握8253用作定時器的編程原理;
二、實驗原理及內容
1.8253初始化
使用8253前,要進行初始化編程。初始化編程的步驟是: ①向控制寄存器端口寫入控制字對使用的計數器規定其使用方式等。②向使用的計數器端口寫入計數初值。2.8253控制字
D7D6=00:使用0號計數器,D7D6=01:使用1號計數器 D7D6=10:使用2號計數器,D7D6=11:無效 D5D4=00:鎖存當前計數值
D5D4=01:只寫低8位(高8位為0),讀出時只讀低8位 D5D4=10:只寫高8位(低8位為0),讀出時只讀高8位 D5D4=11:先讀/寫低8位,后讀/寫高8位計數值
D3D2D1=000:選擇方式0,D3D2D1=001:選擇方式1 D3D2D1=X10:選擇方式2,D3D2D1=X11:選擇方式3 D3D2D1=100:選擇方式4,D3D2D1=101:選擇方式5 D0=0:計數初值為二進制,D0=1:計數初值為BCD碼數
3.實驗內容
完成一個音樂發生器,通過喇叭或蜂鳴器放出音樂,并在數碼管上顯示樂譜。利用小鍵盤實現彈琴功能,并顯示彈奏的樂譜。
三、硬件接線圖與軟件程序流程圖
接線圖如下:
CS /8253 接 Y0 /IO 地址 GATE0 /8253 接 +5V CLK0 /8253 接 1M時鐘
OUT0 /8253 接喇叭或蜂鳴器 程序流程圖如下:
四、源程序
DATA SEGMENT FENPIN DW 0001H,3906,3472,3125,2932,2604,2344,2083,1953;分頻比 DIGITAL DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH;數碼管 MUSIC DB 5,3,5,3,5,3,1,1,2,4,3,2,5,5,5,5,5,3,5,3,5,3,1,1,2,4,3,2,1,1,1,1,2,2,4,4,3,1,5,5;存放播放的樂曲音符
NUM DB 00H,070H,0B0H,0D0H,0E0H ;檢測鍵盤輸入 DATA ENDS
STACK SEGMENT STACK 'STACK' DB 100 DUP(?)STACK ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK
;延時子程序
DELAY PROC NEAR PUSH CX MOV CX,100H WAIT0: LOOP WAIT0 POP CX RET DELAY ENDP
;延時子程序2 DELAY1 PROC NEAR PUSH CX MOV CX,0FFFFH WAIT1: LOOP WAIT1 POP CX RET DELAY1 ENDP
;獲取鍵盤輸入值的子程序 KEY PROC NEAR PUSH AX ;保護現場 PUSH CX PUSH DX MOV CX,01H CHECK: MOV DX,28AH ;C口地址給DX MOV BX,OFFSET NUM ADD BX,CX MOV AL,[BX] OUT DX,AL ;防抖
IN AL,DX ;判斷是否有鍵盤按下 MOV AH,AL CALL DELAY IN AL,DX CMP AL,AH JNZ CHECK ;不相等說明為抖動,重新檢測 ;判斷按下的列
AND AL,0FH CMP AL,0FH JZ NEXT CMP AL,0EH JZ NEXT1 CMP AL,0DH JZ NEXT2 CMP AL,0BH JZ NEXT3 MOV BX,01H JMP GOT NEXT: INC CX ;修改變量掃描下一行 CMP CX,05H JNZ JUMP1 MOV CX,01H JUMP1: JMP CHECK NEXT1: MOV BX,04H JMP GOT NEXT2: MOV BX,03H JMP GOT NEXT3: MOV BX,02H
;計算按下鍵盤的數值
GOT: SUB CX,01H MOV AL,CL MOV DL,04H MUL DL ADD BL,AL SUB BL,01H ;此時BX中所存即為對應的偏移量 POP DX ;恢復現場 POP CX POP AX RET KEY ENDP
;主程序
START: MOV AX,DATA MOV DS,AX ;8253初始化
MOV DX,283H MOV AL,36H控制字為00110110,選計數器0,先讀低字節再讀高字節,選用工作方式3 OUT DX,AL ;8255初始化
MOV DX,28BH MOV AL,81H ;C口輸入(10000001)
OUT DX,AL MOV DX,289H ;B口位選數碼管
MOV AL,01H OUT DX,AL ;掃描鍵盤
LOOP1: CALL KEY CMP BX,0 ;按0播放音樂 JZ PLAY0 CMP BX,9 ;按9退出 JZ EXIT ;按1~8發出對應音 MOV CX,BX MOV BX,OFFSET DIGITAL ;數碼管顯示音符 ADD BX,CX MOV AL,[BX] MOV DX,288H ;A口輸出 OUT DX,AL ;播放該音符
MOV BX,OFFSET FENPIN MOV AX,CX ADD AX,AX ADD BX,AX ;計數,先低八位后高八位 MOV AX,[BX] MOV DX,280H OUT DX,AL MOV AL,AH OUT DX,AL CALL DELAY1 CALL DELAY1
MOV DX,28AH ;C口輸入 IN AL,DX ;檢測鍵盤是否彈起 MOV AH,AL LOOP2: CALL DELAY IN AL,DX CMP AL,AH JZ LOOP2 ;初始化8253,停止播放音樂 MOV AX,0H MOV DX,283H MOV AL,36H OUT DX,AL JMP LOOP1
;播放音樂
PLAY0: MOV CX,01H PLAY: PUSH CX
;讀取音符,存于CX中
MOV BX,OFFSET MUSIC ADD BX,CX MOV AL,[BX] MOV CL,AL MOV CH,0H ;數碼管顯示
MOV BX,OFFSET DIGITAL ADD BX,CX MOV AL,[BX] MOV DX,288H OUT DX,AL
;播放該樂符
MOV BX,OFFSET FENPIN MOV AX,CX ADD AX,AX ADD BX,AX ;計數,先低八位后高八位 MOV AX,[BX] MOV DX,280H OUT DX,AL MOV AL,AH OUT DX,AL POP CX ;延時,持續播放
MOV AX,90H LOOP3: CALL DELAY1 DEC AX JNZ LOOP3 ;樂曲未結束時,CX加1 INC CX CMP CX,28H;共40個音符 JNZ JUM JMP LOOP1 JUM: JMP PLAY
EXIT: MOV AL,0 MOV DX,288H OUT DX,AL MOV AX,4C00H INT 21H
CODE ENDS END START
五、實驗結果
按下鍵盤0,播放歌曲“粉刷匠”,數碼管顯示相應的音符;按下小鍵盤的1——8,喇叭播放所對應的音符,數碼管顯示按下的音符;按下鍵盤的9時,數碼管熄滅,返回DOS系統。
六、實驗總結與思考題
實驗主要用了8253計數器,其工作在方式3下,作為方波發生器,產生不同音符的不同頻率的方波。根據音符頻率和1M的時鐘確定輸入頻率,檢測鍵盤的輸入,判斷輸入的字符,8253產生相應的頻率,喇叭播放音符,數碼管輸出按下的音符。實驗的難點在于怎樣判斷鍵盤的輸入。
思考題:寫出8253計數初值,輸入頻率和輸出頻率的關系:
答:輸出頻率 = 輸入頻率/8253計數初值
七、實驗收獲與心得體會
這次實驗較之前的實驗難度較大,用到了8255、8253、數碼管,是個相對來說系統點的實驗,這也使得代碼在實現起來比較多而復雜。一開始實驗時不理解8255計數器的工作原理,對音符如何通過喇叭顯示出來也不明白,在弄清楚了他們的原理和相互之間的聯系之后,才慢慢理解。實驗的內容要求編一小段音樂,雖然實驗很難,但是也增加了我們對實驗的興趣。實驗十六串行通訊8251
一、實驗目的
1、了解串行通訊的基本原理。
2、掌握串行接口芯片8251的工作原理和編程方法。
二、實驗原理及內容
1、按下圖連接好電路,(8251插通用插座)其中8254計數器用于產生8251的發送和接收時鐘,TXD和RXD連在一起。
2、編程: 從鍵盤輸入一個字符,將其ASCII碼加 1 后發送出去,再接收回來在屏幕上顯示,(或將內存制定區域內存放的一批數據通過8251A的TXD發送出去,然后從RXD接收回來,并在屏幕上或數碼管上顯示出來。)實現自發自收。
3、接線: CLK0 /8254 接 1M時鐘 GATE0 /8254 接 +5V 0UT0 /8254 接 TX/RXCLK /8251 CS /8254 接 Y0 /IO地址 CS /8251 接 Y7 /IO地址 RXD /8251 接 TXD /8251
三、硬件接線圖與軟件程序流程圖
硬件接線圖如下: 程序流程圖如下:
四、源程序
DATA SEGMENT;定義數據段
STRING DB 'SEND ','$';定義字符串 STRING1 DB 'RECEIVE ','$' STRING2 DB 0DH,0AH,'$'
DATA ENDS
STACK SEGMENT STACK 'SATCK';定義堆棧段
DB 100 DUP(?)STACK ENDS
CODE SEGMENT;定義代碼段
ASSUME CS:CODE,DS:DATA,SS:STACK
;延時子程序
DELAY PROC NEAR PUSH CX MOV CX,100H WAIT0: LOOP WAIT0 POP CX RET DELAY ENDP
START: MOV AX,DATA MOV DS,AX;8254初始化
MOV DX,283H MOV AL,16H;(00010110)計數器0,只讀低字節,方式3,二進制 OUT DX,AL CALL DELAY MOV DX,280H;計數器0,初值為52 MOV AL,34H;初值52 OUT DX,AL CALL DELAY;8251初始化
MOV DX,2B9H;控制端口地址
MOV AL,40H;(01000000)內部復位命令 OUT DX,AL NOP CALL DELAY MOV AL,5E;(01011110)方式控制字:波特率因子為16,一位停止位,一位奇校
驗的異步方式
OUT DX,AL MOV AL,37H;(00110111)命令控制字 OUT DX,AL CALL DELAY
;發送數據
GOON: MOV DX,2B9H;讀狀態字 IN AL,DX TEST AL,01H ;檢測是否可以發送字符 JZ GOON
;顯示提示語句 MOV AH,09H MOV DX,OFFSET STRING INT 21H
MOV AH,01H INT 21H;檢測是否為ESC鍵 CMP AL,1BH JZ EXIT INC AL;加1
MOV DX,2B8H;訪問數據寄存器 OUT DX,AL;接收數據
RECEIVE: MOV DX,2B9H ;讀狀態字 IN AL,DX TEST AL,02H ;檢測是否收到新數據 JZ RECEIVE
;顯示提示語句 MOV AH,09H MOV DX,OFFSET STRING2 INT 21H MOV AH,09H MOV DX,OFFSET STRING1 INT 21H
MOV DX,2B8H IN AL,DX MOV DL,AL MOV AH,02H;顯示接收的數據 INT 21H MOV AH,09H MOV DX,OFFSET STRING2 INT 21H JMP GOON ;不斷的發送讀寫
EXIT: MOV AX,4C00H;返回DOS INT 21H
CODE ENDS END START
五、實驗結果
實驗結果如上圖所示,輸出字符為輸入字符的下一個,可以連續的發送接收,按下Esc健時,返回DOS。
六、實驗總結與思考題
實驗用到了串行通信接口芯片8251A,采用異步方式,確定了方式控制字。8254計數器的計數初值=時鐘頻率/(波特率×波特率因子),這里的時鐘頻率接 1MHz,波特率若選1200,波特率因子若選16,則計數器初值為52。
實驗的難點在于發送和接收,當TxRDY為高電平時發送緩存區空,此時可以寫入數據,8251A與01進行與運算,若結果為1表示可以發送數據;當RxRDY為高電平時接收緩存區滿,此時可以讀數據,8251A與10進行與運算,若結果為1表示可以接收數據。
思考題:在實驗中,你如何確定RxC,TxC的值,寫出計算公式 答:RxC=TxC=8253輸出時鐘頻率=8251波特率*波特率因子
七、實驗收獲與心得體會
這次實驗主要用了串行接口8251A,相比并行接口較為簡單,還用到了計數器8253,又加強了對其的了解,這次實驗課是在理論課剛上完之后,對8251A的理解也比較到位,所以整個實驗都進行的比較順利,對理論課不太懂得知識,經過實驗后也都弄得比較清楚。這是硬件實驗的最后一次,用到了兩個芯片,還是比較系統的。這學期的硬件實驗讓我提高了自己的實際操作能力,幫助更好的理解了理論課所學的知識,也對匯編語言有了更直觀的了解,收獲了很多。
第二篇:微機原理與接口技術 實驗報告一
評
閱
微機原理與接口技術
實驗報告一
姓名
匡越
學號
1715211016
時間
地點
實驗題目
一、實驗目的1.熟悉Keil軟件使用
2.熟悉MCS-51指令
3.學習簡單程序的調試方法
二、實驗說明
通過實驗了解單片機內部存儲器的結構和分配及讀寫存儲器的方法,熟悉MCS-51指令同時,學習單片機程序編程、調試方法。
三、實驗內容及步驟
1.啟動PC機,打開Keil軟件,軟件設置為模擬調試狀態。在所建的項目文件中輸入源程序1,進行編譯,如有錯誤按提示找到該行并糾錯,重新編譯直到通過。
2.編譯無誤后,打開CPU窗口,選擇單步或跟蹤執行方式運行程序,觀察CPU窗口各寄存器的變化并將觀察到的結果記錄到預習報告。
3.新建另一個項目輸入源文件2,打開CPU窗口,選擇單步或跟蹤執行方式運行程序,觀察存儲塊數據變化情況記錄到預習報告。點擊復位按鈕,改變存儲塊數據,點擊全速執行快捷按鈕,點擊暫停按鈕,觀察存儲塊數據變化情況,記錄到預習報告。點擊復位按鈕,改變存儲塊數據,分別LOOP、LOOP1設置斷點,點擊全速執行快捷按鈕,在斷點處觀察寄存器及存儲塊數據變化情況。
WAVE軟件使用方法參考其幫助文件。
四、實驗程序流程框圖、實驗程序
1、源程序1
ORG
0000H
AJMP
MAIN
ORG
0030H
MAIN:
MOV
R0,#30H;
(R0)=
(00H)=
MOV
A,#40H;
(A)=
MOV
R6,A;
(A)=,(R6)=
MOV
A,@R0;
(R0)=
(A)=
MOV
40H,A;
(A)=
(40H)=
MOV
30H,40H;
(30H)=
(40H)=
MOV
R1,#40H;
(R1)=
MOV
@R1,#0AAH;(R1)=
(40H)=
MOV
SP,#60H;
(SP)=
PUSH
ACC;
(SP)=
(61H)=
PUSH
30H;
(SP)=
(62H)=
MOV
A,#0FFH;
(SP)=
(A)=
MOV
30H,#30H;
(SP)=
(30H)=
POP
ACC;
(SP)=
(A)=
POP
30H;
(SP)=
(30H)=
ADD
A,30H;
(30H)=
(A)=
Cy=
SUBB
A,#10;
(A)=
Cy=
MOV
R4,#00100100B;
(R4)=
H
MOV
A,#39H;
(A)
=
ADD
A,R4;
(A)
=
(R4=)
DA
A;
(A)
=
Cy=
MOV
28H,#55H;(28H)
=
Cy=
MOV
C,40H;
(PSW)
=
Cy=
MOV
26H,#00H;(26H)
=
Cy=
MOV
30H,C;
(30H)
=
(26H.1)
=
SJMP
$
j點擊project,選擇下拉式菜單中的New
project;
k選擇所要的單片機,這里我們選擇常用的Ateml
公司的AT89C51;
l新建一個File,輸入源程序;
m將新建文件保存為text.asm的格式;
n鼠標在屏幕左邊的Source
Group1
文件夾圖標上右擊彈出菜單,在這里可以做在項目中增加減少文件等操作。選“Add
File
to
Group
‘Source
Group
1’”彈出文件窗口,選擇剛剛保存的文件;
o對程序進行編譯運行;
使程序一得:
ORG
0000H
AJMP
MAIN
ORG
0030H
MAIN:
MOV
R0,#30H
;
(R0)=
0x30
(00H)=
0x0000
MOV
A,#40H
;
(A)=
0x40
MOV
R6,A
;
(A)=
0x40,(R6)=
0x40
MOV
A,@R0
;
(R0)=
0x30
(A)=
0x16
MOV
40H,A
;
(A)=0x16
(40H)=
0x0040
MOV
30H,40H
;
(30H)=
0x0030
(40H)=
0x0040
MOV
R1,#40H
;
(R1)=
0x40
MOV
@R1,#0AAH;(R1)=
0x40
(40H)=
0x0040
MOV
SP,#60H;
(SP)=
0x60
PUSH
ACC;
(SP)=
0x61
(61H)=
0x0061
PUSH
30H;
(SP)=
0x62
(62H)=
0x0062
MOV
A,#0FFH;
(SP)=
0x62
(A)=
0xff
MOV
30H,#30H;
(SP)=
0x62
(30H)=
0x0030
POP
ACC;
(SP)=
0x61
(A)=
0x16
POP
30H;
(SP)=
0x60
(30H)=
0x0030
ADD
A,30H;
(30H)=
0x0030
(A)=
0x2a
Cy=
0
SUBB
A,#10;
(A)=
0x20
Cy=
0
MOV
R4,#00100100B;
(R4)=
0x24
H
MOV
A,#39H;
(A)
=
0x39
ADD
A,R4;
(A)
=
0x5d
(R4=)
0x24
DA
A;
(A)
=
0x63
Cy=
0
MOV
28H,#55H;(28H)
=
0x0028
Cy=
0
MOV
C,40H;
(PSW)
=
0x80
Cy=
MOV
26H,#00H;(26H)
=
0x0026
Cy=
MOV
30H,C;
(30H)
=
0x0030
(26H.1)
=
0
SJMP
$
2、源程序2
設(30H)=4,(31H)=1,(32H)=3,(33H)=5,(34H)=2,(35H)=6
ORG
0000H
AJMP
MAIN
ORG
0030H
MAIN:
MOV
R0,#30H;30H→R0
MOV
R2,#6;6→R2
SORT:
MOV
A,R0;30H→A
MOV
R1,A;30H→R1
MOV
A,R2;6→A
MOV
R5,A;6→R5
CLR
F0;
狀態標志位清零
DEC
R5;寄存器R5減一
MOV
A,@R1;R1→A
LOOP:
MOV
R3,A;A→R3
INC
R1
;寄存器R1增1
CLR
C
;進位標志位清零
MOV
A,@R1;31H→A
SUBB
A,R3;累加器內容減去寄存器內容
JNC
LOOP1;僅為標志位為1,則進行LOOP1
;以下代碼完成數據交換
SETB
F0;狀態標志位置1
MOV
A,@R1;31H→A
XCH
A,R3;將A于與R3的數據交換
MOV
@R1,A;將4賦值給寄存器R1(31H)
DEC
R1;寄存器減一
MOV
A,R3;1→A
MOV
@R1,A;將1賦值給寄存器R1(30H)
INC
R1;寄存器R1增一
LOOP1:
MOV
A,@R1;4→A
DJNZ
R5,LOOP;寄存器R5減一,不為零則回到LOOP
JB
F0,SORT;狀態標志位為零,則回到SORT
SJMP
$
第三篇:微機原理與接口技術試題答案
微機原理與接口技術試題答案
一、填空題(20*1)
1、微機系統由(硬件系統)和(軟件系統)兩部分組成。2、8086有(20)位地址線,存儲器容量為(1M)B。3、8086CPU 內部組成結構從功能上講,可分為(BIU)和(EU)兩部分。4、8086/8088的四個段寄存器為(DS)、(ES)、(SS)、(CS)
5、用來存放CPU狀態信息的寄存器是(FLAGS)。
6、用來存放指令地址的寄存器是(IP)。7、8086的16位標志寄存器FLAGS中OF=1表示運算結果(溢出),ZF=1表示運算結果為零。PF=0表示運算結果的低8位中1的個數為(奇數)。
8、8086的16位標志寄存器FLAGS中IF=1表示CPU(允許)中斷,TF=1表示CPU進入(單步)工作方式。
9、地址4000H:0300H,其物理地址是(40300H),段地址是(4000H),偏移地址是(0300H)。
11、I/O端口的尋址方式有兩種,分別是(直接尋址),(間接尋址)。
12、指令JO NEXT 表示OF=(1)時轉移。
13、將I/O設備端口內容讀入AL中的指令助記符是(IN)。14、8086CPU的 I/O指令采用間接尋址時,使用的間接寄存器是(DX)。
15、設置DF=1的指令為(STD)。
16、清除CF標志的指令為(CLC)。
17、一對操作堆棧的指令為(POP)和(PUSH)。
18、LOOPNZ的循環條件為(CX≠0且ZF=0)。
19、實現無符號數乘2的指令的助記符是(SHL),實現有符號數除2的指令的助記符是(SAR)。22、8086CPU引腳信號中中斷請求兩個信號名稱為(INT)和(NMI)。
26、I/O端口的編址方式一般有(存儲器統一編址)和(獨立編址)兩種
29.1片8259A中斷控制器可管理(8)級中斷,用9片8259A可構成(64)級主從式中斷管理系統。
二: 填空題(每題2分, 共20分)1.8086CPU復位時, 寄存器 CS值為(FFFFH), 寄存器 IP的值為(0000H)2.8086CPU的8個8位通用寄存器名為(AL),(AH),(BL),(BH),(CL),(CH),(DL),(DH).3.若SS = 3240H, SP = 2000H, 棧頂的實際地址為(34400H).4.指令 MOV AX, [BX] 的機器碼為 8BH, 07H , 指令 MOV [BX], AX的機器碼為(89H),(07H).5.8255A的工作方式有方式0功能為(基本輸入輸出), 方式1功能為(選通輸入輸出), 方式2功能為(雙向數據傳送).6.執行指令 PUSH AX有 SP =(SPBUF DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA STAR PROC FAR PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX LEA BX, BUF1 MOV CX , COUNT-1 MOV AL, [BX] AG: INC BX CMP AL, [BX] JAE BIG MOV AL, [BX] BIG: DEC CX JNZ AG MOV BUF2, AL RET STAR ENDP CODE ENDS END STAR 問: 該程序執行后BUF2中的值為(9).四、程序設計題(2*10)
1、編寫一個匯編語言程序,要求從鍵盤輸入一個小寫字母,將其轉換成大寫字母在屏幕上顯示出來。
DATA SEGMENT BUF DB 0DH,0AH,“PLEASE INPUT A CHAR:$” DATAENDS
STACK SEGMENT
DB 20 DUP(?)STACKENDS
CODESEGMENT
ASSUME DS:DATA,CS:CODE ,SS:STACK BEGIN: MOV AX,DATA
MOV DS,AX
LEA DX,BUF;9號調用顯示PLEASE INPUT A CHAR:
MOV AH,9
INT 21H
MOV AH,1;1號調用,從鍵盤接收1字符
INT 21H
CMP AL,61H /41H;若比“a”/A小轉PEND
JB PEND
CMP AL,7AH /5BH;若比“z”/Z大轉PEND
JA PEND;
ADD/SUB AL,20H;如在“a”與“z”之間則減去20變為大寫字符
MOV DL,AL
MOV AH,2;2號功能調用顯示一個字符
INT 21H
PEND: MOV AH,4CH;程序結束運行,返回DOS
INT 21H CODE ENDS
END BEGIN
2、已知芯片8253的端口地址為4F0H~4F3H,設計數器1工作在方式1,計數器初值為3060H,采用二進制計數,請設計實現上述功能的8253初始化程序。8253控制字格式如下:
因為計數器初值為3060H,即為16位的,所以讀/寫格式為11 因此控制字為:01110010 =72 控制字:MOV AL, 72H OUT 4F3H, AL
低8位:MOV AL, 60H OUT 4F1H, AL
高8位:MOV AL, 30H
OUT 4F1H, AL
六: 編程題(7分)編一個完整的程序, 數據段有10個符號的ASCII碼值數據塊 BUF , 若數據為0到 9的ASCII碼值, 在屏上顯示 Y , 否則顯示 N 解: DATA SEGMENT BUF DB 10 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA NAIN PROC FAR PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX MOV CX, 10 LEA BX, BUF AG: MOV AL, [BX] CMP AL, 30H JL DISNO CMP AL, 39H JG DISNO MOV AH, 02H MOV DL, ‘Y’ INT 21H JMP NEXT DISNO: MOV AH, 02H MOV DL, ‘N’ INT 21H NEXT: INC CX DEC CX JNZ AG RET MAIN ENDP CODE ENDS END MAIN 七: 接口編程(7分, 僅編程序段)8255A的A口,B口均工作于方式0, 從A口輸出數據30H, 將B口輸入的數據放入寄存器BL中.(注:8255A口地址為60H到63H)解: 1 0 0 0 X 0 1 X 方式控制字= 82H MOV AL, 82H OUT 63H, AL MOV AL, 30H OUT 60H, AL IN AL, 61H MOV BL, AL
第四篇:微機原理與接口技術小結
微機原理與接口技術基礎
1.為什么在流水CPU中,將一條指令從取指到執行結束的任務分割為一系列子任務,并使各子任務在流水線的各個過程段并發地執行,從而使流水CPU具有更強大的數據吞吐能力?
這里可以使用時空圖法證明結論的正確性。
假設指令周期包含四個子過程:取指令(IF)、指令譯碼(ID)、取操作數(EX)、進行運算(WB),每個子過程稱為過程段(Si),這樣,一個流水線由一系列串連的過程段組成。在統一時鐘信號控制下,數據從一個過程段流向相鄰的過程段。
2.譯碼器是如何譯碼的?尋址空間是如何確定的?譯碼器與尋址空間是怎么聯系的?
譯碼器實際上是由許多與門、或門、非門和它們的組合構成的。它有若干個輸入端和若干個輸出端(也可能只有一個輸出端)。對某一個輸出端來說,它的電平高低必然與輸入的某一種狀態相對應。
例如,具有4個輸入端的與非門就是一個簡單的譯碼器,只有四個輸入端為1111時,它的輸出端才為0。如果將地址總線的A9、A8、A7、A6與它的四個輸入連接起來,并把它的輸出連到存儲器芯片或某個需要尋址的外設接口的片選端(假定低電平有效),那么,只有當A9、A8、A7、A6為1111時,存儲器芯片或外設才會被選中。
譯碼器的尋址空間取決于地址總線的哪幾根線接到譯碼器的輸入端,例如上例,地址總線的A9、A8、A7、A6與譯碼器的輸入連接,那么其尋址空間應該是11 1100 0000~11 1111 1111,即3C0H~3F0H。
注意,沒有參與譯碼的低位地址線必然要參與存儲器芯片或外設接口的內部譯碼。也就是說,內部譯碼地址范圍是0--2n11 0000。
可以說,譯碼器的譯碼輸出決定了尋址空間的起始地址,內部譯碼決定了尋址空間的大小。由于上一條指令的四個子過程全部執行完畢后才能開始下一條指令,因此每隔4個單位時間才有一個輸出結果,即一條指令執行結束。表示非流水CPU的時空圖。由于上一條指令與下一條指令的四個過程在時間上可以重疊執行,因此,當流水線滿載時,每一個單位時間就可以輸出一個結果,即執行一條指令。
比較后發現:流水CPU在八個單位時間中執行了5條指令,而非流水CPU僅執行了2條指令,因此流水CPU具有更強大的數據吞吐能力。
3.書本上講的是若是計算結果中1的個數為偶數時,則PF=1;但我又在另外的輔導書上看到的說如果計算結果的低8位中1的個數為偶數,PF=1.請問老師是否是低八位?
答:對,PF只與結果的低8位有關。
4.80386 CPU包含哪些寄存器?各有什么主要用途?
80386共有7類34個寄存器。它們分別是通用寄存器、指令指針和標志寄存器、段寄存器、系統地址寄存器、控制寄存器、調試和測試寄存器。
(1)通用寄存器(8個)
EAX,EBX,ECX,EDX,ESI,EDI,EBP和ESP。每個32位寄存器的低16位可單獨使用,同時AX、BX、CX、DX寄存器的高、低8位也可分別當作8位寄存器使用。它們與8088/8086中相應的16位通用寄存器作用相同。
(2)指令指針和標志寄存器。
指令指針EIP是一個32位寄存器,存放下一條要執行的指令的偏移地址。
標志寄存器EFLAGS也是一個32位寄存器,存放指令的執行狀態和一些控制位。
(3)段寄存器(6個)
CS,DS,SS,ES,FS和GS。在實方式下,它們存放內存段的段地址。在保護方式下,它們被稱為段選擇符。其中存放的是某一個段的選擇符。當選擇符裝入段寄存器時,80386中的硬件章自動用段寄存器中的值作為索引從段描述符表中取出一個8個字節的描述符,裝入到與該段寄存器相應的64位描述符寄存器中。
(4)控制寄存器(4個)
CR0、CRl、CR2和CR3。它們的作用是保存全局性的機器狀態。
(5)系統地址寄存器(4個)
GDTR、IDTR、LDTR和TR。它們用來存儲操作系統需要的保護信息和地址轉換表信息、定義目前正在執行任務的環境、地址空間和中斷向量空間。
(6)調試寄存器(8個)
DR0~DR7。它們為調試提供硬件支持。
(7)測試寄存器(8個)
TR0~TR7,其中TR0~TR5由Intel公司保留,用戶只能訪問TR6、TR7。它們用于控制對TLB中的RAM和CAM相連存儲器的測試。TR6是測試控制寄存器,TR7是測試狀態寄存器,保存測試結果的狀態
5.什么是外部中斷源?什么是中斷向量碼?什么是讀選通信號?
答:外部中斷源就是在CPU外部能夠產生中斷請求的設備/器件;通俗地說,中斷向量碼就是中斷的編號,其值為0-FFH;選通信號就是打開邏輯門的控制信號,或用來鎖存信息(類似D觸發器的CP或CLK)的控制信號。讀選通信號就是用來打開總線緩沖器,以便把的數據送到總線上的控制信號。
6.CPU處于單步執行指令的工作方式(課本49頁),請問什么是單步執行指令工作方式? 答:在這種方式下,CPU每執行一條指令,就產生一次特殊的中斷,以便可以停下來檢查執行的結果。主要用于各類程序的調試。
7.片選信號(CS)到底是起使數據有效或無效的作用還是起選擇芯片的作用啊?若是前者,干嗎叫片選?
片選信號就是選擇芯片的信號。前者不叫片選信號,應該叫允許信號。
8.書本上講的是若是計算結果中1的個數為偶數時,則PF=1;但我又在另外的輔導書上看到的說如果計算結果的低8位中1的個數為偶數,PF=1.請問老師是否是低八位?
微型計算機基礎
1.為什么在流水CPU中,將一條指令從取指到執行結束的任務分割為一系列子任務,并使各子任務在流水線的各個過程段并發地執行,從而使流水CPU具有更強大的數據吞吐能力?
這里可以使用時空圖法證明結論的正確性。
假設指令周期包含四個子過程:取指令(IF)、指令譯碼(ID)、取操作數(EX)、進行運算(WB),每個子過程稱為過程段(Si),這樣,一個流水線由一系列串連的過程段組成。在統一時鐘信號控制下,數據從一個過程段流向相鄰的過程段。
2.譯碼器是如何譯碼的?尋址空間是如何確定的?譯碼器與尋址空間是怎么聯系的?
譯碼器實際上是由許多與門、或門、非門和它們的組合構成的。它有若干個輸入端和若干個輸出端(也可能只有一個輸出端)。對某一個輸出端來說,它的電平高低必然與輸入的某一種狀態相對應。
例如,具有4個輸入端的與非門就是一個簡單的譯碼器,只有四個輸入端為1111時,它的輸出端才為0。如果將地址總線的A9、A8、A7、A6與它的四個輸入連接起來,并把它的輸出連到存儲器芯片或某個需要尋址的外設接口的片選端(假定低電平有效),那么,只有當A9、A8、A7、A6為1111時,存儲器芯片或外設才會被選中。
譯碼器的尋址空間取決于地址總線的哪幾根線接到譯碼器的輸入端,例如上例,地址總線的A9、A8、A7、A6與譯碼器的輸入連接,那么其尋址空間應該是11 1100 0000~11 1111 1111,即3C0H~3F0H。
注意,沒有參與譯碼的低位地址線必然要參與存儲器芯片或外設接口的內部譯碼。也就是說,內部譯碼地址范圍是0--2n11 0000。
可以說,譯碼器的譯碼輸出決定了尋址空間的起始地址,內部譯碼決定了尋址空間的大小。由于上一條指令的四個子過程全部執行完畢后才能開始下一條指令,因此每隔4個單位時間才有一個輸出結果,即一條指令執行結束。表示非流水CPU的時空圖。由于上一條指令與下一條指令的四個過程在時間上可以重疊執行,因此,當流水線滿載時,每一個單位時間就可以輸出一個結果,即執行一條指令。
比較后發現:流水CPU在八個單位時間中執行了5條指令,而非流水CPU僅執行了2條指令,因此流水CPU具有更強大的數據吞吐能力。
3.書本上講的是若是計算結果中1的個數為偶數時,則PF=1;但我又在另外的輔導書上看到的說如果計算結果的低8位中1的個數為偶數,PF=1.請問老師是否是低八位?
答:對,PF只與結果的低8位有關。
4.80386 CPU包含哪些寄存器?各有什么主要用途?
80386共有7類34個寄存器。它們分別是通用寄存器、指令指針和標志寄存器、段寄存器、系統地址寄存器、控制寄存器、調試和測試寄存器。
(1)通用寄存器(8個)
EAX,EBX,ECX,EDX,ESI,EDI,EBP和ESP。每個32位寄存器的低16位可單獨使用,同時AX、BX、CX、DX寄存器的高、低8位也可分別當作8位寄存器使用。它們與8088/8086中相應的16位通用寄存器作用相同。
(2)指令指針和標志寄存器。
指令指針EIP是一個32位寄存器,存放下一條要執行的指令的偏移地址。
標志寄存器EFLAGS也是一個32位寄存器,存放指令的執行狀態和一些控制位。
(3)段寄存器(6個)
CS,DS,SS,ES,FS和GS。在實方式下,它們存放內存段的段地址。在保護方式下,它們被稱為段選擇符。其中存放的是某一個段的選擇符。當選擇符裝入段寄存器時,80386中的硬件章自動用段寄存器中的值作為索引從段描述符表中取出一個8個字節的描述符,裝入到與該段寄存器相應的64位描述符寄存器中。
(4)控制寄存器(4個)
CR0、CRl、CR2和CR3。它們的作用是保存全局性的機器狀態。
(5)系統地址寄存器(4個)
GDTR、IDTR、LDTR和TR。它們用來存儲操作系統需要的保護信息和地址轉換表信息、定義目前正在執行任務的環境、地址空間和中斷向量空間。
(6)調試寄存器(8個)
DR0~DR7。它們為調試提供硬件支持。
(7)測試寄存器(8個)
TR0~TR7,其中TR0~TR5由Intel公司保留,用戶只能訪問TR6、TR7。它們用于控制對TLB中的RAM和CAM相連存儲器的測試。TR6是測試控制寄存器,TR7是測試狀態寄存器,保存測試結果的狀態
5.什么是外部中斷源?什么是中斷向量碼?什么是讀選通信號?
答:外部中斷源就是在CPU外部能夠產生中斷請求的設備/器件;通俗地說,中斷向量碼就是中斷的編號,其值為0-FFH;選通信號就是打開邏輯門的控制信號,或用來鎖存信息(類似D觸發器的CP或CLK)的控制信號。讀選通信號就是用來打開總線緩沖器,以便把的數據送到總線上的控制信號。
6.CPU處于單步執行指令的工作方式(課本49頁),請問什么是單步執行指令工作方式? 答:在這種方式下,CPU每執行一條指令,就產生一次特殊的中斷,以便可以停下來檢查執行的結果。主要用于各類程序的調試。
7.片選信號(CS)到底是起使數據有效或無效的作用還是起選擇芯片的作用啊?若是前者,干嗎叫片選?
片選信號就是選擇芯片的信號。前者不叫片選信號,應該叫允許信號。
8.書本上講的是若是計算結果中1的個數為偶數時,則PF=1;但我又在另外的輔導書上看到的說如果計算結果的低8位中1的個數為偶數,PF=1.請問老師是否是低八位?對,PF只與結果的低8位有關
第五篇:微機原理與接口技術試題及答案
一、填空題(每空 1 分,共 15 分)得分 評閱人
1.RESET信號到來后8088/86的CS和IP 分別為 _FFFF_H 和_0000_H。2.在特殊全嵌套方式下,8259可響應 同級或高級 中斷請求。3.CPU與外設接口通過? 數據 總線傳送狀態信號與命令信號。4.8255有3種工作方式, 其中 方式2 只允許A口使用。5.有地址重迭現象的譯碼方式為 部分譯碼 和 線選法。
6.外設端口的編址方式有 I/O端口獨.立編址 和 I/O端口與存儲器統一編址。7.INT8253采用BCD碼計數時,其最大計數值為__10000__,此時的計數初值為__0000__。
8.8088/8086的AD7-AD0是地址數據復用引腳,在T1時傳送__地址信號__。9.8259A作為主片時其引腳CAS0-CAS2的信息傳送方向是_向外_。
10.RS-232C是適用于__數據終端設備DTE__和__數據通信設備DCE__間的接口。
二、單項選擇題(每小題1分,共20分)得分 評閱人
1.8086CPU尋址I/O端口最多使用(4)條地址線。(1)8(2)10(3)12(4)16 2.CPU執行IN指令時有效的信號組合是(1)。(1)=0, =1(2)=0, =0(3)=0, =1(4)=0, =0
3.某計算機的字長是16位,它的存儲器容量是64KB,若按字編址那么它的最大尋址范圍是(2)。
(1)64K字(2)32K字(3)64KB(4)32KB 4.某一SRAM芯片的容量是512×8位,除電源和接地線外,該芯片的其他引腳最少應為(4)根。
(1)25(2)23(3)21(4)19 5.8088/8086的基本總線周期由(2)個時鐘周期組成。(1)2(2)4(3)5(4)6 6.在8086系統中中斷號為0AH,則存放中斷向量的內存起始地址為(2)。(1)0AH(2)28H(3)4AH(4)2AH 7.采用兩片8259A可編程中斷控制器級聯使用,可以使CPU的可屏蔽中斷擴大到(1)。
(1)15級(2)16級(3)32級(4)64級
8.當IF=0,8088/8086CPU不響應(2)中斷請求。(1)INT N(2)INTR(3)NMI(4)INTO 9.8253可編程定時器/計數器中,其二進制的最大計數初值為(3)。(1)65536(2)7FFFH(3)0000H(4)FFFFH 10.8086/88CPU在響應中斷時要執行(2)個中斷響應周期。(1)1個(2)2個(3)3個(4)4個
11.中斷向量表是存放(2)的存儲區域.(1)中斷類型號(2)中斷服務程序入口處地址(3)中斷斷點地址(4)程序狀態字
12.INT8255中可用置位/復位控制字對(3)的各位進行按位操作以實現某些控制功能。
(1)A口(2)B口(3)C口(4)數據總線緩沖器
11.RS-232C標準規定信號“0”和“1”的電平是(3)。(1)0V和+3V~+15V(2)-3V~-15V和0V(3)+3V至+15V和-3V~-15V(4)+3V~+15V和-0V 12.對于開關型設備的控制,適合采用的I/O傳送方式是(1)。(1)無條件(2)查詢(3)中斷(4)DMA 13.傳送數據時,占用CPU時間最長的傳送方式是(1)。(1)查詢(2)中斷(3)DMA(4)IOP 14.既然是在數據傳輸率相同的情況下,那么,又說同步字符傳輸速度要高于 異步字符傳輸其原因是(2)。
(1)發生錯誤的概率少(2)附加位信息總量少(3)雙方通信同步(4)字符之間無間隔
15.巳知DRAM2118芯片容量為16K×1位, 若組成64KB的系統存儲器,則組成的芯片組數和每個芯片組的芯片數為(4).(1)2和8(2)1和16(3)4和16(4)4和8 16.INT 8259中斷屏蔽寄存儲器的作用是(2).(1)禁止CPU響應外設的中斷請求(2)禁止外設向CPU發中斷請求(3)禁止軟中斷請求(4)禁止NMI中斷請求
17.在正常EOI方式下, 中斷結束命令是清除(2)中的某一位.(1)IRR(2)ISR(3)IMR(4)程序狀態字
18.軟中斷INT N的優先級排列原則是(3).(1)N值愈小級別愈高(2)N值愈大級別愈高(3)無優先級別(4)隨應用而定
19.串行異步通信傳輸的主要特點是(2).(1)通信雙方不必同步(2)每個字符的發送是獨立的
(3)字符之間的傳送時間長度應相同(4)字符發送速率由波特率決定 20.8位D/A轉換器的分辨率能給出滿量程電壓的(4).(1)1/8(2)1/16(3)1/32(4)1/256
三、判斷說明題(正者在括號內打“√”,誤者在括號內打“×”,均需說明理由。每小題2分,共10分)得分 評閱人
1.8086CPU在讀/寫總線周期的T3狀態結束對READY線采樣,如果READY為低電平,則在T3與T4狀態之間插入等待狀態TW。(×)應改為:8086CPU在讀/寫總線周期的T3狀態開始對READY線采樣,如果READY為低電平,則在T3與T4狀態之間插入等待狀態TW。
2.在8253的方式控制字中,有一項計數鎖存操作,其作用是暫停計數器的計數。(×)
應改為:鎖存計數器的當前值到鎖存器,但不影響對計數器的計數工作。
3.8250的溢出錯誤指示CPU還未取走前一個數據,接收移位寄存器又將接收到的一個新數據送至輸入緩沖器。(√)
4.在8088系統(最小組態)中,執行指令”MOV [2000H],AX”需1個總線周期。(×)
應改為:需2個總線周期
5.DMA控制器8237A現行字節數寄存器的值減到0時,終止計數。(×)應改為:DMA控制器8237A現行字節數寄存器的值減到0,再由0減到0FFFFH時,終止計數。
四、簡答題(每小題5分,共20分)得分 評閱人
1.試述8250的數據接收時鐘RCLK使用16倍比特率的時鐘信號接收異步通信信號的原因以及接收過程。
答:主要是為了確定起始位避免傳輸線上的干擾。
其接收過程為:接收器檢測到串行數據輸入引腳SIN由高電平變低后,連續測試8個RCLK時鐘周期,若采樣到的都是低電平,則確認為起始位;若低電平的保持時間不足8個RCLK時鐘周期,則認為是傳輸線上的干擾。
2.8255A工作于方式2,采用中斷傳送,CPU如何區分輸入中斷還是輸出中斷? 答:CPU響應8255A的中斷請求后,在中斷服務程序的開始可以查詢8255A的狀態字,判斷~OBFA(PC7)和IBFA(PC5)位的狀態來區分是輸入中斷還是輸出中斷,并據此轉向相應的輸入或輸出操作。
3.用2K×4位RAM構成64KB的存儲系統,需要多少RAM芯片?需要多少位地址作為片外地址譯碼?設系統為20位地址線,采用全譯碼方式。答:64片。
9位。其中A16~A19固定,A10~A15譯碼形成組選信號。
4.請說明Intel8253各個計數通道中三個引腳信號CLK,OUT和GATE的功能。答:CLK為計數時鐘輸入引腳,為計數器提供計數脈沖。
GATE為門控信號輸入引腳,用于啟動或禁止計數器操作,如允許/禁止計數、啟
動/停止計數等。
OUT為輸出信號引腳以相應的電平或脈沖波形來指示計數的完成、定時時間到。
五、簡單應用題(每小題5分,共15分)得分 評閱人
1.Intel8253的通道0按方式3工作,時鐘CLK0的頻率為1兆,要求輸出方波的頻率為40KHz,采用BCD碼計數,設通道0的地址為PORT0,請對它寫入計數值。解:n(計數初值)=1MHz/40KHz=25 寫入計數值的程序段: MOV AL,25H OUT PORT0,AL
2.若8086系統采用單片8259A,其中斷類型碼為46H,則其中斷矢量表的地址指針是多少?這個中斷源應連向8259A的哪一個IR輸入端? 解:中斷矢量表的地址指針是46H×4=118H 應連向8259A的IR6