編者通過總結多年來的教學實踐,結合高等學校單片機課程的實際教學安排,在本書前3版的基礎上,對全書內容進行了合理整合,充實了目前廣為應用的串行口擴展方法,并給出可以實際使用的例子,更能體現(xiàn)單片機課程的基本教學需求和實際應用情況。全書共11章。以典型的MCS-51單片機為例,系統(tǒng)地介紹單片機的硬件結構、定時/計數器、串行口、中斷系統(tǒng)的工作原理,指令系統(tǒng)及匯編語言程序設計,針對單片機內部資源的C51語言編程方法及其與匯編語言的混合編程,通過并行口擴展外部總線、外部存儲器、鍵盤、LED和LCD顯示器、A/D和D/A轉換器的方法,采用I2C、SPI、1-Wire等目前廣為應用的串行擴展技術擴展EEPROM和Flash存儲器、鍵盤和LED顯示器、A/D和D/A轉換器的方法,以及單片機系統(tǒng)電源設計、硬件和軟件抗干擾技術等,各部分內容都舉實例講解。還介紹了應用新版本的Keil C51和Proteus仿真調試軟件進行單片機應用系統(tǒng)開發(fā)及仿真調試的方法。最后給出了基本實驗和課程設計參考題目及內容。 本書可作為高等學校通信工程、電子信息工程、測控技術與儀器、自動化、電氣工程及其自動化、機械工程及其自動化、計算機科學與技術等專業(yè)的“單片機原理與接口技術”及相關課程的教材,也可供從事單片機應用系統(tǒng)開發(fā)的工程技術人員及單片機愛好者參考。
李曉林,太原理工大學電氣與動力工程學院碩士生導師,多年來一直從事單片機原理及應用、智能儀表、集散控制系統(tǒng)及應用等方面的教學和科研工作。
第1章 概述 1
1.1 單片機的結構組成、特點和指標 1
1.1.1 微型計算機的基本結構 1
1.1.2 單片機的基本結構 2
1.1.3 單片機的特點 3
1.1.4 單片機的重要指標 4
1.2 單片機的發(fā)展歷史和產品類型 4
1.2.1 單片機的發(fā)展歷史 4
1.2.2 單片機的產品類型 5
1.2.3 80C51系列單片機 5
1.2.4 其他系列單片機 8
1.3 單片機的應用 9
1.3.1 單片機應用領域 9
1.3.2 單片機應用舉例 10
1.4 單片機技術相關網站 14
思考題與習題1 14
第2章 MCS-51單片機硬件結構和工作原理 15
2.1 MCS-51單片機的分類 15
2.2 單片機硬件結構 15
2.2.1 單片機的引腳功能 15
2.2.2 單片機的內部結構 17
2.3 中央處理器(CPU) 18
2.3.1 運算器 18
2.3.2 控制器 19
2.3.3 布爾(位)處理器 19
2.4 存儲器 20
2.4.1 程序存儲器(ROM) 20
2.4.2 數據存儲器(RAM) 21
2.5 并行I/O接口 25
2.5.1 P1口 25
2.5.2 P2口 26
2.5.3 P3口 27
2.5.4 P0口 27
2.5.5 并行I/O接口的應用 28
2.6 時鐘電路和時序 32
2.6.1 時鐘電路 32
2.6.2 時序 33
2.7 單片機的工作方式 34
2.7.1 復位方式 34
2.7.2 程序執(zhí)行方式 35
2.7.3 低功耗運行方式 36
思考題與習題2 37
第3章 MCS-51指令系統(tǒng)及匯編程序設計 38
3.1 指令系統(tǒng)簡介 38
3.1.1 指令系統(tǒng)的分類 38
3.1.2 指令格式 39
3.1.3 指令中的常用符號 39
3.1.4 尋址方式 40
3.2 指令系統(tǒng) 44
3.2.1 數據傳送指令 44
3.2.2 算術運算指令 48
3.2.3 邏輯運算指令 52
3.2.4 控制轉移指令 55
3.2.5 位操作指令 59
3.3 匯編語言程序設計 61
3.3.1 匯編語言程序設計的步驟 61
3.3.2 匯編語言的程序編輯和匯編 62
3.3.3 結構化程序設計方法 65
思考題與習題3 72
第4章 MCS-51單片機的C程序設計 74
4.1 C51概述 74
4.2 C51語法基礎 75
4.2.1 標識符和關鍵字 75
4.2.2 數據類型 76
4.2.3 C51運算符 78
4.2.4 程序結構 78
4.3 C51對MCS-51單片機的訪問 79
4.3.1 存儲類型 79
4.3.2 存儲模式 80
4.3.3 對特殊功能寄存器的訪問 81
4.3.4 對存儲器和并行口的訪問 82
4.3.5 位地址訪問 84
4.3.6 中斷函數 85
4.4 C51結構化程序設計 86
4.4.1 順序結構程序 86
4.4.2 選擇結構程序 86
4.4.3 循環(huán)結構程序 89
4.5 C51程序設計實例 91
4.5.1 查表程序 91
4.5.2 單片機應用程序設計 92
4.5.3 C51語言和匯編語言混合編程 97
4.5.4 編程優(yōu)化的概念 99
思考題與習題4 100
第5章 MCS-51單片機中斷、定時/計數器及串行口 101
5.1 中斷系統(tǒng) 101
5.1.1 中斷系統(tǒng)概述 101
5.1.2 MCS-51單片機中斷系統(tǒng) 103
5.1.3 中斷系統(tǒng)應用舉例 111
5.2 定時/計數器 114
5.2.1 定時/計數器的結構與原理 114
5.2.2 定時/計數器的工作方式 116
5.2.3 定時/計數器對輸入信號的要求 119
5.2.4 定時/計數器的應用 119
5.3 串行口 126
5.3.1 串行通信基礎知識 126
5.3.2 MCS-51單片機串行口 127
5.3.3 串行口的應用 132
思考題與習題5 139
第6章 單片機系統(tǒng)基本并行擴展技術 141
6.1 并行擴展概述 141
6.2 外部總線擴展 141
6.3 外部存儲器擴展 142
6.3.1 外部ROM擴展 142
6.3.2 外部RAM擴展 147
6.3.3 多存儲器芯片擴展 149
6.4 并行口擴展 150
6.4.1 8155可編程并行口芯片 150
6.4.2 8155與單片機的接口方法 153
6.5 顯示器與鍵盤擴展 154
6.5.1 LED顯示器擴展 154
6.5.2 LCD顯示器擴展 156
6.5.3 鍵盤接口擴展 162
6.5.4 鍵盤和顯示器接口設計實例 165
6.6 A/D和D/A轉換器擴展 167
6.6.1 并行A/D轉換器擴展 167
6.6.2 并行D/A轉換器擴展 170
思考題與習題6 173
第7章 單片機系統(tǒng)常用串行擴展技術 174
7.1 串行擴展概述 174
7.2 常用串行總線協(xié)議 174
7.2.1 I2C串行總線 174
7.2.2 SPI總線 178
7.2.3 1-Wire總線 181
7.3 串行存儲器擴展 184
7.3.1 I2C接口的EEPROM存儲器擴展 184
7.3.2 SPI接口的大容量Flash存儲器擴展 191
7.4 串行轉并行I/O接口擴展 201
7.4.1 串行轉并行I/O擴展芯片的工作原理 201
7.4.2 串行總線擴展I/O接口實例 204
思考題與習題7 205
第8章 單片機系統(tǒng)外設串行擴展技術 206
8.1 串行鍵盤和LED顯示器擴展 206
8.1.1 串行鍵盤和LED顯示器控制芯片的工作原理 206
8.1.2 串行鍵盤和LED顯示器擴展實例 209
8.2 串行A/D和D/A轉換器擴展 215
8.2.1 串行A/D轉換器擴展 215
8.2.2 串行D/A轉換器擴展 225
思考題與習題8 229
第9章 單片機系統(tǒng)電源設計與抗干擾技術 230
9.1 單片機系統(tǒng)電源設計的考慮因素 230
9.2 線性穩(wěn)壓電源 230
9.2.1 三端固定輸出集成穩(wěn)壓器 231
9.2.2 三端可調輸出集成穩(wěn)壓器 231
9.2.3 低壓差線性穩(wěn)壓器(LDO) 232
9.3 DC/DC電源 233
9.3.1 降壓型DC/DC電源電路 233
9.3.2 升壓型DC/DC電源電路 235
9.3.3 DC/DC模塊電源的選擇與應用 237
9.4 AC/DC電源 238
9.4.1 AC/DC電源技術 238
9.4.2 AC/DC模塊電源 240
9.5 基準電源的產生方法 241
9.5.1 穩(wěn)壓管基準電源電路 241
9.5.2 集成基準電源電路 241
9.6 干擾對單片機應用系統(tǒng)的影響 244
9.7 硬件抗干擾技術 244
9.7.1 無源濾波 244
9.7.2 有源濾波 245
9.7.3 去耦電路 245
9.7.4 屏蔽技術 245
9.7.5 隔離技術 246
9.7.6 接地技術 247
9.8 軟件抗干擾技術 249
9.8.1 軟件抗干擾的一般方法 249
9.8.2 指令冗余技術 250
9.8.3 軟件陷阱技術 250
9.8.4 “看門狗”技術 253
思考題與習題9 255
第10章 單片機系統(tǒng)開發(fā)工具 256
10.1 單片機應用系統(tǒng)開發(fā)環(huán)境 256
10.1.1 開發(fā)系統(tǒng)的功能 256
10.1.2 開發(fā)系統(tǒng)的分類 256
10.2 Keil C51開發(fā)工具及仿真調試方法 257
10.2.1 Keil C51開發(fā)工具 257
10.2.2 應用Keil C51進行單片機軟件開發(fā)調試的方法 259
10.2.3 應用Keil C51調試C51應用程序舉例 263
10.3 Proteus仿真軟件及調試方法 266
10.3.1 Proteus仿真軟件 266
10.3.2 Proteus進行單片機應用系統(tǒng)仿真調試的方法 267
10.3.3 Proteus進行單片機應用系統(tǒng)仿真調試舉例 268
10.4 單片機應用系統(tǒng)設計實例 273
10.4.1 系統(tǒng)結構 273
10.4.2 硬件設計 274
10.4.3 軟件設計 276
思考題與習題10 280
第11章 實驗及課程設計 281
11.1 概述 281
11.2 實驗 281
11.2.1 實驗1——BCD碼/十六進制碼轉換 281
11.2.2 實驗2——排序程序 282
11.2.3 實驗3——定時/計數器 284
11.2.4 實驗4——基本輸入/輸出 288
11.2.5 實驗5——外部中斷 290
11.2.6 實驗6——并行口擴展 292
11.2.7 實驗7——串行A/D轉換 295
11.2.8 實驗8——串行D/A轉換 296
11.3 課程設計 296
11.3.1 課程設計目的 296
11.3.2 課程設計要求 296
11.3.3 課程設計參考題目及要求 297
附錄A MCS-51匯編指令-機器碼對照表 301
附錄B ASCII編碼表 303
參考文獻 304