內容簡介
本書基於Keil μVision5開發平台和PROTEUS硬體仿真平台,精心編寫了80項STC8051(STC15)C語言程式設計案例,同時提供20項硬體實物實戰案例,並分別在各案例中提出了難易適中的實訓要求。全書基礎設計類案例涵蓋STC8051基本I/O、中斷、定時/計數、A/D轉換、PCA、串口通信等程式設計;硬體套用類案例涵蓋編/解碼器、串/並轉換晶片、LED顯示及驅動晶片、字元/圖形液晶屏(包括1602、OLED、TFT彩屏)、實時日曆時鐘、I2C/SPI/1-Wire匯流排器件、電機、溫濕度感測器、雷達測距感測器、GPS、GSM、SD卡等器件(或模組);綜合設計類案例包括多個實用型項目設計,如多功能電子日曆牌、計算器、電子密碼鎖、電子秤、紅外遙控、大幅面LED點陣屏、交流電壓檢測、鉑電阻溫度計、射擊遊戲、溫室監控、小型氣象站、MODBUS及uIP套用等。為讓讀者在仿真設計基礎上進一步積累實物設計經驗,同時提供的選用硬體實物模板(10套20個案例)除覆蓋前述多項仿真案例內容之外,還增加了3色LED、5向微動開關、搖桿電位器、觸摸面板、COG、RFID模組、指紋模組、紅外測溫及北斗BDS模組等。
圖書目錄
目 錄
第1章 8051單片機C語言程式設計概述 1
1.1 傳統型8051單片機簡介 1
1.2 STC8051單片機簡介 4
1.3 數據與程式記憶體 9
1.4 特殊功能暫存器 11
1.5 外部中斷、定時/計數器及串口套用 19
1.6 有符號與無符號數套用、數位分解、位操作 24
1.7 變數、存儲類型與存儲模式 26
1.8 關於C語言運算符的優先權 28
1.9 字元編碼 30
1.10 數組、字元串與指針 31
1.11 流程控制 33
1.12 可重入函式和中斷函式 34
1.13 C語言在單片機系統開發中的優勢 35
第2章 PROTEUS操作基礎 36
2.1 PROTEUS操作界面簡介 36
2.2 仿真電路原理圖設計 38
2.3 元器件選擇 40
2.4 調試仿真 44
2.5 PROTEUS在8051單片機套用系統開發中的優勢 44
第3章 基礎程式設計 46
3.1 閃爍的LED 46
3.2 雙向來回的流水燈 49
3.3 花樣流水燈 50
3.4 LED模擬交通燈 52
3.5 分立式數碼管循環顯示0~9 54
3.6 集成式數碼管動態掃描顯示 56
3.7 按鍵調節數碼管閃爍增減顯示 59
3.8 數碼管顯示4×4鍵盤矩陣按鍵 62
3.9 普通開關與撥碼開關套用 64
3.10 繼電器及雙向晶閘管控制照明設備 67
3.11 INT0中斷計數 69
3.12 INT0~INT3中斷計數 72
3.13 TIMER0控制單只LED閃爍 75
3.14 TIMER1控制數碼管動態顯示 80
3.15 TIMER0、TIMER1及INT0控制音階及多段音樂輸出 84
3.16 TIMER0、TIMER1及INT0控制報警器與旋轉燈 89
3.17 TIMER2控制8×8 LED點陣屏顯示數字 92
3.18 TIMER3控制門鈴聲音輸出 95
3.19 TIMER4定時器控制交通指示燈 97
3.20 兩路A/D轉換與數碼管顯示 100
3.21 用PCA/CCP捕獲模式實現頻率檢測 104
3.22 PCA模組軟體定時、高速脈衝、PWM輸出測試 109
3.23 雙機串口雙向通信 115
3.24 PC與單片機雙向通信 122
3.25 單片機內置EEPROM讀寫測試 126
第4章 硬體套用 133
4.1 74HC138解碼器與反相緩衝器控制數碼管顯示 133
4.2 串入並出晶片74HC595控制數碼管顯示4位數字 136
4.3 串入並出晶片74HC595控制14段與16段數碼管演示 139
4.4 數碼管BCD碼-7段碼解碼/驅動器CD4511與DM7447套用 143
4.5 串列共陰顯示驅動器MAX7219控制4+2+2集成式數碼管顯示 146
4.6 16鍵編碼器MM74C922及觸控晶片TTP224套用 150
4.7 62256擴展32KB外部SRAM套用 153
4.8 1602字元液晶屏(HD44780)工作於8位模式切換顯示 156
4.9 1602字元液晶屏(HD44780)工作於4位模式顯示DS1302時鐘 165
4.10 1604字元液晶屏(HD44780)顯示I2C接口PCF8583日曆時鐘 172
4.11 ERM19264(KS0108)液晶屏套用測試 181
4.12 PG160128A(T6963C)液晶屏圖文演示 188
4.13 Nokia5110(PCD8544)液晶屏演示 202
4.14 UG-2864(SSD1306)I2C-OLED顯示測試 210
4.15 EADOGS102(UC1701)SPI接口液晶屏顯示測試 218
4.16 TFT彩屏ILI9341顯示測試 230
4.17 I2C接口存儲器AT24C04讀寫與顯示(4片) 246
4.18 I2C存儲器設計的中文硬體字型檔套用 254
4.19 I2C接口4通道A/D與單通道D/A轉換器PCF8591套用 259
4.20 兼容I2C接口的MAX6953驅動4片5×7點陣顯示器 263
4.21 兼容I2C接口的MAX6955驅動16段數碼管顯示 267
4.22 SPI接口數字電位器MCP41010套用 272
4.23 SPI接口存儲器AT25F1024讀寫與顯示 276
4.24 SPI接口溫度感測器TC72套用 283
4.25 16位A/D轉換晶片LTC1864套用 289
4.26 NTC熱敏電阻套用測試 291
4.27 溫濕度感測器SHT75套用 295
4.28 溫濕度感測器DHT22套用 301
4.29 數字氣壓感測器BMP180套用 308
4.30 直流電機正反轉及增強型PWM調速控制 317
4.31 硬體PWM控制多路伺服電機運行 321
4.32 ULN2803驅動單極步進電機正反轉 326
4.33 L298N驅動雙極步進電機運行 330
4.34 1-Wire匯流排溫度感測器DS18B20套用測試 335
4.35 1-Wire匯流排可定址開關DS2405套用測試 342
4.36 GP2D12紅外測距感測器套用 347
4.37 SRF04雷達測距感測器套用 353
4.38 GPS導航系統仿真 356
4.39 GSM模組套用測試 360
4.40 SD卡FAT32檔案系統讀寫測試 368
第5章 綜合設計 378
5.1 帶日曆時鐘及溫度顯示的電子萬年曆 378
5.2 用STC15+1601LCD設計的整型計算器 383
5.3 用AT24C04與1602LCD設計的簡易加密電子密碼鎖 389
5.4 基於HX711稱重感測器的電子秤 394
5.5 NEC紅外遙控收發仿真 401
5.6 ULN2003與74HC595控制樓層點陣屏滾動顯示與繼電器開關 410
5.7 用MCP3421與PT100設計的鉑電阻溫度計 413
5.8 交流電壓檢測與數字顯示仿真 421
5.9 T6963C液晶屏模擬射擊訓練遊戲 425
5.10 可接收串口信息的帶中英文硬字型檔的80×16 LED點陣屏 430
5.11 1-Wire匯流排器件ROM搜尋與多點溫度監測 437
5.12 溫室監控系統仿真 452
5.13 基於STC15的小型氣象站系統 458
5.14 基於STC15的MODBUS匯流排數據採集與開關控制 461
5.15 基於STC15+ENC28J60+uIP1.0的乙太網仿真套用 478
第6章 板上實踐(選學) 488
6.1 獨立按鍵控制8位LED與3色LED顯示 497
6.2 按鍵控制單只與集成式數碼管顯示 498
6.3 32×16點陣屏滾動顯示中英文 498
6.4 上位機串口傳送信息刷新點陣屏顯示 499
6.5 1602液晶屏和鍵盤矩陣模擬計算器 499
6.6 1602LCD +繼電器+蜂鳴器+鍵盤設計電子密碼鎖 500
6.7 觸摸面板控制I2C/SPI接口存儲器讀寫顯示 500
6.8 OLED顯示DS18B20/DHT22感測器數據 501
6.9 OLED顯示DS1302日期時間 501
6.10 OLED顯示可變電位器及光敏/熱敏元件A/D轉換值 502
6.11 COG顯示BMP180氣壓及MLX90614紅外測溫值 502
6.12 COG顯示GPS與北斗BDS導航信息 503
6.13 COG顯示SD卡檔案讀寫信息 504
6.14 TFT彩屏與HX711設計電子秤 504
6.15 TFT彩屏顯示HC-SR04雷達測距值 505
6.16 搖桿電位器控制SG90舵機擺動及OLED顯示 505
6.17 紅外遙控控制直流電機運轉 506
6.18 4相5線及2相4線步進電機運轉控制 506
6.19 RFID識別與指紋識別控制繼電器開關 507
6.20 基於STC15+W5500的乙太網遠程控制 507