單片機C語言套用100例(第3版)

單片機C語言套用100例(第3版)

《單片機C語言套用100例(第3版)》是2017年8月電子工業出版社出版的圖書,作者是王會良、王東鋒、董冠強。

基本介紹

  • 中文名:單片機C語言套用100例(第3版)
  • 作者:王會良、王東鋒、董冠強
  • 出版時間:2017年8月
  • 出版社:電子工業出版社
  • 頁數:412 頁
  • ISBN:9787121323041
  • 定價:69.8 元
  • 開本:16 開
內容簡介,圖書目錄,

內容簡介

本書以MCS—51單片機為主體,從實際套用入手,結合大量實例循序漸進地講述51單片機C語言編程方法,以及51單片機的硬體結構和功能套用。全書分為基礎篇、套用篇和綜合提高篇。所有實例均採用仿真軟體Proteus仿真和實驗板實驗,使讀者真正做到“邊理論、邊實踐”,在實踐中逐步掌握單片機的硬體結構和開發方法。

圖書目錄

目 錄
基 礎 篇
第1章 單片機概述及實驗器材介紹 2
1.1 單片機概述 2
1.1.1 單片機的定義、分類與內部組成 2
1.1.2 單片機套用系統的結構及其工作過程 5
1.1.3 單片機的套用 6
1.2 單片機基礎知識 7
1.2.1 數制與數制間的轉換 7
1.2.2 單片機中數的表示方法及常用數制的對應關係 10
1.2.3 邏輯數據的表示 10
1.2.4 單片機中常用的基本術語 12
1.3 單片機入門的有效方法與途徑 12
1.4 學習單片機的基本條件 13
1.4.1 軟體條件 13
1.4.2 硬體條件 15
習題 16
第2章 單片機開發軟體及開發過程 17
2.1 仿真軟體Proteus的使用 17
2.1.1 Proteus的主要功能特點 17
2.1.2 實例1:功能感受—Proteus仿真單片機播放《渴望》主題曲 17
2.1.3 Proteus軟體的界面與操作介紹 19
2.1.4 實例2:Proteus仿真設計快速入門 21
2.2 Keil C51的使用 31
2.2.1 單片機最小系統 31
2.2.2 實例3:用Keil C51編寫點亮一個發光二極體的程式 31
2.3 程式燒錄器及燒錄軟體的使用 38
習題與實驗 38
第3章 逐步認識單片機基本結構 40
3.1 實例4:用單片機控制一個燈閃爍 40
3.1.1 實現方法 40
3.1.2 程式設計 40
3.1.3 用Proteus軟體仿真 41
3.1.4 延時程式分析 43
3.2 實例5:將 P1口狀態送入P0、P2和P3口 44
3.2.1 實現方法 44
3.2.2 程式設計 45
3.2.3 用Proteus軟體仿真 45
3.2.4 用實驗板實驗 46
3.2.5 I/O口功能介紹 46
3.2.6 I/O口的結構分析 46
3.3 實例6:使用P3口流水點亮8位LED 49
3.3.1 實現方法 49
3.3.2 程式設計 50
3.3.3 用Proteus軟體仿真 51
3.3.4 用實驗板實驗 51
3.4 實例7:通過對P3口地址的操作流水點亮8位LED 51
3.4.1 實現方法 51
3.4.2 程式設計 52
3.4.3 用Proteus軟體仿真 53
3.4.4 用實驗板實驗 53
3.5 MCS—51單片機存儲器的基本結構 53
3.5.2 數據存儲器 53
3.6 單片機的復位電路 55
習題與實驗 55
第4章 單片機C語言開發基礎 56
4.1 C語言源程式的結構特點 56
4.2 標誌符與關鍵字 57
4.3 C語言的數據類型與運算符 59
4.3.1 數據類型 59
4.3.2 運算符 62
4.3.3 實例8:用不同數據類型控制LED的閃爍 65
4.3.4 實例9:用P0口、P1 口分別顯示加法和減法運算結果 68
4.3.5 實例10:用P0、P1口顯示乘法運算結果 70
4.3.6 實例11:用P1、P0口顯示除法運算結果 71
4.3.7 實例12:用自增運算控制P0口8位LED的閃爍花樣 73
4.3.8 實例13:用P0口顯示邏輯“與”運算結果 74
4.3.9 實例14:用P0口顯示條件運算結果 74
4.3.10 實例15:用P0口顯示按位“異或”運算結果 75
4.3.11 實例16:用P0顯示左移運算結果 76
4.3.12 實例17:“萬能邏輯電路”實驗 77
4.3.13 實例18:用右移運算流水點亮P1口8位LED 78
4.4 C語言的語句 79
4.4.1 概述 79
4.4.2 控制語句 80
4.4.3 實例19:用if語句控制P0口8位LED的點亮狀態 84
4.4.4 實例20:用switch語句控制P0口8位LED的點亮狀態 86
4.4.5 實例21:用for語句設計鳴笛報警程式 88
4.4.6 實例22:用while語句控制P0口8位LED閃爍花樣 92
4.4.7 實例23:用do-while語句控制P0口8位LED流水點亮 93
4.5 C語言的數組 95
4.5.1 數組的定義和引用 95
4.5.2 實例24:用字元型數組控制P0口8位LED流水點亮 97
4.5.3 實例25:用P0口顯示字元串常量 98
4.6 C語言的指針 99
4.6.1 指針的定義與引用 100
4.6.2 實例26:用P0口顯示指針運算結果 102
4.6.3 實例27:用指針數組控制P0口8位LED流水點亮 103
4.6.4 實例28:用數組的指針控制P0 口8 位LED流水點亮 104
4.7 C語言的函式 106
4.7.1 函式的定義與調用 106
4.7.2 實例29:用P0 、P1口顯示整型函式返回值 109
4.7.3 實例30:用有參數函式控制P0口8位LED流水速度 111
4.7.4 實例31:用數組作為函式參數控制P0口8位LED流水點亮 112
4.7.5 實例32:用指針作為函式參數控制P0口8位LED流水點亮 113
4.7.6 實例33:用函式型指針控制P0口8位LED流水點亮 115
4.7.7 實例34:用指針數組作為函式的參數顯示多個字元串 116
4.7.8 實例35:字元函式ctype.h套用舉例 118
4.7.9 實例36:內部函式intrins.h套用舉例 119
4.7.10 實例37:標準函式stdlib.h套用舉例 121
4.7.11 實例38:字元串函式string.h套用舉例 122
4.8 C語言的編譯預處理 123
4.8.1 常用預處理命令介紹 123
4.8.2 實例39:宏定義套用舉例 126
4.8.3 實例40:檔案包含套用舉例 127
4.8.4 實例41:條件編譯套用舉例 128
習題與實驗 129
第5章 單片機的定時器/計數器 131
5.1 定時器/計數器的基本概念 131
5.2 定時器/計數器的結構及工作原理 132
5.2.1 定時器/計數器的結構 133
5.2.2 定時器/計數器的工作原理 133
5.3 定時器/計數器的控制 134
5.3.1 定時器/計數器的方式控制暫存器(TMOD) 134
5.3.2 定時器/計數器控制暫存器(TCON) 134
5.3.3 定時器/計數器的4種工作方式 135
5.3.4 定時器/計數器中定時/計數初值的計算 138
5.4 定時器/計數器套用舉例 138
5.4.1 實例42:用定時器T0控制跑馬燈實現 138
5.4.2 實例43:用定時器T1查詢方式控制報警器鳴笛實現 140
習題與實驗 142
第6章 單片機的中斷系統 143
6.1 中斷系統的基本概念 143
6.2 中斷系統的結構及控制 144
6.2.1 中斷系統的結構 144
6.2.2 中斷系統的控制 145
6.3 中斷系統套用舉例 148
6.3.1 實例44:用定時器T0的中斷方式控制跑馬燈實現 148
6.3.2 實例45:用定時器T1分式1控制控制報警器鳴笛實現 149
6.3.3 實例46:用定時器T0的中斷方式控制PWM波實現 151
6.3.4 實例47:用定時器T0的音樂播放器的實現 154
6.3.5 實例48:用定時器T0的門控制位測量外部正脈衝寬度 159
6.3.6 實例49:用外中斷 測量負跳變信號累計數 161
習題與實驗 163
第7章 串列通信技術 164
7.1 串列通信的基本概念 164
7.2 串列通信口的結構 166
7.3 串列通信口的控制 166
7.3.1 串列口控制暫存器SCON 167
7.3.2 電源控制暫存器PCON 167
7.3.3 4種工作方式與波特率的設定 168
7.4 串列通信口套用舉例 171
7.4.1 實例50:基於方式1的單工通信 171
7.4.2 實例51:基於方式3的單工通信 173
7.4.3 實例52:單片機向計算機傳送數據 176
7.4.4 實例53:計算機控制單片機LED顯示 178
習題與實驗 180
應 用 篇
第8章 接口技術 182
8.1 LED數碼管接口技術 182
8.1.1 LED數碼管的原理和接口電路 182
8.1.2 實例54:用LED數碼管顯示數字“5” 184
8.1.3 實例55:用LED數碼管循環顯示數字0~9 185
8.1.4 實例56:用數碼管慢速動態掃描顯示數字“1234” 186
8.1.5 實例57:快速動態掃描顯示數字“1234” 188
8.1.6 實例58:點陣LED動態顯示實現 189
8.2 鍵盤接口技術 191
8.2.1 獨立式鍵盤的工作原理 192
8.2.2 實例59:無軟體消抖的獨立式鍵盤輸入實驗 193
8.2.3 實例60:帶軟體消抖的獨立式鍵盤輸入實驗 194
8.2.4 實例61:CPU控制的鍵盤掃描實驗 195
8.2.5 實例62:定時器中斷控制的鍵盤掃描實驗 200
8.2.6 實例63:“一鍵多能”實驗 201
8.2.7 實例64:獨立式鍵盤控制步進電動機實驗 204
8.2.8 矩陣鍵盤的工作原理 209
8.2.9 實例65:矩陣鍵盤按鍵值的數碼管顯示 210
8.2.10 實例66:簡易電子琴設計 214
8.3 字元型LCD接口技術 220
8.3.1 1602字元型LCD簡介 220
8.3.2 實例67:用LCD顯示字元“A” 225
8.3.3 實例68:液晶時鐘設計 230
習題與實驗 231
第9章 新型串列接口晶片套用 232
9.1 I2C匯流排器件及其套用實例 232
9.1.1 I2C匯流排接口 232
9.1.2 實例69:將按鍵次數寫入AT24C02,再讀出送LCD顯示 235
9.1.3 實例70:對I2C匯流排上掛接兩個AT24C02的讀/寫操作 236
9.1.4 實例71:將“好人一生平安”樂譜寫入AT24C02並播放 238
9.2 單匯流排器件及其套用實例 239
9.2.1 單匯流排簡介 239
9.2.2 實例72:DS18B20溫度檢測及其LCD顯示 244
9.3 SPI匯流排接口晶片及其套用實例 245
9.3.1 SPI串列匯流排簡介 245
9.3.2 實例73:將數據“0xaa”寫入X5045再讀出送P1口顯示 248
9.3.3 實例74:將流水燈控制碼寫入X5045並讀出送P1口顯示 250
9.3.4 實例75:對SPI匯流排上掛接的兩個X5045的讀/寫操作 251
習題與實驗 252
第10章 常用功能器件套用舉例 254
10.1 模/數(A/D)轉換器件 254
10.1.1 A/D轉換基礎 254
10.1.2 實例76:基於ADC0832的5V直流數字電壓表 256
10.2 數/模(D/A)轉換器件 258
10.2.1 D/A轉換基礎 258
10.2.2 實例77:用DAC0832產生鋸齒波電壓 260
10.3 紅外線遙控信號接收器件 261
10.3.1 紅外線信號接收基礎 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
習題與實驗 271
綜合提高篇
第11章 綜合套用實例 274
11.1 實例81:中文字元的液晶顯示 274
11.1.1 圖形點陣顯示器簡介 274
11.1.2 仿真原理圖設計 278
11.1.3 程式設計與仿真 279
11.2 實例82:12位A/D轉換器TLC2543的使用 284
11.2.1 TLC2543介紹 284
11.2.2 仿真原理圖設計 286
11.2.3 程式設計與仿真 288
11.3 實例83:二線制串列接口感測器SHT11的使用 293
11.3.1 智慧型溫、濕度感測器SHT11介紹 293
11.3.2 仿真原理圖設計 295
11.3.3 程式設計與仿真 295
11.4 實例84:電壓型感測器的使用 302
11.4.1 FS4003感測器介紹 302
11.4.2 仿真原理圖設計 304
11.4.3 程式設計與仿真 305
11.5 實例85:RS—232型數字感測器的使用 310
11.5.1 FS4003感測器的串口通信協定介紹 310
11.5.2 仿真原理圖設計 310
11.5.3 程式設計與仿真 311
11.6 實例86:電流型感測器套用舉例 318
11.6.1 電流型感測器的使用基礎 318
11.6.2 仿真原理圖設計 319
11.6.3 程式設計與仿真 321
11.7 實例87:基於化學感測器的氧濃度檢測儀設計 323
11.7.1 R—17MED化學感測器簡介 323
11.7.2 硬體仿真電路設計 324
11.7.3 程式設計與仿真 325
11.8 實例88:單片機向RS—485 型感測器傳送讀取命令 327
11.8.1 RS—485通信簡介 328
11.8.2 TTL/RS—485轉換的仿真原理圖設計 329
11.8.3 程式設計與仿真 331
11.9 實例89:單片機從RS—485型感測器接收數據 333
11.9.1 RS—485感測器返回數據的格式 333
11.9.2 仿真原理圖設計 334
11.9.3 程式設計與仿真 334
11.10 實例90:用VB實現單片機和計算機的串列通信 337
11.10.1 開發背景 337
11.10.2 開發要求 337
11.10.3 Visual Basic 6.0 簡介 337
11.10.4 添加MSComm控制項與基本屬性設定 338
11.10.5 Visual Basic 6.0實現串列通信的過程 339
11.11 實例91:LabVIEW環境下串列通信編程 345
11.11.1 開發環境 345
11.11.2 上下位機程式設計 346
11.11.3 程式結果 353
11.12 實例92:手部握力評估儀設計 353
11.12.1 系統工作原理 353
11.12.2 仿真原理圖設計 354
11.12.3 程式設計與仿真 355
11.13 實例93:心率測量系統設計 359
11.13.1 系統工作原理 359
11.13.2 仿真原理圖設計 360
11.13.3 程式設計與仿真 361
11.14 實例94:基於鉑熱電阻的防火系統設計 367
11.14.1 系統的工作原理 367
11.14.2 仿真原理圖設計 368
11.14.3 程式設計與仿真 370
11.15 實例95:基於LabVIEW和Proteus的溫度控制仿真 372
11.15.1 系統工作原理 372
11.15.2 仿真原理圖設計 373
11.15.3 程式設計與仿真 376
11.16 實例96:K型熱電偶的冷端自動補償設計 381
11.16.1 系統的工作原理 381
11.16.2 仿真原理圖設計 382
11.16.3 程式設計與仿真 383
11.17 實例97:電動機測速表設計 385
11.17.1 系統的工作原理 385
11.17.2 仿真原理圖設計 386
11.17.3 程式設計與仿真 387
11.18 實例98:基於PWM的直流電動機調速系統設計 389
11.18.1 系統的工作原理 389
11.18.2 仿真原理圖設計 389
11.18.3 程式設計與仿真 390
11.19 實例99:熱敏印表機驅動程式設計 392
11.19.1 系統的工作原理 392
11.19.2 仿真原理圖設計 393
11.19.3 程式設計與仿真 393
11.20 實例100:航空發動機熱電偶信號模擬電壓源設計 395
11.20.1 系統的工作原理 395
11.20.2 電路原理圖設計 396
11.20.3 程式設計 396
參考文獻 399

相關詞條

熱門詞條

聯絡我們