單片機應用技術項目教程(微課版)
郭志勇
相關主題
商品描述
本書基於應用最廣泛、高速、低功耗、超強抗乾擾的新一代8051單片機——STC系列單片機展開介紹,共設置有11個項目30個任務以及2個課程設計範例。採用“項目引導、任務驅動”的模式,突出“做中學”的基本理念。前7個項目註重職業崗位的基本技能訓練,主要介紹單片機硬件系統、單片機開發系統、單片機並行埠應用、定時與中斷系統、顯示與鍵盤接口技術、A/D與D/A轉換接口、串行接口通信技術以及單片機應用系統設計方法等內容。後4個項目和2個課程設計範例註重職業崗位的開發技能訓練,主要介紹鍵盤控制電機方向和轉速、多路溫度採集監控系統、按鍵設置液晶電子鐘、16?32 LED點陣顯示、雙向四車道交通燈和溫濕度監控系統等單片機產品的開發方法、關鍵知識以及設計與實現。
本書依據“任務驅動、做中學”的編寫思路,每個任務均將相關知識和職業崗位基本技能結合在一起,把知識、技能的學習融入任務完成過程中。
本書提供微課教學資源、單片機開發套件以及單片機典型應用項目,既可作為高職高專院校嵌入式技術與應用、物聯網應用技術、智能控制技術、電腦應用技術、電子信息等相關專業單片機應用技術課程的教材,也可作為廣大電子產品製作愛好者的自學用書。
作者簡介
郭志勇,副教授,专业带头人、骨干教师、省级教学名师,任职于安徽电子信息职业技术学院,主要讲授单片机应用技术、电子技术等课程,出版专业教材多本。
目錄大綱
項目一 發光二極管LED控制 1
1.1 任務1 點亮一個LED 2
1.1.1 用Proteus設計第 一個LED控制電路 2
1.1.2 用Keil C51設計第 一個C語言LED控製程序 6
1.1.3 用Proteus模擬運行調試 10
1.2 認識單片機 12
1.2.1 單片機概述 12
1.2.2 STC89C52系列單片機的基本結構 16
1.2.3 STC89C52單片機引腳功能 16
1.2.4 單片機最小系統 19
【技能訓練1-1】單片機控制LED閃爍 21
1.3 任務2 LED控制電路焊接製作與調試 23
1.3.1 LED控制電路設計 23
1.3.2 LED控制電路焊接 23
1.3.3 LED控製程序下載與調試 24
1.4 任務3 聲光報警器 27
1.4.1 聲光報警器電路設計 27
1.4.2 聲光報警器程序設計 28
【技能訓練1-2】開關控制聲光報警器 29
1.4.3 C語言程序的基本構成 31
1.4.4 C語言基本語句 32
關鍵知識點小結 33
問題與討論 34
項目二 LED循環點亮控制 36
2.1 任務4 LED循環點亮控制 37
2.1.1 LED循環點亮電路設計 37
2.1.2 LED循環點亮程序設計 38
2.1.3 LED循環點亮控制電路焊接製作 39
2.1.4 並行I/O埠電路 40
【技能訓練2-1】P0口外接上拉電阻 43
2.2 MCS-51單片機內存空間 44
2.2.1 數據存儲器 45
2.2.2 特殊功能寄存器 46
2.2.3 “頭文件包含”處理 49
2.2.4 程序存儲器 51
2.3 任務5 開關控制LED循環點亮 52
2.3.1 開關控制LED循環點亮電路設計 52
2.3.2 開關控制LED循環點亮程序設計 52
2.3.3 C51數據類型 54
2.3.4 C語言常量與變量 57
【技能訓練2-2】汽車轉向燈控制設計 59
2.4 任務6 步進電機控制 61
2.4.1 認識步進電機 61
2.4.2 步進電機控制電路設計 62
2.4.3 步進電機控製程序設計 63
【技能訓練2-3】基於ULN2003A的繼電器驅動電路設計 64
關鍵知識點小結 66
問題與討論 67
項目三 數碼管顯示控制 69
3.1 任務7 數碼管循環顯示0~9 70
3.1.1 認識數碼管 70
3.1.2 數碼管循環顯示0~9電路設計 72
3.1.3 數碼管顯示程序設計 73
3.1.4 數碼管循環顯示0~9電路焊接製作 74
【技能訓練3-1】共陽極LED數碼管應用 75
3.2 C語言語句結構 76
3.2.1 關系運算符和關系表達式 76
3.2.2 邏輯運算符和邏輯表達式 77
3.2.3 if語句 78
3.2.4 switch語句 79
3.2.5 循環結構控制語句 80
3.2.6 break語句和continue語句 83
3.3 任務8 0~99計數器顯示(靜態顯示) 83
3.3.1 0~99計數顯示電路設計 83
3.3.2 0~99計數顯示程序設計 84
3.3.3 C語言函數 86
【技能訓練3-2】使用74LS47實現0~99計數顯示 88
3.4 任務9 數碼管動態掃描顯示 90
3.4.1 數碼管動態掃描顯示電路設計 90
3.4.2 數碼管動態顯示程序設計 91
3.4.3 C語言數組 92
3.4.4 C51中的位操作 95
關鍵知識點小結 97
問題與討論 98
項目四 鍵盤的設計與實現 100
4.1 任務10 獨立式鍵盤設計與實現 101
4.1.1 認識鍵盤 101
4.1.2 獨立式鍵盤電路設計 102
4.1.3 獨立式鍵盤程序設計 102
4.1.4 獨立式鍵盤電路焊接製作 104
4.1.5 鍵盤防抖動措施 104
【技能訓練4-1】一鍵多功能按鍵識別設計與實現 106
4.2 任務11 矩陣式鍵盤設計與實現 107
4.2.1 矩陣式鍵盤的結構與原理 107
4.2.2 矩陣式鍵盤電路設計 109
4.2.3 矩陣式鍵盤程序設計 110
4.3 任務12 中斷方式矩陣式鍵盤 112
4.3.1 中斷概念 112
4.3.2 中斷方式矩陣式鍵盤電路設計 113
4.3.3 中斷方式矩陣式鍵盤程序設計 114
4.4 MCS-51單片機中斷系統 115
4.4.1 單片機中斷源 115
4.4.2 中斷系統結構 115
4.4.3 與中斷有關的4個特殊功能寄存器 116
4.4.4 中斷處理過程 119
4.4.5 C51中斷服務函數 121
【技能訓練4-2】8路搶答器設計與實現 122
關鍵知識點小結 126
問題與討論 127
項目五 電子鐘設計與實現 129
5.1 任務13 生產線自動打包系統 130
5.1.1 認識定時器/計數器 130
5.1.2 生產線自動打包控制電路 132
5.1.3 生產線自動打包控製程序 133
5.2 任務14 霓虹燈控制系統 134
5.2.1 定時器/計數器工作方式 134
5.2.2 定時器/計數器相關寄存器 136
5.2.3 霓虹燈控制系統設計與實現 137
【技能訓練5-1】0~59秒數碼顯示(定時器) 139
5.3 任務15 基於LCD液晶顯示的電子鐘設計 141
5.3.1 認識LCD1602液晶顯示模塊 141
5.3.2 電子鐘電路設計 144
5.3.3 LCD1602指令操作 145
5.3.4 電子鐘程序設計 147
5.3.5 電子鐘電路焊接製作 150
5.4 intrins.h頭文件的應用 151
5.4.1 _crol_、_irol_和_lrol_函數 151
5.4.2 _cror_、_iror_和_lror_函數 152
5.4.3 _nop_函數 152
5.4.4 _testbit_函數 152
【技能訓練5-2】用_crol_函數實現LED循環點亮 153
關鍵知識點小結 153
問題與討論 154
項目六 模擬量輸入/輸出設計與實現 156
6.1 任務16 模數轉換LED顯示 157
6.1.1 模擬量輸入/輸出概述 157
6.1.2 模數轉換LED顯示電路 157
6.1.3 模數轉換LED顯示程序 158
6.1.4 模數轉換LED顯示電路焊接製作 159
6.2 ADC0809模數轉換器 160
6.2.1 認識ADC0809模數轉換器 160
6.2.2 ADC0809結構及引腳 161
6.2.3 ADC0809工作過程及編程方法 162
【技能訓練6-1】採用中斷方式完成模數轉換LED顯示 163
6.3 任務17 數字電壓表設計與實現 165
6.3.1 數字電壓表電路設計 165
6.3.2 數字電壓表程序設計 166
6.3.3 C語言結構體類型 168
6.3.4 結構體數組 169
【技能訓練6-2】基於ADC0809的直流電機轉速控制 170
6.4 任務18 信號發生器設計與實現 172
6.4.1 認識DAC0832數模轉換器 172
6.4.2 信號發生器電路設計 174
6.4.3 信號發生器程序設計 176
【技能訓練6-3】正弦波發生器設計 177
關鍵知識點小結 179
問題與討論 180
項目七 單片機串行通信設計與實現 181
7.1 任務19 單片機點對點數據傳輸 182
7.1.1 串行通信基本知識 182
7.1.2 單片機點對點數據傳輸電路設計 185
7.1.3 單片機點對點數據傳輸程序設計 186
7.1.4 RS-232C串行通信總線及其接口 187
【技能訓練7-1】全雙工RS-232連接電路設計與實現 189
7.2 任務20 水塔水位單片機遠程監控系統 189
7.2.1 單片機串行口結構 190
7.2.2 串行通信設置 192
7.2.3 水塔水位單片機遠程監控系統設計 194
7.2.4 水塔水位單片機遠程監控系統焊接製作 198
【技能訓練7-2】單片機串行口擴展I/O口 199
7.3 任務21 單片機一對多數據傳輸 201
7.3.1 MCS-51單片機多機通信 201
7.3.2 單片機一對多數據傳輸電路設計 202
7.3.3 單片機一對多數據傳輸程序設計 203
7.3.4 RS-485串行接口 206
【技能訓練7-3】全雙工RS-485連接電路設計與實現 207
關鍵知識點小結 208
問題與討論 209
項目八 LCD1602監控電機運行 210
8.1 單片機產品開發 211
8.1.1 單片機產品的結構 211
8.1.2 單片機產品開發流程 212
8.2 任務22 LCD1602監控步進電機運行設計與實現 214
8.2.1 步進電機控制技術 214
8.2.2 認識L298全橋驅動器 215
8.2.3 步進電機控制系統電路設計 216
8.2.4 LCD1602監控步進電機運行程序設計 217
8.3 任務23 LCD1602監控直流電機運行設計與實現 223
8.3.1 直流電機控制技術 223
8.3.2 LCD1602監控直流電機運行電路設計 225
8.3.3 LCD1602監控直流電機運行程序設計 225
【技能訓練】智能車基本控制設計 230
關鍵知識點小結 234
問題與討論 234
項目九 按鍵設置液晶顯示電子鐘 235
9.1 RT12864點陣型液晶顯示模塊 236
9.1.1 認識RT12864液晶顯示模塊 236
9.1.2 RT12864液晶顯示模塊內部結構 237
9.1.3 控制指令及相應代碼 239
9.2 任務24 液晶電子鐘電路設計 242
9.2.1 按鍵設置電路設計 242
9.2.2 液晶顯示控制電路設計 242
9.2.3 按鍵設置液晶電子鐘電路設計 243
9.3 任務25 液晶電子鐘程序設計 244
9.3.1 按鍵設置程序設計 244
9.3.2 時間程序設計 247
9.3.3 液晶顯示程序設計 249
【技能訓練】使用DS1302芯片實現液晶電子鐘電路設計 256
關鍵知識點小結 258
問題與討論 259
項目十 8路溫度採集監控系統 260
10.1 DS18B20溫度傳感器 261
10.1.1 認識DS18B20 261
10.1.2 DS18B20內部結構及功能 263
10.1.3 DS18B20通信協議 265
10.2 任務26 8路溫度採集監控電路設計 268
10.2.1 溫度採集電路設計 268
10.2.2 溫度監控電路設計 268
10.2.3 8路溫度採集監控電路設計 269
10.3 任務27 8路溫度採集監控程序設計 270
10.3.1 按鍵處理程序設計 270
10.3.2 8路溫度採集程序設計 272
10.3.3 8路溫度顯示程序設計 273
【技能訓練】基於LCD1602的8路溫度採集監控設計 275
關鍵知識點小結 278
問題與討論 279
項目十一 點陣顯示設計與實現 280
11.1 任務28 8×8 LED點陣顯示設計 281
11.1.1 認識LED點陣顯示屏 281
11.1.2 8×8 LED點陣顯示電路設計 283
11.1.3 8×8 LED點陣顯示程序設計 284
11.2 任務29 16×32 LED點陣顯示電路設計 286
11.2.1 構建16×32 LED點陣顯示模塊 286
11.2.2 16×32 LED點陣顯示的列驅動電路設計 287
11.2.3 16×32 LED點陣顯示的行驅動電路設計 288
11.3 任務30 16×32 LED點陣顯示程序設計 290
11.3.1 使用PCtoLCD2002獲取漢字字模 290
11.3.2 16×32 LED點陣漢字顯示程序設計 292
【技能訓練】採用逐行掃描方式,完成16×32 LED點陣漢字顯示設計 296
關鍵知識點小結 300
問題與討論 301
課程設計範例一 雙向四車道交通燈控制 302
課程設計範例二 溫濕度監控系統 315