本書以STC 32位單片機產(chǎn)品系列中的STC32G12K128單片機為載體進行編寫,其是以抗干擾能力強、價格低、工作速度快、功耗低為目標的32位8051單片機,在相同的工作頻率下,其工作速度可達傳統(tǒng)8051單片機的70倍。 本書基于STC大學推廣計劃實驗箱(9.4)(主控單片機:STC32G12K128)介紹應用實例的開發(fā),采用基于寄存器應用編程與基于庫函數(shù)應用編程相結(jié)合、理論與實踐相結(jié)合、側(cè)重工程實踐的編寫思路,內(nèi)容主要包括微型計算機基礎、STC32G12K128單片機應用系統(tǒng)的開發(fā)工具、STC32G12K128單片機的內(nèi)核、定時/計數(shù)器、中斷系統(tǒng)、串行端口、A/D轉(zhuǎn)換模塊、比較器、人機對話端口的應用設計、STC32G-SOFT WARE-LIB函數(shù)庫、SPI端口及其應用、I2C總線端口及其應用、高級PWM定時器及其應用、RTC時鐘及其應用、DMA通道及其應用、CAN總線及其應用、LIN總線及其應用、USB模塊及其應用、32位乘除單元等。
丁向榮,男,廣東輕工職業(yè)技術學院教授,電子信息類專業(yè)教學骨干,長期從事單片機方面的教學實踐和教科研工作,具備豐富的相關經(jīng)驗,其對STC單片機的理解尤為深入,曾編寫并出版過多本相關教材,獲得市場廣泛認可。
目 錄
第1章 微型計算機基礎 1
1.1 數(shù)制與編碼 1
1.1.1 數(shù)制及其轉(zhuǎn)換方法 1
1.1.2 微型計算機中數(shù)的表示方法 3
1.1.3 微型計算機中常用編碼 5
1.2 微型計算機原理 6
1.2.1 微型計算機的基本組成 6
1.2.2 指令、程序與編程語言 7
1.2.3 微型計算機的工作過程 8
1.2.4 微型計算機的應用形態(tài) 9
1.3 STC 32位單片機 9
1.3.1 STC 32位單片機產(chǎn)品系列 10
1.3.2 STC 32位單片機的內(nèi)核 10
本章小結(jié) 10
思考與提高 11
第2章 STC32G12K128單片機應用系統(tǒng)的開發(fā)工具 12
2.1 Keil C251集成開發(fā)環(huán)境 12
2.2 STC32G12K128單片機硬件實驗平臺 20
2.2.1 STC大學推廣計劃實驗箱(9.4) 20
2.2.2 STC32G12K128單片機迷你核心學習板 28
2.3 在線編程與在線仿真 29
2.3.1 在線可編程(ISP)電路 29
2.3.2 應用程序的下載與運行 30
2.3.3 STC-ISP的其他功能 31
2.4 工程訓練 31
2.4.1 Keil C251集成開發(fā)環(huán)境的應用 31
2.4.2 STC32G12K128單片機的在線編程與在線調(diào)試 33
2.4.3 STC32G12K128單片機的不停電程序下載 34
2.4.4 STC32G12K128單片機SWD端口的在線仿真 36
本章小結(jié) 38
思考與提高 38
第3章 STC32G12K128單片機的內(nèi)核 40
3.1 資源配置與引腳 40
3.1.1 資源配置 40
3.1.2 工作特性 42
3.1.3 引腳與引腳功能 42
3.2 時鐘 48
3.2.1 時鐘框圖 48
3.2.2 系統(tǒng)時鐘的控制與管理 49
3.2.3 USB時鐘 52
3.2.4 高速外設時鐘 52
3.2.5 RTC時鐘源 52
3.3 復位 53
3.3.1 硬件復位 53
3.3.2 軟件復位 55
3.4 存儲系統(tǒng) 55
3.4.1 程序存儲器 57
3.4.2 數(shù)據(jù)存儲器 57
3.4.3 特殊功能寄存器 58
3.4.4 EEPROM 60
3.5 并行I/O端口 62
3.5.1 I/O端口的配置 64
3.5.2 并行I/O端口的結(jié)構 64
3.5.3 并行I/O端口的其他控制 66
3.5.4 并行I/O端口使用注意事項 66
3.6 電源管理 67
3.6.1 空閑(IDLE)模式 67
3.6.2 掉電模式 67
3.7 工程訓練 69
3.7.1 EEPROM的測試 69
3.7.2 LED數(shù)碼管驅(qū)動與顯示 72
本章小結(jié) 74
思考與提高 75
第4章 定時/計數(shù)器 77
4.1 定時/計數(shù)器T0、T1的控制 77
4.1.1 定時/計數(shù)器T0 78
4.1.2 定時/計數(shù)器T1 79
4.2 定時/計數(shù)器T0、T1的應用 81
4.2.1 T0、T1的定時應用 81
4.2.2 T0、T1的計數(shù)應用 83
4.2.3 T0、T1可編程時鐘的輸出 84
4.3 定時/計數(shù)器T2、T3、T4 85
4.3.1 定時/計數(shù)器T2 85
4.3.2 定時/計數(shù)器T3、T4 86
4.4 工程訓練 87
4.4.1 定時/計數(shù)器的定時應用 87
4.4.2 定時/計數(shù)器的計數(shù)應用 89
4.4.3 定時/計數(shù)器的綜合應用 91
4.4.4 可編程時鐘輸出 92
本章小結(jié) 94
思考與提高 94
第5章 中斷系統(tǒng) 97
5.1 中斷系統(tǒng)概述 97
5.1.1 中斷系統(tǒng)的幾個概念 97
5.1.2 中斷的技術優(yōu)勢 98
5.1.3 中斷系統(tǒng)需要解決的問題 98
5.2 STC32G12K128單片機的中斷系統(tǒng) 98
5.2.1 中斷請求 98
5.2.2 中斷響應 105
5.2.3 中斷服務與中斷返回 106
5.2.4 關于中斷號大于31在Keil C251中編譯出錯的處理 107
5.2.5 中斷應用舉例 108
5.3 外部中斷的擴展 109
5.4 工程訓練 110
5.4.1 中斷應用編程 110
5.4.2 外部中斷的應用編程 111
本章小結(jié) 113
思考與提高 114
第6章 串行端口 117
6.1 串行通信基礎 117
6.2 串行端口1 119
6.2.1 串行端口1的控制寄存器 120
6.2.2 串行端口1的工作方式與應用 122
6.2.3 STC-ISP波特率計算器 125
6.2.4 串行端口1的應用舉例 125
6.3 STC32G12K128單片機與PC的通信 132
6.3.1 串行通信的端口設計 132
6.3.2 串行通信的程序設計 134
6.4 串行端口2* 135
6.5 串行端口3、串行端口4* 138
6.5.1 串行端口3 138
6.5.2 串行端口4 139
6.6 工程訓練 140
6.6.1 STC32G12K128單片機間的雙機通信 140
6.6.2 STC32G12K128單片機與PC間的串行通信 143
本章小結(jié) 145
思考與提高 145
第7章 A/D轉(zhuǎn)換模塊 148
7.1 A/D轉(zhuǎn)換模塊的結(jié)構 148
7.2 A/D轉(zhuǎn)換模塊的控制 149
7.3 A/D轉(zhuǎn)換的應用 152
7.4 工程訓練 154
7.4.1 測量內(nèi)部1.19V基準電壓 154
7.4.2 構建ADC鍵盤 155
本章小結(jié) 159
思考與提高 159
第8章 比較器 161
8.1 比較器的內(nèi)部結(jié)構與控制 161
8.1.1 比較器的內(nèi)部結(jié)構 161
8.1.2 比較器的控制 161
8.2 比較器的應用 163
8.3 工程訓練:應用比較器和A/D轉(zhuǎn)換模塊測量內(nèi)部1.19V基準電壓 164
本章小結(jié) 167
思考與提高 167
第9章 人機對話端口的應用設計 169
9.1 單片機應用系統(tǒng)的開發(fā)流程 169
9.1.1 單片機應用系統(tǒng)的設計原則 169
9.1.2 單片機應用系統(tǒng)的開發(fā)流程 170
9.1.3 單片機應用系統(tǒng)工程報告的編制 172
9.2 鍵盤端口與應用編程 174
9.3 LCD模塊的顯示端口與應用編程 181
9.3.1 LCD模塊概述 181
9.3.2 點陣字符型液晶顯示模塊LCD1602 181
9.3.3 點陣圖形型液晶顯示模塊LCD12864 188
9.4 工程實踐 196
9.4.1 STC32G12K128單片機與矩陣鍵盤的端口與應用 196
9.4.2 STC32G12K128單片機與LCD12864(含中文字庫)的端口與應用 198
本章小結(jié) 203
思考與提高 204
第10章 STC32G-SOFTWARE-LIB函數(shù)庫 207
10.1 目錄結(jié)構 207
10.1.1 硬件驅(qū)動程序部分 207
10.1.2 應用程序部分 208
10.1.3 用戶程序及配置文件 208
10.2 硬件驅(qū)動 209
10.2.1 A/D轉(zhuǎn)換模塊 209
10.2.2 比較器模塊 210
10.2.3 EEPROM 211
10.2.4 外部中斷 212
10.2.5 GPIO 212
10.2.6 I2C總線 213
10.2.7 定時/計數(shù)器 214
10.2.8 串行端口 215
10.2.9 SPI總線 217
10.2.10 軟件模擬I2C總線 218
10.2.11 看門狗 219
10.2.12 16位高級PWM 220
10.2.13 DMA通道 222
10.2.14 LCM模塊 226
10.2.15 軟件延時 227
10.2.16 中斷服務函數(shù) 227
10.3 應用程序開發(fā) 242
10.3.1 系統(tǒng)流程 242
10.3.2 應用程序框架分析 242
10.3.3 應用程序的分析與編寫 251
10.3.4 開發(fā)步驟 256
10.4 工程訓練:通過A/D轉(zhuǎn)換模塊測量內(nèi)部1.19V基準電壓 256
思考與提高 257
第11章 SPI接口及其應用 258
11.1 SPI接口的功能特性 258
11.2 與SPI接口相關的特殊功能寄存器 261
11.3 SPI接口的應用舉例 261
11.4 工程訓練:雙機之間的串行數(shù)據(jù)通信 263
思考與提高 264
第12章 I2C總線及其應用 265
12.1 I2C總線概述 265
12.2 STC32G12K128單片機的I2C總線 268
12.3 I2C總線的應用 269
12.4 工程訓練:I2C總線的自發(fā)自收 270
思考與提高 271
第13章 高級PWM定時器及其應用 273
13.1 PWMA的功能特性 273
13.2 PWMA的應用 275
13.3 工程訓練:設計呼吸燈 277
思考與提高 278
第14章 RTC時鐘及其應用 279
14.1 RTC時鐘的功能特性 279
14.2 RTC時鐘的應用 280
14.3 工程訓練:設計24小時時鐘 284
思考與提高 285
第15章 DMA通道及其應用 286
15.1 DMA通道的功能特性 286
15.2 DMA通道的應用 295
15.3 工程訓練:TFT彩屏的驅(qū)動與顯示 303
思考與提高 304
第16章 CAN總線及其應用 305
16.1 CAN總線的功能特性 305
16.2 CAN總線的應用 305
16.3 工程訓練:CAN總線的自發(fā)自收 308
思考與提高 310
第17章 LIN總線及其應用 311
17.1 LIN總線的功能特性 311
17.2 LIN總線的應用 311
17.3 工程訓練:LIN總線主機模式、從機模式的測試 314
思考與提高 315
第18章 USB模塊及其應用 316
18.1 概述 316
18.2 USB庫函數(shù)(調(diào)試端口) 316
18.2.1 LED數(shù)碼管端口 316
18.2.2 LCD12864端口 317
18.2.3 OLED12864端口 319
18.2.4 在虛擬鍵盤上按鍵然后發(fā)送相應的鍵值到設備 321
18.2.5 控制DIP40的各個引腳連接的LED的狀態(tài) 322
18.3 工程訓練 322
18.3.1 測試HID調(diào)試端口(虛擬鍵盤、數(shù)碼管、LCD12864) 322
18.3.2 設計秒表(HID數(shù)碼管顯示) 326
思考與提高 328
第19章 32位硬件乘除單元 329
19.1 MDU32簡介 329
19.2 基于MDU32庫文件的應用編程 329
19.3 工程訓練—MDU32的應用 330
思考與提高 331
參考文獻 332