本書從現(xiàn)實教學(xué)和工程實際應(yīng)用出發(fā),兼顧基礎(chǔ)與實用,以數(shù)字電子技術(shù)作為先修課程,從介紹微型計算機的基本結(jié)構(gòu)和工作原理入手,以AT89S51單片機為例介紹單片微機的結(jié)構(gòu)、工作原理及應(yīng)用,注重基礎(chǔ)性和實用性相結(jié)合。以二進制和基本邏輯電路為起點闡述微型計算機的基本工作原理,并通過豐富的實例將基本概念、基本理論、基本方法講清講透。本書引入Keil C和Proteus,并配備豐富的課堂演示實例,將實驗室搬入教室。另外,例題程序設(shè)計采用匯編語言和C語言雙方案,便于讀者對照學(xué)習(xí)。本書提供配套電子課件、習(xí)題解答和教學(xué)指南。
徐春輝,男,南昌航空航天大學(xué)教授,長期從事電子信息科學(xué)與工程專業(yè)領(lǐng)域的一線教學(xué)和科研工作,出版多部著作,教學(xué)、科研和寫作經(jīng)驗豐富。
目 錄
第1章 緒論1
1.1 計算機的誕生、發(fā)展及基本結(jié)構(gòu)1
1.2 計算機類型劃分2
1.2.1 通用計算機2
1.2.2 嵌入式計算機2
1.3 嵌入式計算機的類別及應(yīng)用特點3
1.3.1 嵌入式計算機的類別3
1.3.2 嵌入式計算機系統(tǒng)的應(yīng)用特點3
1.4 單片微型計算機應(yīng)用系統(tǒng)舉例3
習(xí)題與思考題15
第2章 微型計算機基礎(chǔ)6
2.1 計算機中的數(shù)、編碼和運算6
2.1.1 計算機中常用的數(shù)制及相互
轉(zhuǎn)換6
2.1.2 微型計算機中常用的編碼7
2.1.3 微型計算機的運算基礎(chǔ)8
2.2 微型計算機的基本結(jié)構(gòu)11
2.2.1 存儲器的組成及功能12
2.2.2 微處理器的結(jié)構(gòu)及工作原理14
2.2.3 輸入/輸出設(shè)備及其接口電路19
2.2.4 微型計算機的總線連接結(jié)構(gòu)20
2.3 微型計算機的指令執(zhí)行過程22
2.4 微型計算機系統(tǒng)24
2.4.1 微型計算機系統(tǒng)的組成24
2.4.2 微型計算機系統(tǒng)的性能指標(biāo)26
2.4.3 微型計算機的分類27
2.5 單片微型計算機概述27
2.5.1 什么是單片微型計算機27
2.5.2 單片機的發(fā)展歷史27
2.5.3 單片機的特點28
2.5.4 單片機的應(yīng)用28
2.5.5 單片機的發(fā)展趨勢29
2.5.6 單片機的主要制造廠商和機型30
2.5.7 51系列單片機簡介30
習(xí)題與思考題232
第3章 51系列單片機的硬件結(jié)構(gòu)與
時序34
3.1 AT89S51單片機的結(jié)構(gòu)概述34
3.2 AT89S51單片機的外部引腳35
3.2.1 電源及時鐘引腳35
3.2.2 控制引腳36
3.2.3 并行I/O口引腳36
3.3 AT89S51單片機的CPU37
3.3.1 運算器37
3.3.2 控制器39
3.4 AT89S51單片機存儲器的結(jié)構(gòu)39
3.4.1 程序存儲器空間39
3.4.2 數(shù)據(jù)存儲器空間40
3.4.3 特殊功能寄存器41
3.4.4 位地址空間45
3.5 AT89S51單片機的并行輸入/
輸出接口45
3.5.1 P0口46
3.5.2 P1口47
3.5.3 P2口47
3.5.4 P3口48
3.6 AT89S51單片機的時鐘電路與
時序49
3.6.1 AT89S51單片機的時鐘電路49
3.6.2 時序與時序定時單位51
3.6.3 AT89S51指令的取指/執(zhí)行
時序52
3.6.4 AT89S51對片外存儲器的操作
時序53
3.7 復(fù)位操作與復(fù)位電路55
3.8 AT89S51單片機的低功耗節(jié)電
模式與看門狗定時器56
3.8.1 空閑模式57
3.8.2 掉電運行模式58
3.8.3 掉電和空閑模式下的看門狗定
時器WDT58
習(xí)題與思考題358
第4章 51系列單片機的指令系統(tǒng)60
4.1 指令及其格式60
4.1.1 指令系統(tǒng)概述60
4.1.2 指令描述符號的約定61
4.1.3 機器指令的字節(jié)編碼格式61
4.1.4 符號指令的書寫格式62
4.2 51系列單片機的尋址方式62
4.2.1 立即尋址62
4.2.2 直接尋址63
4.2.3 寄存器尋址63
4.2.4 寄存器間接尋址64
4.2.5 變址尋址(基址寄存器加變址
寄存器間址尋址)64
4.2.6 相對尋址方式65
4.2.7 位尋址方式65
4.3 51系列單片機指令系統(tǒng)分類
介紹66
4.3.1 數(shù)據(jù)傳送類指令66
4.3.2 算術(shù)運算類指令71
4.3.3 邏輯運算與移位指令77
4.3.4 控制轉(zhuǎn)移類指令79
4.3.5 位操作類指令84
4.3.6 51系列單片機指令匯總86
習(xí)題與思考題489
第5章 51系列單片機匯編語言程序設(shè)
計及仿真調(diào)試91
5.1 匯編語言程序設(shè)計基礎(chǔ)91
5.1.1 機器語言、匯編語言與高級
語言91
5.1.2 匯編語言的語句和格式92
5.1.3 偽指令93
5.1.4 匯編語言源程序的匯編95
5.1.5 匯編語言程序設(shè)計的一般步驟96
5.2 匯編語言源程序的基本結(jié)構(gòu)96
5.2.1 順序結(jié)構(gòu)96
5.2.2 分支結(jié)構(gòu)97
5.2.3 循環(huán)結(jié)構(gòu)98
5.2.4 子程序102
5.3 51系列單片機匯編語言實用
程序設(shè)計舉例105
5.3.1 查表程序設(shè)計105
5.3.2 散轉(zhuǎn)程序設(shè)計107
5.3.3 碼制轉(zhuǎn)換程序設(shè)計108
5.3.4 運算程序設(shè)計109
5.4 程序調(diào)試與集成開發(fā)環(huán)境軟件
Keil Vision110
5.4.1 程序調(diào)試概述110
5.4.2 Keil Vision軟件簡介110
5.4.3 Keil Vision集成開發(fā)環(huán)境中
調(diào)試單片機匯編語言源程序的
方法111
習(xí)題與思考題5117
*第6章 單片機的C語言程序設(shè)計118
6.1 單片機C語言概述118
6.1.1 采用C51的優(yōu)點118
6.1.2 C51的程序框架118
6.1.3 C51的程序開發(fā)過程119
6.2 C51的數(shù)據(jù)與運算120
6.2.1 C51的數(shù)據(jù)類型120
6.2.2 C51的數(shù)據(jù)存儲類型121
6.2.3 C51數(shù)據(jù)的存儲器模式121
6.2.4 C51的指針變量121
6.2.5 C51對SFR、可尋址位、存
儲器和I/O口的定義124
6.3 C51的運算符和表達式126
6.4 C51的基本語句129
6.4.1 表達式語句129
6.4.2 復(fù)合語句129
6.4.3 選擇語句129
6.4.4 循環(huán)語句130
6.5 C51的函數(shù)131
6.5.1 函數(shù)的分類131
6.5.2 C51函數(shù)的定義132
6.5.3 C51函數(shù)的調(diào)用133
6.5.4 對被調(diào)函數(shù)的說明133
6.5.5 C51的庫函數(shù)133
6.6 C51編程實例133
6.6.1 C語言程序與匯編語言源程序
的關(guān)系133
6.6.2 順序程序的設(shè)計135
6.6.3 循環(huán)程序的設(shè)計136
6.6.4 分支程序的設(shè)計136
6.7 匯編語言和C語言的混合編程138
習(xí)題與思考題6139
第7章 51系列單片機I/O口應(yīng)用與
軟/硬件系統(tǒng)模擬調(diào)試140
7.1 AT89S51單片機I/O接口的
應(yīng)用140
7.1.1 AT89S51單片機I/O接口的
操作方式140
7.1.2 I/O接口的應(yīng)用實例:發(fā)光二
極管的控制141
7.2 軟/硬件系統(tǒng)的模擬調(diào)試與Proteus
軟件143
7.2.1 Proteus軟件的特點143
7.2.2 Proteus軟件對于單片機教學(xué)的
重要意義143
7.3 Proteus軟件快速入門143
7.3.1 Proteus工作界面144
7.3.2 使用Proteus進行單片機系統(tǒng)
仿真設(shè)計的步驟146
7.4 應(yīng)用實例146
7.4.1 原理圖設(shè)計146
7.4.2 Proteus仿真149
習(xí)題與思考題7150
第8章 51系列單片機的中斷系統(tǒng)151
8.1 中斷系統(tǒng)的基本概念151
8.1.1 中斷的定義和作用151
8.1.2 中斷的分類152
8.1.3 中斷系統(tǒng)的基本結(jié)構(gòu)及功能152
8.2 AT89S51單片機的中斷系統(tǒng)157
8.2.1 AT89S51的中斷請求源和
中斷標(biāo)志158
8.2.2 AT89S51對中斷請求的控制159
8.2.3 AT89S51中斷處理的過程162
8.3 中斷系統(tǒng)的程序設(shè)計及實例165
8.3.1 中斷系統(tǒng)的程序設(shè)計165
8.3.2 中斷系統(tǒng)程序設(shè)計舉例167
8.4 AT89S51對外部中斷源的擴展171
8.4.1 采用中斷加查詢法擴展外部
中斷源171
習(xí)題與思考題8174
第9章 51系列單片機的定時器/計
數(shù)器176
9.1 定時器/計數(shù)器概述176
9.2 AT89S51單片機定時器/計數(shù)器
的結(jié)構(gòu)176
9.2.1 工作方式控制寄存器TMOD177
9.2.2 定時器/計數(shù)器控制寄存器
TCON178
9.3 定時器/計數(shù)器的4種工作
方式178
9.3.1 方式0178
9.3.2 方式1179
9.3.3 方式2180
9.3.4 方式3180
9.4 對外部輸入信號的要求182
9.5 定時器/計數(shù)器的編程和應(yīng)用182
9.5.1 定時器/計數(shù)器的編程182
9.5.2 定時器/計數(shù)器的應(yīng)用舉例183
習(xí)題與思考題9196
第10章 51系列單片機的串行接口及
其應(yīng)用198
10.1 計算機串行通信基礎(chǔ)198
10.1.1 計算機通信方式的分類198
10.1.2 串行通信的分類199
10.1.3 串行通信的制式201
10.1.4 串行通信中的調(diào)制與解調(diào)201
10.1.5 串行通信的校驗202
10.1.6 串行通信中串行I/O數(shù)據(jù)的
實現(xiàn)202
10.2 AT89S51單片機串行口的結(jié)
構(gòu)及工作原理203
10.2.1 串行口的結(jié)構(gòu)203
10.2.2 串行口的工作方式205
10.3 AT89S51單片機串行口的
應(yīng)用211
10.3.1 串行通信的編程要點211
10.3.2 串行口在方式0下的應(yīng)用212
10.3.3 串行口在其他方式下的
應(yīng)用215
10.4 單片機的主從式多機通信223
10.5 單片機與PC間的串行通信224
10.5.1 單片機與PC串行通信的
硬件連接224
10.5.2 通信協(xié)議與通信程序226
習(xí)題與思考題10227
第11章 51系列單片機的存儲器擴展229
11.1 單片機系統(tǒng)擴展概述229
11.2 51系列單片機并行總線構(gòu)造
和地址鎖存器230
11.2.1 并行總線的構(gòu)造230
11.2.2 外部地址鎖存器230
11.3 51系列單片機地址空間分配
和地址譯碼器231
11.4 程序存儲器的擴展235
11.4.1 程序存儲器芯片類型的選擇235
11.4.2 常用EPROM芯片的簡介235
11.4.3 訪問程序存儲器的控制信號237
11.4.4 AT89S51單片機與EPROM
的接口電路設(shè)計238
11.4.5 單片機外擴程序存儲器的時
序分析與使用239
11.5 數(shù)據(jù)存儲器擴展240
11.5.1 數(shù)據(jù)存儲器芯片類型的
選擇240
11.5.2 常用靜態(tài)數(shù)據(jù)存儲器RAM
芯片簡介240
11.5.3 AT89S51單片機與外部RAM
的接口電路設(shè)計241
11.5.4 單片機外擴數(shù)據(jù)存儲器的時
序分析與使用243
11.6 程序存儲器和數(shù)據(jù)存儲器的綜
合擴展244
11.7 E2PROM的擴展簡介246
11.7.1 并行E2PROM芯片簡介246
11.7.2 E2PROM的工作方式247
11.7.3 并行E2PROM與單片機的
接口設(shè)計247
11.8 AT89S51單片機片內(nèi)Flash存
儲器的編程247
11.8.1 AT89S51單片機片內(nèi)Flash
存儲器概況248
11.8.2 AT89S51單片機片內(nèi)Flash
存儲器的編程248
習(xí)題與思考題11250
第12章 51系列單片機的并行I/O
接口擴展251
12.1 I/O接口擴展概述251
12.1.1 I/O接口的功能251
12.1.2 I/O端口的編址252
12.1.3 單片機與I/O設(shè)備的數(shù)據(jù)傳
送方式253
12.1.4 單1