單片機(jī)C語言應(yīng)用100例(第3版)(含光盤1張)
定 價:69.8 元
叢書名:百例成才系列叢書
當(dāng)前圖書已被 3 所學(xué)校薦購過!
查看明細(xì)
- 作者:王會良 編著
- 出版時間:2017/8/1
- ISBN:9787121323041
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP368.1;TP312.8
- 頁碼:
- 紙張:膠版紙
- 版次:3
- 開本:16開
本書以MCS51單片機(jī)為主體,從實際應(yīng)用入手,結(jié)合大量實例循序漸進(jìn)地講述51單片機(jī)C語言編程方法,以及51單片機(jī)的硬件結(jié)構(gòu)和功能應(yīng)用。全書分為基礎(chǔ)篇、應(yīng)用篇和綜合提高篇。所有實例均采用仿真軟件Proteus仿真和實驗板實驗,使讀者真正做到"邊理論、邊實踐,在實踐中逐步掌握單片機(jī)的硬件結(jié)構(gòu)和開發(fā)方法。
作者基于現(xiàn)有良好的單片機(jī)開發(fā)環(huán)境和近20年的教學(xué)經(jīng)驗,對單片機(jī)課程的傳統(tǒng)教學(xué)模式進(jìn)行了改革:首先通俗地介紹單片機(jī)的開發(fā)條件,接著通過一個簡單實例,使讀者能夠完整地掌握單片機(jī)的整個開發(fā)過程,消除對單片機(jī)的畏懼感,然后再采用邊理論、邊實踐,學(xué)一樣、會一樣的案例教學(xué)模式,使單片機(jī)的硬件結(jié)構(gòu)在實例學(xué)習(xí)中逐步掌握。另外,由于本書采用了易于掌握的C語言進(jìn)行單片機(jī)應(yīng)用程序設(shè)計,大大降低了讀者對單片機(jī)硬件結(jié)構(gòu)了解程度的要求,使初學(xué)者在很短時間內(nèi)就可以用C語言開發(fā)出功能強(qiáng)大的單片機(jī)實用系統(tǒng)。因此,本書可幫助讀者快速、輕松地邁入單片機(jī)大門。
前 言
《單片機(jī)C語言應(yīng)用100例》第1版自2009年10月出版以來,得到了讀者的支持與肯定,在短短的3年時間內(nèi)重印7次,并于2013年出版本書第2版。
第3版對第2版的一些例子進(jìn)行了修改,擴(kuò)寬了單片機(jī)應(yīng)用領(lǐng)域。
本書作者從事單片機(jī)開發(fā)工作多年,常有讀者及學(xué)員問及:如何才能快速入門?我本人的體會:一定要動手做!僅僅看書是遠(yuǎn)遠(yuǎn)不夠的。和很多的讀者一樣,包括單片機(jī)在內(nèi)的許多知識,我都是通過讀書等方法自學(xué)的。作者深深地認(rèn)識到,一本好書對于自學(xué)者來說其重要性是不言而喻的,一本好的書可以引導(dǎo)學(xué)習(xí)者進(jìn)入知識的大門,一本不合適的書則會斷送學(xué)習(xí)者的熱情。因此,作者基于現(xiàn)有良好的單片機(jī)開發(fā)環(huán)境和近20年的教學(xué)經(jīng)驗,對單片機(jī)課程的傳統(tǒng)教學(xué)模式進(jìn)行了改革:首先通俗地介紹單片機(jī)的開發(fā)條件,接著通過一個簡單實例,使讀者能夠完整地掌握單片機(jī)的整個開發(fā)過程,消除對單片機(jī)的畏懼感,然后再采用邊理論、邊實踐,學(xué)一樣、會一樣的案例教學(xué)模式,使單片機(jī)的硬件結(jié)構(gòu)在實例學(xué)習(xí)中逐步掌握。另外,由于本書采用了易于掌握的C語言進(jìn)行單片機(jī)應(yīng)用程序設(shè)計,大大降低了讀者對單片機(jī)硬件結(jié)構(gòu)了解程度的要求,使初學(xué)者在很短時間內(nèi)就可以用C語言開發(fā)出功能強(qiáng)大的單片機(jī)實用系統(tǒng)。因此,本書可幫助讀者快速、輕松地邁入單片機(jī)大門。
本書第1版出版后,受到了讀者的歡迎,許多讀者認(rèn)為這是單片機(jī)入門的好書、本書的確可以做到輕松入門、本書值得向入門者推薦。
本書由王會良、王東鋒、董冠強(qiáng)編著。其中,第1~4章由河南科技大學(xué)王會良編寫;第5~7章由河南科技大學(xué)董冠強(qiáng)編寫;第8章由鄭州電子信息職業(yè)技術(shù)學(xué)院曲利紅編寫;第9~10章由河南科技大學(xué)李向攀編寫;第11章由空軍第一航空學(xué)院王東鋒編寫。全書由王會良統(tǒng)稿并定稿。
為便于讀者學(xué)習(xí),本書有配套的實驗器材設(shè)備,其能進(jìn)行的實驗有流水燈控制、數(shù)碼管顯示、鍵盤控制、音樂播放、繼電器控制、步進(jìn)電動機(jī)控制、SPI 通信、I2C通信、液晶顯示、紅外接收、模/數(shù)轉(zhuǎn)換、數(shù)/模轉(zhuǎn)換、溫度檢測和串口通信等。
本書附送超值視頻光盤主要內(nèi)容如下:
(1)單片機(jī)仿真軟件Proteus的教學(xué)視頻;
(2)單片機(jī)開發(fā)軟件Keil的教學(xué)視頻;
(3)前80例仿真實例與源程序;
(4)第11章仿真實例與源程序;
(5)配套實驗板的加工圖紙,讀者可拿到工廠直接加工成PCB,自己焊接上元器件即可進(jìn)行實驗。
由于水平有限,書中不妥之處在所難免,敬請廣大讀者批評指正。
王會良
2017年4月
王會良,博士,副教授,畢業(yè)于西北工業(yè)大學(xué),任職于河南科技大學(xué)機(jī)電工程學(xué)院,承擔(dān)多項國家自然科學(xué)出版基金項目,參與出版多項著作。
目 錄
基 礎(chǔ) 篇
第1章 單片機(jī)概述及實驗器材介紹2
1.1 單片機(jī)概述2
1.1.1 單片機(jī)的定義、分類與內(nèi)部組成2
1.1.2 單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)及其工作過程5
1.1.3 單片機(jī)的應(yīng)用6
1.2 單片機(jī)基礎(chǔ)知識7
1.2.1 數(shù)制與數(shù)制間的轉(zhuǎn)換7
1.2.2 單片機(jī)中數(shù)的表示方法及常用數(shù)制的對應(yīng)關(guān)系10
1.2.3 邏輯數(shù)據(jù)的表示10
1.2.4 單片機(jī)中常用的基本術(shù)語12
1.3 單片機(jī)入門的有效方法與途徑12
1.4 學(xué)習(xí)單片機(jī)的基本條件13
1.4.1 軟件條件13
1.4.2 硬件條件15
習(xí)題16
第2章 單片機(jī)開發(fā)軟件及開發(fā)過程17
2.1 仿真軟件Proteus的使用17
2.1.1 Proteus的主要功能特點(diǎn)17
2.1.2 實例1:功能感受Proteus仿真單片機(jī)播放《渴望》主題曲17
2.1.3 Proteus軟件的界面與操作介紹19
2.1.4 實例2:Proteus仿真設(shè)計快速入門21
2.2 Keil C51的使用31
2.2.1 單片機(jī)最小系統(tǒng)31
2.2.2 實例3:用Keil C51編寫點(diǎn)亮一個發(fā)光二極管的程序31
2.3 程序燒錄器及燒錄軟件的使用38
習(xí)題與實驗38
第3章 逐步認(rèn)識單片機(jī)基本結(jié)構(gòu)40
3.1 實例4:用單片機(jī)控制一個燈閃爍40
3.1.1 實現(xiàn)方法40
3.1.2 程序設(shè)計40
3.1.3 用Proteus軟件仿真41
3.1.4 延時程序分析43
3.2 實例5:將 P1口狀態(tài)送入P0、P2和P3口44
3.2.1 實現(xiàn)方法44
3.2.2 程序設(shè)計45
3.2.3 用Proteus軟件仿真45
3.2.4 用實驗板實驗46
3.2.5 I/O口功能介紹46
3.2.6 I/O口的結(jié)構(gòu)分析46
3.3 實例6:使用P3口流水點(diǎn)亮8位LED49
3.3.1 實現(xiàn)方法49
3.3.2 程序設(shè)計50
3.3.3 用Proteus軟件仿真51
3.3.4 用實驗板實驗51
3.4 實例7:通過對P3口地址的操作流水點(diǎn)亮8位LED51
3.4.1 實現(xiàn)方法51
3.4.2 程序設(shè)計52
3.4.3 用Proteus軟件仿真53
3.4.4 用實驗板實驗53
3.5 MCS51單片機(jī)存儲器的基本結(jié)構(gòu)53
3.5.1 程序存儲器53
3.5.2 數(shù)據(jù)存儲器53
3.6 單片機(jī)的復(fù)位電路55
習(xí)題與實驗55
第4章 單片機(jī)C語言開發(fā)基礎(chǔ)56
4.1 C語言源程序的結(jié)構(gòu)特點(diǎn)56
4.2 標(biāo)志符與關(guān)鍵字57
4.3 C語言的數(shù)據(jù)類型與運(yùn)算符59
4.3.1 數(shù)據(jù)類型59
4.3.2 運(yùn)算符62
4.3.3 實例8:用不同數(shù)據(jù)類型控制LED的閃爍65
4.3.4 實例9:用P0口、P1 口分別顯示加法和減法運(yùn)算結(jié)果68
4.3.5 實例10:用P0、P1口顯示乘法運(yùn)算結(jié)果70
4.3.6 實例11:用P1、P0口顯示除法運(yùn)算結(jié)果71
4.3.7 實例12:用自增運(yùn)算控制P0口8位LED的閃爍花樣73
4.3.8 實例13:用P0口顯示邏輯與運(yùn)算結(jié)果74
4.3.9 實例14:用P0口顯示條件運(yùn)算結(jié)果74
4.3.10 實例15:用P0口顯示按位異或運(yùn)算結(jié)果75
4.3.11 實例16:用P0顯示左移運(yùn)算結(jié)果76
4.3.12 實例17:萬能邏輯電路實驗77
4.3.13 實例18:用右移運(yùn)算流水點(diǎn)亮P1口8位LED78
4.4 C語言的語句79
4.4.1 概述79
4.4.2 控制語句80
4.4.3 實例19:用if語句控制P0口8位LED的點(diǎn)亮狀態(tài)84
4.4.4 實例20:用switch語句控制P0口8位LED的點(diǎn)亮狀態(tài)86
4.4.5 實例21:用for語句設(shè)計鳴笛報警程序88
4.4.6 實例22:用while語句控制P0口8位LED閃爍花樣92
4.4.7 實例23:用do-while語句控制P0口8位LED流水點(diǎn)亮93
4.5 C語言的數(shù)組95
4.5.1 數(shù)組的定義和引用95
4.5.2 實例24:用字符型數(shù)組控制P0口8位LED流水點(diǎn)亮97
4.5.3 實例25:用P0口顯示字符串常量98
4.6 C語言的指針99
4.6.1 指針的定義與引用100
4.6.2 實例26:用P0口顯示指針運(yùn)算結(jié)果102
4.6.3 實例27:用指針數(shù)組控制P0口8位LED流水點(diǎn)亮103
4.6.4 實例28:用數(shù)組的指針控制P0 口8 位LED流水點(diǎn)亮104
4.7 C語言的函數(shù)106
4.7.1 函數(shù)的定義與調(diào)用106
4.7.2 實例29:用P0 、P1口顯示整型函數(shù)返回值109
4.7.3 實例30:用有參數(shù)函數(shù)控制P0口8位LED流水速度111
4.7.4 實例31:用數(shù)組作為函數(shù)參數(shù)控制P0口8位LED流水點(diǎn)亮112
4.7.5 實例32:用指針作為函數(shù)參數(shù)控制P0口8位LED流水點(diǎn)亮113
4.7.6 實例33:用函數(shù)型指針控制P0口8位LED流水點(diǎn)亮115
4.7.7 實例34:用指針數(shù)組作為函數(shù)的參數(shù)顯示多個字符串116
4.7.8 實例35:字符函數(shù)ctype.h應(yīng)用舉例118
4.7.9 實例36:內(nèi)部函數(shù)intrins.h應(yīng)用舉例119
4.7.10 實例37:標(biāo)準(zhǔn)函數(shù)stdlib.h應(yīng)用舉例121
4.7.11 實例38:字符串函數(shù)string.h應(yīng)用舉例122
4.8 C語言的編譯預(yù)處理123
4.8.1 常用預(yù)處理命令介紹123
4.8.2 實例39:宏定義應(yīng)用舉例126
4.8.3 實例40:文件包含應(yīng)用舉例127
4.8.4 實例41:條件編譯應(yīng)用舉例128
習(xí)題與實驗129
第5章 單片機(jī)的定時器/計數(shù)器131
5.1 定時器/計數(shù)器的基本概念131
5.2 定時器/計數(shù)器的結(jié)構(gòu)及工作原理132
5.2.1 定時器/計數(shù)器的結(jié)構(gòu)133
5.2.2 定時器/計數(shù)器的工作原理133
5.3 定時器/計數(shù)器的控制134
5.3.1 定時器/計數(shù)器的方式控制寄存器(TMOD)134
5.3.2 定時器/計數(shù)器控制寄存器(TCON)134
5.3.3 定時器/計數(shù)器的4種工作方式135
5.3.4 定時器/計數(shù)器中定時/計數(shù)初值的計算138
5.4 定時器/計數(shù)器應(yīng)用舉例138
5.4.1 實例42:用定時器T0控制跑馬燈實現(xiàn)138
5.4.2 實例43:用定時器T1查詢方式控制報警器鳴笛實現(xiàn)140
習(xí)題與實驗142
第6章 單片機(jī)的中斷系統(tǒng)143
6.1 中斷系統(tǒng)的基本概念143
6.2 中斷系統(tǒng)的結(jié)構(gòu)及控制144
6.2.1 中斷系統(tǒng)的結(jié)構(gòu)144
6.2.2 中斷系統(tǒng)的控制145
6.3 中斷系統(tǒng)應(yīng)用舉例148
6.3.1 實例44:用定時器T0的中斷方式控制跑馬燈實現(xiàn)148
6.3.2 實例45:用定時器T1分式1控制控制報警器鳴笛實現(xiàn)149
6.3.3 實例46:用定時器T0的中斷方式控制PWM波實現(xiàn)151
6.3.4 實例47:用定時器T0的音樂播放器的實現(xiàn)154
6.3.5 實例48:用定時器T0的門控制位測量外部正脈沖寬度159
6.3.6 實例49:用外中斷 測量負(fù)跳變信號累計數(shù)161
習(xí)題與實驗163
第7章 串行通信技術(shù)164
7.1 串行通信的基本概念164
7.2 串行通信口的結(jié)構(gòu)166
7.3 串行通信口的控制166
7.3.1 串行口控制寄存器SCON167
7.3.2 電源控制寄存器PCON167
7.3.3 4種工作方式與波特率的設(shè)置168
7.4 串行通信口應(yīng)用舉例171
7.4.1 實例50:基于方式1的單工通信171
7.4.2 實例51:基于方式3的單工通信173
7.4.3 實例52:單片機(jī)向計算機(jī)發(fā)送數(shù)據(jù)176
7.4.4 實例53:計算機(jī)控制單片機(jī)LED顯示178
習(xí)題與實驗180
應(yīng) 用 篇
第8章 接口技術(shù)182
8.1 LED數(shù)碼管接口技術(shù)182
8.1.1 LED數(shù)碼管的原理和接口電路182
8.1.2 實例54:用LED數(shù)碼管顯示數(shù)字5184
8.1.3 實例55:用LED數(shù)碼管循環(huán)顯示數(shù)字0~9185
8.1.4 實例56:用數(shù)碼管慢速動態(tài)掃描顯示數(shù)字1234186
8.1.5 實例57:快速動態(tài)掃描顯示數(shù)字1234188
8.1.6 實例58:點(diǎn)陣LED動態(tài)顯示實現(xiàn)189
8.2 鍵盤接口技術(shù)191
8.2.1 獨(dú)立式鍵盤的工作原理192
8.2.2 實例59:無軟件消抖的獨(dú)立式鍵盤輸入實驗193
8.2.3 實例60:帶軟件消抖的獨(dú)立式鍵盤輸入實驗194
8.2.4 實例61:CPU控制的鍵盤掃描實驗195
8.2.5 實例62:定時器中斷控制的鍵盤掃描實驗200
8.2.6 實例63:一鍵多能實驗201
8.2.7 實例64:獨(dú)立式鍵盤控制步進(jìn)電動機(jī)實驗204
8.2.8 矩陣鍵盤的工作原理209
8.2.9 實例65:矩陣鍵盤按鍵值的數(shù)碼管顯示210
8.2.10 實例66:簡易電子琴設(shè)計214
8.3 字符型LCD接口技術(shù)220
8.3.1 1602字符型LCD簡介220
8.3.2 實例67:用LCD顯示字符A225
8.3.3 實例68:液晶時鐘設(shè)計230
習(xí)題與實驗231
第9章 新型串行接口芯片應(yīng)用232
9.1 I2C總線器件及其應(yīng)用實例232
9.1.1 I2C總線接口232
9.1.2 實例69:將按鍵次數(shù)寫入AT24C02,再讀出送LCD顯示235
9.1.3 實例70:對I2C總線上掛接兩個AT24C02的讀/寫操作236
9.1.4 實例71:將好人一生平安樂譜寫入AT24C02并播放238
9.2 單總線器件及其應(yīng)用實例239
9.2.1 單總線簡介239
9.2.2 實例72:DS18B20溫度檢測及其LCD顯示244
9.3 SPI總線接口芯片及其應(yīng)用實例245
9.3.1 SPI串行總線簡介245
9.3.2 實例73:將數(shù)據(jù)0xaa寫入X5045再讀出送P1口顯示248
9.3.3 實例74:將流水燈控制碼寫入X5045并讀出送P1口顯示250
9.3.4 實例75:對SPI總線上掛接的兩個X5045的讀/寫操作251
習(xí)題與實驗252
第10章 常用功能器件應(yīng)用舉例254
10.1 模/數(shù)(A/D)轉(zhuǎn)換器件254
10.1.1 A/D轉(zhuǎn)換基礎(chǔ)254
10.1.2 實例76:基于ADC0832的5V直流數(shù)字電壓表256
10.2 數(shù)/模(D/A)轉(zhuǎn)換器件258
10.2.1 D/A轉(zhuǎn)換基礎(chǔ)258
10.2.2 實例77:用DAC0832產(chǎn)生鋸齒波電壓260
10.3 紅外線遙控信號接收器件261
10.3.1 紅外線信號接收基礎(chǔ)261
10.3.2 實例78:用P1口顯示紅外遙控器的按鍵值263
10.3.3 實例79:用紅外線遙控器控制繼電器265
10.4 適時時鐘芯片266
10.4.1 常用適時時鐘芯片介紹267
10.4.2 實例80:基于DS1302的日歷時鐘269
習(xí)題與實驗271
綜合提高篇
第11章 綜合應(yīng)用實例274
11.1 實例81:中文字符的液晶顯示274
11.1.1 圖形點(diǎn)陣顯示器簡介274
11.1.2 仿真原理圖設(shè)計278
11.1.3 程序設(shè)計與仿真279
11.2 實例82:12位A/D轉(zhuǎn)換器TLC2543的使用284
11.2.1 TLC2543介紹284
11.2.2 仿真原理圖設(shè)計286
11.2.3 程序設(shè)計與仿真288