單片機應用技術項目教程(C語言版)(第三版)

-
【作 者】主編 郭志勇
【I S B N 】978-7-5170-9285-8
【責任編輯】石永峰
【適用讀者群】本專通用
【出版時間】2021-01-01
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】352
【千字數】556
【印 張】22
【定 價】¥59
【叢 書】高等職業教育電子信息課程群系列教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書采用“項目導入、任務驅動、做中學”的編寫思路,將相關知識和職業崗位基本技能融合在一起,通過任務實施來完成知識和技能學習。本書采用Proteus仿真軟件,從職業崗位技能出發,分為技能基礎篇和技能提高篇,共有11個項目、28個任務、32個技能訓練以及2個課程設計范例。
本書注重職業崗位的基本技能訓練和開發技能訓練,適合作為應用電子技術、機電一體化技術、電氣自動化技術、電子信息工程技術、通信技術、移動通信技術、汽車電子技術、計算機控制技術(智能控制技術)、計算機應用技術、物聯網應用技術、嵌入式應用技術等相關專業單片機應用技術課程的教材,也可作為廣大電子產品制作愛好者的自學用書。
突出技能訓練,符合1+X 精神
采用“項目導入、任務驅動、做中學”的編寫思路
分為技能基礎篇和技能提高篇,結構清晰合理,實用性強
與時俱進,采用全新的仿真教學模式,案例豐富,突出實踐
提供豐富的微課視頻和教學資源,掃描書中二維碼可直接觀看重點內容
本書在《單片機應用技術項目教程(C語言版)》(第二版)的基礎上,對原有內容進行了部分補充、整合和修改,突出技能訓練。
《單片機應用技術項目教程(C語言版)》(第三版)順應1+X精神,突出技能培養在課程中的主體地位,用任務引領理論,使理論從屬于技能實踐。本書主要特色如下:
(1)采用“項目導入、任務驅動、做中學”的編寫思路。以解決實際項目的思路和操作為編寫主線,下一個項目均以上一個項目的知識點為支撐,連貫多個知識點。每個項目均由若干個具體的典型任務組成,每個任務均將相關知識和職業崗位基本技能融合在一起,使知識與技能的學習在任務完成過程中
實現。
(2)全新的仿真教學模式,采用C語言編程。引入Proteus仿真軟件,采用C語言編程,使學生從單片機復雜的硬件結構中解放出來,實現了在計算機上將單片機電路設計、軟件設計、調試與仿真一氣呵成,使學生理解和掌握了從設計到生產出產品的完整過程。
(3)符合1+X精神的課證融通、手冊式教材。緊跟職業教育的教學改革,本書采用手冊方式,內容突出行業性、實用性、科學性和可操作性,增加了1+X要求的部分內容,與職業資格標準和1+X接軌。同時與高新企業合作,為本書提供配套的單片機開發板散件、典型應用項目、電子產品設計與制作競賽的相關課程資源。
(4)豐富的微課視頻和教學資源。本書配套有微課視頻、電子教學課件、習題庫及答案、Proteus仿真電路和項目源程序、單片機開發套件以及單片機典型應用項目等教學資源、綜合應用項目、教學大綱和單元設計。
在技能基礎篇中,注重職業崗位的基本技能訓練,主要介紹單片機硬件系統、單片機開發系統、單片機并行端口應用、定時與中斷系統、顯示與鍵盤接口技術、A/D與D/A轉換接口、串行接口通信技術以及單片機應用系統設計方法等內容;在技能提高篇中,注重職業崗位的開發技能訓練,主要介紹鍵盤控制電機方向和轉速、按鍵設置液晶電子鐘、多路溫度采集監控系統、16×32 LED點陣顯示設計。本書還介紹了雙向四車道交通燈控制和溫濕度監控系統等單片機產品開發方法、關鍵知識以及項目的設計與實現方法。本書的案例可以用于學生的課程設計。
本書由安徽電子信息職業技術學院省級教學名師郭志勇任主編,安徽交通職業技術學院楊振宇、軍事科學院郭文思任副主編。郭志勇對本書的編寫思路與大綱進行了總體規劃,指導全書的編寫,并承擔了統稿工作。合肥求精電子有限公司為本書提供了配套的單片機開發板散件以及典型應用項目,電子產品設計與制作競賽的相關課程資源并對本書的編寫提供了寶貴的參考意見。項目1、項目8和項目11由郭志勇編寫,項目3、項目4和項目6由郭文思編寫,項目2、項目7和項目10由楊振宇編寫,項目5和項目9由郭雨編寫,課程設計范例1和課程設計范例2由王賓編寫。參與本書電路調試、程序調試、素材收集、校對等工作的還有趙黎明、林藝春、張長井、郭麗等,在此一并表示衷心感謝。
本書采用“教、學、做”一體化的編寫思路,參考學時見下表,讀者可根據實際教學情況進行增減。
本課程參考學時
項目 參考學時
技能基礎篇(共64學時) 項目1 控制一個LED 8
項目2 跑馬燈控制設計 10
項目3 單片機顯示控制 10
項目4 單片機鍵盤設計 10
項目5 中斷與定時器/計數器應用設計 8
項目6 模擬量輸入輸出設計 8
項目7 單片機串行通信設計 10
技能提高篇(任選) 項目8 基于LCD1602的電機監控設計 6
項目9 按鍵設置液晶電子鐘 8
項目10 8路溫度采集監控系統 8
項目11 LED點陣顯示設計 12
由于時間緊迫以及編者水平有限,書中難免會有錯誤和不妥之處,敬請廣大讀者和專家批評指正。
編 者
2020年9月
第一版前言
項目1 控制一個LED 1
1.1 任務1 一個Proteus仿真電路—
控制一個LED 1
1.1.1 任務描述 1
1.1.2 任務分析 2
1.1.3 任務實施 2
1.2 認識單片機 8
1.2.1 單片機概述 8
1.2.2 AT89S52單片機結構 10
1.2.3 AT89S52單片機引腳功能 11
1.3 任務2 用Keil C51設計一個程序—
控制一個LED 13
1.3.1 任務描述 13
1.3.2 任務分析 13
1.3.3 任務實施 14
1.4 單片機最小系統 20
1.4.1 晶振電路 20
1.4.2 單片機時序的概念 21
1.4.3 復位電路 21
1.4.4 C語言程序的基本構成 22
1.4.5 C語言基本語句 23
【技能訓練1-1】開關控制LED點亮 25
1.5 任務3 LED閃爍控制 26
1.5.1 任務描述 26
1.5.2 任務分析 26
1.5.3 任務實施 26
【技能訓練1-2】LED閃爍控制電路焊接制作與
調試 27
關鍵知識點梳理 31
問題與討論 32
項目2 跑馬燈控制設計 34
2.1 任務4 LED循環點亮控制 34
2.1.1 任務描述 34
2.1.2 任務分析 35
2.1.3 任務實施 35
【技能訓練2-1】LED循環點亮控制電路焊接
制作 37
2.2 單片機并行I/O口 38
2.2.1 P0口結構及功能 38
2.2.2 P1口結構及功能 39
2.2.3 P2口結構及功能 40
2.2.4 P3口結構及功能 40
【技能訓練2-2】P0口外接上拉電阻 41
2.3 任務5 跑馬燈設計 42
2.3.1 任務描述 42
2.3.2 任務分析 43
2.3.3 任務實施 44
2.4 51單片機內存空間 45
2.4.1 數據存儲器RAM 46
2.4.2 特殊功能寄存器 47
2.4.3 “頭文件包含”處理 49
2.4.4 程序存儲器ROM 51
2.4.5 C51數據類型 52
2.4.6 C語言常量與變量 55
2.5 任務6 開關控制跑馬燈設計 57
2.5.1 任務描述 57
2.5.2 任務分析 57
2.5.3 任務實施 58
【技能訓練2-3】汽車轉向燈控制設計 59
關鍵知識點梳理 61
問題與討論 62
項目3 單片機顯示控制 64
3.1 任務7 LED數碼管靜態顯示設計 64
3.1.1 任務描述 64
3.1.2 任務分析 65
3.1.3 任務實施 66
【技能訓練3-1】LED數碼管循環顯示0~9的
電路焊接制作 67
3.2 認識LED數碼管 70
3.2.1 LED數碼管結構 70
3.2.2 LED數碼管顯示控制 71
3.2.3 C語言數組 72
【技能訓練3-2】使用74LS47實現0~99計數
顯示 74
3.3 任務8 LED數碼管動態掃描顯示設計 76
3.3.1 任務描述 76
3.3.2 任務分析 77
3.3.3 任務實施 77
【技能訓練3-3】共陽LED數碼管動態掃描顯示
設計 78
3.4 認識LCD液晶顯示 79
3.4.1 LCD1602液晶顯示模塊 79
3.4.2 LCD1602的RAM地址及標準字庫 81
3.4.3 LCD1602指令操作 82
3.4.4 C語言函數 84
3.5 任務9 LCD液晶顯示信息牌設計 86
3.5.1 任務描述 86
3.5.2 任務分析 86
3.5.3 任務實施 88
【技能訓練3-4】按鍵控制LCD1602信息牌換屏
顯示 91
關鍵知識點梳理 93
問題與討論 94
項目4 單片機鍵盤設計 96
4.1 任務10 獨立式鍵盤設計 96
4.1.1 任務描述 96
4.1.2 任務分析 97
4.1.3 任務實施 97
【技能訓練4-1】獨立式鍵盤焊接制作 99
4.2 認識單片機鍵盤 99
4.2.1 鍵盤結構與分類 99
4.2.2 鍵盤防抖動措施 100
4.2.3 矩陣式鍵盤結構原理 102
4.2.4 C51中的位操作 103
【技能訓練4-2】一鍵多功能按鍵識別設計 105
4.3 任務11 矩陣式鍵盤設計 107
4.3.1 任務描述 107
4.3.2 任務分析 108
4.3.3 任務實施 108
【技能訓練4-3】n×m矩陣式鍵盤掃描程序
設計 110
4.4 C語言語句結構 113
4.4.1 關系運算符和關系表達式 113
4.4.2 邏輯運算符和邏輯表達式 114
4.4.3 if語句 115
4.4.4 switch語句 117
4.4.5 循環結構控制語句 117
4.4.6 break語句和continue語句 119
【技能訓練4-4】用INTRINS.H中的_crol_函數
實現LED循環點亮 120
關鍵知識點梳理 122
問題與討論 123
項目5 中斷與定時器/計數器應用設計 125
5.1 任務12 8路搶答器設計 125
5.1.1 任務描述 125
5.1.2 任務分析 126
5.1.3 任務實施 127
5.2 單片機中斷系統 128
5.2.1 單片機中斷源 129
5.2.2 中斷系統結構 130
5.2.3 與中斷有關的4個特殊功能寄存器 130
5.2.4 中斷處理過程 133
5.2.5 C51中斷服務函數 135
【技能訓練5-1】中斷方式矩陣式鍵盤設計 136
5.3 任務13 生產線自動打包系統設計 139
5.3.1 任務描述 139
5.3.2 任務分析 139
5.3.3 任務實施 140
5.4 單片機定時器/計數器 142
5.4.1 認識定時器/計數器 142
5.4.2 定時器/計數器結構 142
5.4.3 定時器/計數器工作方式 143
5.4.4 與定時器/計數器有關的寄存器 145
【技能訓練5-2】0~59s LED數碼管顯示 146
5.5 任務14 基于LED數碼管的電子鐘設計 148
5.5.1 任務描述 148
5.5.2 任務分析 148
5.5.3 任務實施 149
【技能訓練5-3】電子鐘電路焊接制作 151
關鍵知識點梳理 152
問題與討論 154
項目6 模擬量輸入輸出設計 157
6.1 任務15 模數轉換LED顯示 157
6.1.1 任務描述 157
6.1.2 任務分析 158
6.1.3 任務實施 158
【技能訓練6-1】模數轉換LED顯示電路焊接
制作 160
6.2 ADC0809模數轉換器 160
6.2.1 認識ADC0809模數轉換器 161
6.2.2 ADC0809結構及引腳 161
6.2.3 ADC0809工作過程及編程方法 163
6.2.4 C語言結構體類型 164
6.2.5 結構體數組 165
【技能訓練6-2】采用中斷方式完成模數轉換
LED顯示 166
6.3 任務16 數字電壓表設計 167
6.3.1 任務描述 167
6.3.2 任務分析 168
6.3.3 任務實施 168
【技能訓練6-3】基于LCD1602液晶顯示的
數字電壓表設計 170
6.4 DAC0832數模轉換器 173
6.4.1 認識DAC0832數模轉換器 173
6.4.2 DAC0832引腳功能 173
6.4.3 DAC0832工作方式 174
6.5 任務17 信號發生器設計 175
6.5.1 任務描述 175
6.5.2 任務分析 176
6.5.3 任務實施 176
【技能訓練6-4】正弦波發生器設計 178
關鍵知識點梳理 179
問題與討論 180
項目7 單片機串行通信設計 182
7.1 任務18 單片機點對點數據傳輸設計 182
7.1.1 任務描述 182
7.1.2 任務分析 183
7.1.3 任務實施 184
【技能訓練7-1】單片機串行口擴展I/O口 185
7.2 串行通信基本知識 187
7.2.1 并行通信和串行通信 188
7.2.2 異步通信和同步通信 188
7.2.3 串行通信方式 190
7.2.4 RS-232C串行接口 190
【技能訓練7-2】全雙工RS-232連接電路設計 192
7.3 任務19 水塔水位單片機遠程監控設計 193
7.3.1 任務描述 193
7.3.2 任務分析 193
7.3.3 任務實施 194
【技能訓練7-3】水塔水位單片機遠程監控焊接
制作 197
7.4 單片機串行口 197
7.4.1 單片機串行口結構 198
7.4.2 串行口工作方式設置 200
7.4.3 串行口波特率設置 201
7.4.4 RS-485串行接口 202
【技能訓練7-4】全雙工RS-485連接電路設計
與實現 203
7.5 任務20 基于RS-485的單片機一對多數據
傳輸設計 203
7.5.1 任務描述 203
7.5.2 任務分析 204
7.5.3 任務實施 205
【技能訓練7-5】CAN總線連接電路設計 207
關鍵知識點梳理 215
問題與討論 216
項目8 基于LCD1602的電機監控設計 218
8.1 電機控制關鍵技術 218
8.1.1 單片機產品開發 218
8.1.2 認識L298全橋驅動器 221
8.1.3 步進電機控制技術 223
8.1.4 直流電機控制技術 225
8.2 任務21 基于LCD1602的步進電機監控
設計 226
8.2.1 任務描述 226
8.2.2 任務分析 227
8.2.3 任務實施 228
【技能訓練8-1】步進電機智能控制設計 232
8.3 任務22 基于LCD1602的直流電機監控
設計 235
8.3.1 任務描述 235
8.3.2 任務分析 236
8.3.3 任務實施 236
【技能訓練8-2】智能車基本控制設計 240
關鍵知識點梳理 243
問題與討論 244
項目9 按鍵設置液晶電子鐘 245
9.1 RT12864點陣型液晶顯示模塊 245
9.1.1 認識RT12864液晶顯示模塊 245
9.1.2 RT12864液晶顯示模塊內部結構 247
9.1.3 控制指令及相應代碼 248
9.2 任務23 按鍵設置液晶電子鐘電路設計 251
9.2.1 任務描述 251
9.2.2 任務分析 251
9.2.3 任務實施 253
9.3 任務24 按鍵設置液晶電子鐘程序設計 253
9.3.1 任務描述 253
9.3.2 任務分析 253
9.3.3 任務實施 261
【技能訓練9-1】基于DS1302的液晶電子鐘
電路設計 264
關鍵知識點梳理 266
問題與討論 268
項目10 8路溫度采集監控系統 269
10.1 DS18B20溫度傳感器 269
10.1.1 認識DS18B20 270
10.1.2 DS18B20內部結構及功能 271
10.1.3 DS18B20通信協議 273
10.2 任務25 8路溫度采集監控電路設計 275
10.2.1 任務描述 275
10.2.2 任務分析 276
10.2.3 任務實施 277
10.3 任務26 8路溫度采集監控程序設計 277
10.3.1 任務描述 277
10.3.2 任務分析 278
10.3.3 任務實施 281
【技能訓練10-1】基于LCD1602的8路溫度
采集監控設計 284
【技能訓練10-2】基于I2C總線的溫濕度采集
監控設計 286
關鍵知識點梳理 294
問題與討論 295
項目11 LED點陣顯示設計 296
11.1 認識LED點陣顯示屏 296
11.1.1 LED點陣顯示屏結構 297
11.1.2 LED點陣顯示方式 298
11.1.3 LED點陣顯示字符和漢字的字模 298
【技能訓練11-1】8×8 LED點陣顯示設計 300
11.2 任務27 16×32 LED點陣顯示電路設計 303
11.2.1 任務描述 303
11.2.2 任務分析 303
11.2.3 任務實施 306
11.3 任務28 16×32 LED點陣顯示程序設計 306
11.3.1 任務描述 306
11.3.2 任務分析 307
11.3.3 任務實施 310
【技能訓練11-2】基于逐行掃描方式的
16×32 LED點陣顯示設計 311
關鍵知識點梳理 314
問題與討論 315
附 錄 316
課程設計范例1 雙向四車道交通燈控制 316
課程設計范例2 基于SHT11的溫濕度監控系統 327
參考文獻 340
- Python語言程序設計教程 [郭其標 房宜汕]
- C語言同步案例習題精解 [主編 肖朝暉]
- Python程序設計 [李國燕 王新強 劉佳 等編著]
- Python程序設計項目化教程(活頁式) [主編 盧鳳偉]
- Java編程基礎案例式教程 [主編 陳艷華 唐春蘭]
- Python語言同步案例習題精解 [主編 肖朝暉]
- Unity應用開發與實戰(微課版) [主 編 程永恒]
- PHP程序設計項目化教程 [主 編 杜海穎]
- 簡單易懂的Python入門教程 [[日]大澤文孝 著]
- Python數據分析之道——Thinking in Pandas [[美]漢娜·斯捷潘內克(Hannah S]
- 深入淺出OpenHarmony——架構、內核、驅動及應用開發全棧 [李傳釗 著]
- MySQL數據庫項目化教程(第二版) [主編 鄭小蓉]
- python青少年趣味編程 [千鋒教育 編著]
- 程序員5天修煉 [施游 鄒月平 曾哲軍 編著]
- Python程序設計應用教程 [王敏 李光正]
- Java面向對象程序設計(微課版) [主編 謝先偉 王海洋]
- Java面向對象程序設計 [主編 張立敏 鄒海濤]
- 工業機器人編程及應用 [主編 向艷芳 胡月霞]
- C語言程序設計(微課版) [主編 夏啟壽]
- C語言程序設計實踐教程 [夏啟壽]
- Python語言程序設計 [張雙獅]
- 火球-UML大戰需求分析(第二版) [張傳波 著]
- HTML5+CSS3前端開發項目式教程(微課版) [主編 譚衛 徐文義]
- Python 程序設計(微課版) [楊智勇 廖丹]
- 數據結構——C語言(微課版) [主編 梁海英]
- UI界面設計與制作教程 [主 編 黎 婭 任勁松]
- UML系統建模及系統分析與設計(第二版) [王欣 張毅 編著]
- Android高級程序設計 [主編 周雯 舒松]
- C程序設計簡明教程 [黃能耿 黃致遠 編著]
- Java程序設計簡明教程 [黃能耿 黃致遠 編著]