內容簡介
本書主要介紹了51單片機系統中常用模組的具體運用,這些模組包括:內部模組、常用算法和函式模組、擴展外圍模組、I/O引腳模組、用戶輸入通道模組、
LED顯示模組、液晶顯示模組、 語音和列印輸入模組、驅動和執行機構、A/D模組、D/A模組、時鐘感測器模組、溫度感測器模組、常用其他感測器模組、有線通信模組、
無線通信模組、小容量存儲模組,以及51單片機的大容量存儲模組。本書適合具有初步單片機基礎的單片機工程師
使用,也可供高等院校電子類專業的學生和單片機愛好者參考閱讀。
圖書目錄
第1章51單片機的內部模組 1
1.151單片機及其套用系統概述 1
1.1.151單片機套用系統的構成和設計流程 2
1.1.2“最小”51單片機套用系統 4
1.251單片機內部模組的基礎套用 5
1.2.1內部模組基礎 5
1.2.2並行I/O模組 6
1.2.3定時計數器模組 7
1.2.4中斷系統和外部中斷模組 13
1.2.5串列通信模組 18
1.351單片機內部模組的高級套用 24
1.3.1使用定時計數器擴展外部中斷 24
1.3.3串列通信模組的波特率自適應 29
1.3.4使用軟體擴展多級中斷套用 32
1.3.5定時計數器的可控PWM輸出 36
第2章51單片機的常用算法和函式模組 39
2.151單片機的庫函式基礎 39
2.1.1函式館和頭檔案分類 39
2.1.2自定義庫 40
2.1.3庫函式的使用 41
2.251單片機常用函式模組 41
2.2.1內部函式_crol_() 41
2.2.2內部函式_nop_() 42
2.2.3輸入/輸出函式putchar() 44
2.2.4輸入/輸出函式printf() 45
2.2.5隨機數
生成函式rand()和srand() 48
2.351單片機的常用算法模組 52
2.3.1統計位元組中1的個數 52
2.3.2軟體延時/定時 53
2.3.3排序算法 53
第3章擴展51單片機外圍模組的方法 55
3.1地址—數據匯流排擴展 55
3.2串列通信模組擴展 58
3.3I2C匯流排擴展 58
3.3.1I2C匯流排基礎 58
3.3.2I2C匯流排接口擴展的驅動庫函式 61
3.4SPI匯流排擴展 67
3.4.1SPI匯流排基礎 67
3.4.2SPI匯流排接口擴展的驅動庫函式 69
3.51-wire匯流排擴展 70
3.5.11-wire匯流排擴展原理 70
3.5.21-wire匯流排擴展的驅動庫函式 72
第4章51單片機的I/O引腳模組 75
4.1解碼器模組 75
4.1.1解碼器模組的套用場合 75
4.1.2解碼器模組的套用基礎 76
4.1.3解碼器模組的套用實例——簡易流水燈 78
4.2鎖存器模組 79
4.2.1鎖存器模組的套用場合 80
4.2.2鎖存器模組的套用基礎 80
4.2.3鎖存器模組的套用實例——秒表 82
4.3三態門模組 84
4.3.1三態門模組的套用場合 84
4.3.2三態門模組的套用基礎 84
4.3.3三態門模組的套用實例——地址輸入 86
4.4串列輸入並行輸出模組 88
4.4.1串列輸入並行輸出模組的套用場合 88
4.4.2串列輸入並行輸出模組的套用基礎 88
4.4.3串列輸入並行輸出模組的套用實例——秒計時 90
4.5並行輸入串列輸出模組 93
4.5.1並行輸入串列輸出模組的套用場合 93
4.5.2並行輸入串列輸出模組的套用基礎 93
4.5.3並行輸入串列輸出模組的套用實例——讀取撥碼開關狀態 95
4.6可程式I/O擴展晶片Intel8255 96
4.6.1可程式I/O擴展晶片Intel8255的套用場合 96
4.6.2可程式I/O擴展晶片Intel8255的套用基礎 97
4.6.3可程式I/O擴展晶片Intel8255的套用實例——擴展輸入/輸出 100
4.7I/O引腳模組的套用實例——電子抽獎系統 102
4.7.1電子抽獎系統的需求分析 103
4.7.2電子抽獎系統的電路設計 103
4.7.3電子抽獎系統的套用代碼 105
第5章51單片機的用戶輸入通道模組 111
5.1獨立按鍵 111
5.1.1獨立按鍵的套用場合 111
5.1.2獨立按鍵的套用基礎 112
5.1.3獨立按鍵的套用實例——加減計數 113
5.2撥碼開關 116
5.2.1撥碼開關的套用場合 116
5.2.2撥碼開關的套用基礎 117
5.2.3撥碼開關的套用實例——開關狀態顯示 118
5.3行列掃描鍵盤 120
5.3.1行列掃描鍵盤的套用場合 121
5.3.2行列掃描鍵盤的套用基礎 121
5.3.3行列掃描鍵盤的套用實例 123
5.4PS/2鍵盤 126
5.4.1PS/2鍵盤的套用場合 126
5.4.2PS/2鍵盤的套用基礎 126
5.4.3PS/2鍵盤的套用實例——掃描碼輸出 130
5.5用戶輸入模組的套用實例——帶計時功能的計算器 137
5.5.1計算器的需求分析 138
5.5.2計算器的電路設計 139
5.5.3計算器的套用代碼 140
第6章51單片機的LED顯示模組 151
6.1發光二極體 151
6.1.1發光二極體的套用場合 151
6.1.2發光二極體的套用基礎 152
6.1.3發光二極體的套用實例——流水燈 153
6.2單位數碼管 155
6.2.1單位數碼管的套用場合 155
6.2.2單位數碼管的套用基礎 155
6.2.3單位數碼管的套用實例——“流水數字”顯示 159
6.3多位數碼管 161
6.3.1多位數碼管的套用場合 161
6.3.2多位數碼管的套用基礎 161
6.3.3多位數碼管的套用實例——移動數字效果顯示 165
6.4數碼管驅動晶片MAX7219 167
6.4.1數碼管驅動晶片MAX7219的套用場合 167
6.4.2數碼管驅動晶片MAX7219的套用基礎 168
6.4.3數碼管驅動晶片MAX7219的套用實例——當前日期顯示 175
6.5數碼管和鍵盤驅動晶片CH452 176
6.5.1數碼管和鍵盤驅動晶片CH452的套用場合 176
6.5.2數碼管和鍵盤驅動晶片CH452的套用基礎 176
6.5.3數碼管和鍵盤驅動晶片CH452的套用實例——串口數據顯示和按鍵狀態返回 190
6.6LED顯示模組的套用實例——簡易頻率計 193
6.6.1簡易頻率計的需求分析 193
6.6.2簡易頻率計的電路設計 195
6.6.3簡易頻率計的套用代碼 196
第7章51單片機的液晶顯示模組 201
7.1數字字元液晶1602 201
7.1.1數字字元液晶1602的套用場合 201
7.1.2數字字元液晶1602的套用基礎 202
7.1.3數字字元液晶1602的套用實例——字元串顯示 208
7.2漢字圖形液晶12864 208
7.2.1漢字圖形液晶12864的套用場合 208
7.2.2漢字圖形液晶12864的套用基礎 209
7.2.3漢字圖形液晶12864的套用實例——混合顯示 215
7.3點陣顯示模組 221
7.3.1點陣顯示模組的套用場合 221
7.3.2點陣顯示模組的套用基礎 221
7.3.3點陣顯示模組的套用實例——“流水字元”顯示 224
7.4帶字型檔的漢字圖形液晶12864 227
7.4.1帶字型檔的漢字圖形液晶12864的套用場合 227
7.4.2帶字型檔的漢字圖形液晶12864的套用基礎 228
7.4.3帶字型檔的漢字圖形液晶12864的套用實例——顯示串口接收數據和圖形 238
7.5液晶顯示模組的套用實例——俄羅斯方塊 242
7.5.1俄羅斯方塊的需求分析 242
7.5.2俄羅斯方塊的電路設計 244
7.5.3俄羅斯方塊的套用代碼 245
第8章51單片機的語音和列印輸出模組 259
8.1蜂鳴器 259
8.1.1蜂鳴器的套用場合 259
8.1.2蜂鳴器的套用基礎 260
8.1.3蜂鳴器的套用實例——按鍵提示音 262
8.2錄放音晶片 264
8.2.1錄放音晶片的套用場合 264
8.2.2錄放音晶片的套用基礎 264
8.2.3錄放音晶片的套用實例——錄放操作 268
8.3文本語言晶片 271
8.3.1文本語音晶片的套用場合 271
8.3.2文本語音晶片的套用基礎 271
8.3.3文本語音晶片的套用實例——來電提示音 279
8.4印表機模組 281
8.4.1印表機模組的套用場合 281
8.4.2印表機模組的套用基礎 281
8.4.3印表機模組的套用實例——溫度列印輸出 285
8.5語音和列印輸出的套用實例——簡易電子琴 288
8.5.1簡易電子琴的需求分析 288
8.5.2簡易電子琴的電路設計 290
8.5.3簡易電子琴的套用代碼 291
第9章51單片機的驅動和執行機構 297
9.1三極體 297
9.1.1三極體的套用場合 297
9.1.2三極體的套用基礎 298
9.1.3三極體的套用實例——大功率燈泡閃爍 299
9.2達林頓管 300
9.2.1達林頓管的套用場合 300
9.2.2達林頓管的套用基礎 300
9.2.3達林頓管的套用實例——發光二極體流水點亮 302
9.3.1光電隔離器的套用場合 303
9.3.2光電隔離器的套用基礎 304
9.3.3光電隔離器的套用實例 306
9.4.1直流電動機的套用場合 306
9.4.2直流電動機的套用基礎 306
9.4.3直流電動機的套用實例——串口控制直流電動機轉動 309
9.5.1步進電動機的套用場合 312
9.5.2步進電動機的套用基礎 312
9.5.3步進電動機的套用實例——串口控制步進電動機轉動 317
9.6.1步進電動機驅動模組的套用場合 321
9.6.2步進電動機驅動模組的套用基礎 321
9.6.3步進電動機驅動模組的套用實例——按鍵控制步進電動機轉動 323
9.7繼電器 326
9.7.1繼電器的套用場合 327
9.7.2繼電器的套用基礎 327
9.7.3繼電器的套用實例——繼電器控制 329
9.8驅動和執行機構的套用實例——天車控制系統 332
9.8.1天車控制系統的需求分析 332
9.8.2天車控制系統的電路設計 333
9.8.3天車控制系統的套用代碼 335
第10章51單片機的A/D模組 339
10.1A/D模組基礎 339
10.1.1A/D變換的過程 340
10.1.2A/D變換的套用電路構成 342
10.1.3A/D變換的保持電路 343
10.1.4A/D晶片的分類 343
10.1.5A/D晶片的選擇 343
10.1.6A/D晶片對電源的需求 345
10.28位並行8通道A/D晶片 345
10.2.1ADC0809的套用基礎 345
10.2.2ADC0809的套用實例——串口輸出ADC0809多通道模擬信號採集 353
10.312位並行8通道A/D晶片 356
10.3.1MAX197的套用基礎 356
10.3.2MAX197的套用實例——串口輸出MAX197多通道模擬信號採集 360
10.412位串列多通道A/D晶片 363
10.4.1TLC2543的套用基礎 364
10.4.2TLC2543的套用實例——串口輸出TLC2543多通道模擬信號採集 369
10.5I2C接口高精度A/D晶片 371
10.5.1ADS1100的套用基礎 371
10.5.2ADS1100的套用實例 380
10.616位串列接口多通道A/D晶片 380
10.6.1AD977A的套用基礎 380
10.6.2AD977A的套用實例 388
10.7A/D模組的套用實例——太陽能電池監控模組 388
10.7.1太陽能電池監控模組的需求分析 388
10.7.2太陽能電池監控模組的電路設計 389
10.7.3太陽能電池監控模組的套用代碼 393
第11章51單片機的D/A模組 407
11.1D/A模組基礎 407
11.1.1D/A轉換的過程 407
11.1.2D/A晶片的分類 409
11.1.3D/A晶片的選擇 409
11.1.4D/A晶片對電源的需求 410
11.28位並行D/A晶片 411
11.2.1DAC0832的套用基礎 411
11.2.2DAC0832的套用實例——模擬波形輸出 416
11.38位串列D/A晶片 420
11.3.1MAX517的套用基礎 420
11.3.2MAX517的套用實例——輸出正弦波 422
11.410位串列D/A晶片 424
11.4.1TLC5615的套用基礎 424
11.4.2TLC5615的套用實例——輸出鋸齒波 427
11.512位並行D/A晶片 428
11.5.1MAX527的套用基礎 428
11.5.2MAX527的套用實例 433
11.616位串列D/A晶片 433
11.6.1MAX541的套用基礎 433
11.6.2MAX541的套用實例 436
11.7串列A/D和D/A晶片 436
11.7.1PCF8591的套用基礎 437
11.7.2PCF8591的套用實例——AD模擬量採集和DA模擬量輸出 440
11.8.1MAX038的套用基礎 441
11.8.2MAX038的套用實例 444
11.9D/A模組的套用實例——簡易波形發生器 444
11.9.1簡易波形發生器的需求分析 444
11.9.2簡易波形發生器的電路設計 445
11.9.3簡易波形發生器的套用代碼 446
第12章51單片機的時鐘感測器模組 451
12.151單片機套用系統中的時鐘信息獲取 451
12.2內部定時計數器 452
12.3.1DS12C887的套用基礎 453
12.3.2DS12C887的套用實例——路燈自動開關控制 461
12.4I2C匯流排接口時鐘模組 463
12.4.1PCF8563的套用基礎 464
12.4.2PCF8563的套用實例 472
12.5SPI匯流排接口時鐘模組 474
12.5.1DS1302的套用基礎 474
12.5.2DS1302的套用實例——時鐘信息讀取 479
12.6時鐘感測器模組的套用實例——簡單數字時鐘 481
12.6.1簡單數字時鐘的需求分析 481
12.6.2簡單數字時鐘的電路設計 482
12.6.3簡單數字時鐘的套用代碼 483
13.151單片機套用系統中的溫度信息獲取 485
13.21-wire匯流排接口溫度模組 486
13.2.1DS18B20的套用基礎 487
13.2.2DS18B20的套用實例——DS18B20溫度數據採集 492
13.3I2C匯流排接口溫度模組 494
13.3.1DS1621的套用基礎 494
13.3.2DS1621的套用實例——DS1621溫度數據採集 498
13.4SPI匯流排接口溫度模組 500
13.4.1TC77的套用基礎 500
13.4.2TC77的套用實例 504
13.5.1多點溫度採集系統的需求分析 505
13.5.2多點溫度採集系統的電路設計 506
第14章51單片機的常用其他感測器模組 515
14.1溫度感測器 515
14.1.1SHT75的套用基礎 515
14.1.2SHT75的套用實例——SHT75濕度和溫度數據採集 523
14.2.1MPX4115的套用基礎 525
14.2.2MPX4115的套用實例 527
14.3定位感測器 527
14.3.1數字羅盤基礎 527
14.3.3NMEA-1083規範 528
14.4數字羅盤感測器 532
14.4.1HMR3000的套用基礎 532
14.4.2HMR3000的套用實例——航向、俯仰、橫滾數據採集 535
14.5GPS感測器 537
14.5.1GARMIN25LP的套用基礎 537
14.5.2GARMIN25LP的套用實例——GPS地理信息採集 541
14.6.1TS1120的套用基礎 546
14.6.2TS1120的套用實例 548
14.7超聲距離感測器 548
14.7.1HC-SR04的套用基礎 549
14.7.2HC-SR04的套用實例——距離測量 551
14.8感測器模組的套用實例——手持傾角儀 554
14.8.1手持傾角儀的需求分析 554
14.8.2手持傾角儀的電路設計 554
14.8.3手持傾角儀的套用代碼 556
第15章51單片機的有線通信模組 567
15.151單片機的有線通信模組設計概述 567
15.2RS-232協定晶片 568
15.2.1MAX232的套用基礎 568
15.2.2MAX232的套用實例 571
15.3RS-485協定晶片 572
15.3.1MAX485的套用基礎 572
15.3.2MAX485的套用實例——51單片機和PC進行遠程數據交換 574
15.4RS-422協定晶片 576
15.4.1MAX491的套用基礎 576
15.4.2MAX491的套用實例 579
15.5高速光電隔離晶片 579
15.5.16N137的套用基礎 580
15.5.26N137的套用實例 582
15.6CAN匯流排晶片 583
15.6.1SJA1000的套用基礎 583
15.6.2SJA1000的套用實例——串口CAN匯流排橋 588
15.7電力線匯流排晶片 592
15.7.1SSCP300的套用基礎 593
15.7.2SSCP300的套用實例——SSCP300數據傳送和接收 597
15.8USB通信橋晶片 600
15.8.1CP2102的套用基礎 600
15.8.2CP2102的套用實例 605
15.951單片機套用系統的通信模型和通信協定設計 605
15.9.151單片機套用系統的通信模型 606
15.9.251單片機套用系統的通信協定設計 606
15.10有線通信模組的套用實例——遠程倉庫溫度監測系統 607
15.10.1遠程倉庫濕度監測系統的需求分析 607
15.10.2遠程倉庫濕度監測系統的電路設計 608
15.10.3遠程倉庫濕度監測系統的套用代碼 609
16.151單片機的無線通信模組設計概述 613
16.2紅外晶片 613
16.2.1紅外晶片的套用基礎 614
16.2.2紅外晶片的套用實例——紅外按鍵信息解析 621
16.3433MHz無線通信模組 623
16.3.1無線通信模組的套用基礎 623
16.3.2無線通信模組的套用實例——PTR8000串口通信橋 633
第17章51單片機的小容量存儲模組 637
17.1外部單口RAM晶片 637
17.1.16264的套用基礎 638
17.1.26264的套用實例——外部大容量RAM的使用 641
17.2.1IDT7132的套用基礎 643
17.2.2IDT7132的套用實例——使用雙口RAM進行雙機通信 647
17.3外部ROM晶片 649
17.3.12716的套用基礎 649
17.3.22716的套用實例 651
17.4FIFO晶片 651
17.4.1CY7C419的套用基礎 651
17.4.2CY7C419的套用實例——使用FIFO存放臨時數據 654
17.5I2C匯流排接口的E2PROM晶片 657
17.5.1AT24系列晶片的套用基礎 658
17.5.2AT24系列晶片的套用實例——使用AT24C04存放用戶數據 665
17.6SPI匯流排接口的E2PROM晶片 668
17.6.193系列晶片的套用基礎 668
17.6.293系列晶片的套用實例——使用93C46存放用戶數據 674
17.7接觸式加密智慧卡 677
17.7.1接觸式智慧卡基礎 677
17.7.2SLE4442接觸式加密卡的套用基礎 679
17.7.3SLE4442的套用實例——SLE4442卡的讀寫 690
17.8.1非接觸式智慧卡基礎 693
17.8.2非接觸式智慧卡讀寫模組的套用基礎 697
17.8.3非接觸式智慧卡讀寫模組的套用實例 709
第18章51單片機的大容量存儲模組 711
18.1.1Flash晶片的套用基礎 711
18.1.2Flash的套用實例——K9F5608晶片的套用 717
18.2.1CH376的套用基礎 717
18.2.2CH376的套用實例——隨身碟讀寫 741
18.3SD卡 745
18.3.1SD卡的套用基礎 745
18.3.2SD卡的套用實例 756