本書以MCS-51系列單片機(jī)為主,系統(tǒng)的介紹了單片機(jī)的組成、基本工作原理、特殊功能寄存器,單片機(jī)的尋址方式、指令系統(tǒng)和匯編語言程序設(shè)計(jì),單片機(jī)的中斷系統(tǒng),單片機(jī)的功能部件定時(shí)器及串行通信接口的原理與應(yīng)用,單片機(jī)的系統(tǒng)擴(kuò)展和外圍接口電路的設(shè)計(jì),單片機(jī)DAC和ADC接口設(shè)計(jì),C51語言及嵌入式實(shí)時(shí)操作系統(tǒng)基礎(chǔ),ZKS-03單片機(jī)實(shí)驗(yàn)儀簡介及使用說明,以及單片機(jī)的實(shí)驗(yàn)與實(shí)踐。
本書每一章都安排了一定數(shù)量的習(xí)題和思考題,附錄中包含有MCS-51指令表和ASCII字符表等常用圖表及單片機(jī)開發(fā)實(shí)驗(yàn)儀的使用說明等。
前言
本書是為貫徹國家教委“面向21世界教學(xué)內(nèi)容改革”的精神,適應(yīng)單片機(jī)迅速發(fā)展的需要,參考了同類優(yōu)秀教材和廠家原始數(shù)據(jù)資料,結(jié)合多年科研經(jīng)驗(yàn)與講授“單片機(jī)原理與應(yīng)用”課程的教學(xué)實(shí)踐編寫的。全書以世界上應(yīng)用最多的MCS51系列單片機(jī)為主,系統(tǒng)地介紹了單片機(jī)的歷史與發(fā)展、單片機(jī)的結(jié)構(gòu)與原理、單片機(jī)指令系統(tǒng)、匯編語言及程序設(shè)計(jì)、定時(shí)器/計(jì)數(shù)器、串行通信接口、中斷系統(tǒng)、單片機(jī)系統(tǒng)擴(kuò)展設(shè)計(jì)、鍵盤和顯示器接口設(shè)計(jì)、DAC和ADC接口設(shè)計(jì)、C51語言及嵌入式實(shí)時(shí)操作系統(tǒng)基礎(chǔ)、ZKS03單片機(jī)實(shí)驗(yàn)儀簡介及使用說明及11個(gè)單片機(jī)實(shí)驗(yàn)指導(dǎo)。
為了適應(yīng)面向21世紀(jì)人才培養(yǎng)的需要,同時(shí)又要符合工科院校非計(jì)算機(jī)專業(yè)本科學(xué)生學(xué)習(xí)單片機(jī)技術(shù)基礎(chǔ)課程教學(xué)的基本要求,本書選擇以MCS51單片機(jī)為基礎(chǔ),是因?yàn)橐訫CS51為內(nèi)核的單片機(jī)系列在世界上生產(chǎn)量最大、派生的品種最多,基本可以滿足大多數(shù)的應(yīng)用需求。MCS51單片機(jī)還在不斷豐富與發(fā)展之中,書中包含最新接口芯片的原理與應(yīng)用。單片機(jī)本身就是一門實(shí)用技術(shù),書中包含的內(nèi)容大多數(shù)都可以在實(shí)際系統(tǒng)中應(yīng)用。本書的結(jié)構(gòu)體系及內(nèi)容的選取是在原教學(xué)及教材的基礎(chǔ)上做了較大的調(diào)整與知識重構(gòu)。既要體現(xiàn)了本學(xué)科知識結(jié)構(gòu)的系統(tǒng)性與科學(xué)性,又要體現(xiàn)了本學(xué)科發(fā)展的先進(jìn)性與前瞻性。從非計(jì)算機(jī)專業(yè)學(xué)生的特點(diǎn)出發(fā),內(nèi)容力求深入淺出,盡可能結(jié)合實(shí)例說明問題,引起學(xué)生的興趣和好奇心。本書可一書兩用,既可作為“單片機(jī)原理與應(yīng)用”的教科書,同時(shí)作為“單片機(jī)原理與應(yīng)用課程設(shè)計(jì)”用書。
全書以MCS51單片機(jī)為主線,系統(tǒng)地介紹單片機(jī)的結(jié)構(gòu)、原理、指令及其功能部件。本著教學(xué)體系的連貫性要求,第1章介紹了單片機(jī)的歷史、發(fā)展及應(yīng)用概況;第2~4章詳細(xì)講解了單片機(jī)的結(jié)構(gòu)與原理、單片機(jī)指令系統(tǒng)、匯編語言及程序設(shè)計(jì);第5~7章介紹了單片機(jī)功能部件,定時(shí)器/計(jì)數(shù)器及串行通信接口,單片機(jī)的中斷系統(tǒng);第8~10章介紹了單片機(jī)應(yīng)用系統(tǒng)的擴(kuò)展設(shè)計(jì)、鍵盤和顯示器接口設(shè)計(jì)、DAC和ADC接口設(shè)計(jì);第11章介紹了目前正在流行的C51語言及單片機(jī)開發(fā)中具有先進(jìn)性的嵌入式實(shí)時(shí)操作系統(tǒng)基礎(chǔ);第12、13章介紹了ZKS03單片機(jī)實(shí)驗(yàn)儀,先進(jìn)、方便的Keil集成開發(fā)調(diào)試環(huán)境的使用,詳細(xì)地給出了11個(gè)單片機(jī)的實(shí)驗(yàn)指導(dǎo)。各章節(jié)的內(nèi)容基本上是根據(jù)單片機(jī)的原理與應(yīng)用劃分的,既考慮到各章節(jié)的內(nèi)容有機(jī)結(jié)合,同時(shí)也考慮到單片機(jī)技術(shù)應(yīng)用發(fā)展的最新內(nèi)容。在編寫過程中,盡量避免過多地介紹程序設(shè)計(jì)的方法和技巧,著重介紹硬件資源及使用方法、系統(tǒng)構(gòu)成及連接,注重典型性和代表性,以期達(dá)到舉一反三的效果。在內(nèi)容安排上,力求兼顧基礎(chǔ)性、實(shí)用性、先進(jìn)性。
單片機(jī)的學(xué)習(xí)更應(yīng)該注重實(shí)際應(yīng)用能力的培養(yǎng),書中介紹的Keil集成開發(fā)調(diào)試環(huán)境是目前單片機(jī)應(yīng)用開發(fā)的主流技術(shù)平臺(tái),在沒有硬件仿真器下可以用軟件仿真調(diào)試,特別適合學(xué)生課下學(xué)習(xí)。書中列舉了大量具有實(shí)際意義和實(shí)用價(jià)值的數(shù)據(jù)資料及例題、習(xí)題,配合單片機(jī)實(shí)驗(yàn)儀的使用和實(shí)驗(yàn),不但可以培養(yǎng)學(xué)生運(yùn)用單片機(jī)的能力,還能使學(xué)生具有參加電子設(shè)計(jì)大賽或開發(fā)單片機(jī)產(chǎn)品的基礎(chǔ)。另外,在課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)、研究生論文課題中,本書都具有重要而實(shí)用的參考價(jià)值。
本書在章節(jié)內(nèi)容的選材編排上,既考慮到工科院校非計(jì)算機(jī)專業(yè)本科學(xué)生學(xué)習(xí),還兼顧到不同層次學(xué)歷的學(xué)生學(xué)習(xí)。本書內(nèi)容全面,語言通俗易懂,邏輯性強(qiáng),實(shí)例豐富,講解詳盡,對每一個(gè)問題都力求講得清楚、詳細(xì),并且給出實(shí)例,讓讀者一目了然。書中各章的內(nèi)容都具有相對的獨(dú)立性,教、學(xué)雙方可根據(jù)實(shí)際需要加以取舍。
本書可作為高等院校通信、電子、自動(dòng)化及其他相關(guān)專業(yè)本、專科學(xué)生學(xué)生單片機(jī)的教材或教學(xué)參考書,同時(shí)也可供廣大從事單片機(jī)應(yīng)用開發(fā)的科研人員作為參考書使用和自學(xué)用書。教學(xué)參考學(xué)時(shí)為32~48學(xué)時(shí)。
本書由戴勝華、蔣大明,楊世武、趙俊慧編寫。其中第1~5章由戴勝華編寫,第6、7、11章由蔣大明編寫,第8、9、10章由楊世武編寫,第12、13章由趙俊慧編寫,全書由戴勝華統(tǒng)稿。
本書在編寫過程中得到了多位同行和領(lǐng)導(dǎo)的大力支持和幫助,在此一并表示感謝。
由于編者水平所限,書中難免有不妥和錯(cuò)誤之處,懇請讀者批評指正。
編〓者
2005年3月
于北京交通大學(xué)
目錄
第1章單片機(jī)概述1
11單片機(jī)的歷史及發(fā)展概況1
12單片機(jī)的發(fā)展趨勢2
121CPU的改進(jìn)2
122存儲(chǔ)器的發(fā)展2
123片內(nèi)I/O口的改進(jìn)2
124集成更多的外圍電路3
125引腳的多功能3
126低功耗3
127專用型單片機(jī)發(fā)展加快4
13單片機(jī)的應(yīng)用4
131單片機(jī)在各類儀器儀表中的應(yīng)用4
132單片機(jī)在工業(yè)測控中的應(yīng)用4
133單片機(jī)在計(jì)算機(jī)網(wǎng)絡(luò)與通信技術(shù)中的應(yīng)用4
134單片機(jī)在日常生活及家電中的應(yīng)用5
148位單片機(jī)的主要生產(chǎn)廠商和機(jī)型5
141單片機(jī)主要廠商5
142單片機(jī)主要產(chǎn)品6
第2章MCS51單片機(jī)的結(jié)構(gòu)與原理8
21MCS51單片機(jī)的硬件功能8
22MCS51硬件系統(tǒng)結(jié)構(gòu)10
221運(yùn)算部件11
222控制部件12
23存儲(chǔ)器結(jié)構(gòu)12
231程序存儲(chǔ)器13
232數(shù)據(jù)存儲(chǔ)器13
24I/O端口19
241P0口19
242P1口21
243P2口21
244P3口21
245I/O的接口要求與負(fù)載能力21
246I/O口的讀—修改—寫特性22
25復(fù)位電路22
251復(fù)位時(shí)片內(nèi)各寄存器的狀態(tài)23
252復(fù)位電路23
26CPU時(shí)序24
261時(shí)鐘電路24
262時(shí)序25
27CPU引腳功能27
28單片機(jī)的工作方式30
281復(fù)位方式31
282程序執(zhí)行方式31
283CHMOS型單片機(jī)低功耗工作方式32
284編程和校驗(yàn)方式33
習(xí)題33
第3章MCS51單片機(jī)指令系統(tǒng)34
31MCS51指令系統(tǒng)簡介34
311匯編指令35
312指令代碼的格式35
313指令中的常用符號35
32尋址方式36
321寄存器尋址方式36
322寄存器間接尋址37
323立即尋址38
324直接尋址38
325基址寄存器+變址寄存器的間接尋址39
326相對尋址39
327位尋址40
33指令系統(tǒng)40
331數(shù)據(jù)傳送指令41
332算術(shù)運(yùn)算指令47
333邏輯運(yùn)算指令53
334控制轉(zhuǎn)移指令57
335位操作指令63
習(xí)題65
第4章匯編語言及程序設(shè)計(jì)68
41匯編語言及格式68
411匯編語言的特點(diǎn)68
412匯編語言的語句格式69
413偽指令69
414匯編語言程序的匯編72
42匯編語言程序設(shè)計(jì)73
421匯編語言程序設(shè)計(jì)的基本步驟73
422程序的基本結(jié)構(gòu)73
423簡單程序設(shè)計(jì)74
424分支程序設(shè)計(jì)75
425循環(huán)程序設(shè)計(jì) 79
426子程序設(shè)計(jì)83
43匯編語言程序設(shè)計(jì)舉例87
431查表程序87
432數(shù)制轉(zhuǎn)換程序89
433算術(shù)運(yùn)算程序89
434數(shù)字濾波程序93
435排序與檢索程序94
436布爾處理程序94
44浮點(diǎn)數(shù)運(yùn)算程序設(shè)計(jì)95
441浮點(diǎn)數(shù)的表示95
442浮點(diǎn)數(shù)的運(yùn)算99
習(xí)題100
第5章定時(shí)器/計(jì)數(shù)器102
51定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)102
511定時(shí)方法概述102
512定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)103
52定時(shí)器/計(jì)數(shù)器的工作方式105
521工作方式0105
522工作方式1106
523工作方式2107
524工作方式3108
53定時(shí)器/計(jì)數(shù)器T2109
531T2的特殊功能寄存器109
532T2的工作方式110
54定時(shí)器/計(jì)數(shù)器的編程和應(yīng)用113
541定時(shí)器/計(jì)數(shù)器對輸入信號的要求113
542定時(shí)器/計(jì)數(shù)器初值的求法114
543運(yùn)行中讀定時(shí)器/計(jì)數(shù)器115
544門控制位GATE的功能和使用方法115
545定時(shí)器/計(jì)數(shù)器的應(yīng)用116
習(xí)題118
第6章串行通信接口120
61串行通信基礎(chǔ)120
611基本通信方式120
612異步通信和同步通信122
613串行接口芯片124
62串行通信總線標(biāo)準(zhǔn)及其接口125
63MCS51的串行接口126
631串行口的結(jié)構(gòu)126
632串行口的工作方式0129
633串行口的工作方式1131
634串行口的工作方式2132
635串行口的工作方式3134
636MCS51串行通信的波特率134
64串行口應(yīng)用舉例136
641利用串行口工作方式0擴(kuò)展I/O口136
642用串行口進(jìn)行異步單工通信138
65多機(jī)通信142
習(xí)題144
第7章中斷系統(tǒng)146
71中斷的定義和作用146
711中斷的作用147
712中斷源147
713中斷系統(tǒng)的功能148
72MCS51單片機(jī)中斷系統(tǒng)149
721MCS51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)149
722中斷管理152
723外部中斷方式的選擇153
724中斷響應(yīng)時(shí)間154
725中斷請求的撤除155
726MCS51中斷系統(tǒng)的初始化155
73擴(kuò)充外中斷源156
731利用定時(shí)器擴(kuò)充中斷源156
732中斷和查詢相結(jié)合157
733用優(yōu)先級編碼器擴(kuò)展外部中斷源158
734采用8259擴(kuò)展外部中斷源159
74中斷系統(tǒng)應(yīng)用舉例159
習(xí)題161
第8章單片機(jī)系統(tǒng)擴(kuò)展設(shè)計(jì)163
81系統(tǒng)接口技術(shù)概述163
811并行接口設(shè)計(jì)基礎(chǔ)164
812串行接口設(shè)計(jì)基礎(chǔ)165
82存儲(chǔ)器擴(kuò)展技術(shù)169
821存儲(chǔ)器擴(kuò)展概述169
822存儲(chǔ)器的并行擴(kuò)展171
823存儲(chǔ)器的串行擴(kuò)展177
83輸入輸出(I/O)和中斷擴(kuò)展技術(shù)184
831并行擴(kuò)展I/O接口184
832串行擴(kuò)展I/O接口186
習(xí)題190
第9章鍵盤和顯示器接口設(shè)計(jì)191
91I/O接口技術(shù)概述191
911I/O接口電路的功能191
912I/O數(shù)據(jù)傳送的控制方式192
92鍵盤接口技術(shù)193
921鍵盤的特點(diǎn)和常用接口設(shè)計(jì)193
922獨(dú)立式按鍵接口設(shè)計(jì)196
923矩陣式鍵盤接口設(shè)計(jì)198
93顯示器接口技術(shù)205
931LED顯示器接口設(shè)計(jì)205
932LCD顯示器接口設(shè)計(jì)210
習(xí)題218
第10章DAC、ADC和其他接口設(shè)計(jì)220
101數(shù)模轉(zhuǎn)換器(DAC)接口技術(shù)220
1011DAC的構(gòu)成和特性參數(shù)220
1012DAC芯片的選擇222
1013DAC并行接口設(shè)計(jì)225
1014DAC串行接口設(shè)計(jì)230
102模數(shù)轉(zhuǎn)換器(ADC)接口技術(shù)233
1021ADC基本構(gòu)成和特性參數(shù)233
1022ADC并行接口設(shè)計(jì)235
1023ADC串行接口設(shè)計(jì)240
103其他常用接口技術(shù)244
1031串行通信接口244
1032開關(guān)量和功率接口248
1033程控量程轉(zhuǎn)換接口250
1034電源電路接口252
習(xí)題254
第11章C51語言及嵌入式實(shí)時(shí)操作系統(tǒng)基礎(chǔ)256
111C51語言基礎(chǔ)256
1111C51語言概述256
1112C51的數(shù)據(jù)類型及存儲(chǔ)模式257
1113C51變量258
1114C51對中斷的支持260
112開發(fā)工具Keil Software簡介 261
1121概述 261
1122μVision2 集成開發(fā)環(huán)境261
1123工具套件262
1124開發(fā)流程263
1125程序應(yīng)用與編寫優(yōu)化代碼264
1126C51編譯器指示參數(shù)265
113嵌入式實(shí)時(shí)操作系統(tǒng)266
1131實(shí)時(shí)操作系統(tǒng)的概念266
1132實(shí)時(shí)操作系統(tǒng)的特點(diǎn)267
1133多任務(wù)實(shí)時(shí)系統(tǒng)的基本特征268
1134MCS51的實(shí)時(shí)操作系統(tǒng)RTX51269
1135MCS51的RTX51簡單應(yīng)用269
114實(shí)時(shí)系統(tǒng)應(yīng)用——交通燈控制器272
1141交通燈控制器命令 272
1142應(yīng)用程序273
1143實(shí)時(shí)系統(tǒng)仿真 279
習(xí)題281
第12章ZKS03單片機(jī)實(shí)驗(yàn)儀簡介及使用說明282
121電路外觀282
122系統(tǒng)組成283
123實(shí)驗(yàn)儀功能與特點(diǎn)283
124實(shí)驗(yàn)儀結(jié)構(gòu)284
1241應(yīng)用接口284
1242I/O地址分配286
1243跳線選擇器287
1244DP51單元器件簡介289
1245基本實(shí)驗(yàn)電路單元簡介290
125實(shí)驗(yàn)儀使用說明292
1251Keil C51簡介292
1252建立第一個(gè)Keil C51應(yīng)用程序293
1253程序文件的編譯、連接294
1254下載296
1255調(diào)試功能298
1256全速運(yùn)行304
1257操作步驟307
1258注意的問題308
習(xí)題309
第13章MCS51單片機(jī)實(shí)驗(yàn)310
實(shí)驗(yàn)一交通信號燈控制實(shí)驗(yàn)310
實(shí)驗(yàn)?zāi)康?10
實(shí)驗(yàn)內(nèi)容及步驟310
實(shí)驗(yàn)電路310
程序框圖310
實(shí)驗(yàn)二P1口輸入、輸出實(shí)驗(yàn)311
實(shí)驗(yàn)?zāi)康?11
實(shí)驗(yàn)內(nèi)容與步驟311
實(shí)驗(yàn)電路312
實(shí)驗(yàn)說明312
程序框圖 313
實(shí)驗(yàn)三外部中斷實(shí)驗(yàn)314
實(shí)驗(yàn)?zāi)康?14
實(shí)驗(yàn)原理314
實(shí)驗(yàn)內(nèi)容與步驟314
實(shí)驗(yàn)電路314
實(shí)驗(yàn)四定時(shí)器/計(jì)數(shù)器實(shí)驗(yàn)315
實(shí)驗(yàn)?zāi)康?15
實(shí)驗(yàn)原理315
實(shí)驗(yàn)內(nèi)容與步驟315
實(shí)驗(yàn)電路315
實(shí)驗(yàn)五8155并行接口實(shí)驗(yàn)316
實(shí)驗(yàn)?zāi)康?16
實(shí)驗(yàn)原理316
實(shí)驗(yàn)內(nèi)容與步驟317
實(shí)驗(yàn)電路317
實(shí)驗(yàn)六LED數(shù)碼顯示實(shí)驗(yàn)317
實(shí)驗(yàn)?zāi)康?17
實(shí)驗(yàn)原理318
實(shí)驗(yàn)內(nèi)容與步驟318
實(shí)驗(yàn)電路318
實(shí)驗(yàn)七鍵盤掃描實(shí)驗(yàn)319
實(shí)驗(yàn)?zāi)康?19
實(shí)驗(yàn)原理319
實(shí)驗(yàn)內(nèi)容320
實(shí)驗(yàn)參考電路320
實(shí)驗(yàn)參考流程圖320
實(shí)驗(yàn)八步進(jìn)電機(jī)控制實(shí)驗(yàn)321
實(shí)驗(yàn)?zāi)康?21
步進(jìn)電機(jī)簡介321
實(shí)驗(yàn)原理322
實(shí)驗(yàn)內(nèi)容322
實(shí)驗(yàn)電路323
實(shí)驗(yàn)九電子音調(diào)實(shí)驗(yàn)323
實(shí)驗(yàn)?zāi)康?23
實(shí)驗(yàn)原理323
實(shí)驗(yàn)內(nèi)容324
實(shí)驗(yàn)電路324
實(shí)驗(yàn)十串行數(shù)/模轉(zhuǎn)換實(shí)驗(yàn)325
實(shí)驗(yàn)?zāi)康?25
實(shí)驗(yàn)內(nèi)容325
TLC 5620使用簡介325
實(shí)驗(yàn)電路327
編程提示327
實(shí)驗(yàn)十一串行模/數(shù)轉(zhuǎn)換實(shí)驗(yàn)328
實(shí)驗(yàn)?zāi)康?28
實(shí)驗(yàn)內(nèi)容328
TLC 0834使用簡介328
實(shí)驗(yàn)參考電路330
編程提示331
附錄AASCII碼(美國標(biāo)準(zhǔn)信息交換碼) 333
附錄BMCS51指令功能簡述表335
參考文獻(xiàn)339