本書為51單片機編程,內容包括51單片機學習環(huán)境搭建、單片機C語言編程、單片機硬件原理、單片機接口技術和應用實例等,既有電子愛好者關心的內容,也有工程設計應用方面的內容。本書內容講解和制作實例都以宏晶科技的STC8系統(tǒng)單片機為例,實例內容有難有易、涵蓋面廣。
本書可供電子愛好者、單片機初學者和電子技術相關專業(yè)學生閱讀,也可作為單片機研發(fā)工程師和嵌入式軟件工程師的參考書。
51單片機是對兼容英特爾8051指令系統(tǒng)的單片機的統(tǒng)稱,學習資源豐富,應用范圍廣泛,是單片機初學者的。51單片機使用的KeilC編程軟件有支持32位單片機的版本,學會51單片機后能比較輕松進階32位單片機的學習。
STC8系列單片機是宏晶科技設計的51系列單片機,不需要外部晶振和外部復位,具有寬電壓(1.9~5.5V)、抗干擾能力強、比傳統(tǒng)51單片機快約12倍等特點,擁有豐富的數(shù)字外設(串口、定時器、PWM以及I2C、SPI)接口和模擬外設(ADC、比較器)接口,有較大容量的RAM存儲器、Flash存儲器和EEPROM存儲器。
全書共分為9章,各章內容安排如下。
第1章為51單片機學習路線。講解了單片機基本工作原理和入門學習方法以及注意事項,說明如何搭建學習環(huán)境,如何安裝使用C語言編程軟件和程序下載軟件。
第2章為51單片機C語言編程。包括數(shù)的進制、數(shù)據(jù)基本類型、數(shù)據(jù)構造類型、運算符、選擇語句和循環(huán)語句等基礎知識。KeilC軟件應用重點講解程序的基本構成、常用的內部函數(shù)庫以及程序的調試方法。常用算法講解了通信數(shù)據(jù)校驗、頻譜分析FFT、自動控制PID。
第3章為STC8單片機硬件結構。包括時鐘、中斷、存儲器、I/O口、定時器/計數(shù)器、比較器、ADC模數(shù)轉換和PWM定時等功能,通過實例程序掌握如何通過特殊寄存器驅動單片機硬件,實現(xiàn)輸入檢測、輸出控制和通信等功能。
第4章為51單片機通信接口。講解了STC8系列單片機的串口、I2C和SPI通信接口工作原理和應用實例。
第5章為單片機硬件接口擴展和外部數(shù)據(jù)存儲擴展。硬件接口包括開關量輸入輸出和模擬量輸入輸出外部電路,單片機通過硬件接口擴展采集信息、控制外部設備工作。外部數(shù)據(jù)存儲擴展包括TF卡和U盤的數(shù)據(jù)讀寫操作。
第6章為單片機與功能模塊配合應用。單片機設計產(chǎn)品時可以直接選用現(xiàn)有功能模塊,能在很大程度上降低電路設計難度,提高產(chǎn)品設計效率。
第7章為以太網(wǎng)通信。講解了以太網(wǎng)控制器W5500和DM9000A的單片機控制方法,介紹了TCP/IP通信基本知識和TCP/IP簡易協(xié)議棧的實現(xiàn)方法。
第8章為無線通信。單片機通過串口連接各種無線模塊,實現(xiàn)藍牙、WiFi、GPRS、窄帶物聯(lián)網(wǎng)NB-IoT和長距離無線LoRa等無線通信。
第9章為電子愛好者工具DIY實例。包括可調直流穩(wěn)壓電源和白光烙鐵控制器以及USB接口虛擬萬用表,其中USB接口虛擬萬用表能測量交直流電壓和電流、電阻、電容及二極管壓降。
由于水平有限,書中不足之處在所難免,懇請廣大讀者批評指正。
編著者
第1章 51單片機學習路線 001
1.1 單片機學習環(huán)境搭建 001
1.1.1 編程軟件KeilC 001
1.1.2 程序下載軟件STC-ISP 003
1.1.3 STC8單片機學習板 006
1.1.4 第一個測試程序 006
1.2 單片機基本知識 014
1.2.1 C語言基本概念 014
1.2.2 單片機硬件基本原理 016
1.2.3 軟、硬件接口-特殊功能寄存器 019
1.3 單片機學習進階 022
1.3.1 單片機學習的幾個階段 022
1.3.2 單片機項目開發(fā)流程 023
第2章 51單片機C語言編程 024
2.1 編程基礎 024
2.1.1 數(shù)的進制 024
2.1.2 常量和變量 025
2.1.3 數(shù)據(jù)的基本類型 027
2.1.4 數(shù)據(jù)的構造類型 028
2.1.5 運算符 031
2.1.6 條件語句 034
2.1.7 開關語句 035
2.1.8 循環(huán)語句 035
2.1.9 注釋語句 037
2.2 KeilC軟件應用 037
2.2.1 基本C程序結構 037
2.2.2 復雜C程序結構 040
2.2.3 Keil C51常用函數(shù)庫 041
2.2.4 程序調試 045
2.3 常用算法 046
2.3.1 通信數(shù)據(jù)校驗 046
2.3.2 頻譜分析FFT 048
2.3.3 自動控制PID 050
第3章 STC8單片機硬件結構 052
3.1 時鐘 052
3.1.1 時鐘控制 052
3.1.2 系統(tǒng)復位 054
3.1.3 看門狗復位 054
3.1.4 省電模式 055
3.2 中斷 057
3.2.1 中斷基礎知識 057
3.2.2 STC8系列單片機中斷列表 058
3.2.3 中斷相關寄存器 059
3.3 存儲器 062
3.3.1 程序存儲器 062
3.3.2 數(shù)據(jù)存儲器 062
3.3.3 EEPROM 063
3.4 I/O口 065
3.4.1 I/O口結構 065
3.4.2 I/O口模式配置 067
3.4.3 流水燈控制實例 067
3.5 定時器/計數(shù)器 069
3.5.1 定時器/計數(shù)器工作模式 069
3.5.2 定時器相關寄存器配置 071
3.5.3 LED數(shù)碼管驅動示例 074
3.6 比較器 077
3.6.1 比較器功能說明 077
3.6.2 比較器相關寄存器配置 077
3.6.3 比較器中斷功能測試 078
3.7 ADC模數(shù)轉換 080
3.7.1 A/D轉換器 080
3.7.2 ADC相關寄存器配置 081
3.7.3 直流電壓測量示例 082
3.8 PWM定時器 084
3.8.1 PWM功能簡介 084
3.8.2 用PWM實現(xiàn)16位DAC(數(shù)模轉換) 084
第4章 51單片機通信接口 087
4.1 串口通信 087
4.1.1 串口通信基本原理 087
4.1.2 串口相關寄存器配置 088
4.1.3 串口通信示例 090
4.2 I2C通信 093
4.2.1 I2C通信基本原理 093
4.2.2 I2C總線相關寄存器配置 093
4.2.3 LM75A測溫實例 096
4.3 SPI通信 102
4.3.1 SPI通信基本原理 102
4.3.2 SPI相關寄存器配置 104
4.3.3 K型熱電偶測溫實例 104
第5章 單片機硬件接口擴展和外部存儲擴展 110
5.1 開關量輸入/輸出 110
5.1.1 開關量輸入 110
5.1.2 開關量輸出 114
5.1.3 開關量數(shù)量擴展 116
5.2 模擬量輸入/輸出 119
5.2.1 模擬量輸入轉換 119
5.2.2 外接AD轉換電路 122
5.2.3 外接DA轉換電路 124
5.2.4 電子秤電路應用實例 127
5.3 PWM功能應用 129
5.3.1 轉速測量 129
5.3.2 DC 4~20mA信號輸出調試工具 131
5.4 數(shù)據(jù)存儲 141
5.4.1 TF卡 141
5.4.2 U盤 149
第6章 單片機與功能模塊配合應用 154
6.1 串口接口模塊 154
6.1.1 NFC模塊PN532 154
6.1.2 GPS模塊ATGM336H 158
6.1.3 紅外體溫計模塊GY-614V 161
6.1.4 紅外點陣測溫MLX90640模塊 163
6.2 其他接口模塊 170
6.2.1 加速度傳感器MMA7361 170
6.2.2 鉑電阻測溫MAX31865 171
6.2.3 超聲波測距模塊JSN-SR04T 176
第7章 以太網(wǎng)通信 178
7.1 W5500網(wǎng)絡通信 178
7.1.1 W5500簡介 178
7.1.2 W5500驅動程序 180
7.1.3 TCP-Server通信測試 188
7.1.4 TCP-Client通信測試 191
7.1.5 UDP通信測試 192
7.2 DM9000A網(wǎng)絡通信 195
7.2.1 DM9000A簡介 195
7.2.2 DM9000A驅動程序 200
7.2.3 以太網(wǎng)幀格式 203
7.2.4 軟件TCP/IP協(xié)議棧 206
7.2.5 網(wǎng)絡通信編程 213
第8章 無線通信 218
8.1 藍牙遙控實例 218
8.1.1 電路設計 218
8.1.2 單片機編程 219
8.1.3 手機編程 221
8.2 WiFi遙控實例 229
8.2.1 電路設計 229
8.2.2 單片機編程 230
8.2.3 手機編程 231
8.3 GPRS遙控實例 234
8.3.1 電路設計 234
8.3.2 單片機編程 235
8.3.3 手機遙控 237
8.4 無線通信網(wǎng)絡簡介 238
8.4.1 無線通信網(wǎng)絡應用 238
8.4.2 長距離無線通信LoRa 238
8.4.3 窄帶物聯(lián)網(wǎng)NB-IoT 239
第9章 電子愛好者工具DIY實例 241
9.1 可調直流穩(wěn)壓電源和白光烙鐵控制器 241
9.1.1 電路設計 241
9.1.2 人機接口—串口觸摸屏 243
9.1.3 單片機編程 245
9.2 USB接口虛擬萬用表 250
9.2.1 電路設計 250
9.2.2 單片機C51編程 252
9.2.3 Android手機編程 260
參考文獻 268