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

-
【作 者】主編 郭志勇
【I S B N 】978-7-5170-2708-9
【責任編輯】張玉玲
【適用讀者群】高職高專
【出版時間】2014-12-17
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第2第1次印刷
【頁 數】324
【千字數】445
【印 張】20.25
【定 價】¥39
【叢 書】“十二五”職業教育國家規劃教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書由高校骨干教師、項目研發人員和高新企業的工程師共同編寫。全書采用“項目驅動”的編寫思路,從職業崗位技能出發,分為技能基礎篇和技能提高篇,共有11個項目、28個工作模塊以及兩個課程設計范例。
在技能基礎篇中,注重職業崗位的基本技能訓練,主要介紹單片機硬件系統、單片機開發系統、單片機并行端口應用、定時與中斷系統、顯示與鍵盤接口技術、A/D與D/A轉換接口、串行接口通信技術以及單片機應用系統設計方法等內容;在技能提高篇中,注重職業崗位的開發技能訓練,主要介紹鍵盤控制電機運轉方向和轉速、多路溫度采集監控系統、按鍵設置液晶電子鐘、16×32 LED點陣顯示設計與實現等單片機產品開發方法、關鍵知識以及這些項目的設計與實現,可以作為學生的課程設計。兩個課程設計范例分別是雙向四車道交通燈控制和出租車計價器。
本書適合作為高職高專院校計算機應用技術、電子信息、機電等相關專業單片機技術課程的教材,也可作為廣大電子制作愛好者的自學用書。其中技能提高篇中的部分項目,可作為“中級嵌入式系統硬件設計工程師(單片機)”認證的參考范例。
本書配有電子教學課件、習題參考答案、C語言源程序代碼和Proteus仿真電路等。讀者可以從中國水利水電出版社網站以及萬水書苑下載,網址為:http://www.waterpub. com.cn/softdown或http://www.dgboyong.cn/。
采用“項目驅動”編寫思路,實出技能的培養
與職業崗位標準接軌,具有獨特的“雙證書”特色
即適合教學,又符合企業實際工作需要
全新的仿真教學模式,C語言編程
教學資源豐富,提供教學支持及服務
再版前言
本書在《單片機應用技術項目教程(C語言版)》的基礎上,對原有內容進行了部分修改,增加了部分模塊的電路焊接制作內容,突出技能訓練。
《單片機應用技術項目教程(C語言版)》(第二版)順應現代高等教育指導思想的變革,突出技能培養在課程中的主體地位,用工作任務來引領理論,使理論從屬于技能實踐。本書可作為高職高專院校計算機應用技術、電子信息、機電等相關專業單片機技術課程的教材,也可作為廣大電子制作愛好者的自學用書。
本書主要特色如下:
(1)采用“項目驅動”的編寫思路,突出技能培養在課程中的主體地位。
本書以解決實際項目的思路和操作為編寫主線,貫穿多個知識點,用工作模塊來引領理論,使理論從屬于技能培養。教會學生如何完成工作任務,關注學生能做什么,而不僅是知道什么,知識、技能的學習結合工作任務的完成過程來進行。
(2)與職業崗位標準接軌,已獲得行業協會認可,作為認證教材,具有獨特的“雙證書”特色。
本書內容與職業崗位標準密切接軌,部分項目由中國軟件行業協會嵌入式系統分會的工程師編寫,根據中級嵌入式系統硬件設計工程師(單片機)認證的要求,涉及必須掌握的關鍵知識點、基本技能以及單片機產品制作與調試等方面的內容,本書已獲得中國軟件行業協會嵌入式系統分會認可,作為“中級嵌入式系統硬件設計工程師(單片機)”認證教材。
學習本書后,由中國軟件行業協會嵌入式系統分會進行考核(或經中國軟件行業協會嵌入式系統分會認可,由學校進行考核)。考核合格的,可以申請中國軟件行業協會嵌入式系統分會的“中級嵌入式系統硬件設計工程師(單片機)”證書。該證書可以作為專業技術人員職業能力考核的證明,以及崗位聘用的重要依據。
(3)既適合教學,又符合企業實際工作需要。
注重采用企業真實工作任務、貼近企業職業崗位實際需求。本書在拉近單片機教學與職業崗位需求距離的同時,兼顧知識的系統性和完整性。本書既適合教學,又符合企業實際工作需要。
(4)全新的仿真教學模式,C語言編程。
打破了傳統教材原有界限,與職業崗位基本技能融合在一起,引入Proteus仿真軟件,采用C語言編程,將學生從單片機復雜的硬件結構中解放出來,側重高職院校學生技能和動手能力的鍛煉,實現了在計算機上完成單片機電路設計、軟件設計及調試與仿真。真正實現了從概念到產品的完整設計,使學生理解和掌握從概念到產品的完整過程。
(5)教學資源豐富,提供教學支持及服務。
課程教學網站提供支持,包括電子教案、實訓項目、源代碼和仿真電路、技能大賽作品、學生作品、課程設計、校企合作資源及其他相關素材等。
本書由學校骨干教師、項目研發人員和高新企業的工程師共同編寫。采用“項目驅動”的編寫思路,從職業崗位技能出發,分為技能基礎篇和技能提高篇,共有11個項目、28個工作模塊以及兩個課程設計范例。
在技能基礎篇中,注重職業崗位的基本技能訓練。主要介紹單片機硬件系統、單片機開發系統、單片機并行端口應用、定時與中斷系統、顯示與鍵盤接口技術、A/D與D/A轉換接口、串行接口通信技術以及單片機應用系統設計方法等內容;在技能提高篇中,注重職業崗位的開發技能訓練,主要介紹鍵盤控制電機方向和轉速、多路溫度采集監控系統、按鍵設置液晶電子鐘、16×32 LED點陣顯示設計與實現等單片機產品開發方法、關鍵知識以及這些項目的設計與實現,可以作為學生的課程設計。其中技能提高篇中的部分項目,可作為“中級嵌入式系統硬件設計工程師(單片機)”認證教材。兩個課程設計范例分別是雙向四車道交通燈和出租車計價器。
本書由郭志勇任主編,王韋偉任副主編。郭志勇對本書的編寫思路與大綱進行了總體規劃,指導全書的編寫,并承擔了統稿工作。項目一和項目六由郭志勇編寫,項目二和項目十由王韋偉編寫,項目三和項目八由鞏雪潔編寫,項目四和課程設計范例二由程淑玉編寫,項目五由李如平編寫,項目七和課程設計范例一由李自成編寫,項目九由李健編寫,項目十一由林藝春編寫。參加本書電路調試、程序調試、素材收集、校對等工作的還有張長井、楊振宇、郭雨、王大靈、郭麗、趙露、蔡瑞瑞等。
為了方便教師教學,本書配有電子教學課件、習題參考答案、C語言源程序代碼和Proteus仿真電路。讀者可以從中國水利水電出版社網站以及萬水書苑下載,網址為:http://www. waterpub.com.cn/softdown或http://www.dgboyong.cn/。
本課程采用“教、學、做”一體化,參考學時如下表所示,讀者可根據實際教學情況增減。
本課程參考學時
項目 參考學時
技能基礎篇(共64學時) 項目1 發光二極管LED控制 8
項目2 LED循環點亮控制 10
項目3 數碼管顯示控制 10
項目4 鍵盤的設計與實現 10
項目5 定時器/計數器綜合應用 8
項目6 模擬量輸入輸出設計與實現 8
項目7 單片機串行通信設計與實現 10
續表
項目 參考學時
技能提高篇(任選) 項目8 鍵盤控制電機方向和轉速 6
項目9 按鍵設置液晶電子鐘 8
項目10 8路溫度采集監控系統 8
項目11 點陣顯示設計與實現 12
由于時間緊迫以及編者水平有限,書中難免會有錯誤和不妥之處,敬請廣大讀者和專家批評指正。
編 者
2014年10月
項目1 發光二極管LED控制 1
1.1 工作模塊1 點亮一個LED 1
1.1.1 用Proteus設計第一個LED控制
電路 2
1.1.2 用Keil C51設計第一個C語言LED
控制程序 6
1.1.3 用Proteus仿真運行調試 9
1.2 認識單片機 10
1.2.1 單片機概述 10
1.2.2 AT89S52單片機結構 14
1.2.3 AT89S52單片機引腳功能 16
1.2.4 AT89S52單片機最小系統 18
【技能訓練1-1】單片機最小系統應用——
開關控制LED點亮 19
1.3 工作模塊2 LED閃爍控制 21
1.3.1 LED閃爍控制設計與實現 21
1.3.2 LED閃爍控制電路焊接制作 24
1.3.3 C語言程序的基本構成 26
1.3.4 C語言基本語句 27
1.4 技能拓展 音頻控制應用 29
1.4.1 音頻控制電路 29
1.4.2 音頻控制程序 29
【技能訓練1-2】報警產生器 30
關鍵知識點小結 30
問題與討論 32
項目2 LED循環點亮控制 34
2.1 工作模塊3 LED循環點亮控制 34
2.1.1 LED循環點亮電路設計 35
2.1.2 LED循環點亮電路的PCB設計 35
2.1.3 LED循環點亮程序設計 37
2.1.4 LED循環點亮控制電路焊接制作 38
2.1.5 并行I/O端口電路 39
【技能訓練2-1】P0口外接上拉電阻 43
2.2 MCS-51單片機內存空間 44
2.2.1 數據存儲器 45
2.2.2 特殊功能寄存器 47
2.2.3 “頭文件包含”處理 50
2.2.4 程序存儲器 51
2.3 工作模塊4 開關控制LED循環點亮 53
2.3.1 開關控制LED循環點亮電路設計 53
2.3.2 開關控制LED循環點亮程序設計 53
2.3.3 C51數據類型 54
2.3.4 C語言常量與變量 58
2.4 工作模塊5 步進電機控制 60
2.4.1 認識步進電機 60
2.4.2 步進電機控制電路設計 62
2.4.3 步進電機控制程序設計 62
2.5 技能拓展 ULN2003A驅動器應用 64
2.5.1 ULN2003A特點 64
2.5.2 ULN2003A引腳功能 64
【技能訓練2-2】單片機驅動繼電器電路
設計 65
關鍵知識點小結 65
問題與討論 66
項目3 數碼管顯示控制 69
3.1 工作模塊6 數碼管循環顯示0~9 69
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語句 80
3.2.5 循環結構控制語句 81
3.2.6 break語句和continue語句 83
3.3 工作模塊7 多個數碼管動態掃描顯示 84
3.3.1 多個數碼管動態顯示電路設計 84
3.3.2 多個數碼管動態顯示程序設計 85
3.3.3 C語言數組 86
3.4 工作模塊8 0~99計數器顯示(靜態
顯示) 89
3.4.1 0~99計數顯示電路設計 89
3.4.2 0~99計數顯示程序設計 90
3.4.3 C語言函數 91
3.5 技能拓展 七段字形譯碼器74LS47
應用 93
3.5.1 認識74LS47 93
3.5.2 74LS47引腳功能 94
【技能訓練3-2】使用74LS47實現0~99
計數顯示 94
關鍵知識點小結 95
問題與討論 96
項目4 鍵盤的設計與實現 99
4.1 工作模塊9 獨立式鍵盤設計與實現 99
4.1.1 認識鍵盤 100
4.1.2 獨立式鍵盤電路設計 100
4.1.3 獨立式鍵盤程序設計 101
4.1.4 獨立式鍵盤電路焊接制作 102
4.1.5 鍵盤防抖動措施 103
【技能訓練4-1】一鍵多功能按鍵識別設計
與實現 104
4.2 工作模塊10 矩陣式鍵盤設計與實現 106
4.2.1 矩陣式鍵盤的結構與原理 106
4.2.2 矩陣式鍵盤電路設計 108
4.2.3 矩陣式鍵盤程序設計 109
4.3 工作模塊11 中斷方式矩陣鍵盤 111
4.3.1 中斷概念 111
4.3.2 中斷方式矩陣鍵盤電路設計 112
4.3.3 中斷方式矩陣鍵盤程序設計 112
4.4 MCS-51單片機中斷系統 114
4.4.1 單片機中斷源 114
4.4.2 中斷系統結構 115
4.4.3 中斷有關的4個特殊功能寄存器 116
4.4.4 中斷處理過程 119
4.4.5 C語言中斷服務函數 122
4.5 技能拓展 外部中斷源的擴展 123
4.5.1 用定時器擴展外部中斷源 123
4.5.2 中斷加查詢的擴展方法 123
【技能訓練4-2】利用外部中斷0擴展4個
外部中斷 124
關鍵知識點小結 125
問題與討論 126
項目5 定時器/計數器綜合應用 128
5.1 工作模塊12 生產線自動打包系統 128
5.1.1 認識定時器/計數器 129
5.1.2 生產線自動打包控制電路 130
5.1.3 生產線自動打包控制程序 131
5.2 工作模塊13 霓虹燈控制系統 132
5.2.1 定時器/計數器工作方式 133
5.2.2 定時器/計數器有關寄存器 135
5.2.3 霓虹燈控制系統設計與實現 137
【技能訓練5-1】0~59秒數碼顯示
(定時器) 139
5.3 工作模塊14 電子鐘設計與實現 140
5.3.1 電子鐘電路設計 141
5.3.2 電子鐘程序設計 142
5.3.3 電子鐘電路焊接制作 144
5.4 技能拓展 INTRINS.H頭文件的應用 145
5.4.1 _crol_、_irol_和_lrol_函數 145
5.4.2 _cror_、_iror_和_lror_函數 145
5.4.3 _nop_函數 146
5.4.4 _testbit_函數 146
【技能訓練5-2】用_crol_函數實現LED
循環點亮 146
關鍵知識點小結 147
問題與討論 148
項目6 模擬量輸入輸出設計與實現 150
6.1 工作模塊15 模/數轉換LED顯示 150
6.1.1 模擬量輸入輸出概述 151
6.1.2 模/數轉換LED顯示電路 151
6.1.3 模/數轉換LED顯示程序 152
6.1.4 模/數轉換LED顯示電路焊接制作 153
6.2 ADC0808/ADC0809模數轉換器 154
6.2.1 認識ADC0808/ADC0809模數轉
換器 154
6.2.2 ADC0808/ADC0809結構及引腳 154
6.2.3 ADC0808/ADC0809工作過程及
編程方法 156
【技能訓練6-1】采用中斷方式完成模/數
轉換LED顯示 157
6.3 工作模塊16 數字電壓表設計與實現 159
6.3.1 數字電壓表電路設計 159
6.3.2 數字電壓表程序設計 160
6.3.3 C語言結構體類型 162
6.3.4 結構體數組 164
【技能訓練6-2】結構體數組應用 164
6.4 工作模塊17 信號發生器設計與實現 165
6.4.1 認識DAC0832數模轉換器 166
6.4.2 信號發生器電路設計 169
6.4.3 信號發生器程序設計 170
6.5 技能拓展 直流電機轉速控制 171
6.5.1 什么是PWM 171
6.5.2 占空比 172
6.5.3 直流電機轉速控制 172
【技能訓練6-3】基于ADC0808/0809的
直流電機轉速控制 172
關鍵知識點小結 174
問題與討論 175
項目7 單片機串行通信設計與實現 176
7.1 工作模塊18 單片機點對點數據傳輸 176
7.1.1 串行通信基本知識 177
7.1.2 單片機點對點數據傳輸電路設計 179
7.1.3 單片機點對點數據傳輸程序設計 181
7.2 工作模塊19 水塔水位單片機遠程監
控系統 182
7.2.1 單片機串行口結構 182
7.2.2 串行通信設置 185
7.2.3 水塔水位單片機遠程監控系統設計 187
7.2.4 水塔水位單片機遠程監控系統焊接
制作 191
7.3 工作模塊20 單片機點對多數據傳輸 192
7.3.1 MCS-51多機通信技術 192
7.3.2 單片機點對多數據傳輸電路設計 193
7.3.3 單片機點對多數據傳輸程序設計 195
【技能訓練7-1】單片機串行口擴展I/O口
電路設計 197
7.4 技能拓展 RS-485串行接口應用 199
【技能訓練7-2】全雙工RS-485連接電路
設計與實現 201
關鍵知識點小結 201
問題與討論 203
項目8 鍵盤控制電機方向和轉速 204
8.1 單片機產品開發 204
8.1.1 單片機產品的結構 205
8.1.2 單片機產品開發流程 205
8.2 工作模塊21 步進電機控制系統設計
與實現 208
8.2.1 步進電機控制技術 208
8.2.2 步進電機控制系統電路設計 209
8.2.3 步進電機控制系統程序設計 210
8.3 工作模塊22 直流電機控制系統設計
與實現 213
8.3.1 直流電機控制技術 213
8.3.2 直流電機控制系統電路設計 215
8.3.3 直流電機控制系統程序設計 216
8.4 技能拓展 步進電機智能控制 219
8.4.1 步進電機智能控制思路 219
8.4.2 步進電機智能控制組成 219
【技能訓練8-1】步進電機智能控制設計 220
關鍵知識點小結 221
問題與討論 222
項目9 按鍵設置液晶電子鐘 223
9.1 RT12864陣型液晶顯示模塊 223
9.1.1 認識RT12864液晶屏 223
9.1.2 RT12864液晶顯示模塊內部結構 225
9.1.3 控制指令及相應代碼 227
9.2 工作模塊23 液晶電子鐘電路設計與
實現 230
9.2.1 按鍵設置電路設計 230
9.2.2 液晶顯示電路設計 231
9.2.3 按鍵設置液晶電子鐘電路設計 231
9.3 工作模塊24 液晶電子鐘程序設計與
實現 232
9.3.1 按鍵設置程序設計 232
9.3.2 時間程序設計 235
9.3.3 液晶顯示程序設計 237
9.4 技能拓展 DS1302時鐘芯片的應用 243
9.4.1 認識DS1302 243
9.4.2 DS1302寄存器 244
【技能訓練9-1】使用DS1302芯片實現
液晶電子鐘電路設計 244
關鍵知識點小結 245
問題與討論 247
項目10 8路溫度采集監控系統 248
10.1 DS18B20溫度傳感器 248
10.1.1 認識DS18B20 249
10.1.2 DS18B20內部結構及功能 251
10.1.3 DS18B20通信協議 253
10.2 工作模塊25 8路溫度采集監控電路
設計 256
10.2.1 溫度采集電路設計 256
10.2.2 監控電路設計 257
10.2.3 8路溫度采集監控電路設計與實現 257
10.3 工作模塊26 8路溫度采集監控程序
設計 259
10.3.1 鍵盤處理程序設計 259
10.3.2 8路溫度采集程序設計 260
10.3.3 8路溫度顯示程序設計 261
10.4 技能拓展 I2C串行擴展 264
10.4.1 I2C總線接口電路 264
10.4.2 I2C總線數據傳送操作 264
【技能訓練10-1】基于AT24C1024片外
程序存儲器擴展 267
關鍵知識點小結 268
問題與討論 269
項目11 點陣顯示設計與實現 270
11.1 工作模塊27 8×8 LED點陣顯示設計 270
11.1.1 認識LED點陣顯示屏 271
11.1.2 8×8 LED點陣顯示電路設計 272
11.1.3 8×8 LED點陣顯示程序設計 274
11.2 工作模塊28 16×32 LED點陣顯示
電路設計 276
11.2.1 16×32 LED點陣顯示電路設計 276
11.2.2 16×32 LED點陣漢字顯示程序
設計 279
【技能訓練11-1】采用逐行掃描方式完成
16×32 LED點陣漢字顯示設計 286
11.3 技能拓展 并行I/O接口擴展 289
11.3.1 并行I/O口擴展特性 289
11.3.2 I/O接口擴展常用芯片 290
【技能訓練11-2】P0口擴展I/O接口設計
與實現 292
課程設計范例1 雙向四車道交通燈控制 295
課程設計范例2 出租車計價器 306
參考文獻 313
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- SwiftUI完全開發 [李智威 著]
- MySQL數據庫項目式教程 [陳亞峰]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現實應用開發實踐 [主 編 劉龍]
- Python程序設計 [主編 姜春磊 陳虹潔]
- C語言程序設計實踐教程(活頁式) [主編 鄭茵 陳巍 滕泓虬]
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- Python程序設計基礎及實戰 [主編 劉健]
- C語言程序設計 [姜雪]
- Python程序設計實踐教程 [王鶴琴 蔡正保]
- C++程序設計實踐教程(第三版) [主編 劉衛國 曹岳輝]
- C++程序設計(第三版) [主編 曹岳輝 劉衛國]
- C語言程序設計項目化教程(活頁式) [主編 張利華 潘曉利]
- 機器人流程自動化(RPA)實戰——基于UiPath [主編 金鑫]
- Python 語言程序設計實踐指導 [主編 張雙獅]
- Python程序設計案例教程 [主編 毛錦庚 鐘肖英 周賢來 ]
- 基于.NET Core框架的分布式系統架構設計 [湯佳 著]
- Python語言程序設計教程 [郭其標 房宜汕]
- C語言同步案例習題精解 [主編 肖朝暉]
- Python程序設計 [李國燕 王新強 劉佳 等編著]
- Python程序設計項目化教程(活頁式) [主編 盧鳳偉]
- Java編程基礎案例式教程 [主編 陳艷華 唐春蘭]
- Python語言同步案例習題精解 [主編 肖朝暉]
- Unity應用開發與實戰(微課版) [主 編 程永恒]
- PHP程序設計項目化教程 [主 編 杜海穎]