單片機(jī)C語言應(yīng)用100例(第4版)
定 價(jià):98 元
- 作者:王會(huì)良 等
- 出版時(shí)間:2022/12/1
- ISBN:9787121445767
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP368.1;TP312.8
- 頁碼:420
- 紙張:
- 版次:01
- 開本:16開
本書在前3版的基礎(chǔ)上,以MCS—51單片機(jī)為主體,從實(shí)際應(yīng)用入手,結(jié)合大量實(shí)例循序漸進(jìn)地講述51單片機(jī)C語言編程方法,以及51單片機(jī)的硬件結(jié)構(gòu)和功能應(yīng)用。全書分為基礎(chǔ)篇、應(yīng)用篇和綜合提高篇。本書所有實(shí)例均采用仿真軟件Proteus仿真和實(shí)驗(yàn)板實(shí)驗(yàn),使讀者真正做到“邊理論、邊實(shí)踐”,在實(shí)踐中逐步掌握單片機(jī)的硬件結(jié)構(gòu)和開發(fā)方法。本書在編寫時(shí)力求通俗、易懂,硬件原理以“有用、夠用”為原則,內(nèi)容講解以“緊密結(jié)合實(shí)踐”為特色。本書特別適合單片機(jī)零起點(diǎn)的初學(xué)者使用,可作為高等院�?刂祁悓I(yè)學(xué)生、電子愛好者及各類工程技術(shù)人員的參考用書,也可作為高職、高專及中專院校的單片機(jī)課程教學(xué)用書。
王會(huì)良,男,1974年生,河南偃師人,河南科技大學(xué)副教授,工學(xué)博士,碩士研究生導(dǎo)師。主要研究方向?yàn)椋糊X輪數(shù)字化設(shè)計(jì)與智能制造技術(shù)、智能控制技術(shù)、數(shù)控機(jī)床與可靠性技術(shù)。兼職為洛陽市設(shè)備維修協(xié)會(huì)、洛陽市設(shè)備管理學(xué)會(huì)會(huì)員。 近年來,參與完成的著作或教材有4部,電子工業(yè)出版社出版的《單片機(jī)C語言應(yīng)用100例》第3版、《Protel DXP 2004應(yīng)用100例》、清華大學(xué)出版社出版的《質(zhì)量工程》、華中科技大學(xué)出版社出版的《工業(yè)機(jī)器人第三版》。
基 礎(chǔ) 篇
第1章 單片機(jī)概述及實(shí)驗(yàn)器材介紹 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ǔ)知識(shí) 7
1.2.1 數(shù)制與數(shù)制間的轉(zhuǎn)換 7
1.2.2 單片機(jī)中數(shù)的表示方法及常用數(shù)制的對(duì)應(yīng)關(guān)系 9
1.2.3 邏輯數(shù)據(jù)的表示 10
1.2.4 單片機(jī)中常用的基本術(shù)語 11
1.3 單片機(jī)入門的有效方法與途徑 12
1.4 學(xué)習(xí)單片機(jī)的基本條件 12
1.4.1 軟件條件 13
1.4.2 硬件條件 14
習(xí)題 15
第2章 單片機(jī)開發(fā)軟件及開發(fā)過程 16
2.1 仿真軟件Proteus的使用 16
2.1.1 Proteus的主要功能特點(diǎn) 16
2.1.2 實(shí)例1:功能感受—利用Proteus仿真單片機(jī)播放《渴望》主題曲 16
2.1.3 Proteus軟件的界面與操作介紹 17
2.1.4 實(shí)例2:Proteus仿真設(shè)計(jì)快速入門 20
2.2 Keil C51的使用 30
2.2.1 單片機(jī)最小系統(tǒng) 30
2.2.2 實(shí)例3:用Keil C51編寫點(diǎn)亮一個(gè)發(fā)光二極管的程序 30
2.3 程序燒錄器及燒錄軟件的使用 37
習(xí)題與實(shí)驗(yàn) 37
第3章 逐步認(rèn)識(shí)單片機(jī)基本結(jié)構(gòu) 39
3.1 實(shí)例4:用單片機(jī)控制一個(gè)燈閃爍 39
3.1.1 實(shí)現(xiàn)方法 39
3.1.2 程序設(shè)計(jì) 39
3.1.3 用Proteus軟件仿真 40
3.1.4 延時(shí)程序分析 42
3.2 實(shí)例5:將 P1口狀態(tài)送入P0、P2和P3口 43
3.2.1 實(shí)現(xiàn)方法 43
3.2.2 程序設(shè)計(jì) 44
3.2.3 用Proteus軟件仿真 44
3.2.4 用實(shí)驗(yàn)板實(shí)驗(yàn) 45
3.2.5 I/O口功能介紹 45
3.2.6 I/O口的結(jié)構(gòu)分析 45
3.3 實(shí)例6:使用P3口流水點(diǎn)亮8位LED 48
3.3.1 實(shí)現(xiàn)方法 48
3.3.2 程序設(shè)計(jì) 49
3.3.3 用Proteus軟件仿真 50
3.3.4 用實(shí)驗(yàn)板實(shí)驗(yàn) 50
3.4 實(shí)例7:通過對(duì)P3口地址的操作流水點(diǎn)亮8位LED 50
3.4.1 實(shí)現(xiàn)方法 50
3.4.2 程序設(shè)計(jì) 51
3.4.3 用Proteus軟件仿真 52
3.4.4 用實(shí)驗(yàn)板實(shí)驗(yàn) 52
3.5 MCS—51單片機(jī)存儲(chǔ)器的基本結(jié)構(gòu) 52
3.5.1 程序存儲(chǔ)器 52
3.5.2 數(shù)據(jù)存儲(chǔ)器 52
3.6 單片機(jī)的復(fù)位電路 54
習(xí)題與實(shí)驗(yàn) 54
第4章 單片機(jī)C語言開發(fā)基礎(chǔ) 55
4.1 C語言源程序的結(jié)構(gòu)特點(diǎn) 55
4.2 標(biāo)志符與關(guān)鍵字 56
4.3 C語言的數(shù)據(jù)類型與運(yùn)算符 58
4.3.1 數(shù)據(jù)類型 58
4.3.2 運(yùn)算符 61
4.3.3 實(shí)例8:用不同數(shù)據(jù)類型控制LED的閃爍 64
4.3.4 實(shí)例9:用P0口、P1 口分別顯示加法和減法運(yùn)算結(jié)果 67
4.3.5 實(shí)例10:用P0口、P1口顯示乘法運(yùn)算結(jié)果 69
4.3.6 實(shí)例11:用P1口、P0口顯示除法運(yùn)算結(jié)果 70
4.3.7 實(shí)例12:用自增運(yùn)算控制P0口8位LED的閃爍花樣 72
4.3.8 實(shí)例13:用P0口顯示邏輯“與”運(yùn)算結(jié)果 73
4.3.9 實(shí)例14:用P0口顯示條件運(yùn)算結(jié)果 73
4.3.10 實(shí)例15:用P0口顯示按位“異或”運(yùn)算結(jié)果 74
4.3.11 實(shí)例16:用P0顯示左移運(yùn)算結(jié)果 75
4.3.12 實(shí)例17:“萬能邏輯電路”實(shí)驗(yàn) 76
4.3.13 實(shí)例18:用右移運(yùn)算流水點(diǎn)亮P1口8位LED 77
4.4 C語言的語句 78
4.4.1 概述 78
4.4.2 控制語句 79
4.4.3 實(shí)例19:用if語句控制P0口8位LED的點(diǎn)亮狀態(tài) 83
4.4.4 實(shí)例20:用switch語句控制P0口8位LED的點(diǎn)亮狀態(tài) 85
4.4.5 實(shí)例21:用for語句設(shè)計(jì)鳴笛報(bào)警程序 87
4.4.6 實(shí)例22:用while語句控制P0口8位LED閃爍花樣 91
4.4.7 實(shí)例23:用do-while語句控制P0口8位LED流水點(diǎn)亮 92
4.5 C語言的數(shù)組 94
4.5.1 數(shù)組的定義和引用 94
4.5.2 實(shí)例24:用字符型數(shù)組控制P0口8位LED流水點(diǎn)亮 96
4.5.3 實(shí)例25:用P0口顯示字符串常量 97
4.6 C語言的指針 98
4.6.1 指針的定義與引用 99
4.6.2 實(shí)例26:用P0口顯示指針運(yùn)算結(jié)果 101
4.6.3 實(shí)例27:用指針數(shù)組控制P0口8位LED流水點(diǎn)亮 102
4.6.4 實(shí)例28:用數(shù)組的指針控制P0 口8 位LED流水點(diǎn)亮 103
4.7 C語言的函數(shù) 105
4.7.1 函數(shù)的定義與調(diào)用 105
4.7.2 實(shí)例29:用P0口、P1口顯示整型函數(shù)返回值 108
4.7.3 實(shí)例30:用有參數(shù)函數(shù)控制P0口8位LED流水速度 110
4.7.4 實(shí)例31:用數(shù)組作為函數(shù)參數(shù)控制P0口8位LED流水點(diǎn)亮 111
4.7.5 實(shí)例32:用指針作為函數(shù)參數(shù)控制P0口8位LED流水點(diǎn)亮 112
4.7.6 實(shí)例33:用函數(shù)型指針控制P0口8位LED流水點(diǎn)亮 114
4.7.7 實(shí)例34:用指針數(shù)組作為函數(shù)的參數(shù)顯示多個(gè)字符串 115
4.7.8 實(shí)例35:字符函數(shù)ctype.h應(yīng)用舉例 117
4.7.9 實(shí)例36:內(nèi)部函數(shù)intrins.h應(yīng)用舉例 118
4.7.10 實(shí)例37:標(biāo)準(zhǔn)函數(shù)stdlib.h應(yīng)用舉例 120
4.7.11 實(shí)例38:字符串函數(shù)string.h應(yīng)用舉例 121
4.8 C語言的編譯預(yù)處理 122
4.8.1 常用預(yù)處理命令介紹 122
4.8.2 實(shí)例39:宏定義應(yīng)用舉例 124
4.8.3 實(shí)例40:文件包含應(yīng)用舉例 126
4.8.4 實(shí)例41:條件編譯應(yīng)用舉例 127
習(xí)題與實(shí)驗(yàn) 128
第5章 單片機(jī)的定時(shí)器/計(jì)數(shù)器 130
5.1 定時(shí)器/計(jì)數(shù)器的基本概念 130
5.2 定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)及工作原理 131
5.2.1 定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu) 132
5.2.2 定時(shí)器/計(jì)數(shù)器的工作原理 132
5.3 定時(shí)器/計(jì)數(shù)器的控制 133
5.3.1 定時(shí)器/計(jì)數(shù)器的方式控制寄存器(TMOD) 133
5.3.2 定時(shí)器/計(jì)數(shù)器控制寄存器(TCON) 133
5.3.3 定時(shí)器/計(jì)數(shù)器的4種工作方式 134
5.3.4 定時(shí)器/計(jì)數(shù)器中定時(shí)/計(jì)數(shù)初值的計(jì)算 137
5.4 定時(shí)器/計(jì)數(shù)器應(yīng)用舉例 137
5.4.1 實(shí)例42:用定時(shí)器T0控制跑馬燈實(shí)現(xiàn) 137
5.4.2 實(shí)例43:用定時(shí)器T1的查詢方式控制報(bào)警器鳴笛實(shí)現(xiàn) 139
習(xí)題與實(shí)驗(yàn) 141
第6章 單片機(jī)的中斷系統(tǒng) 142
6.1 中斷系統(tǒng)的基本概念 142
6.2 中斷系統(tǒng)的結(jié)構(gòu)及控制 143
6.2.1 中斷系統(tǒng)的結(jié)構(gòu) 143
6.2.2 中斷系統(tǒng)的控制 144
6.3 中斷系統(tǒng)應(yīng)用舉例 147
6.3.1 實(shí)例44:用定時(shí)器T0的中斷方式控制跑馬燈實(shí)現(xiàn) 147
6.3.2 實(shí)例45:煙霧報(bào)警器設(shè)計(jì)與制作 148
6.3.3 實(shí)例46:用定時(shí)器T0的中斷方式控制PWM波模擬舵機(jī)轉(zhuǎn)動(dòng) 152
6.3.4 實(shí)例47:用定時(shí)器T0實(shí)現(xiàn)音樂播放器功能 155
6.3.5 實(shí)例48:用定時(shí)器T0的門控制位測(cè)量外部正脈沖寬度 160
6.3.6 實(shí)例49:用外中斷 測(cè)量負(fù)跳變信號(hào)累計(jì)數(shù) 162
習(xí)題與實(shí)驗(yàn) 164
第7章 串行通信技術(shù) 165
7.1 串行通信的基本概念 165
7.2 串行通信口的結(jié)構(gòu) 167
7.3 串行通信口的控制 167
7.3.1 串行口控制寄存器SCON 168
7.3.2 電源控制寄存器PCON 168
7.3.3 4種工作方式與波特率的設(shè)置 169
7.4 串行通信口應(yīng)用舉例 172
7.4.1 實(shí)例50:基于方式1的單工通信 172
7.4.2 實(shí)例51:基于方式3的單工通信 174
7.4.3 實(shí)例52:?jiǎn)纹瑱C(jī)使用print函數(shù)向計(jì)算機(jī)發(fā)送數(shù)據(jù) 177
7.4.4 實(shí)例53:計(jì)算機(jī)控制單片機(jī)LED顯示 179
習(xí)題與實(shí)驗(yàn) 181
應(yīng) 用 篇
第8章 接口技術(shù) 184
8.1 LED數(shù)碼管接口技術(shù) 184
8.1.1 LED數(shù)碼管的原理和接口電路 184
8.1.2 實(shí)例54:用LED數(shù)碼管循環(huán)顯示數(shù)字0~9 185
8.1.3 實(shí)例55:用三八譯碼器控制數(shù)碼管慢速動(dòng)態(tài)掃描顯示數(shù)字 187
8.1.4 實(shí)例56:交通信號(hào)的處理與控制 189
8.1.5 實(shí)例57:超聲波測(cè)距-數(shù)碼管顯示 192
8.1.6 實(shí)例58:點(diǎn)陣LED動(dòng)態(tài)顯示實(shí)現(xiàn) 194
8.2 鍵盤接口技術(shù) 196
8.2.1 獨(dú)立式鍵盤的工作原理 196
8.2.2 實(shí)例59:無軟件消抖的獨(dú)立式鍵盤輸入實(shí)驗(yàn) 197
8.2.3 實(shí)例60:簡(jiǎn)易門鈴設(shè)計(jì) 199
8.2.4 實(shí)例61:簡(jiǎn)易密碼鎖設(shè)計(jì) 202
8.2.5 實(shí)例62:定時(shí)器中斷控制的鍵盤掃描實(shí)驗(yàn) 206
8.2.6 實(shí)例63:“一鍵多能”實(shí)驗(yàn) 207
8.2.7 實(shí)例64:獨(dú)立式鍵盤控制步進(jìn)電動(dòng)機(jī)實(shí)驗(yàn) 210
8.2.8 矩陣鍵盤的工作原理 215
8.2.9 實(shí)例65:簡(jiǎn)易計(jì)算器設(shè)計(jì) 216
8.2.10 實(shí)例66:簡(jiǎn)易電子琴設(shè)計(jì) 220
8.3 字符型LCD接口技術(shù) 226
8.3.1 1602字符型LCD簡(jiǎn)介 226
8.3.2 實(shí)例67:用LCD顯示字符“A” 231
8.3.3 實(shí)例68:數(shù)字秒表設(shè)計(jì) 236
習(xí)題與實(shí)驗(yàn) 237
第9章 新型串行接口芯片應(yīng)用 238
9.1 I2C總線器件及其應(yīng)用實(shí)例 238
9.1.1 I2C總線接口 238
9.1.2 實(shí)例69:將按鍵次數(shù)寫入AT24C02,再讀出后送LCD顯示 241
9.1.3 實(shí)例70:對(duì)I2C總線上掛接兩個(gè)AT24C02的讀/寫操作 242
9.2 單總線器件及其應(yīng)用實(shí)例 244
9.2.1 單總線簡(jiǎn)介 244
9.2.2 實(shí)例71:DS18B20溫度檢測(cè)及其LCD顯示 248
9.2.3 單總線溫、濕度傳感器DHT11介紹 250
9.2.4 實(shí)例72:DHT11溫度檢測(cè)及其LCD顯示 251
9.3 SPI總線接口芯片及其應(yīng)用實(shí)例 254
9.3.1 SPI串行總線簡(jiǎn)介 254
9.3.2 實(shí)例73:將數(shù)據(jù)“0xaa”寫入X5045再讀出后送P1口顯示 257
9.3.3 實(shí)例74:將流水燈控制碼寫入X5045并讀出后送P1口顯示 259
9.3.4 實(shí)例75:對(duì)SPI總線上掛接的兩個(gè)X5045的讀/寫操作 260
習(xí)題與實(shí)驗(yàn) 261
第10章 常用功能器件應(yīng)用舉例 263
10.1 模/數(shù)(A/D)轉(zhuǎn)換器件 263
10.1.1 A/D轉(zhuǎn)換基礎(chǔ) 263
10.1.2 實(shí)例76:基于ADC0832的5V直流數(shù)字電壓表 265
10.2 數(shù)/模(D/A)轉(zhuǎn)換器件 267
10.2.1 D/A轉(zhuǎn)換基礎(chǔ) 267
10.2.2 實(shí)例77:用DAC0832產(chǎn)生鋸齒波電壓 269
10.3 紅外線遙控信號(hào)接收器件 270
10.3.1 紅外線信號(hào)接收基礎(chǔ) 270
10.3.2 實(shí)例78:用P1口顯示紅外遙控器的按鍵值 272
10.3.3 實(shí)例79:用紅外線遙控器控制繼電器 274
10.4 適時(shí)時(shí)鐘芯片 275
10.4.1 常用適時(shí)時(shí)鐘芯片介紹 276
10.4.2 實(shí)例80:基于DS1302的日歷時(shí)鐘 278
習(xí)題與實(shí)驗(yàn) 280
綜合提高篇
第11章 綜合應(yīng)用實(shí)例 282
11.1 實(shí)例81:中文字符的液晶顯示 282
11.1.1 圖形點(diǎn)陣顯示器簡(jiǎn)介 282
11.1.2 仿真原理圖設(shè)計(jì) 286
11.1.3 程序設(shè)計(jì)與仿真 287
11.2 實(shí)例82:12位A/D轉(zhuǎn)換器TLC2543的使用 292
11.2.1 TLC2543介紹 292
11.2.2 仿真原理圖設(shè)計(jì) 294
11.2.3 程序設(shè)計(jì)與仿真 296
11.3 實(shí)例83:ASC712電流傳感器的使用 301
11.3.1 ASC712電流傳感器介紹 301
11.3.2 仿真原理圖設(shè)計(jì) 302
11.3.3 程序設(shè)計(jì)與仿真 302
11.4 實(shí)例84:電壓型傳感器的使用 305
11.4.1 FS4003傳感器介紹 305
11.4.2 仿真原理圖設(shè)計(jì) 307
11.4.3 程序設(shè)計(jì)與仿真 308
11.5 實(shí)例85:RS—232型數(shù)字傳感器的使用 313
11.5.1 FS4003傳感器的串口通信協(xié)議介紹 313
11.5.2 仿真原理圖設(shè)計(jì) 313
11.5.3 程序設(shè)計(jì)與仿真 314
11.6 實(shí)例86:電流型傳感器應(yīng)用舉例 321
11.6.1 電流型傳感器的使用基礎(chǔ) 321
11.6.2 仿真原理圖設(shè)計(jì) 322
11.6.3 程序設(shè)計(jì)與仿真 324
11.7 實(shí)例87:基于化學(xué)傳感器的氧濃度檢測(cè)儀設(shè)計(jì) 326
11.7.1 R—17MED化學(xué)傳感器簡(jiǎn)介 326
11.7.2 硬件仿真電路設(shè)計(jì) 327
11.7.3 程序設(shè)計(jì)與仿真 328
11.8 實(shí)例88:?jiǎn)纹瑱C(jī)向RS—485型傳感器發(fā)送讀取命令 330
11.8.1 RS—485通信簡(jiǎn)介 331
11.8.2 TTL/RS—485轉(zhuǎn)換的仿真原理圖設(shè)計(jì) 332
11.8.3 程序設(shè)計(jì)與仿真 334
11.9 實(shí)例89:?jiǎn)纹瑱C(jī)從RS—485型傳感器接收數(shù)據(jù) 336
11.9.1 RS—485傳感器返回?cái)?shù)據(jù)的格式 336
11.9.2 仿真原理圖設(shè)計(jì) 337
11.9.3 程序設(shè)計(jì)與仿真 337
11.10 實(shí)例90:用VB實(shí)現(xiàn)單片機(jī)和計(jì)算機(jī)的串行通信 340
11.10.1 開發(fā)背景 340
11.10.2 開發(fā)要求 340
11.10.3 Visual Basic 6.0 簡(jiǎn)介 340
11.10.4 添加MSComm控件與基本屬性設(shè)置 341
11.10.5 Visual Basic 6.0實(shí)現(xiàn)串行通信的過程 342
11.11 實(shí)例91:LabVIEW環(huán)境下串行通信編程 348
11.11.1 開發(fā)環(huán)境 348
11.11.2 上下位機(jī)程序設(shè)計(jì) 349
11.11.3 程序結(jié)果 356
11.12 實(shí)例92:手部握力評(píng)估儀設(shè)計(jì) 356
11.12.1 系統(tǒng)工作原理 356
11.12.2 仿真原理圖設(shè)計(jì) 357
11.12.3 程序設(shè)計(jì)與仿真 358
11.13 實(shí)例93:心率測(cè)量系統(tǒng)設(shè)計(jì) 362
11.13.1 系統(tǒng)工作原理 362
11.13.2 仿真原理圖設(shè)計(jì) 363
11.13.3 程序設(shè)計(jì)與仿真 364
11.14 實(shí)例94:基于鉑熱電阻的防火系統(tǒng)設(shè)計(jì) 370
11.14.1 系統(tǒng)的工作原理 370
11.14.2 仿真原理圖設(shè)計(jì) 371
11.14.3 程序設(shè)計(jì)與仿真 373
11.15 實(shí)例95:基于LabVIEW和Proteus的溫度控制仿真 375
11.15.1 系統(tǒng)工作原理 375
11.15.2 仿真原理圖設(shè)計(jì) 376
11.15.3 程序設(shè)計(jì)與仿真 379
11.16 實(shí)例96:K型熱電偶的冷端自動(dòng)補(bǔ)償設(shè)計(jì) 384
11.16.1 系統(tǒng)工作原理 384
11.16.2 仿真原理圖設(shè)計(jì) 385
11.16.3 程序設(shè)計(jì)與仿真 386
11.17 實(shí)例97:電動(dòng)機(jī)測(cè)速表設(shè)計(jì) 388
11.17.1 系統(tǒng)工作原理 388
11.17.2 仿真原理圖設(shè)計(jì) 389
11.17.3 程序設(shè)計(jì)與仿真 390
11.18 實(shí)例98:基于PWM的直流電動(dòng)機(jī)調(diào)速系統(tǒng)設(shè)計(jì) 392
11.18.1 系統(tǒng)工作原理 392
11.18.2 仿真原理圖設(shè)計(jì) 392
11.18.3 程序設(shè)計(jì)與仿真 393
11.19 實(shí)例99:基于L298N的可調(diào)速四驅(qū)小車設(shè)計(jì) 395
11.19.1 系統(tǒng)工作原理 395
11.19.2 仿真原理圖設(shè)計(jì) 396
11.19.3 程序設(shè)計(jì) 396
11.20 實(shí)例100:航空發(fā)動(dòng)機(jī)熱電偶信號(hào)模擬電壓源設(shè)計(jì) 401
11.20.1 系統(tǒng)工作原理 401
11.20.2 仿真原理圖設(shè)計(jì) 401
11.20.3 程序設(shè)計(jì) 402
參考文獻(xiàn) 405