本書作為作者編寫的《微機(jī)原理及接口技術(shù)》的配套教材, 包含該書各章節(jié)的知識要點(diǎn)、習(xí)題解答和匯編語言程序設(shè)計實驗及微型計算機(jī)接口基本實驗。本書介紹微機(jī)原理及接口技術(shù)課程所需的各類實驗, 包括實驗要求、實驗?zāi)康、實驗電路圖、實驗步驟和實驗例程。對每一個實驗都給出了較為詳細(xì)的硬件原理圖, 對實驗需要的一些基礎(chǔ)知識也進(jìn)行了必要的補(bǔ)充。
前言
“微型計算機(jī)原理與接口技術(shù)”是高等院校非計算機(jī)專業(yè)學(xué)生,特別是工學(xué)各相關(guān)專業(yè)學(xué)生學(xué)習(xí)微型計算機(jī)基本知識和應(yīng)用技能的課程。課程幫助學(xué)生掌握微型計算機(jī)的硬件組成原理,學(xué)會運(yùn)用指令系統(tǒng)和匯編語言進(jìn)行程序設(shè)計,了解C/C++與匯編語言混合編程的方法,掌握微型計算機(jī)接口的基本技術(shù),為后續(xù)智能控制系統(tǒng)類課程的學(xué)習(xí)打下基礎(chǔ)。實驗教學(xué)是本課程的重要組成部分,是學(xué)生掌握程序設(shè)計方法和計算機(jī)控制系統(tǒng)電路設(shè)計的關(guān)鍵環(huán)節(jié)。
本課程實驗采用的主要設(shè)備為偉福Lab 8000系列單片機(jī)仿真實驗系統(tǒng)。所有實驗內(nèi)容均以此實驗箱為基礎(chǔ)。本書中的第3、4、6、7、8章安排了實驗內(nèi)容,每個實驗都緊扣理論知識要點(diǎn),采用由簡到繁、步步深入的方法引導(dǎo)學(xué)生做實驗。實驗與實際應(yīng)用相結(jié)合,充滿趣味性,可充分調(diào)動學(xué)生的積極性。
本書第1、2章由郭威編寫,第3、4、7章由侯彥利編寫,第5章由趙永華編寫,第6章由劉通編寫,第8、9章由馬愛民編寫,全書由侯彥利統(tǒng)稿。
本書內(nèi)容包括《微型計算機(jī)原理與接口技術(shù)》一書中各章節(jié)后的習(xí)題解答,僅供參考。
由于作者水平有限,書中難免存在不足之處,敬請讀者批評指正。
編者2016年8月于吉林大學(xué)
目錄
第1章微型計算機(jī)基礎(chǔ)知識1
1.1知識要點(diǎn)1
1.2習(xí)題解答4
第2章8086/8088微處理器6
2.1知識要點(diǎn)6
2.2習(xí)題解答9
第3章8086/8088指令系統(tǒng)11
3.1知識要點(diǎn)11
3.2習(xí)題解答12
3.3Debug使用實驗21
實驗1Debug的使用26
實驗2算術(shù)運(yùn)算指令的應(yīng)用28
實驗3串操作指令的應(yīng)用29
實驗4轉(zhuǎn)移指令的應(yīng)用30
第4章匯編語言及其程序設(shè)計31
4.1知識要點(diǎn)31
4.2習(xí)題解答32
4.3匯編語言程序設(shè)計實驗41
實驗1顯示字符實驗41
實驗2BCD到ASCII碼轉(zhuǎn)換48
實驗3響鈴程序50
實驗4C語言與匯編語言混合編程51
實驗5從鍵盤輸入數(shù)據(jù)并顯示54
實驗6計算N!57
實驗7兩個多位十進(jìn)制數(shù)相減62[1][3]微型計算機(jī)原理與接口技術(shù)習(xí)題及實驗指導(dǎo)目錄[3][3]實驗8接收年/月/日信息并顯示65
實驗9排序68
實驗10學(xué)生成績名次表73
第5章存儲器78
5.1知識要點(diǎn)78
5.2習(xí)題解答79
第6章輸入/輸出與中斷技術(shù)84
6.1知識要點(diǎn)84
6.2習(xí)題解答87
6.3基本輸入/輸出接口實驗91
實驗1用74HC245讀入數(shù)據(jù)91
實驗2用74HC273輸出數(shù)據(jù)93
實驗316×16點(diǎn)陣顯示實驗96
實驗48段數(shù)碼管顯示100
實驗5鍵盤掃描顯示實驗104
實驗68259外部中斷實驗110
第7章可編程接口芯片115
7.1知識要點(diǎn)115
7.2習(xí)題解答117
7.38253/8255應(yīng)用實驗122
實驗18255輸入/輸出實驗122
實驗2步進(jìn)電機(jī)控制實驗126
實驗38253定時實驗131
實驗48253計數(shù)器實驗133
實驗5液晶顯示控制實驗135
實驗68251A串行通信實驗144
第8章數(shù)/模轉(zhuǎn)換及模/數(shù)轉(zhuǎn)換技術(shù)156
8.1知識要點(diǎn)156
8.2習(xí)題解答157
8.3數(shù)/模轉(zhuǎn)換和模/數(shù)轉(zhuǎn)換實驗159
實驗1數(shù)/模轉(zhuǎn)換實驗159
實驗2模/數(shù)轉(zhuǎn)換實驗161
實驗3壓力傳感器實驗164
實驗4直流電機(jī)控制實驗170
第9章總線技術(shù)174
9.1知識要點(diǎn)174
9.2習(xí)題解答175
參考文獻(xiàn)178
第5章存儲器5.1知 識 要 點(diǎn)〖*3/4〗1. 半導(dǎo)體存儲器的分類半導(dǎo)體存儲器的分類即隨機(jī)讀/寫存儲器(RAM)和只讀存儲器(ROM)。對于隨機(jī)讀/寫存儲器,又可分為靜態(tài)隨機(jī)讀/寫存儲器和動態(tài)隨機(jī)讀/寫存儲器,靜態(tài)隨機(jī)讀/寫存儲器的存儲原理是利用雙穩(wěn)態(tài)觸發(fā)器存儲信息,動態(tài)隨機(jī)讀/寫存儲器的存儲原理是利用電容存儲信息。對于動態(tài)隨機(jī)讀/寫存儲器,由于電容泄漏電荷,存儲單元的電荷需要定時補(bǔ)充,所以動態(tài)隨機(jī)讀/寫存儲器需要刷新。
2. 引腳
所有的存儲器器件都有地址輸入引腳、數(shù)據(jù)輸出或者數(shù)據(jù)輸入/輸出引腳、從多片存儲芯片中選定一個芯片的片選引腳,還有控制讀/寫操作的控制引腳。地址線接收的地址信息用于選擇存儲芯片內(nèi)部的存儲單元。數(shù)據(jù)線負(fù)責(zé)數(shù)據(jù)的輸出或者輸入/輸出。芯片選擇線用于選中該器件,或者說激活該器件。片選擇線常被標(biāo)識為片選、片使能或簡稱為選擇,每個存儲器件都有控制數(shù)據(jù)輸入/輸出的控制線,通常標(biāo)記為OE、WE,低電平有效。
3. 常用芯片
常用的SRAM芯片有6116(2K×8b)、6232(4K×8b)、6264(8K×8b)、62128(16K×8b)、62256(32K×8b)和62512(64K×8b)等。
4. 芯片的應(yīng)用
存儲器芯片的應(yīng)用就是將芯片正確地接入計算機(jī)系統(tǒng)。根據(jù)CPU要求的地址范圍,將芯片上的各種信號與計算機(jī)系統(tǒng)的地址線、數(shù)據(jù)線和控制線連接在一起,存儲器芯片就接入了計算機(jī)系統(tǒng)。
(1) 數(shù)據(jù)線的連接。系統(tǒng)中所有的數(shù)據(jù)線都必須和芯片的數(shù)據(jù)線直接關(guān)聯(lián),雙方都[1][3]微型計算機(jī)原理與接口技術(shù)習(xí)題及實驗指導(dǎo)第5章存儲器[3][3]不能有剩余。如果芯片上的數(shù)據(jù)線和系統(tǒng)中的數(shù)據(jù)線的數(shù)量一致,則將它們一對一相連;如果芯片上的數(shù)據(jù)線少于系統(tǒng)中的數(shù)據(jù)線,如2114(1K×4b)只有4根數(shù)據(jù)線,則必須選用2片芯片組成一組,構(gòu)成數(shù)據(jù)線為8根的存儲器芯片組,才可以與8088 CPU相連。如果芯片上的數(shù)據(jù)線多于系統(tǒng)中的數(shù)據(jù)線,說明選擇的芯片不合適,必須更換。
(2) 控制信號線的連接。存儲器只有兩種操作: 讀和寫。相應(yīng)的與讀/寫有關(guān)的控制信號通常只有兩個: 寫允許和輸出允許。它們應(yīng)該分別與系統(tǒng)中的讀/寫控制信號相連。
(3) 地址線的連接。一般存儲芯片上地址線的數(shù)量比計算機(jī)系統(tǒng)中的地址線少,所以將芯片正確地接入計算機(jī)系統(tǒng),必須解決地址線不匹配的問題。芯片在接入系統(tǒng)中時,芯片上的地址線和系統(tǒng)中的低位地址線一對一相連,使CPU可以選擇芯片內(nèi)任一存儲單元。系統(tǒng)中剩余的地址線在芯片中沒有對應(yīng)線,不能直接與芯片發(fā)生關(guān)聯(lián)。
將一組輸入信號轉(zhuǎn)換為一個輸出信號,稱為譯碼。將系統(tǒng)中剩余的地址信號經(jīng)過譯碼電路轉(zhuǎn)換為一個輸出信號,作為芯片的片選信號,稱為地址譯碼。經(jīng)過地址譯碼,系統(tǒng)中全部地址線都與芯片產(chǎn)生了關(guān)聯(lián),使芯片中每一個存儲單元在系統(tǒng)的地址空間中都有*的一個物理地址。地址譯碼是存儲器芯片應(yīng)用的核心和關(guān)鍵。
地址譯碼的方法有全地址譯碼和部分地址譯碼。
5. 只讀存儲器
只讀存儲器ROM一般用于存放固定的程序,如BIOS。常用的只讀存儲器類型有掩膜式ROM、可編程ROM(PROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)和閃存(Flash Memory)。
5.2習(xí) 題 解 答
1. 半導(dǎo)體存儲器按照工作方式可分為哪兩大類?它們的主要區(qū)別是什么?
解:
(1) 半導(dǎo)體存儲器按照工作方式可分為ROM和RAM 。
(2) 它們之間的主要區(qū)別是ROM在正常工作時只能讀出,不能寫入。RAM則可讀可寫。斷電后,ROM中的內(nèi)容不會丟失,RAM中的內(nèi)容會丟失。
2. 動態(tài)RAM為什么需要定時刷新?
解: DRAM的存儲元以電容存儲信息,由于存在漏電現(xiàn)象,電容中存儲的電荷會逐漸泄漏,從而使信息丟失或出現(xiàn)錯誤。因此需要對這些電容定時進(jìn)行刷新。
3. 存儲器的地址譯碼方法有哪兩種方式?
解: 存儲器的地址譯碼方法有全地址譯碼和部分地址譯碼。
4. 設(shè)計一個4KB ROM與4KB RAM組成的存儲器系統(tǒng),芯片分別選用2716(2K×8b)和6116(2K×8b),其地址范圍分別為4000H~4FFFH和 6000H~6FFFH,CPU地址空間為64KB,畫出存儲系統(tǒng)與CPU的連接圖。
解: 分析: 2716(2K×8b)11根地址線A0~A10
6116(2K×8b)11根地址線A0~A10
分別需要芯片的個數(shù):
2716: 4K×8b/2K×8b=2
6116: 4K×8b/2K×8b=2
將地址展開成二進(jìn)制: 4KB的ROM地址空間為4000H~4FFFH。A15 A14A13 A12
0100
0100
0100
0100 A11 A10 A9 A8
0000
0111
1000
1111A7 A6 A5 A4
0000
1111
0000
1111A3A2 A1 A0
0000
1111
0000
11112716(2K×8b): 2片。
第1片地址范圍: 4000H~47FFH。
第2片地址范圍: 4800H~4FFFH。
4KB的RAM地址空間為6000H~6FFFH。A15 A14A13 A12
0110
0110
0110
0110 A11 A10 A9 A8
0000
0111
1000
1111A7 A6 A5 A4
0000
1111
0000
1111A3A2 A1 A0
0000
1111
0000
11116116(2K×8b): 2片。
第1片地址范圍: 6000H~67FFH。
第2片地址范圍: 6800H~6FFFH。
利用CPU的剩余地址線A15~A11,使用3∶8譯碼器進(jìn)行全地址譯碼,生成片選信號: Y0、Y1、Y4、Y5,為4個芯片使用。
存儲系統(tǒng)與CPU連接圖如圖51所示。
圖51第4題電路圖
5. 試?yán)萌刂纷g碼將6264芯片接到8088 CPU系統(tǒng)總線上,使其所占地址范圍為32000H~33FFFH。
解: 將地址范圍展開成二進(jìn)制形式如下。
0011 0010 0000 0000 0000
0011 0011 1111 1111 1111
6264芯片的容量為8×8KB,需要13根地址線A0~A12。而剩下的高7位地址應(yīng)參加該芯片的地址譯碼。電路如圖52所示。
6. 若采用6264芯片構(gòu)成內(nèi)存地址從20000H~8BFFFH的內(nèi)存空間,需要多少個6264芯片?
解: 從20000H~8BFFFH的內(nèi)存空間共有8BFFFH-20000H+1=6C000H(432K)個字節(jié),每個6264芯片的容量8KB,故需432/8=54個。
7. 設(shè)某微型機(jī)的內(nèi)存RAM區(qū)的容量為128KB,若用2164芯片構(gòu)成這樣的存儲器,需多少個2164芯片?圖52第5題電路圖
解: 每個2164芯片的容量為64K×1b,共需128/64×8=16個。
8. 高速緩沖存儲器的工作原理是什么?為什么設(shè)置高速緩沖存儲器?
解:
(1) 高速緩沖存儲器的工作原理是基于程序和數(shù)據(jù)訪問的局部性原理。
(2) 設(shè)置高速緩沖存儲器是為了緩解CPU和內(nèi)存之間存取速度的矛盾,將當(dāng)前正在執(zhí)行的指令及相關(guān)聯(lián)的后續(xù)指令集從內(nèi)存讀到Cache,使CPU執(zhí)行下一條指令時從Cache中讀取。Cache的存在使CPU既可以以較快的速度讀取指令和數(shù)據(jù),又不至于使微型計算機(jī)的價格大幅度提高。
9. 現(xiàn)有2個6116芯片,所占地址范圍為61000H~61FFFH,試將它們連接到8088 CPU系統(tǒng)中。并編寫測試程序,向所有單元輸入任意一個數(shù)據(jù),然后再讀出與之比較,若出錯則顯示W(wǎng)rong!,若全部正確則顯示OK!。
解: 電路連接如圖53所示。
圖53第9題電路圖
測試程序段如下。OKDB'OK!',$
WRONGDB'Wrong!',$
…
MOVAX, 6100H
MOVES, AX
MOVDI, 0
MOVCX, 1000H
MOVAL, 55H
REP STOSB
MOVDI, 0
MOVCX, 1000H
REPZSCASB
JZDISP_OK
LEA DX, WRONG
MOVAH, 9
INT21H
HLT
DISP_OK:
LEADX, OK
MOVAH, 9
INT21H
HLT