從零開始學(xué)51單片機C語言 采用新穎的講解形式,深入淺出地介紹了51單片機的組成、開發(fā)環(huán)境及單片機C語言基礎(chǔ)知識,結(jié)合大量實例,詳細演練了中斷、定時器、串行通信、鍵盤接口、LED數(shù)碼管、LCD顯示器、DS1302時鐘芯片、EEPROM存儲器、單片機看門狗、溫度傳感器DS18B20、紅外和無線遙控電路、A/D和D/A轉(zhuǎn)換器、步進電機、語音電路、LED點陣屏等內(nèi)容。本書中的所有實例均具有較高的實用性和針對性,且全部通過了實驗板驗證;尤為珍貴的是,所有源程序均具有較強的移植性,讀者只需將其簡單修改甚至不用修改,即可應(yīng)用到自己開發(fā)的產(chǎn)品中。
全書語言通俗,實例豐富,圖文結(jié)合,簡單明了,適合單片機愛好者和初學(xué)者,也可作為中等專業(yè)技術(shù)學(xué)校、中等職業(yè)學(xué)校等教學(xué)用書。
圖書提供作者編寫的實驗程序及源代碼下載,可幫助讀者輕松學(xué)習(xí)C語言編程
全書共有16大類實例演練、案例解析及開發(fā)實例,手把手帶讀者從零開始學(xué)
購買圖書者可加入用戶社群分享學(xué)習(xí)資料
劉建清
自1995年以來,先后在《電子報》、《無線電》、《家電維修》等多家雜志、報刊發(fā)表論文近百篇。1999年獲全國電子產(chǎn)品維修大獎賽三等獎;2000年和2001年,連續(xù)兩年被《家電維修》雜志社評為全國十佳作者。 在電子產(chǎn)品開發(fā)、售后技術(shù)支持及培訓(xùn)工作中取得了較大的成績,根據(jù)經(jīng)驗和體會,書寫電子科技圖書八十余部,內(nèi)容涉及到電子元器件、電路基礎(chǔ)、模擬電路、數(shù)字電路、單片機、CPLD、PLC、電路設(shè)計自動化、液晶彩電/顯示器、等離子彩電、VCD/DVD、手機、汽車電子、電動機等多方面,并由人民郵電、電子工業(yè)、國防工業(yè)、電子科技大學(xué)等出版社出版發(fā)行,且很多圖書在當(dāng)當(dāng)網(wǎng)、卓越網(wǎng)上排在同類圖書銷售榜的前三名。
第 1章 51單片機基本組成 1
1.1 單片機內(nèi)部結(jié)構(gòu)與引腳 1
1.1.1 單片機的內(nèi)部結(jié)構(gòu)組成 1
1.1.2 單片機的引腳 3
1.2 單片機的存儲器 5
1.3 單片機的最小系統(tǒng)電路 6
1.3.1 單片機的工作電源 7
1.3.2 單片機的復(fù)位電路 7
1.3.3 單片機的時鐘電路 7
第 2章 走進單片機開發(fā)的世界 8
2.1 單片機C語言入門 8
2.1.1 C語言的特點 8
2.1.2 單片機采用C語言編程的
好處 8
2.1.3 如何學(xué)習(xí)單片機C語言 10
2.1.4 一個簡單的流水燈程序 10
2.1.5 利用C51庫函數(shù)實現(xiàn)流
水燈 13
2.1.6 小結(jié) 14
2.2 低成本單片機開發(fā)板介紹 15
2.2.1 低成本單片機開發(fā)板1 15
2.2.2 低成本單片機開發(fā)板2 17
2.2.3 低成本單片機開發(fā)板3 18
2.2.4 低成本單片機開發(fā)板4 18
2.2.5 單片機仿真器 19
2.3 單片機開發(fā)六步走 20
2.3.1 第 一步:硬件電路設(shè)計與
制作 20
2.3.2 第二步:編寫程序 20
2.3.3 第三步:編譯程序 26
2.3.4 第四步:仿真調(diào)試 27
2.3.5 第五步:燒寫程序 28
2.3.6 第六步:脫機運行檢查 29
第3章 單片機C語言重點難點
解析 30
3.1 C51基本知識 30
3.1.1 標識符和關(guān)鍵字 30
3.1.2 數(shù)據(jù)類型 32
3.1.3 常量 35
3.1.4 變量 36
3.1.5 運算符和表達式 38
3.1.6 表達式語句和復(fù)合語句 42
3.1.7 條件選擇語句 43
3.1.8 循環(huán)語句 45
3.2 C51函數(shù) 50
3.2.1 函數(shù)概述 50
3.2.2 函數(shù)的參數(shù)和返回值 53
3.2.3 函數(shù)的調(diào)用 53
3.2.4 局部變量和全局變量 55
3.2.5 變量的存儲種類 56
3.3 C51數(shù)組 57
3.3.1 一維數(shù)組 57
3.3.2 二維數(shù)組 59
3.3.3 字符數(shù)組 60
3.4 C51指針 61
3.4.1 指針概述 61
3.4.2 一般指針和基于存儲器的
指針 65
3.4.3 絕對地址的訪問 66
3.5 C51結(jié)構(gòu)、共同體與枚舉 67
3.5.1 結(jié)構(gòu) 67
3.5.2 共同體 70
3.5.3 枚舉 70
第4章 中斷系統(tǒng)實例演練 72
4.1 中斷系統(tǒng)基本知識 72
4.1.1 51單片機的中斷源 72
4.1.2 中斷的控制 73
4.1.3 中斷的響應(yīng) 76
4.1.4 中斷的撤除 76
4.1.5 C51中斷函數(shù)的寫法 77
4.2 中斷系統(tǒng)實例解析 77
4.2.1 實例解析1—外中斷
練習(xí)1 77
4.2.2 實例解析2—外中斷
練習(xí)2 79
第5章 定時/計數(shù)器實例演練 81
5.1 定時/計數(shù)器基本知識 81
5.1.1 什么是計數(shù)和定時 81
5.1.2 定時/計數(shù)器的組成 82
5.1.3 定時/計數(shù)器的寄存器 82
5.1.4 定時/計數(shù)器的工作方式 84
5.2 定時/計數(shù)器實例演練 88
5.2.1 實例解析1—定時器中斷
方式實驗 88
5.2.2 實例解析2—定時器查詢
方式實驗 90
5.2.3 實例解析3—實時顯示
計數(shù)值 91
5.2.4 實例解析4—單片機唱歌 93
5.2.5 實例解析5—秒表 96
第6章 串行通信實例演練 99
6.1 串行通信基本知識 99
6.1.1 串行通信基本概念 99
6.1.2 51單片機串行口的結(jié)構(gòu) 104
6.1.3 串行通信控制寄存器 105
6.1.4 串行口工作方式 106
6.2 串行通信實例演練 109
6.2.1 實例解析1—單片機向
PC送字符串 109
6.2.2 實例解析2—PC向
單片機發(fā)號施令 112
6.2.3 實例解析3—PC和
單片機進行串行通信
(不進行奇偶校驗) 113
6.2.4 實例解析4—PC和
單片機進行串行通信
(進行奇偶校驗) 115
第7章 鍵盤接口實例演練 118
7.1 鍵盤接口電路基本知識 118
7.1.1 鍵盤的工作原理 118
7.1.2 鍵盤與單片機的連接形式 119
7.1.3 鍵盤的掃描方式 119
7.2 鍵盤接口電路實例演練 120
7.2.1 實例解析1—按鍵掃描
方式練習(xí) 120
7.2.2 實例解析2—可控
流水燈 124
7.2.3 實例解析3—用數(shù)碼管
顯示矩陣按鍵的鍵號 126
7.2.4 實例解析4—單片機
電子琴 131
第8章 LED數(shù)碼管實例演練 137
8.1 LED數(shù)碼管基本知識 137
8.1.1 LED數(shù)碼管的結(jié)構(gòu) 137
8.1.2 LED數(shù)碼管的顯示碼 139
8.1.3 LED數(shù)碼管的顯示方式 139
8.2 LED數(shù)碼管實例演練 143
8.2.1 實例解析1—程序控制
動態(tài)顯示 143
8.2.2 實例解析2—定時中斷
動態(tài)顯示 146
8.2.3 實例解析3—簡易數(shù)碼管
電子鐘 149
8.2.4 實例解析4—具有鬧鈴
功能的數(shù)碼管電子鐘 155
第9章 LCD顯示實例演練 161
9.1 字符型LCD基本知識 161
9.1.1 字符型LCD引腳功能 161
9.1.2 字符型LCD內(nèi)部結(jié)構(gòu) 162
9.1.3 字符型LCD控制指令 164
9.1.4 字符型LCD與單片機的
連接 168
9.1.5 字符型LCD驅(qū)動程序軟件
包的制作 168
9.2 字符型LCD實例解析 171
9.2.1 實例解析1—1602 LCD
顯示字符串 171
9.2.2 實例解析2—1602 LCD
移動顯示字符串 172
9.2.3 實例解析3—1602 LCD
滾動顯示字符串 174
9.2.4 實例解析4—1602 LCD
電子鐘 175
9.3 12864點陣型LCD介紹與實例
演練 179
9.3.1 12864點陣型LCD介紹 180
9.3.2 實例解析5—12864 LCD
顯示漢字 187
9.3.3 實例解析6—12864 LCD
顯示圖形 188
第 10章 時鐘芯片DS1302實例
演練 191
10.1 時鐘芯片DS1302基本知識 191
10.1.1 DS1302介紹 191
10.1.2 DS1302的控制命令字 192
10.1.3 DS1302的寄存器 192
10.1.4 DS1302的數(shù)據(jù)傳輸方式 194
10.1.5 DS1302驅(qū)動程序軟件包的
制作 194
10.2 DS1302讀寫實例演練 195
10.2.1 實例解析1—DS1302
數(shù)碼管電子鐘 195
10.2.2 實例解析2—DS1302 LCD
電子鐘 198
第 11章 EEPROM存儲器實例
演練 202
11.1 24CXX實例解析 202
11.1.1 24CXX數(shù)據(jù)存儲器介紹 202
11.1.2 I2C總線驅(qū)動程序軟件包的
制作 206
11.1.3 實例解析1—具有記憶
功能的計數(shù)器 206
11.1.4 實例解析2—花樣
流水燈 208
11.2 STC89Cxx內(nèi)部EEPROM的
使用 210
11.2.1 STC89C系列單片機內(nèi)部
EEPROM介紹 210
11.2.2 STC89C系列單片機內(nèi)部
EEPROM驅(qū)動程序軟件包
的制作 210
11.2.3 實例解析3—STC89C系列
單片機內(nèi)部EEPROM
演示 211
第 12章 單片機看門狗與低功耗模式
實例演練 214
12.1 單片機看門狗實例演練 214
12.1.1 單片機看門狗基本
知識 214
12.1.2 看門狗實例演練 215
12.2 單片機低功耗模式實例演練 217
12.2.1 單片機低功耗模式基本
知識 217
12.2.2 低功耗模式實例演練 217
第 13章 溫度傳感器DS18B20實例
解析 221
13.1 溫度傳感器DS18B20基本
知識 221
13.1.1 溫度傳感器DS18B20
介紹 221
13.1.2 溫度傳感器DS18B20驅(qū)動
程序軟件包的制作 224
13.2 DS18B20數(shù)字溫度計實例
解析 225
13.2.1 實例解析1—LED數(shù)碼管
數(shù)字溫度計 225
13.2.2 實例解析2—LCD數(shù)字
溫度計 228
13.2.3 實例解析3—LCD溫度
控制器 231
第 14章 紅外遙控和無線遙控實例
演練 241
14.1 紅外遙控基本知識 241
14.1.1 紅外遙控系統(tǒng) 241
14.1.2 紅外遙控的編碼與
解碼 242
14.1.3 DD-900實驗開發(fā)板遙控
電路介紹 243
14.2 紅外遙控實例解析 243
14.2.1 實例解析1—LED數(shù)碼管
顯示遙控器鍵值 243
14.2.2 實例解析2—遙控器控制
花樣流水燈 246
14.3 無線遙控電路介紹與演練 250
14.3.1 無線遙控電路基礎(chǔ)知識 250
14.3.2 無線遙控模塊介紹 252
14.3.3 實例解析3—遙控模塊
控制LED燈和蜂鳴器 253
第 15章 A/D和D/A轉(zhuǎn)換實例演練 256
15.1 A/D轉(zhuǎn)換電路介紹及實例
解析 256
15.1.1 A/D轉(zhuǎn)換電路介紹 256
15.1.2 實例解析1—LED數(shù)碼管
顯示電位器檢測的AD值 258
15.2 D/A轉(zhuǎn)換電路及實例演練 259
15.2.1 D/A轉(zhuǎn)換電路介紹 259
15.2.2 實例解析2—D/A轉(zhuǎn)換
實驗 260
第 16章 步進電機和直流電機實例
演練 262
16.1 步進電機實例解析 262
16.1.1 步進電機基本知識 262
16.1.2 實例解析1—步進電機
正轉(zhuǎn)與反轉(zhuǎn) 266
16.1.3 實例解析2—步進電機
加速與減速運轉(zhuǎn) 268
16.1.4 實例解析3—用按鍵
控制步進電機正反轉(zhuǎn) 270
16.1.5 實例解析4—用按鍵
控制步進電機轉(zhuǎn)速 272
16.2 直流電機介紹及實例解析 276
16.2.1 直流電機基本知識 276
16.2.2 實例解析5—用按鍵
控制直流電機轉(zhuǎn)速 279
第 17章 LED點陣屏實例解析 281
17.1 簡易LED點陣屏開發(fā)實例 281
17.1.1 LED點陣屏基本知識 281
17.1.2 LED點陣屏實例演練 288
17.2 雙核LED點陣屏開發(fā)實例 303
17.2.1 雙核LED點陣屏開發(fā)板及
漢字顯示原理 303
17.2.2 雙核LED點陣屏實例
演練 308
第 18章 ISD1700語音電路實例
演練 313
18.1 ISD1700語音電路基礎(chǔ)知識 313
18.1.1 ISD1700系列芯片的基本
功能及特性 313
18.1.2 ISD1700引腳定義 314
18.1.3 ISD1700語音模塊說明及
其工作模式 316
18.2 ISD1700實例演練 318
18.2.1 實現(xiàn)的功能 318
18.2.2 源程序 318
第 19章 單片機綜合實例演練 321
19.1 12864萬年歷實例演練 321
19.1.1 硬件電路 321
19.1.2 實現(xiàn)的功能 321
19.1.3 源程序 322
19.2 串口測溫實例演練 323
19.2.1 PC與單片機串行通信
介紹 323
19.2.2 串口測溫程序?qū)嵗?br>演練 331
19.3 nRF905、nRF2401實例演練 337
19.3.1 無線通信溫度監(jiān)控系統(tǒng)的
組成和功能 337
19.3.2 nRF905介紹 338
19.3.3 基于nRF905無線通信溫度
監(jiān)控系統(tǒng)的設(shè)計 341
19.4 智能小車開發(fā) 346
19.4.1 智能小車介紹 346
19.4.2 智能小車開發(fā)實例 347
第 20章 單片機高級開發(fā)指南與程序
錯誤剖析 352
20.1 USB接口設(shè)備的開發(fā) 352
20.1.1 USB接口基本知識 352
20.1.2 基于PDIUSBD12的應(yīng)用
系統(tǒng)開發(fā) 353
20.2 FM數(shù)字調(diào)諧收音機的
開發(fā) 354
20.2.1 TEA5767介紹 354
20.2.2 硬件電路設(shè)計 355
20.2.3 軟件設(shè)計 356
20.3 GSM/GPRS模塊的開發(fā) 357
20.3.1 GSM/GPRS模塊介紹 357
20.3.2 由GSM/GPRS模塊組成的
應(yīng)用系統(tǒng) 357
20.4 GPS模塊的開發(fā) 358
20.4.1 GPS概述 358
20.4.2 GPS原理 359
20.4.3 硬件與軟件設(shè)計 359
20.5 超聲波測距儀的開發(fā) 359
20.5.1 超聲波測距基本原理 359
20.5.2 超聲波測距儀硬件設(shè)計 360
20.5.3 軟件設(shè)計基本思路 362
20.6 TFT觸摸屏模塊的開發(fā) 362
20.6.1 TFT觸摸屏模塊介紹 362
20.6.2 供電及連接說明 363
20.6.3 TFT觸摸屏模塊程序
設(shè)計 364
20.7 非接觸式IC卡門禁系統(tǒng)的
開發(fā) 366
20.7.1 非接觸式IC卡門禁系統(tǒng)的
組成 366
20.7.2 Mifare1卡 366
20.7.3 讀寫芯片MF RC522
介紹 367
20.7.4 軟件設(shè)計 368
20.8 程序錯誤、熱啟動與冷啟動
剖析 368
20.8.1 程序錯誤的分類 368
20.8.2 程序錯誤的常用排錯
方法 371
20.8.3 熱啟動與冷啟動探討 374