《單片機原理與接口技術(第2版)》為普通高等教育“十一五”國家級規劃教材。《單片機原理與接口技術(第2版)》在第1版基礎上,保留并修訂了MCS-51單片機的硬件結構、指令系統、內部資源的應用方法、51匯編語言及C51語言程序設計方法、Keil C51調試工具軟件等51內核單片機的基本應用擴展技術和單片機應用系統的抗干擾技術等內容,補充完善了實驗和課程設計內容及每章后的習題與思考題。增加了目前較為流行的I2C和SPI等串行接口擴展技術、短距離無線擴展技術和Proteus仿真調試工具軟件等內容,以使讀者能達到以當今主流技術開發單片機應用產品的目的。新增內容包括:以串行接口技術擴展存儲器、I/O接口、鍵盤、顯示器、A/D轉換、D/A轉換、日歷時鐘芯片和IC卡的方法;點對點無線通信和ZigBee無線網絡通信等單片機系統短距離無線擴展技術;單片機系統供電電源解決方案和典型實用電路;應用Proteus電路分析仿真軟件進行仿真調試的方法。為配合初學者學習,《單片機原理與接口技術(第2版)》還專門設計并為讀者提供一套單片機實驗開發系統(學習板)的硬件原理圖、PCB板圖設計資料和軟件源程序包,供讀者搭建一個實際開發環境進行開發訓練,以增強實際開發能力。
第1章 概述 1
1.1 單片機的結構組成、特點和指標 1
1.1.1 微型計算機的基本結構 1
1.1.2 單片機的基本結構 2
1.1.3 單片機的特點 3
1.1.4 單片機的重要指標 3
1.2 單片機的發展歷史和產品類型 4
1.2.1 單片機的發展歷史 4
1.2.2 單片機的產品類型 5
1.2.3 80C51系列單片機 5
1.2.4 其他系列單片機 9
1.3 單片機的應用 9
1.3.1 單片機應用領域 9
1.3.2 單片機應用舉例 10
1.4 單片機技術相關網站 14
習題與思考題 15
第2章 MCS-51單片機硬件結構和原理 16
2.1 MCS-51系列單片機的分類 16
2.2 單片機硬件結構 16
2.2.1 單片機的引腳功能 16
2.2.2 單片機的內部結構 18
2.3 中央處理器(CPU) 19
2.3.1 運算器 19
2.3.2 控制器 20
2.3.3 布爾(位)處理器 21
2.4 存儲器 21
2.4.1 程序存儲器 22
2.4.2 數據存儲器 22
2.5 并行輸入/輸出(I/O)端口 26
2.5.1 P1口 27
2.5.2 P2口 27
2.5.3 P3口 28
2.5.4 P0口 29
2.5.5 并行口的應用 30
2.6 時鐘電路和時序 32
2.6.1 時鐘電路 32
2.6.2 時序 33
2.7 單片機的工作方式 35
2.7.1 復位方式 35
2.7.2 程序執行方式 36
2.7.3 低功耗運行方式 36
習題與思考題 37
第3章 MCS-51單片機指令系統 38
3.1 指令系統簡介 38
3.1.1 指令系統的分類 38
3.1.2 指令格式 39
3.1.3 指令中的常用符號 39
3.1.4 尋址方式 40
3.2 指令系統 44
3.2.1 數據傳送指令 44
3.2.2 算術運算指令 48
3.2.3 邏輯運算指令 52
3.2.4 控制轉移指令 55
3.2.5 位操作指令 59
習題與思考題 61
第4章 MCS-51匯編語言程序設計 64
4.1 程序設計概述 64
4.1.1 程序設計的步驟 64
4.1.2 程序設計的方法 65
4.1.3 匯編語言的規范 65
4.1.4 匯編語言程序編輯和匯編 68
4.2 結構化程序設計方法 69
4.2.1 順序結構程序 69
4.2.2 分支結構程序 70
4.2.3 循環結構程序 71
4.2.4 查表程序 74
4.2.5 子程序 75
4.3 匯編語言程序設計實例 78
4.3.1 算術運算程序 78
4.3.2 數據排序程序 82
4.3.3 數制轉換程序 83
4.3.4 線性標度變換程序 86
習題與思考題 86
第5章 MCS-51單片機C51程序設計 88
5.1 C51概述 88
5.2 C51語法基礎 89
5.2.1 標識符和關鍵字 89
5.2.2 數據類型 90
5.2.3 C51運算符和表達式 92
5.2.4 程序結構 93
5.3 C51對MCS-51單片機的訪問 94
5.3.1 存儲類型 94
5.3.2 存儲模式 95
5.3.3 對特殊功能寄存器的訪問 96
5.3.4 對存儲器和并行口的訪問 97
5.3.5 位地址訪問 100
5.4 C51函數 100
5.4.1 函數的分類 101
5.4.2 函數的定義 101
5.4.3 函數的調用 102
5.4.4 對被調函數的說明 102
5.4.5 中斷函數 103
5.5 C51結構化程序設計 104
5.5.1 順序結構程序 104
5.5.2 選擇結構程序 104
5.5.3 循環結構程序 107
5.6 C51程序設計實例 109
5.6.1 查表程序 109
5.6.2 單片機內/外部資源應用程序設計 110
5.6.3 C51語言和MCS-51匯編語言混合編程 116
5.6.4 編程優化的概念 118
習題與思考題 118
第6章 MCS-51單片機中斷系統 120
6.1 中斷概述 120
6.1.1 CPU與外設的輸入/輸出方式 120
6.1.2 中斷的概念 121
6.2 MCS-51中斷系統 123
6.2.1 中斷系統的內部結構 123
6.2.2 中斷源與中斷方式 123
6.2.3 中斷控制寄存器 125
6.2.4 中斷響應 129
6.3 中斷應用舉例 131
6.3.1 中斷服務程序設計 131
6.3.2 中斷系統應用實例 132
習題與思考題 136
第7章 MCS-51單片機定時/計數器和串行接口 137
7.1 定時/計數器 137
7.1.1 定時/計數器的結構與原理 137
7.1.2 定時/計數器的工作方式 139
7.1.3 定時/計數器對輸入信號的 要求 142
7.1.4 定時/計數器的應用 142
7.2 串行通信接口 149
7.2.1 串行通信基礎知識 149
7.2.2 MCS-51串行通信接口 151
7.2.3 串行通信接口的應用 155
習題與思考題 162
第8章 單片機系統基本并行擴展技術 164
8.1 概述 164
8.2 外部總線擴展 164
8.3 外部存儲器擴展 165
8.3.1 外部程序存儲器擴展 165
8.3.2 外部數據存儲器擴展 170
8.3.3 多片存儲器芯片擴展 172
8.4 并行接口擴展 173
8.4.1 并行接口的簡單擴展方法 173
8.4.2 8155可編程并行I/O接口擴展 175
8.5 顯示器與鍵盤擴展 179
8.5.1 LED顯示器接口擴展 179
8.5.2 LCD顯示器接口擴展 181
8.5.3 鍵盤接口擴展 183
8.5.4 鍵盤和顯示器接口設計實例 187
8.6 打印機擴展 189
8.6.1 TPuP-16A/40A微型打印機 189
8.6.2 打印機接口擴展方法 190
習題與思考題 192
第9章 單片機系統常用串行擴展技術 194
9.1 常用串行總線協議 194
9.1.1 I2C串行總線 194
9.1.2 SPI總線 198
9.1.3 單線總線 201
9.2 串行存儲器擴展 204
9.2.1 I2C接口EEPROM的存儲器擴展 204
9.2.2 SPI接口的大容量Flash存儲器擴展 209
9.3 串行轉并行I/O接口擴展 214
9.3.1 串行轉并行I/O擴展芯片的工作原理 214
9.3.2 串行總線擴展I/O接口實例 216
9.4 串行鍵盤和LED顯示器擴展 218
9.4.1 串行鍵盤和LED顯示器控制芯片的工作原理 218
9.4.2 串行鍵盤和LED顯示器擴展實例 221
9.5 串行總線擴展實例簡介 226
習題與思考題 228
第10章 單片機系統模擬量及其他擴展技術 229
10.1 A/D轉換擴展 229
10.1.1 并行A/D轉換擴展 229
10.1.2 串行A/D轉換擴展 231
10.2 D/A轉換擴展 241
10.2.1 并行D/A轉換擴展 241
10.2.2 串行D/A轉換擴展 244
10.3 日歷時鐘芯片擴展 248
10.3.1 日歷時鐘芯片8563 248
10.3.2 單片機與日歷時鐘芯片的接口方法 250
10.4 IC卡擴展 251
10.4.1 SLE4442 IC卡 251
10.4.2 SLE4442 IC卡數據傳送協議 252
10.4.3 SLE4442 IC卡操作命令 254
10.4.4 單片機與SLE4442 IC卡的接口方法 255
習題與思考題 256
第11章 單片機系統無線擴展技術 257
11.1 點對點無線通信 257
11.1.1 nRF905芯片介紹 257
11.1.2 應用nRF905擴展單片機無線接口 261
11.2 ZigBee無線網絡技術簡介 265
11.2.1 ZigBee網絡框架 266
11.2.2 ZigBee網絡中的設備 266
11.2.3 ZigBee網絡拓撲結構 266
11.2.4 ZigBee技術的特點和應用領域 267
11.3 ZigBee無線網絡技術應用實例 268
11.3.1 支持ZigBee無線網絡的單片機選擇 268
11.3.2 串行總線接口的數字式溫濕度傳感器選擇 272
11.3.3 ZigBee無線網絡節點的硬件電路設計 276
11.3.4 軟件設計 277
習題與思考題 280
第12章 單片機系統電源設計 281
12.1 單片機系統電源設計的考慮因素 281
12.2 線性穩壓供電電源 281
12.2.1 三端固定輸出集成穩壓器電源電路 282
12.2.2 三端可調輸出集成穩壓器電源電路 282
12.2.3 低壓差線性穩壓器(LDO)電源電路 283
12.3 DC/DC供電電源 284
12.3.1 降壓型DC/DC電源電路 284
12.3.2 升壓型DC/DC電源電路 286
12.3.3 DC/DC模塊電源的選擇與應用 288
12.4 AC/DC供電技術 289
12.4.1 AC/DC電源技術 289
12.4.2 AC/DC模塊電源 291
12.5 基準電源的產生方法 292
12.5.1 穩壓管基準電壓源電路 292
12.5.2 集成塊基準電壓源電路 292
習題與思考題 295
第13章 單片機應用系統抗干擾技術 296
13.1 干擾源及其分類 296
13.1.1 干擾的定義 296
13.1.2 干擾的種類 296
13.2 干擾對單片機應用系統的影響 298
13.3 硬件抗干擾技術 299
13.3.1 無源濾波 299
13.3.2 有源濾波 299
13.3.3 去耦電路 299
13.3.4 屏蔽技術 300
13.3.5 隔離技術 300
13.3.6 接地技術 302
13.4 軟件抗干擾技術 304
13.4.1 軟件抗干擾的一般方法 304
13.4.2 指令冗余技術 305
13.4.3 軟件陷阱技術 305
13.4.4 “看門狗”技術 308
13.5 數字濾波技術 310
13.5.1 一階低通濾波法 310
13.5.2 程序判斷濾波法 311
13.5.3 算術平均濾波法 311
13.5.4 中位值平均濾波法 312
13.5.5 中值濾波法 313
13.5.6 遞推平均濾波法 313
13.5.7 防脈沖干擾平均值濾波法 314
習題與思考題 315
第14章 單片機系統開發工具與 設計實例 316
14.1 單片機應用系統開發環境 316
14.1.1 開發系統的功能 316
14.1.2 開發系統的分類 316
14.2 Keil C51開發工具及仿真調試方法 317
14.2.1 Keil C51開發工具 317
14.2.2 應用Keil C51進行單片機軟件開發調試的方法 319
14.2.3 應用Keil C51調試C51應用程序舉例 322
14.3 Proteus電路分析與實物仿真軟件及調試方法 325
14.3.1 Proteus仿真軟件 325
14.3.2 應用Proteus進行單片機應用系統仿真調試的方法 326
14.3.3 應用Proteus進行單片機系統仿真調試舉例 327
14.4 單片機應用系統設計舉例 331
14.4.1 需求分析 331
14.4.2 功能說明 332
14.4.3 體系結構設計 332
14.4.4 硬件系統設計 334
14.4.5 軟件系統設計 336
14.4.6 系統調試 339
習題與思考題 339
第15章 實驗及課程設計 341
15.1 概述 341
15.2 實驗 341
15.2.1 實驗1——BCD碼/十六進制碼轉換 341
15.2.2 實驗2——排序程序 342
15.2.3 實驗3——定時/計數器 344
15.2.4 實驗4——基本輸入/輸出 348
15.2.5 實驗5——外部中斷 350
15.2.6 實驗6——并行接口擴展 352
15.2.7 實驗7——A/D轉換 355
15.2.8 實驗8——D/A轉換 356
15.2.9 實驗9——單片機與PC通信 357
15.2.10 實驗10——綜合實驗(溫度控制系統設計實例) 361
15.3 課程設計 365
15.3.1 課程設計的目的 365
15.3.2 課程設計要求 365
15.3.3 課程設計題目及要求 366
附錄A MCS-51匯編指令-機器碼對照表 370
附錄B ASCII編碼表 372
參考文獻 373