本書通過無驅動多位數(shù)碼器控制、無驅動8×8點陣控制、迷你時鐘、智能溫控系統(tǒng)、手勢遙控車、極光、12864液晶屏頻譜顯示這8個實踐操作項目詳細介紹了STC15系列單片機的I/O口、A/D轉換器、UART串行口、PWM、EEPROM等方面的應用。
本書配套資料包括所有實踐操作項目的完整C程序、原理圖以及部分章節(jié)的視頻教學資源,讀者可以免費索取。
本書面向具有一定單片機基礎的讀者或單片機應用系統(tǒng)DIY制作愛好者,也可用作高校實訓的參考資料。
第1章 認識增強型8051系列單片機……………………………………………… 1
1.1 STC15單片機指令系統(tǒng)……………………………………………………… 1
1.2 內置時鐘、復位電路、軟件復位……………………………………………… 3
1.3 可配置I/O …………………………………………………………………… 4
1.4 A/D轉換器…………………………………………………………………… 5
1.5 多組高速UART通信串口…………………………………………………… 5
1.6 多路CCP/PCA/PWM ……………………………………………………… 6
1.7 大容量片內數(shù)據(jù)存儲器(SRAM)…………………………………………… 6
1.8 豐富的中斷請求源…………………………………………………………… 6
1.9 EEPROM 功能……………………………………………………………… 7
1.10 STC15系列單片機學習思路……………………………………………… 7
第2章 C語言編程技巧……………………………………………………………… 9
2.1 語句短小不代表高效………………………………………………………… 10
2.1.1 i=i+1和i++ ………………………………………………………… 10
2.1.2 i++和++i…………………………………………………………… 11
2.2 指 針………………………………………………………………………… 18
2.2.1 指針與變量……………………………………………………………… 18
2.2.2 指針作用………………………………………………………………… 22
2.2.3 指針變量結構…………………………………………………………… 27
2.2.4 指針意義………………………………………………………………… 30
總 結……………………………………………………………………………… 32
第3章 單片機中斷系統(tǒng)…………………………………………………………… 33
3.1 概 念………………………………………………………………………… 33
3.1.1 中斷概念………………………………………………………………… 33
3.1.2 單片機系統(tǒng)的中斷概念………………………………………………… 35
3.2 8051單片機中斷相關寄存器……………………………………………… 35
3.2.1 中斷允許寄存器IE …………………………………………………… 35
3.2.2 中斷優(yōu)先級……………………………………………………………… 37
3.3 定時器中斷…………………………………………………………………… 40
3.3.1 定時器相關寄存器……………………………………………………… 40
3.3.2 定時器中斷模式與初始化……………………………………………… 43
3.4 外部中斷……………………………………………………………………… 48
3.4.1 外部中斷觸發(fā)方式……………………………………………………… 48
3.4.2 外部中斷與掃描式按鍵區(qū)別…………………………………………… 50
3.5 UART串口中斷…………………………………………………………… 55
3.5.1 串口波特率及初始化…………………………………………………… 55
3.5.2 串口收發(fā)示例程序……………………………………………………… 57
3.6 中斷過程中的數(shù)據(jù)存儲……………………………………………………… 60
第4章 無驅動多位數(shù)碼管控制…………………………………………………… 64
4.1 硬件制作……………………………………………………………………… 64
4.2 硬件原理……………………………………………………………………… 69
4.2.1 單片機I/O口的電氣特性…………………………………………… 69
4.2.2 傳統(tǒng)三極管驅動的數(shù)碼管顯示電路…………………………………… 69
4.2.3 無驅動點亮數(shù)碼管原理………………………………………………… 72
4.2.4 單片機I/O配置……………………………………………………… 72
4.3 程序詳解……………………………………………………………………… 73
4.3.1 一位數(shù)碼管的傳統(tǒng)控制與動態(tài)控制…………………………………… 73
4.3.2 4位數(shù)碼管顯示………………………………………………………… 76
4.3.3 完整顯示輸出程序(數(shù)碼管顯示部分)………………………………… 78
4.3.4 按鍵功能………………………………………………………………… 82
第5章 無驅動8×8點陣控制……………………………………………………… 84
5.1 硬件制作……………………………………………………………………… 84
5.2 硬件原理……………………………………………………………………… 88
5.2.1 單組8×8點陣工作原理……………………………………………… 88
5.2.2 傳統(tǒng)兩組8×8點陣控制方案………………………………………… 92
5.3 程序詳解……………………………………………………………………… 94
5.3.1 兩組8×8點陣全亮程序……………………………………………… 94
5.3.2 點陣編碼原理…………………………………………………………… 96
5.3.3 數(shù)據(jù)處理與顯示緩存………………………………………………… 100
5.3.4 完整功能程序………………………………………………………… 100
第6章 迷你時鐘…………………………………………………………………… 104
6.1 硬件制作…………………………………………………………………… 104
6.2 硬件原理…………………………………………………………………… 109
6.2.1 LCD1602液晶原理…………………………………………………… 109
6.2.2 DS1302時鐘芯片……………………………………………………… 116
6.3 程序詳解…………………………………………………………………… 122
6.3.1 程序結構……………………………………………………………… 122
6.3.2 顯示緩存數(shù)組Play_buf功能………………………………………… 123
6.3.3 LCD1602顯示程序…………………………………………………… 124
6.3.4 按鍵程序……………………………………………………………… 124
6.3.5 定時器0中斷函數(shù)…………………………………………………… 125
6.3.6 鬧鐘部分……………………………………………………………… 127
第7章 智能溫控系統(tǒng)……………………………………………………………… 128
7.1 硬件制作…………………………………………………………………… 128
7.2 硬件原理…………………………………………………………………… 132
7.2.1 繼電器………………………………………………………………… 132
7.2.2 溫度傳感器DS18B20 ………………………………………………… 133
7.2.3 單片機EEPROM …………………………………………………… 137
7.3 程序詳解…………………………………………………………………… 142
7.3.1 溫度讀取……………………………………………………………… 142
7.3.2 溫度數(shù)據(jù)處理………………………………………………………… 143
7.3.3 按鍵功能……………………………………………………………… 144
7.3.4 數(shù)據(jù)處理……………………………………………………………… 144
7.3.5 顯示函數(shù)……………………………………………………………… 145
7.3.6 EEPROM 程序……………………………………………………… 145
7.3.7 制冷功率控制(繼電器控制)………………………………………… 147
第8章 手勢遙控車………………………………………………………………… 148
8.1 硬件制作…………………………………………………………………… 148
8.2 硬件原理…………………………………………………………………… 157
8.2.1 L239D電機驅動芯片………………………………………………… 157
8.2.2 ADXL345加速度模塊……………………………………………… 159
8.2.3 藍牙UART串口模塊………………………………………………… 161
8.2.4 鋰電池與降壓模塊…………………………………………………… 162
8.3 程序詳解…………………………………………………………………… 162
8.3.1 ADXL345模塊3軸數(shù)據(jù)讀取……………………………………… 162
8.3.2 3軸數(shù)據(jù)處理………………………………………………………… 163
8.3.3 串口初始化和串口發(fā)送程序………………………………………… 163
8.3.4 3軸數(shù)據(jù)分析………………………………………………………… 165
8.3.5 控制指令……………………………………………………………… 167
8.3.6 小車制動命令接收程序……………………………………………… 169
8.3.7 小車控制程序………………………………………………………… 169
第9章 極 光……………………………………………………………………… 171
9.1 硬件制作…………………………………………………………………… 171
9.1.1 元件材料……………………………………………………………… 171
9.1.2 原理圖及PCB ………………………………………………………… 172
9.2 硬件原理…………………………………………………………………… 176
9.2.1 燈珠控制電路原理…………………………………………………… 176
9.2.2 顏色變化原理(PWM 控制方案) …………………………………… 177
9.2.3 PWM 相關寄存器…………………………………………………… 177
9.2.4 PWM 初始化設置…………………………………………………… 181
9.3 程序詳解…………………………………………………………………… 181
9.3.1 燈珠控制程序………………………………………………………… 181
9.3.2 顏色變化方案………………………………………………………… 183
9.3.3 呼吸燈模式顯示原理………………………………………………… 186
9.3.4 波浪式動畫顯示原理………………………………………………… 188
9.3.5 模式切換……………………………………………………………… 190
第10章 12864液晶屏頻譜顯示………………………………………………… 192
10.1 硬件制作…………………………………………………………………… 192
10.2 硬件原理…………………………………………………………………… 196
10.2.1 A/D轉換器………………………………………………………… 196
10.2.2 與A/D轉換相關的寄存器………………………………………… 196
10.2.3 A/D轉換電路……………………………………………………… 199
10.2.4 A/D測試程序……………………………………………………… 199
10.2.5 12864液晶屏簡介…………………………………………………… 202
10.2.6 12864液晶屏時序及指令…………………………………………… 203
10.2.7 12864液晶屏顯示原理……………………………………………… 206
10.2.8 頻譜顯示原理………………………………………………………… 208
10.3 程序詳解…………………………………………………………………… 209
第11章 8×8×8光立方………………………………………………………… 211
11.1 硬件制作…………………………………………………………………… 211
11.2 硬件原理…………………………………………………………………… 220
11.2.1 光立方燈珠控制原理………………………………………………… 220
11.2.2 UART串口………………………………………………………… 223
11.3 程序詳解…………………………………………………………………… 226
11.3.1 內置動畫顯示模式…………………………………………………… 226
11.3.2 聯(lián)機顯示模式………………………………………………………… 230
11.3.3 模式切換……………………………………………………………… 232
11.4 光立方動畫設計…………………………………………………………… 233
參考文獻……………………………………………………………………………… 236