本書圍繞著 51 內(nèi)核單片機(jī)的硬件結(jié)構(gòu)、 C 語言編程技巧和應(yīng)用系統(tǒng)開發(fā), 采用任務(wù)驅(qū)動(dòng)與項(xiàng)目實(shí)訓(xùn)的方式, 以理論夠用、 注重應(yīng)用為原則,激發(fā)學(xué)生的學(xué)習(xí)興趣, 逐步提高學(xué)生的單片機(jī)外圍接口電路設(shè)計(jì)和編寫程序的邏輯思維能力。 本書的實(shí)訓(xùn)項(xiàng)目由簡單的如何點(diǎn)亮 LED 燈項(xiàng)目開始,引導(dǎo)讀者入門, 逐步擴(kuò)展知識面, 逐步增加項(xiàng)目難度, 使讀者積累項(xiàng)目開發(fā)的經(jīng)驗(yàn), 提高實(shí)踐動(dòng)手能力、 分析與解決問題的能力, 掌握單片機(jī)系統(tǒng)開發(fā)技能。
本書層次結(jié)構(gòu)合理, 敘述簡明易懂, 參編人員有著多年的實(shí)際項(xiàng)目開發(fā)經(jīng)驗(yàn)。 本書項(xiàng)目來自科研、 競賽、 教學(xué)實(shí)踐等, 實(shí)用性強(qiáng), 提供實(shí)訓(xùn)項(xiàng)目代碼, 還可以提供配套的單片機(jī)開發(fā)板。
本書可作為高等院校電子信息、 計(jì)算機(jī)、 電氣工程、 自動(dòng)化、 機(jī)電一體化、 儀器儀表等專業(yè)的單片機(jī)課程教材, 也適合于單片機(jī)初學(xué)者和從事單片機(jī)應(yīng)用的工程技術(shù)人員參考。 本書還可以作為電子設(shè)計(jì)競賽、 藍(lán)橋杯電子類等比賽的培訓(xùn)教材。
單片機(jī)是工科類本科生教學(xué)的主要學(xué)科基礎(chǔ)課之一, 是電子信息工程、 通信工程、電氣工程、 自動(dòng)化、 計(jì)算機(jī)等專業(yè)的一門重要的專業(yè)基礎(chǔ)課。
目前, 在市場上的眾多產(chǎn)品中均能看到單片機(jī)的身影。 單片機(jī)以其高性價(jià)比、 高速度、 體積小、 可重復(fù)編程和方便功能擴(kuò)展等優(yōu)點(diǎn), 在實(shí)踐中得到了廣泛應(yīng)用。 目前, 51單片機(jī) C 語言 ( 簡稱 C51 語言) 的使用越來越廣泛, 大有取代匯編語言的趨勢。 學(xué)習(xí)并熟練掌握 C51 語言, 對于單片機(jī)的系統(tǒng)設(shè)計(jì)和程序開發(fā)都非常有用。
本書為 “福建省本科高校重大教育教學(xué)改革研究項(xiàng)目 ( FBJG20170332) 、 泉州市高等學(xué)校中青年學(xué)科 ( 專業(yè)) 帶頭人培養(yǎng)計(jì)劃、 福建省本科高校重大教育教學(xué)改革研究項(xiàng)目 ( JZ160227) 、 閩南理工學(xué)院校級應(yīng)用型課程改革項(xiàng)目” 的研究成果。 本書特色如下:
1. 內(nèi)容全面, 由淺入深
本書涵蓋了 C51 語言程序設(shè)計(jì)所需掌握的各方面知識點(diǎn)。 首先詳細(xì)介紹了 51 系列單片機(jī)的基礎(chǔ)知識, 包括集成開發(fā)環(huán)境和開發(fā)流程。 然后對 C51 語言程序設(shè)計(jì)基礎(chǔ)知識點(diǎn)結(jié)合實(shí)例進(jìn)行全面詳細(xì)的介紹, 包括數(shù)據(jù)類型與結(jié)構(gòu)、 函數(shù)、 存儲結(jié)構(gòu)等內(nèi)容。 接著對 C51 語言的程序設(shè)計(jì)方式進(jìn)行了詳細(xì)的講解, 包括定時(shí)計(jì)數(shù)器、 中斷設(shè)計(jì)、 串行接口設(shè)計(jì)等內(nèi)容。 最后介紹了電子設(shè)計(jì)各個(gè)領(lǐng)域具有代表性的案例, 包括鍵盤設(shè)計(jì)、 總線接口、 單片機(jī)通信, 以及 A /D 轉(zhuǎn)換等方面的內(nèi)容。 最后設(shè)計(jì)了一個(gè)完整的綜合應(yīng)用實(shí)例。
2. 結(jié)合實(shí)例, 強(qiáng)化理解
本書在介紹每個(gè)相關(guān)知識點(diǎn)的同時(shí), 均給出了其在程序設(shè)計(jì)中的編程示例, 每個(gè)例子都可以執(zhí)行, 讀者可以在學(xué)習(xí)獨(dú)立知識點(diǎn)的同時(shí), 根據(jù)應(yīng)用示例舉一反三, 快速掌握相應(yīng)知識點(diǎn)在整個(gè)程序設(shè)計(jì)系統(tǒng)中的實(shí)際應(yīng)用。
3. 聯(lián)系硬件, 切合需求
本書不僅介紹 51 單片機(jī)的 C 語言, 還對單片機(jī)的硬件資源, 以及如何使用 C51 語言來編程控制單片機(jī)的各種片上資源進(jìn)行了詳細(xì)介紹, 主要包括單片機(jī)定時(shí)器/計(jì)數(shù)器、中斷、 USART 串行通信接口、 EEPROM、 SPI 串行通信接口、 PWM 脈寬調(diào)制和 A /D轉(zhuǎn)換。
4. 案例豐富, 分析全面
本書案例豐富, 基本上涵蓋了電子設(shè)計(jì)的各個(gè)領(lǐng)域, 如鍵盤接口、 RS - 232 通信、SPI 總線、 掉電參數(shù)保護(hù)、 電動(dòng)機(jī)控制、 電壓檢測等。 本書對每一個(gè)案例都詳細(xì)介紹了相關(guān)的背景知識、 硬件知識、 電路設(shè)計(jì)、 程序設(shè)計(jì), 以及擴(kuò)展思考等內(nèi)容, 并對整體程序代碼按功能分塊進(jìn)行詳細(xì)的注釋, 更加易于讀者理解。本書由鄭洪慶、 安玲玲、 程蔚擔(dān)任主編, 鄭洪慶負(fù)責(zé)統(tǒng)稿。 蔡凡編寫第 1 章,黃毓芯編寫第 5、 8 章, 章玲編寫第 6、 7 章, 陳雙燕編寫第 9 章, 林木泉編寫第 10、 16章, 程蔚編寫第 12、 13 章, 湯巧治編寫第 11 章, 安玲玲編寫第 14、 15 章, 其余內(nèi)容由鄭洪慶編寫。
由于編者水平有限, 書中肯定存在錯(cuò)誤和不足之處, 敬請各位同仁不吝批評指正。編 者
前言
第 1 章 單片機(jī)入門———基礎(chǔ)必備
知識 1
1.1 單片機(jī)概述 1
1.1.1 什么是單片機(jī)? 1
1.1.2 單片機(jī)應(yīng)用領(lǐng)域 2
1.1.3 如何學(xué)好單片機(jī) 3
1.2 數(shù)制與編碼 3
1.2.1 數(shù)制 3
1.2.2 數(shù)制之間的轉(zhuǎn)換 4
1.2.3 常用的編碼 5
1.3 微型計(jì)算機(jī)的基本組成和工作過程 6
1.3.1 基本組成 6
1.3.2 指令、 程序與編程語言 7
1.3.3 工作過程 8
1.4 開發(fā)軟件環(huán)境搭建 9
1.5 開發(fā)板功能簡介 13
本章小結(jié) 14
實(shí)訓(xùn)項(xiàng)目 14
第 2 章 點(diǎn)亮 LED 燈———Keil 軟件與
單片機(jī) I /O 15
2.1 Keil μVision4 使用方法 15
2.1.1 Keil μVision4 工作界面 15
2.1.2 Keil 工程的建立 15
2.2 單片機(jī)最小系統(tǒng) 20
2.2.1 電源 20
2.2.2 復(fù)位電路 21
2.2.3 晶振 21
2.3 時(shí)鐘周期、 機(jī)器周期和指令周期 22
2.4 點(diǎn)亮 LED 燈 23
2.4.1 LED ( 發(fā)光二極管) 23
2.4.2 特殊功能寄存器和位定義 23
2.4.3 編寫程序 25
2.5 程序下載 26
2.6 74HC573 鎖存器 29
2.7 74HC02 或非門 30
2.8 74HC138 三八譯碼器 31
2.9 單片機(jī)資源擴(kuò)展方式 34
本章小結(jié) 36
實(shí)訓(xùn)項(xiàng)目 36
第 3 章 經(jīng)典再現(xiàn)———C 語言基礎(chǔ) 37
3.1 C51 程序開發(fā) 37
3.1.1 采用 C51 的優(yōu)點(diǎn) 37
3.1.2 C51 程序開發(fā)過程 37
3.1.3 C51 程序結(jié)構(gòu) 37
3.2 C51 語言的數(shù)據(jù)類型 38
3.3 C51 語言的運(yùn)算符 39
3.4 C51 語言的控制語句 41
3.4.1 if 語句 41
3.4.2 switch 語句 44
3.4.3 while 語句 46
3.4.4 for 語句 48
3.4.5 中斷語句 break /continue 51
3.5 C51 函數(shù) 53
3.5.1 函數(shù)定義 54
3.5.2 函數(shù)的調(diào)用 54
3.5.3 中斷服務(wù)函數(shù) 55
3.6 程序劃分為多個(gè)文件 57
3.6.1 共享宏定義和類型定義 57
3.6.2 共享函數(shù)原型 57
3.6.3 共享變量聲明 58
3.6.4 保護(hù)頭文件 58
本章小結(jié) 58
實(shí)訓(xùn)項(xiàng)目 59
第 4 章 流水燈實(shí)現(xiàn)———C51 編程 60
4.1 設(shè)計(jì)思路 60
4.2 軟件延時(shí) 61
4.3 程序?qū)崿F(xiàn) 62
本章小結(jié) 64
實(shí)訓(xùn)項(xiàng)目 64
第 5 章 計(jì)數(shù)器———數(shù)碼管顯示與
獨(dú)立按鍵 65
5.1 數(shù)碼管的顯示原理 65
5.2 數(shù)碼管的真值表與靜態(tài)顯示 66
5.3 獨(dú)立按鍵檢測 68
5.4 計(jì)數(shù)器實(shí)現(xiàn) 70
5.5 數(shù)碼管動(dòng)態(tài)顯示 72
5.5.1 C 語言數(shù)組回顧 72
5.5.2 動(dòng)態(tài)顯示原理 73
5.5.3 程序?qū)崿F(xiàn) 74
5.5.4 數(shù)碼管顯示消隱 75
本章小結(jié) 76
實(shí)訓(xùn)項(xiàng)目 76
第 6 章 數(shù)字秒表———中斷系統(tǒng)及
定時(shí)器 77
6.1 中斷系統(tǒng) 77
6.2 中斷系統(tǒng)處理過程 78
6.2.1 51 內(nèi)核單片機(jī)的中斷結(jié)構(gòu) 78
6.2.2 單片機(jī)的中斷源 78
6.2.3 中斷響應(yīng)及處理過程 81
6.3 定時(shí)器的結(jié)構(gòu)和工作原理 83
6.4 定時(shí)器的寄存器 84
6.4.1 T0、 T1 的方式寄存器 TMOD 84
6.4.2 T0、 T1 的控制寄存器 TCON 87
6.5 定時(shí)器的應(yīng)用 87
本章小結(jié) 91
實(shí)訓(xùn)項(xiàng)目 92
第 7 章 頻率計(jì)———定時(shí)器進(jìn)階 93
7.1 NE555 93
7.2 方波頻率的測量 94
7.3 定時(shí)器計(jì)數(shù)模式 95
7.4 頻率計(jì)實(shí)現(xiàn) 95
本章小結(jié) 99
實(shí)訓(xùn)項(xiàng)目 99
第 8 章 簡易加法計(jì)算器———矩陣按鍵與
函數(shù)進(jìn)階 100
8.1 函數(shù)的調(diào)用 100
8.2 形參與實(shí)參 103
8.3 矩陣按鍵掃描 104
8.3.1 按鍵消抖 104
8.3.2 矩陣按鍵的識別與編碼 105
8.4 簡易加法計(jì)算器的實(shí)現(xiàn) 108
本章小結(jié) 114
實(shí)訓(xùn)項(xiàng)目 115
第 9 章 知識沉淀———交通燈設(shè)計(jì)和
PWM 控制 116
9.1 交通燈實(shí)現(xiàn) 116
9.1.1 設(shè)計(jì)要求 116
9.1.2 硬件電路分析 116
9.1.3 程序設(shè)計(jì) 119
9.2 PWM 基礎(chǔ)知識 123
9.3 直流電動(dòng)機(jī) PWM 調(diào)速 123
9.3.1 直流電動(dòng)機(jī)簡介 123
9.3.2 直流電動(dòng)機(jī)恒速運(yùn)行 124
9.3.3 直流電動(dòng)機(jī)調(diào)速 127
9.4 PWM 調(diào)光 129
本章小結(jié) 132
實(shí)訓(xùn)項(xiàng)目 132
第 10 章 數(shù)據(jù)傳輸———串口通信 133
10.1 串口通信基礎(chǔ) 133
10.1.1 基本通信方式及特點(diǎn) 133
10.1.2 串行通信數(shù)據(jù)傳送方式 133
10.1.3 串行通信的傳輸方向 134
10.1.4 串行通信的傳輸速率 134
10.2 單片機(jī)與 PC 常見通信接口 135
10.3 串口結(jié)構(gòu)與工作原理 137
10.4 波特率與定時(shí)器 138
10.5 編程與實(shí)現(xiàn) 139
10.6 ASCII 碼 142
本章小結(jié) 143
實(shí)訓(xùn)項(xiàng)目 143
第 11 章 溫度計(jì)———DS18B20 溫度
傳感器應(yīng)用 144
11.1 DS18B20 溫度傳感器介紹 144
11.1.1 DS18B20 主要特性 144
11.1.2 DS18B20 應(yīng)用電路原理圖 145
11.2 DS18B20 工作原理 147
11.2.1 DS18B20 的通信協(xié)議 147
11.2.2 DS18B20 單總線通信過程 151
11.3 DS18B20 應(yīng)用實(shí)例 152
11.3.1 DS18B20 的測溫與顯示———整數(shù)
顯示 152
11.3.2 DS18B20 的測溫與顯示———帶 1 位
小數(shù)顯示 156
本章小結(jié) 158
實(shí)訓(xùn)項(xiàng)目 158
第12 章 記錄開機(jī)次數(shù)———IIC 總線與
EEPROM ( AT24C02) 應(yīng)用 159
12.1 IIC 總線基礎(chǔ) 159
12.2 IIC 尋址模式 161
12.3 IIC 總線時(shí)序模擬 162
12.4 AT24C02 操作 ( 寫和讀操作) 165
12.5 記錄開機(jī)次數(shù)實(shí)現(xiàn) 167
本章小結(jié) 170
實(shí)訓(xùn)項(xiàng)目 171
第 13 章 光照強(qiáng)度檢測———A /D 與 D /A
( PCF8591 應(yīng)用) 172
13.1 A /D 和 D /A