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