1.2
解答:
n 微型計算機:以大規模、超大規模內建電路為主要部件,以內建了計算機主要部件——控制器和運算器的微處理器為核心,所構造出的計算機系統
n PC機:PC(Personal Computer)機就是面向個人單獨使用的一類微機
n 單片機:用于控制的微處理器晶片,内部除CPU外還內建了計算機的其他一些主要部件,如:ROM、RAM、定時器、并行接口、串行接口,有的晶片還內建了A/D、D/A轉換電路等。
n 數字信号處理器DSP:主要面向大流量數字信号的實時處理,在宿主系統中充當資料進行中心,在網絡通信、多媒體應用等領域正得到越來越多的應用
1.4解答:
n 系統總線:傳遞資訊的一組公用導線,CPU通過它們與存儲器和I/O裝置進行資訊交換
n 好處:組态靈活、擴充友善
n 三組信号線:資料總線、位址總線和控制總線
n 其使用特點是:在某一時刻,隻能由一個總線主要裝置來控制系統總線,隻能有一個發送者向總線發送信号;但可以有多個裝置從總線上同時獲得信号。
1.5解答:
n 用于數值計算、資料處理及資訊管理方向
n 采用通用微機,要求有較快的工作速度、較高的運算精度、較大的記憶體容量和較完備的輸入輸出裝置,為使用者提供友善友好的操作界面和簡便快捷的維護、擴充手段。
n 用于過程控制及嵌人應用方向
n 采用控制類微機,要求能抵抗各種幹擾、适應現場的惡劣環境、確定長時間穩定地工作,要求其實時性要好、強調其體積要小、便攜式應用強調其省電。
1.8解答:
n BIOS:基本輸入輸出系統
n 主要功能:用來驅動和管理諸如鍵盤、顯示器、列印機、磁盤、時鐘、串行通信接口等基本的輸入輸出裝置
4.1解答:
n 8088具有 20 根位址線。在通路記憶體時使用位址 A0~A19 ,可直接尋址 1MB 容量的記憶體範圍;在通路外設時使用位址線 A0~A15 ,共能尋址 64K 個輸入輸出端口。實際上,PC/XT在尋址外設時,隻使用位址線 A0~A9 ;若A9=1,說明它要尋址的I/O端口位于 I/O通道 。
4.2解答:
n 總線操作指的是 指發生在總線上的某些特定的操作 ,而總線周期指的是 CPU通過總線操作與外界(存儲器和I/O端口)進行一次資料交換的過程(時間) ,8088典型的總線周期由 4 個T組成。如果8088的CLK引腳接5MHz的時鐘信号,那麼每個T狀态的持續時間為 200ns 。
4.5解答:
n 三态:引腳除正常的高、低電平外,還能輸出高阻狀态。
n 輸出高阻狀态時,表示晶片實際上已放棄了對該引腳的控制,使之“懸空”,這樣他所連接配接的裝置就可以接管對該引腳所連導線的控制。
8088最小組态具有三态能力的引腳:
n A19/S6~A16/S3、A15~A8、AD7~AD0
n IO/M* 、RD*、WR*、ALE
n DEN*、DT/R*
4.6解答:
n RESET:複位請求。有效時,将使CPU回到其初始狀态。
n HOLD:總線保持。有效時,表示總線請求裝置向CPU申請占有總線。
n NMI:不可屏蔽中斷請求。有效時,表示外界向CPU申請不可屏蔽中斷。
n INTR:可屏蔽中斷請求。有效時,表示請求裝置向CPU申請可屏蔽中斷。
4.9解答:
n 當8088進行讀寫存儲器或I/O接口時,如果存儲器或I/O接口無法滿足CPU的讀寫時序(來不及提供或讀取資料時),需要CPU插入等待狀态Tw。
n 在讀寫總線周期的T3和T4之間插入Tw。
4.11解答:
n 8088每個總線周期隻能讀寫一個位元組資料。是以讀取指令長度為3B的指令“ADD [2000H], AX”需要 3 個時鐘周期,執行時需要 2 個時鐘周期。
n 讀取指令是 存儲器讀 總線周期,執行時是 存儲器寫 總線周期?
5.2解答:
n 在半導體存儲器中,RAM指的是 随機存取存儲器 ,他可讀可寫,但斷電後資訊一般會 丢失 ;而ROM指的是 隻讀存儲器 ,正常工作時隻能從中 讀取 資訊,但斷電後資訊 不會丢失 。以EPROM晶片2764為例,其存儲容量為8K×8位,共有 8 條資料線和 13 條位址線。用它組成64KB的ROM存儲區共需 8 片2764晶片。
5.7問題:
n 什麼是存儲器連接配接中的“位擴充”和“位址擴充”?
n 欲組成32KB的RAM存儲區,在采用容量1K×4位的靜态RAM晶片或容量16K×1位的靜态RAM晶片的情況下,各需要多少晶片?
n 在位方向和位址方向上各要進行什麼樣的擴充?請畫出采用2114晶片時的連接配接示意圖。
n 位擴充——存儲器晶片資料位數小于主機資料線數時,利用多個存儲器晶片在資料“位”方向的擴充;
n 位址擴充(字擴充)——當一個存儲器晶片不能滿足系統存儲容量時,利用多個存儲器晶片在“位址”方向的擴充
n 組成32KB存儲空間,用SRAM 2114(1K×4)需要64個晶片;
n 組成32KB存儲空間,用DRAM 4116(16K×1)需要16個晶片;
n 它們都需要進行位擴充和位址擴充
5.8問題:
n 存儲晶片為什麼要設定片選信号?
n 它與系統位址總線有哪些連接配接方式?
n 采用何種連接配接方式可避免位址重複?
n 采用哪些連接配接方式可節省用于譯碼的硬體?
解答:
n 片選信号說明該存儲器晶片是否被選中正常工作,設定它可以比較友善地實作多個存儲器晶片組成大容量的存儲空間
n 存儲器片選信号通常與CPU位址總線的高位位址線相關聯,可以采用“全譯碼”、“部分譯碼”、“線選譯碼”方式
n 采用全譯碼方式可以避免位址重複
n 采用部分或線選譯碼可以節省譯碼硬體
5.9題目:
n 在一個針對存儲器的譯碼系統中,如果有4個位址線未參與譯碼,那麼每個存儲單元會同時擁有幾個位址?
解答:
n 24=16
5.10問題:
n 請寫出圖5.32中4個存儲晶片各自的可用位址範圍,并指明其重複位址。
解答1:
A19~ A16 | A15~ A13 | A12~A0 | 一個可用位址 | |
1 2 3 4 | ××00 ××00 ××00 ××00 | 000 001 010 010 | 全0~全1 全0~全1 0全0~全1 1全0~全1 | 00000H~01FFFH 02000H~03FFFH 04000H~04FFFH 05000H~05FFFH |
晶片 | 一個可用位址 | 重複位址 |
(左) Y0* 6264 | 0000~1FFFH | 40000~41FFFH 80000~81FFFH C0000~C1FFFH |
晶片 | 一個可用位址 | 重複位址 |
(右) Y1* 6264 | 2000~3FFFH | 42000~43FFFH 82000~83FFFH C2000~C3FFFH |
晶片 | 一個可用位址 | 重複位址 |
(左) Y2* 2732 | 4000~4FFFH | 44000~44FFFH 84000~84FFFH C4000~C4FFFH |
晶片 | 一個可用位址 | 重複位址 |
(右) Y2* 2732 | 5000~5FFFH | 45000~45FFFH 85000~85FFFH C5000~C5FFFH |
5.11問題:
n 利用6264晶片(容量8K×8位的SRAM),采用全譯碼方式,在8088系統的記憶體區段40000H~43FFFH擴充RAM區
n 請畫出這些晶片與8088最大組态下形成的系統總線的連接配接示意圖。
解答:
A19~ A16 | A15~ A13 | A12~A0 | 位址 | |
1 2 | 0100 0100 | 000 001 | 全0~全1 全0~全1 | 40000H~41FFFH 42000H~43FFFH |
5-13問題:
n 利用2764 晶片(容量8K×8位的EPROM),采用74LS138進行全譯碼,在8088系統的最高位址區組成32KB的ROM區域
n 請畫出各2764晶片與8088最大組态下形成的系統總線的連接配接示意圖
解答:
A19~ A16 | A15~ A13 | A12~A0 | 位址 | |
1 2 3 4 | 1111 1111 1111 1111 | 100 101 110 111 | 全0~全1 全0~全1 全0~全1 全0~全1 | F8000H~F9FFFH FA000H~FBFFFH FC000H~FDFFFH FE000H~FFFFFH |
6.1問題:
• 一般的I/O接口電路安排有哪三類寄存器?他們各自的作用是什麼?
解答:
⑴ 資料寄存器
n 儲存外設給CPU和CPU發往外設的資料
⑵ 狀态寄存器
n 儲存外設或接口電路的狀态
⑶ 控制寄存器
n 儲存CPU給外設或接口電路的指令
6.4問題:
• 參看圖6.7,程式設計實作以下操作:當K0鍵單獨按下時,發光二極管LED0~LED7将依次點亮,每個維持200ms;當K1鍵單獨按下時,發光二極管LED0~LED7将反向依次點亮,每個也維持200ms;其他情況下LED不點亮(設已有延時200ms的子程式DELAY可直接調用)
解答:
again: mov dx,8000h
in al,dx
cmp al,0feh ;D7~D0=11111110B ?
jz next1 ;單獨按下K0,轉移到next1
cmp al,0fdh ;D7~D0=11111101B ?
jz next2 ;單獨按下K1,轉移到next2
jmp again ;其它情況不點亮
next1: mov cx,8
mov al,1 ;從K0開始
next11: out dx,al ;某個LED電亮
all delay ;延時200ms
shl al,1 rol al,1
oop next11
jmp again
next2: mov cx,8
mov al,80h ;從K7開始
next21: out dx,al ;某個LED電亮
call delay ;延時200ms
shr al,1 ;ror al,1
loop next21
jmp again
6.5問題:
• CPU與外設采用查詢方式傳送資料的過程是怎樣的?現有一輸入裝置,其資料端口的位址為FFE0H ,并于端口FFE2H提供狀态,當其D0位為1時表明輸入資料備好。請編寫采用查詢方式進行資料傳送的程式段,要求從該裝置讀取100個位元組并輸入到從2000H:2000H開始的記憶體中,注意在程式中加上注釋。
• 解答
• 通過讀取狀态寄存器的标志位來檢查外設是否就緒。若不就緒就繼續查詢,即程式不斷循環;直至就緒。然後,進行下一步的傳送工作。
mov bx,2000h
mov ds,bx
mov cx,100
again: mov dx,0ffe2h
status: in al,dx ;查詢一次
test al,01h
jz status
mov dx,0ffe0h
in al,dx ;輸入一個位元組
mov [bx],al
inc bx
loop again ;循環,輸入100個位元組
6.9問題:
• 按照圖6-12所示的中斷查詢接口與相應的流程圖,請編寫用于中斷服務的程式段。具體要求是,當程式查到中斷裝置0有中斷請求(對應資料線D0),它将調用名為PROC0的子程式;如此,依次去查中斷裝置1~中斷裝置3,并分别調用名為PROC1~PROC3的子程式。
sti
push ax
push dx
……
mov dx,8001h
status: in al,dx
test al,01h
jnz service0
test al,02h
jnz service1
test al,04h
jnz service2
test al,08h
jnz service3
……
service0: call proc0
jmp done
service1: call proc1
jmp done
service2: call proc2
jmp done
service3: call proc3
jmp done
……
done: pop dx
pop ax
iret
6.10解答:
n DMA的意思是 直接存儲器存取 ,主要用于高速外設和記憶體間的資料傳送。進行DMA傳送的一般過程是:外設先向DMA控制器提出 DMA請求 ,DMA控制器通過 總線請求HOLD 信号有效向CPU提出總線請求,CPU回以 總線響應HLDA 信号有效表示響應。此時CPU的三态信号線将輸出 高阻 狀态,即将它們交由 DMAC(DMA控制器) 進行控制,完成外設和記憶體間的直接傳送。
7.2解答:
n 在各種微機總線中,根據總線連接配接對象的不同可将它們分為以下幾類,它們是: 片内總線、 晶片總線、 闆級總線、 裝置總線和互連總線_。例如,ISA總線屬于闆級總線,USB總線屬于裝置總線,I2C總線屬于晶片總線。總線中除電源和地線外的信号線,也可按傳輸資訊的不同分為以下3類,即:資料總線 、 位址總線 、 控制總線 。
7.4解答:
n 中斷請求寄存器IRR
n 儲存8條外界中斷請求信号IR0~IR7的請求狀态
n Di位為1表示IRi引腳有中斷請求;為0表示無請求
n 中斷服務寄存器ISR
n 儲存正在被8259A服務着的中斷狀态
n Di位為1表示IRi中斷正在服務中;為0表示沒有被服務
n 中斷屏蔽寄存器IMR
n 儲存對中斷請求信号IR的屏蔽狀态
n Di位為1表示IRi中斷被屏蔽(禁止);為0表示允許
7.6解答
n 某時刻8259A的IRR内容是08H,說明 IR3引腳有中斷請求 。某時刻8259A的ISR内容是08H,說明 IR3正在被中斷服務,其它不被處理 。在兩片8259A級連的中斷電路中,主片的第5級IR5作為從片的中斷請求輸入,則初始化主、從片時,ICW3的控制字分别是 20H 和 05H 。
9.3解答
n 8253每個通道有 6 種工作方式可供選擇。若設定某通道為方式0後,其輸出引腳為 低 電平;當 寫入計數初值(并進入減1計數器) 後通道開始計數, CLK 信号端每來一個脈沖 減1計數器 就減1;當 計數器減為0 ,則輸出引腳輸出 高 電平,表示計數結束。8253的CLK0接1.5MHz的時鐘,欲使OUT0産生頻率為300KHz的方波信号,則8253的計數值應為 5(=1.5MHz÷300KHz) ,應選用的工作方式是 3 。
9.4解答
mov al,50h
mov dx,207h
out dx,al
mov al,128 ;80h
mov dx,205h
out dx,al
mov al,33h
mov dx,207h
out dx,al
mov ax,3000h ;不是3000
mov dx,204h
out dx,al
mov al,ah
out dx,al
mov al,0b4h
mov dx,207h
out dx,al
mov al,02f0h
mov dx,206h
out dx,al
mov al,ah
out dx,al
11.8解答1
;寫入方式字
mov al,100×00×1b ;=81h
mov dx,控制口位址 ;0fffeh
out dx,al
;加入下一段更好,使L0~L3全亮
mov al,0fh
mov dx,端口C位址 ;0fffch
out dx,al
;控制程式段
mov dx,端口C位址 ;0fffch
in al,dx ;讀入PC0~PC3
mov cl,4
shl al,cl ;左移4位
out dx,al ;控制PC4~PC7
11.10解答
n 當按下或釋放一個鍵時,往往會出現按鍵在閉合位置和斷開位置之間跳幾下才穩定到閉合狀态的現象就是機械按鍵的抖動
n 方法解決
n 硬體:消抖電路
n 軟體:程式延時,以避開抖動的時間
n 重鍵指兩個或多個鍵同時閉合
n 簡單情況:不予識别,認為是錯誤的按鍵
n 通常情況:隻承認先識别出來的鍵
n 連鎖法:直到所有鍵都釋放後,讀入下一個鍵
n 巡回法:等被識别的鍵釋放以後,就可以對其他閉合鍵作識别,而不必等待全部鍵釋放
n 正常的組合鍵:都識别出來
11.5解答
n 欲使通信字元為8個資料位、偶校驗、2個停止位,則應向8250 通信線路控制 寄存器寫入控制字 00011111b(1fh) ,其在PC系列機上的I/O位址(COM2)是 2fbh
n XT機通信擴充卡電路上設計J9~J12跨接器的作用是 選擇兩個I/O位址及中斷請求引腳IRQ之一
12.6
;8255A初始化
mov al,1011000×b
mov dx,0fffbh
out dx,al
;使PC7=0(START為低)
mov al,00001110b
mov dx,0fffbh
out dx,al
;啟動A/D轉換
mov al,00001111b
mov dx,0fffbh
out dx,al ;使PC7=1(START為高)
nop
mov al,00001110b
out dx,al ;使PC7=0(START為低);查詢是否轉換結束
mov dx,0fffah
again: in dx,al
test al,20h ;PC5=0(轉換未結束,繼續檢測)
jz again ;PC5=1(轉換結束)
mov dx,0fff8h ;輸入資料
in al,dx
call adprcs ;處理資料
mov dx,0fff9h
out dx,al ;輸出資料
12.7