第1篇 入門與提高
第1章 認識51係列單片機
( 教學視頻:11分鍾) 1
1.1 單片機的發展史 1
1.2 單片機的應用 1
1.3 51單片機的開發環境——Keil μVision 2
1.4 快速掌握單片機的開發要點 2
1.5 STC89C51RC/RD+係列單片機 3
1.5.1 STC89C51係列單片機選型 3
1.5.2 常見的封裝類型 4
1.6 STC89C51RC/RD+係列單片機的外部引腳 5
1.7 小結 6
1.8 習題 6
第2章 開發環境的搭建
( 教學視頻:43分鍾) 7
2.1 軟件開發環境 7
2.1.1 安裝Keil C μVision 3開發環境 7
2.1.2 增加對STC型號的支持 8
2.1.3 建立第一個工程 9
2.1.4 開發中經常用到的功能 13
2.2 必要的硬件環境 22
2.2.1 10元DIY單片機最小係統 22
2.2.2 動手製作一個編程器 24
2.3 STC燒錄工具 25
2.4 小結 26
2.5 習題 27
第2篇 51單片機C語言編程
第3章 單片機C語言的基本數據類
( 教學視頻:17分鍾) 28
3.1 常量與變量 28
3.2 基本數據類型 29
3.2.1 整型 29
3.2.2 長整型 30
3.2.3 字符型 30
3.2.4 位類型 30
3.2.5 浮點數 31
3.2.6 雙精度浮點數 32
3.3 小結 32
3.4 習題 32
第4章 運算符與錶達式
( 教學視頻:31分鍾) 33
4.1 算術運算符與錶達式 33
4.2 關係運算符與錶達式 34
4.3 邏輯運算符與錶達式 35
4.4 位運算符與錶達式 36
4.5 賦值運算符與錶達式 37
4.6 小結 38
4.7 習題 38
第5章 流程控製
( 教學視頻:61分鍾) 39
5.1 條件語句if 39
5.1.1 條件語句if的3種錶達方式 39
5.1.2 條件語句if嵌套 43
5.2 開關語句switch … case 45
5.2.1 開關語句的語法格式 45
5.2.2 開關語句的執行過程 45
5.2.3 注意事項 47
5.3 循環語句for 47
5.3.1 循環語句for的語法格式 48
5.3.2 循環語句for的執行過程 48
5.3.3 循環語句for嵌套 49
5.4 另一種循環語句while和do…while 51
5.4.1 循環語句while和do…while的語法格式 51
5.4.2 循環語句while和do…while的執行過程 51
5.5 無條件跳轉語句goto 53
5.6 中斷語句break/continue 55
5.6.1 中斷語句break 55
5.6.2 中斷語句continue 56
5.7 小結 58
5.8 習題 58
第6章 函數
( 教學視頻:57分鍾) 59
6.1 定義函數的一般形式 59
6.2 函數的參數和返迴值 60
6.2.1 函數的參數 60
6.2.2 函數的返迴值 61
6.3 函數的調用 62
6.3.1 被調函數的聲明 62
6.3.2 函數語句調用 63
6.3.3 函數錶達式調用 63
6.3.4 作為函數的參數調用 64
6.3.5 函數的嵌套調用 64
6.3.6 函數的遞歸調用 66
6.4 單片機的特殊函數——中斷函數 67
6.5 小結 68
6.6 習題 68
第7章 數組與指針
( 教學視頻:52分鍾) 69
7.1 數組 69
7.1.1 一維數組 69
7.1.2 二維數組與多維數組 71
7.2 指針 73
7.2.1 指針的概念 73
7.2.2 定義和引用指針變量 73
7.2.3 指針和數組 74
7.3 小結 76
7.4 習題 76
第8章 結構體與共用體
( 教學視頻:29分鍾) 77
8.1 結構體 77
8.1.1 什麼是結構體 77
8.1.2 定義結構體變量 77
8.1.3 結構體變量的初始化 79
8.1.4 使用結構體 80
8.1.5 指嚮結構體類型數據的指針 80
8.1.6 將結構指針變量作為函數的參數 81
8.2 共用體 82
8.2.1 什麼是共用體 82
8.2.2 定義共用體變量 83
8.2.3 使用共用體 84
8.3 小結 85
8.4 習題 85
第3篇 51單片機開發實戰
第9章 I/O端口編程
( 教學視頻:42分鍾) 86
9.1 STC89C51RC-RD+係列單片機的I/O端口 86
9.2 I/O端口的工作模式 87
9.2.1 準雙嚮口/弱上拉模式 87
9.2.2 輸入/高阻模式 87
9.2.3 輸齣/開漏模式 88
9.2.4 配置I/O的工作模式 88
9.3 I/O輸齣實驗 89
9.3.1 從點亮一個LED開始 89
9.3.2 閃動的LED 90
9.3.3 點亮更多的LED 91
9.3.4 點亮數碼管 94
9.3.5 動態點亮數碼管 96
9.3.6 控製3-8譯碼器 99
9.4 I/O輸入實驗 102
9.4.1 分離式按鍵 102
9.4.2 模擬實現計數器 104
9.4.3 矩陣鍵盤 107
9.5 小結 111
9.6 習題 111
第10章 中斷係統和外部中斷
( 教學視頻:55分鍾) 112
10.1 中斷的基本知識 112
10.1.1 什麼是中斷 112
10.1.2 使用中斷的好處 112
10.2 中斷源 112
10.3 中斷寄存器 113
10.3.1 中斷使能寄存器 113
10.3.2 中斷優先級寄存器 114
10.3.3 定時器控製寄存器、外部中斷標誌 116
10.3.4 串行口控製寄存器 117
10.4 中斷優先級 118
10.5 使用外部中斷檢測按鍵 118
10.5.1 低電平觸發方式 119
10.5.2 下降沿觸發方式 121
10.6 使用外部中斷設計運動限位裝置 122
10.6.1 硬件電路原理圖 122
10.6.2 代碼實現 123
10.7 小結 125
10.8 習題 125
第11章 定時器/計數器
( 教學視頻:65分鍾) 126
11.1 定時器/計數器介紹 126
11.2 與定時器/計數器的有關的寄存器 126
11.2.1 工作方式寄存器TMOD 126
11.2.2 控製寄存器TCON 127
11.2.3 初值寄存器THx、TLx 127
11.3 定時器的工作模式 128
11.3.1 模式0 128
11.3.2 模式1 128
11.3.3 模式2(8位自動重裝模式) 129
11.3.4 模式3 130
11.4 定時器中斷實驗 130
11.4.1 定時器秒錶實驗電路原理圖 130
11.4.2 秒錶實驗控製流程 131
11.4.3 代碼實現 133
11.5 簡易電子琴演奏實驗 135
11.5.1 電子琴實驗的電路原理圖 136
11.5.2 代碼實現 136
11.6 小結 139
11.7 習題 139
第12章 USART通用串行口通信
( 教學視頻:67分鍾) 140
12.1 通用串行口介紹 140
12.2 與通用串行口有關的寄存器 140
12.2.1 電源控製寄存器PCON 140
12.2.2 串行口控製寄存器SCON 141
12.2.3 數據緩存寄存器SBUF 141
12.2.4 中斷控製位ES 142
12.3 通用串行口的工作模式 142
12.3.1 模式0:同步移位寄存器模式 142
12.3.2 模式1:波特率可變的8位數據異步收發 142
12.3.3 模式2:波特率固定的9位數據異步收發 143
12.3.4 模式3:波特率可變的9位數據異步收發 143
12.4 計算波特率 143
12.5 通過串行口和PC通信 144
12.5.1 串行口通信規範 144
12.5.2 串行口實驗電路 145
12.5.3 實驗控製流程 145
12.5.4 通信協議 147
12.5.5 代碼實現 147
12.6 單片機串行口遠距離通信 151
12.6.1 RS-485簡介 151
12.6.2 485通信的實驗電路 152
12.6.3 代碼實現 153
12.7 小結 156
12.8 習題 156
第13章 訪問內部EEPROM
( 教學視頻:51分鍾) 157
13.1 EEPROM介紹 157
13.2 EEPROM的地址 157
13.3 與EEPROM有關的寄存器 158
13.4 EEPROM的常用操作 159
13.4.1 定義相關寄存器 159
13.4.2 讀操作 159
13.4.3 扇區擦除操作 159
13.4.4 寫操作 160
13.5 EEPROM應用實例 160
13.6 掉電時保存數據到EEPROM 162
13.6.1 實驗電路圖 162
13.6.2 代碼實現 164
13.7 小結 167
13.8 習題 167
第14章 看門狗WDT
( 教學視頻:14分鍾) 168
14.1 看門狗WDT介紹 168
14.2 看門狗控製寄存器WDT_CONTR 168
14.3 看門狗溢齣時間 169
14.4 測試看門狗 169
14.5 小結 171
14.6 習題 171
第4篇 更多功能的單片機
第15章 STC12C5A60S2係列單片機
( 教學視頻:11分鍾) 172
15.1 STC12C5A60S2係列單片機介紹 172
15.2 STC12C5A60S2係列單片機外部引腳 172
15.3 過渡到STC12C5A60S2係列的要點 175
15.4 小結 176
15.5 習題 176
第16章 通用串行接口 USART2
( 教學視頻:35分鍾) 177
16.1 與通用串行口2有關的寄存器 177
16.1.1 控製寄存器S2CON 177
16.1.2 數據緩衝寄存器S2BUF 178
16.1.3 獨立波特率發生寄存器BRT 178
16.1.4 輔助寄存器AUXR 178
16.1.5 與串行口2中斷有關的寄存器 178
16.1.6 輔助寄存器1,AUXR1 179
16.2 使用串行口2與PC通信 179
16.2.1 串行口2實驗電路 179
16.2.2 使用串行口2的步驟 180
16.2.3 代碼實現 180
16.3 使用雙串行口設計RS-485雙嚮中繼器 184
16.3.1 RS-485雙嚮中繼器的實驗電路 184
16.3.2 代碼實現 185
16.4 小結 188
16.5 習題 189
第17章 同步外圍串行接口SPI
( 教學視頻:35分鍾) 190
17.1 SPI簡介 190
17.2 與SPI有關的寄存器 190
17.2.1 SPI控製寄存器SPCTL 190
17.2.2 SPI狀態寄存器SPSTAT 191
17.2.3 SPI數據寄存器SPDAT 191
17.2.4 輔助寄存器1,AUXR1 191
17.3 SPI接口的通信方式 192
17.3.1 單主—單從方式 192
17.3.2 雙器件互為主從方式 192
17.3.3 單主—多從方式 193
17.4 注意事項 194
17.4.1 作為主機的注意事項 194
17.4.2 作為從機的注意事項 194
17.4.3 總綫爭奪 194
17.4.4 寫衝突 194
17.5 雙CPU單主、單從通信實驗 195
17.6 小結 198
17.7 習題 199
第18章 PWM脈寬調製
( 教學視頻:45分鍾) 200
18.1 PWM簡介 200
18.2 與PWM有關的寄存器 200
18.2.1 PCA工作模式寄存器CMOD 201
18.2.2 PCA控製寄存器CCON 201
18.2.3 PCA捕獲/比較寄存器CAPM0和CCAPM1 202
18.2.4 PCA的16位計數寄存器CL、CH 202
18.2.5 PCA捕捉/比較寄存器CCAPnL、CCAPnH 202
18.2.6 PWM寄存器PCA_PWM0、PCA_PWM1 202
18.2.7 輔助寄存器AUX1 203
18.3 PWM的設置 203
18.4 輸齣PWM的測試程序 204
18.4.1 實驗電路 204
18.4.2 控製思想 205
18.4.3 代碼實現 205
18.5 使用PWM方式控製步進電機 208
18.5.1 步進電機的工作原理 208
18.5.2 實驗電路 209
18.5.3 代碼實現 209
18.6 小結 215
18.7 習題 215
第19章 A/D轉換
( 教學視頻:39分鍾) 216
19.1 A/D轉換簡介 216
19.2 與A/D轉換相關的寄存器 216
19.2.1 P1口模擬功能控製寄存器P1ASF 216
19.2.2 ADC控製寄存
ADC_CONTR 216
19.2.3 A/D轉換結果寄存器
ADC_RES/ADC_RESL 217
19.2.4 與A/D中斷有關的
寄存器 218
19.3 用A/D轉換器檢測電壓實驗 218
19.3.1 實驗電路 218
19.3.2 代碼實現 219
19.4 使用A/D轉換檢測擋位開關 222
19.4.1 檢測原理與實驗電路 222
19.4.2 代碼實現 223
19.5 A/D轉換誤差問題 226
19.6 小結 227
19.7 習題 228
第5篇 51單片機統閤應用實例
第20章 綜閤應用實例 229
20.1 需求分析 229
20.1.1 係統結構 229
20.1.2 技術要求 230
20.2 係統設計 230
20.2.1 硬件電路設計 230
20.2.2 需要用到的單片機資源 232
20.2.3 軟件設計思路 232
20.3 各子係統的工作流程 234
20.3.1 數據接收子係統、協議管理子係統 234
20.3.2 終端地址的使用與維護 236
20.3.3 集體上傳控製 237
20.3.4 I/O處理子係統和工廠模式 238
20.3.5 電源管理子係統 240
20.4 軟件編程、係統實現 241
20.4.1 完整的源代碼 241
20.4.2 初始化部分代碼 259
20.4.3 按鍵檢測部分代碼 261
20.4.4 地址管理部分代碼 262
20.4.5 電壓檢測部分代碼 264
20.4.6 串行口接收數據、處理協議的部分代碼 265
20.4.7 休眠和喚醒的部分代碼 267
20.5 小結 268
20.6 習題 268
· · · · · · (
收起)