單片機C語言程序設計實訓100例——基於STC8051+Proteus模擬與實戰
內容描述
本書基於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 閃爍的LED46
3.2 雙向來回的流水燈49
3.3 花樣流水燈50
3.4 LED模擬交通燈52
3.5 分立式數碼管循環顯示0~954
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