《51單片機應用開發(fā)范例大全(第3版)》延續(xù)了前兩版的整體內容和風格,通過實例全面講解單片機開發(fā)中的各種技術,內容包括單片機接口的擴展、存儲器的擴展、輸入/輸出及顯示技術、實用電子制作、傳感控制技術、智能儀表與測試技術、電氣傳動及控制技術、單片機數據處理、單片機通信技術、單片機實現(xiàn)信號與算法、單片機的總線與網絡技術、典型器件及應用技術等內容。本書通過智能手機充電器設計、單片機控制門禁系統(tǒng)設計、GPS接收設備的設計3個綜合實例,具體演示應用多種技術開發(fā)單片機系統(tǒng)的思路和方法。其中前兩版中的綜合實例電機保護器的設計被現(xiàn)在的GPS接收設備的設計所替換。
《51單片機應用開發(fā)范例大全(第3版)》內容注重各種技術的實際應用,所講實例均以提高讀者工程實踐和開發(fā)能力為宗旨。
《51單片機應用開發(fā)范例大全(第3版)》適合所有51單片機應用開發(fā)人員,可作為電子愛好者、大中院校相關專業(yè)學生、工程技術人員的參考用書。
張杰,畢業(yè)于揚州大學計算機技術專業(yè),當前工作于江蘇理工學院計算機工程學院,F(xiàn)主要研究方向為嵌入式系統(tǒng)開發(fā)和計算機應用。
宋戈,畢業(yè)于山東科技大學電子信息工程專業(yè),當前工作于山東科技大學,F(xiàn)主要研究方向為單片機和嵌入式系統(tǒng)。
黃鶴松,畢業(yè)于山東礦業(yè)學院,獲測試計量技術及儀器專業(yè)碩士學位。目前主要研究方向:傳感器與智能儀表、自動檢測監(jiān)控與系統(tǒng)集成。所帶研究生專業(yè):控制理論與控制工程、檢測技術與自動化裝置。
員玉良,畢業(yè)于山東科技大學機械電子工程專業(yè),當前工作于山東科技大學,F(xiàn)主要研究方向為儀器儀表工業(yè)、計算機硬件技術、自動化技術。
第1章 單片機C語言開發(fā)基礎 1
1.1 MCS-51單片機硬件基礎 1
1.1.1 8051引腳 1
1.1.2 51單片機功能結構 3
1.1.3 中央處理器(CPU) 4
1.1.4 存儲器結構 8
1.1.5 定時/計數器 10
1.1.6 并行端口 11
1.1.7 串行端口 13
1.1.8 中斷系統(tǒng) 13
1.1.9 總線 14
1.2 Keil mVision2 14
1.2.1 Keil mVision2集成開發(fā)環(huán)境介紹 14
1.2.2 使用Keil mVision2進行開發(fā) 15
1.2.3 dScope for Windows的使用 20
1.3 C51基礎知識 24
1.3.1 C51控制語句 24
1.3.2 C51函數 28
1.3.3 C51數組和指針 30
1.4 【實例19】P1口控制直流電動機實例 32
第2章 單片機接口的擴展 35
2.1 基本器件實現(xiàn)端口擴展實例 35
2.1.1 【實例20】用74LS165實現(xiàn)串口擴展并行輸入口 35
2.1.2 【實例21】用74LS164實現(xiàn)串口擴展并行輸出口 39
2.1.3 【實例22】P0 I/O擴展并行輸入口 43
2.1.4 【實例23】P0 I/O擴展并行輸出口 44
2.2 擴展芯片實現(xiàn)端口擴展 44
2.2.1 【實例24】用8243擴展I/O端口 45
2.2.2 【實例25】用8255A擴展I/O口 48
2.2.3 【實例26】用8155擴展I/O口 57
2.3 CPLD實現(xiàn)端口擴展 68
第3章 存儲器的擴展 70
3.1 外部程序存儲器的擴展 70
3.1.1 【實例27】EPROM27xxx程序存儲器的擴展 70
3.1.2 【實例28】EEPROM28xxx程序存儲器的擴展 73
3.2 外部數據存儲器的擴展 75
3.2.1 【實例29】與AT24系列EEPROM接口及驅動程序 75
3.2.2 【實例30】EEPROM(X5045)接口及驅動程序 82
3.2.3 【實例31】鐵電存儲器接口及驅動程序 88
3.2.4 【實例32】與雙口RAM存儲器接口及應用實例 92
3.3 FLASH驅動程序 96
第4章 輸入/輸出及顯示技術 108
4.1 【實例34】獨立鍵盤控制 108
4.1.1 實例功能 108
4.1.2 典型器件介紹 108
4.1.3 硬件設計 108
4.1.4 程序設計 109
4.1.5 經驗總結 110
4.2 【實例35】矩陣式鍵盤控制 110
4.2.1 實例功能 110
4.2.2 典型器件介紹 110
4.2.3 硬件設計 111
4.2.4 程序設計 111
4.2.5 經驗總結 112
4.3 【實例36】改進型I/O端口鍵盤 113
4.3.1 實例功能 113
4.3.2 硬件設計 113
4.3.3 程序設計 113
4.4 【實例37】PS/2鍵盤的控制 117
4.4.1 實例功能 117
4.4.2 典型器件介紹 117
4.4.3 硬件設計 117
4.4.4 程序設計 118
4.4.5 經驗總結 122
4.5 【實例38】LED顯示 122
4.5.1 實例功能 122
4.5.2 硬件設計 122
4.5.3 程序設計 122
4.5.4 經驗總結 123
4.6 【實例39】數碼管(HD7929)顯示實例 124
4.6.1 實例功能 124
4.6.2 硬件設計 124
4.6.3 程序設計 124
4.6.4 經驗總結 126
4.7 【實例40】16 × 2字符型液晶顯示實例 126
4.7.1 實例功能 126
4.7.2 典型器件介紹 126
4.7.3 硬件設計 126
4.7.4 程序設計 127
4.7.5 經驗總結 132
4.8 【實例41】點陣型液晶顯示實例 132
4.8.1 實例功能 132
4.8.2 典型器件介紹 132
4.8.3 硬件設計 134
4.8.4 程序設計 134
4.8.5 經驗總結 137
4.9 【實例42】LCD顯示圖片實例 137
4.9.1 實例功能 137
4.9.2 典型器件介紹 137
4.9.3 硬件設計 139
4.9.4 程序設計 139
4.9.5 經驗總結 145
第5章 實用電子制作 146
5.1 【實例43】簡易電子琴的設計 146
5.1.1 實例功能 146
5.1.2 典型器件介紹 146
5.1.3 硬件設計 146
5.1.4 程序設計 148
5.1.5 經驗總結 150
5.2 【實例44】基于MCS-51單片機的四路搶答器 150
5.2.1 實例功能 150
5.2.2 典型器件介紹 151
5.2.3 硬件設計 152
5.2.4 程序設計 154
5.2.5 經驗總結 159
5.3 【實例45】電子調光燈的制作 160
5.3.1 實例功能 160
5.3.2 典型器件介紹 160
5.3.3 硬件設計 161
5.3.4 程序設計 161
5.3.5 經驗總結 167
5.4 【實例46】數碼管時鐘的制作 167
5.4.1 實例功能 167
5.4.2 典型器件介紹 167
5.4.3 硬件設計 168
5.4.4 程序設計 169
5.4.5 經驗總結 184
5.5 【實例47】LCD時鐘的制作 184
5.5.1 實例功能 184
5.5.2 典型器件介紹 184
5.5.3 硬件設計 186
5.5.4 程序設計 187
5.5.5 經驗總結 194
5.6 【實例48】數字化語音存儲與回放 194
5.6.1 實例功能 194
5.6.2 典型器件介紹 194
5.6.3 硬件設計 195
5.6.4 程序設計 196
5.6.5 經驗總結 205
5.7 【實例49】電子標簽設計 206
5.7.1 實例功能 206
5.7.2 典型器件介紹 206
5.7.3 硬件設計 207
5.7.4 程序設計 208
5.7.5 經驗總結 217
第6章 傳感控制技術 218
6.1 【實例50】指紋識別模塊 218
6.1.1 指紋識別傳感器原理 218
6.1.2 硬件設計 220
6.1.3 程序設計 221
6.1.4 實例實現(xiàn)過程 223
6.1.5 經驗總結 223
6.2 【實例51】數字溫度傳感器 224
6.2.1 基礎知識 224
6.2.2 使用器件 225
6.2.3 硬件電路圖 228
6.2.4 軟件程序設計 229
6.2.5 經驗總結 237
6.3 【實例52】寬帶數控放大器 237
6.3.1 寬帶數控放大器設計原理 238
6.3.2 硬件設計 241
6.3.3 程序設計 241
6.3.4 實例實現(xiàn)過程 241
6.3.5 經驗總結 242
第7章 智能儀表與測試技術 243
7.1 【實例53】超聲波測距 243
7.1.1 實例功能 243
7.1.2 典型器件介紹 243
7.1.3 硬件設計 243
7.1.4 程序設計 246
7.1.5 經驗總結 248
7.2 【實例54】簡易數字頻率計 248
7.2.1 實例功能 248
7.2.2 簡易頻率計的電路結構 248
7.2.3 簡易頻率計的應用代碼 249
7.2.4 經驗總結 252
7.3 【實例55】基于單片機的電壓表設計 252
7.3.1 實例功能 252
7.3.2 電壓表設計原理 252
7.3.3 硬件設計 253
7.3.4 程序設計 254
7.3.5 經驗總結 256
7.4 【實例56】基于單片機的稱重顯示儀表設計 256
7.4.1 實例功能 256
7.4.2 典型器件介紹 256
7.4.3 硬件設計 256
7.4.4 程序設計 258
7.4.5 經驗總結 261
7.5 【實例57】基于單片機的車輪測速系統(tǒng) 261
7.5.1 實例功能 261
7.5.2 典型器件介紹 261
7.5.3 硬件設計 262
7.5.4 程序設計 262
7.5.5 經驗總結 264
第8章 電氣傳動及控制技術 265
8.1 【實例58】電源切換控制 265
8.1.1 實例功能 265
8.1.2 典型器件介紹 266
8.1.3 硬件設計 267
8.1.4 程序設計 270
8.1.5 經驗總結 271
8.2 【實例59】步進電機的控制 272
8.2.1 步進電機的原理 272
8.2.2 典型器件介紹 273
8.2.3 硬件設計 274
8.2.4 程序設計 275
8.2.5 經驗總結 278
8.3 【實例60】單片機控制自動門系統(tǒng) 278
8.3.1 實例功能 278
8.3.2 典型器件介紹 278
8.3.3 硬件設計 280
8.3.4 程序設計 281
8.3.5 經驗總結 285
8.4 【實例61】控制微型打印機 285
8.4.1 實例功能 285
8.4.2 典型器件介紹 286
8.4.3 硬件設計 288
8.4.4 程序設計 289
8.4.5 經驗總結 289
8.5 【實例62】單片機控制的EPSON微型打印頭 290
8.5.1 實例功能 290
8.5.2 典型器件介紹 290
8.5.3 硬件設計 291
8.5.4 程序設計 292
8.5.5 經驗總結 293
8.6 【實例63】簡易智能電動車 293
8.6.1 實例功能 293
8.6.2 典型器件介紹 294
8.6.3 硬件設計 295
8.6.4 程序設計 296
8.6.5 經驗總結 301
8.7 【實例64】洗衣機控制器 301
8.7.1 實例功能 301
8.7.2 典型器件介紹 302
8.7.3 硬件設計 303
8.7.4 程序設計 303
8.7.5 經驗總結 307
第9章 單片機數據處理 308
9.1 【實例65】串行A/D轉換 308
9.1.1 實例功能 308
9.1.2 典型器件介紹 308
9.1.3 硬件設計 309
9.1.4 程序設計 309
9.1.5 經驗總結 311
9.2 【實例66】并行A/D轉換 311
9.2.1 實例功能 311
9.2.2 典型器件介紹 311
9.2.3 硬件設計 312
9.2.4 程序設計 313
9.2.5 經驗總結 314
9.3 【實例67】模擬比較器實現(xiàn)A/D轉換 314
9.3.1 實例功能 314
9.3.2 典型器件介紹 314
9.3.3 硬件設計 315
9.3.4 程序設計 315
9.3.5 經驗總結 317
9.4 【實例68】串行D/A轉換 317
9.4.1 實例功能 317
9.4.2 典型器件介紹 317
9.4.3 硬件設計 318
9.4.4 程序設計 318
9.4.5 經驗總結 320
9.5 【實例69】并行電壓型D/A轉換 320
9.5.1 實例功能 320
9.5.2 典型器件介紹 320
9.5.3 硬件設計 320
9.5.4 程序設計 321
9.5.5 經驗總結 321
9.6 【實例70】并行電流型D/A轉換 322
9.6.1 實例功能 322
9.6.2 典型器件介紹 322
9.6.3 硬件設計 323
9.6.4 程序設計 324
9.6.5 經驗總結 324
9.7 【實例71】I2C接口的A/D轉換 324
9.7.1 實例功能 324
9.7.2 典型器件介紹 324
9.7.3 硬件設計 325
9.7.4 程序設計 325
9.7.5 經驗總結 330
9.8 【實例72】I2C接口的D/A轉換 330
9.8.1 實例功能 330
9.8.2 典型器件介紹 330
9.8.3 硬件設計 331
9.8.4 程序設計 332
9.8.5 經驗總結 334
第10章 單片機通信技術 335
10.1 【實例73】單片機間通信 335
10.1.1 實例功能 335
10.1.2 典型器件介紹 335
10.1.3 硬件設計 336
10.1.4 程序設計 337
10.1.5 經驗總結 340
10.2 【實例74】單片機間多機通信方法之一 340
10.2.1 實例功能 341
10.2.2 典型器件介紹 341
10.2.3 硬件設計 342
10.2.4 程序設計 343
10.2.5 經驗總結 350
10.3 【實例75】單片機間多機通信方法之二 350
10.3.1 實例功能 350
10.3.2 程序設計 351
10.3.3 經驗總結 358
10.4 【實例76】PC與單片機通信 358
10.4.1 實例功能 358
10.4.2 典型器件介紹 358
10.4.3 硬件設計 360
10.4.4 程序設計 360
10.4.5 經驗總結 365
10.5 【實例77】紅外遙控器的通信 366
10.5.1 基礎知識 366
10.5.2 器件和原理 366
10.5.3 硬件電路圖 368
10.5.4 軟件程序設計 369
10.5.5 經驗總結 374
10.6 【實例78】無線數據傳輸模塊 374
10.6.1 實例功能 374
10.6.2 典型器件介紹 374
10.6.3 硬件設計 376
10.6.4 程序設計 377
10.6.5 經驗總結 377
第11章 單片機實現(xiàn)信號與算法 378
11.1 【實例79】單片機實現(xiàn)PWM信號輸出 378
11.1.1 實例功能 378
11.1.2 典型器件介紹 378
11.1.3 硬件設計 378
11.1.4 程序設計 379
11.1.5 經驗總結 381
11.2 【實例80】實現(xiàn)基于單片機的低頻信號發(fā)生器 381
11.2.1 實例功能 381
11.2.2 典型器件介紹 381
11.2.3 硬件設計 381
11.2.4 程序代碼 382
11.2.5 經驗總結 384
11.3 【實例81】軟件濾波方法 384
11.3.1 實例功能 384
11.3.2 軟件濾波方法介紹 384
11.3.3 程序設計 385
11.3.4 經驗總結 388
11.4 【實例82】FSK信號解碼接收 388
11.4.1 實例功能 388
11.4.2 FSK原理 388
11.4.3 程序設計 389
11.4.4 經驗總結 390
11.5 【實例83】單片機浮點數運算實現(xiàn) 390
11.5.1 實例功能 390
11.5.2 單片機浮點數運算實現(xiàn)原理 391
11.5.3 程序設計 391
11.5.4 經驗總結 396
11.6 【實例84】神經網絡在單片機中的實現(xiàn) 397
11.6.1 實例功能 397
11.6.2 神經網絡簡介 397
11.6.3 程序設計 397
11.6.4 經驗總結 400
11.7 【實例85】信號數據的FFT變換 400
11.7.1 實例功能 400
11.7.2 FFT變換介紹 400
11.7.3 程序設計 401
11.7.4 經驗總結 406
第12章 單片機的總線與網絡技術 407
12.1 【實例86】I2C總線接口的軟件實現(xiàn) 407
12.1.1 實例功能 407
12.1.2 典型器件介紹 407
12.1.3 程序設計 407
12.1.4 經驗總結 410
12.2 【實例87】SPI總線接口的軟件實現(xiàn) 410
12.2.1 實例功能 410
12.2.2 典型器件介紹 410
12.2.3 硬件設計 412
12.2.4 經驗總結 417
12.3 【實例88】1-WIRE總線接口的軟件實現(xiàn) 418
12.3.1 1-WIRE總線通信原理 418
12.3.2 硬件設計 418
12.3.3 程序設計 419
12.3.4 經驗總結 422
12.4 【實例89】單片機外掛CAN總線接口 422
12.4.1 CAN總線介紹 422
12.4.2 CAN總線接口 423
12.4.3 程序設計 425
12.4.4 經驗總結 429
12.5 【實例90】單片機外掛USB總線接口 429
12.5.1 USB總線原理 430
12.5.2 與單片機的硬件接口 432
12.5.3 程序設計 432
12.5.4 經驗總結 437
12.6 【實例91】單片機實現(xiàn)以太網接口 437
12.6.1 以太網接口芯片 438
12.6.2 程序設計 439
12.6.3 經驗總結 451
12.7 【實例92】單片機控制GPRS傳輸 451
12.7.1 典型器件介紹 452
12.7.2 硬件設計 452
12.7.3 程序設計 453
12.7.4 經驗總結 460
12.8 【實例93】單片機實現(xiàn)TCP/IP協(xié)議 460
12.8.1 TCP/IP原理 460
12.8.2 程序設計 462
12.8.3 經驗總結 479
第13章 典型器件及應用技術 480
13.1 【實例94】讀寫U盤 480
13.1.1 實例功能 480
13.1.2 典型器件介紹 480
13.1.3 硬件設計 481
13.1.4 程序設計 481
13.1.5 經驗總結 488
13.2 【實例95】非接觸IC卡讀寫 489
13.2.1 實例功能 489
13.2.2 典型器件介紹 489
13.2.3 硬件設計 489
13.2.4 程序設計 491
13.2.5 經驗總結 497
13.3 【實例96】SD卡讀寫 497
13.3.1 實例功能 497
13.3.2 典型器件介紹 497
13.3.3 硬件設計 498
13.3.4 程序設計 499
13.3.5 經驗總結 506
第14章 綜合應用實例 507
14.1 【實例97】智能手機充電器設計 507
14.1.1 智能手機電池充電器的結構組成 507
14.1.2 智能手機電池充電器的硬件電路設計 508
14.1.3 智能手機電池充電器的軟件設計 510
14.1.4 經驗總結 512
14.2 【實例98】單片機控制門禁系統(tǒng) 512
14.2.1 門禁系統(tǒng)的結構組成 512
14.2.2 門禁系統(tǒng)的硬件電路設計 513
14.2.3 門禁系統(tǒng)的軟件設計 517
14.2.4 經驗總結 522
14.3 【實例99】GPS接收設備的設計 522
14.3.1 定位系統(tǒng)的基礎知識 522
14.3.2 器件介紹 523
14.3.3 硬件電路圖 527
14.3.4 軟件程序設計 528
14.3.5 經驗總結 538
附錄1 8051的指令列表 539
附錄2 PS/2鍵盤鍵值和符號對照表 543