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