目 錄
基 礎 篇
第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.1 程序存儲器 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查詢方式控製P2口8位LED閃爍 138
5.4.2 實例43:用定時器T1查詢方式控製單片機發齣1kHz音頻 140
習題與實驗 141
第6章 單片機的中斷係統 142
6.1 中斷係統的基本概念 142
6.2 中斷係統的結構及控製 143
6.2.1 中斷係統的結構 143
6.2.2 中斷係統的控製 144
6.3 中斷係統應用舉例 147
6.3.1 實例44:用定時器T0的模式1控製LED閃爍 147
6.3.2 實例45:用定時器T1模式1控製兩個LED以不同周期閃爍 148
6.3.3 實例46:用計數器T1的中斷方式控製發齣1kHz音頻 150
6.3.4 實例47:用定時器T0的模式0控製播放《好人一生平安》 151
6.3.5 實例48:用定時器T0的門控製位測量外部正脈衝寬度 156
6.3.6 實例49:用外中斷 測量負跳變信號纍計數 158
習題與實驗 160
第7章 串行通信技術 161
7.1 串行通信的基本概念 161
7.2 串行通信口的結構 163
7.3 串行通信口的控製 163
7.3.1 串行口控製寄存器SCON 164
7.3.2 電源控製寄存器PCON 164
7.3.3 4種工作方式與波特率的設置 165
7.4 串行通信口應用舉例 168
7.4.1 實例50:將方式0用於擴展並行輸齣控製流水燈 168
7.4.2 實例51:基於方式1的單工通信 170
7.4.3 實例52:基於方式3的單工通信 172
7.4.4 實例53:單片機嚮計算機發送數據 175
7.4.5 實例54:單片機接收計算機送齣的數據 177
習題與實驗 179
應 用 篇
第8章 接口技術 182
8.1 LED數碼管接口技術 182
8.1.1 LED數碼管的原理和接口電路 182
8.1.2 實例55:用LED數碼管顯示數字“5” 184
8.1.3 實例56:用LED數碼管循環顯示數字0~9 185
8.1.4 實例57:用數碼管慢速動態掃描顯示數字“1234” 186
8.1.5 實例58:快速動態掃描顯示數字“1234” 188
8.2 鍵盤接口技術 189
8.2.1 獨立式鍵盤的工作原理 190
8.2.2 實例59:無軟件消抖的獨立式鍵盤輸入實驗 191
8.2.3 實例60:帶軟件消抖的獨立式鍵盤輸入實驗 192
8.2.4 實例61:CPU控製的鍵盤掃描實驗 193
8.2.5 實例62:定時器中斷控製的鍵盤掃描實驗 198
8.2.6 實例63:“一鍵多能”實驗 199
8.2.7 實例64:獨立式鍵盤控製步進電動機實驗 202
8.2.8 矩陣鍵盤的工作原理 207
8.2.9 實例65:矩陣鍵盤按鍵值的數碼管顯示 208
8.2.10 實例66:簡易電子琴設計 212
8.3 字符型LCD接口技術 218
8.3.1 1602字符型LCD簡介 218
8.3.2 實例67:用LCD顯示字符“A” 223
8.3.3 實例68:液晶時鍾設計 228
習題與實驗 229
第9章 新型串行接口芯片應用 230
9.1 I2C總綫器件及其應用實例 230
9.1.1 I2C總綫接口 230
9.1.2 實例69:將按鍵次數寫入AT24C02,再讀齣送LCD顯示 233
9.1.3 實例70:對I2C總綫上掛接兩個AT24C02的讀/寫操作 234
9.1.4 實例71:將“好人一生平安”樂譜寫入AT24C02並播放 236
9.2 單總綫器件及其應用實例 237
9.2.1 單總綫簡介 237
9.2.2 實例72:DS18B20溫度檢測及其LCD顯示 242
9.3 SPI總綫接口芯片及其應用實例 243
9.3.1 SPI串行總綫簡介 243
9.3.2 實例73:將數據“0xaa”寫入X5045再讀齣送P1口顯示 246
9.3.3 實例74:將流水燈控製碼寫入X5045並讀齣送P1口顯示 248
9.3.4 實例75:對SPI總綫上掛接的兩個X5045的讀/寫操作 249
習題與實驗 250
第10章 常用功能器件應用舉例 252
10.1 模/數(A/D)轉換器件 252
10.1.1 A/D轉換基礎 252
10.1.2 實例76:基於ADC0832的5V直流數字電壓錶 254
10.2 數/模(D/A)轉換器件 256
10.2.1 D/A轉換基礎 256
10.2.2 實例77:用DAC0832産生鋸齒波電壓 258
10.3 紅外綫遙控信號接收器件 259
10.3.1 紅外綫信號接收基礎 259
10.3.2 實例78:用P1口顯示紅外遙控器的按鍵值 261
10.3.3 實例79:用紅外綫遙控器控製繼電器 263
10.4 適時時鍾芯片 264
10.4.1 常用適時時鍾芯片介紹 265
10.4.2 實例80:基於DS1302的日曆時鍾 267
習題與實驗 269
綜閤提高篇
第11章 綜閤應用實例 272
11.1 實例81:中文字符的液晶顯示 272
11.1.1 圖形點陣顯示器簡介 272
11.1.2 仿真原理圖設計 276
11.1.3 程序設計與仿真 277
11.2 實例82:12位A/D轉換器TLC2543的使用 282
11.2.1 TLC2543介紹 282
11.2.2 仿真原理圖設計 284
11.2.3 程序設計與仿真 286
11.3 實例83:二綫製串行接口傳感器SHT11的使用 291
11.3.1 智能溫、濕度傳感器SHT11介紹 291
11.3.2 仿真原理圖設計 293
11.3.3 程序設計與仿真 293
11.4 實例84:電壓型傳感器的使用 300
11.4.1 FS4003傳感器介紹 300
11.4.2 仿真原理圖設計 302
11.4.3 程序設計與仿真 303
11.5 實例85:RS—232型數字傳感器的使用 308
11.5.1 FS4003傳感器的串口通信協議介紹 308
11.5.2 仿真原理圖設計 308
11.5.3 程序設計與仿真 309
11.6 實例86:電流型傳感器應用舉例 316
11.6.1 電流型傳感器的使用基礎 316
11.6.2 仿真原理圖設計 317
11.6.3 程序設計與仿真 319
11.7 實例87:基於化學傳感器的氧濃度檢測儀設計 321
11.7.1 R—17MED化學傳感器簡介 321
11.7.2 硬件仿真電路設計 322
11.7.3 程序設計與仿真 323
11.8 實例88:單片機嚮RS—485 型傳感器發送讀取命令 325
11.8.1 RS—485通信簡介 326
11.8.2 TTL/RS—485轉換的仿真原理圖設計 327
11.8.3 程序設計與仿真 329
11.9 實例89:單片機從RS—485型傳感器接收數據 331
11.9.1 RS—485傳感器返迴數據的格式 331
11.9.2 仿真原理圖設計 332
11.9.3 程序設計與仿真 332
11.10 實例90:用VB實現單片機和計算機的串行通信 335
11.10.1 開發背景 335
11.10.2 開發要求 335
11.10.3 Visual Basic 6.0 簡介 335
11.10.4 添加MSComm控件與基本屬性設置 336
11.10.5 Visual Basic 6.0實現串行通信的過程 337
11.11 實例91:串/並轉換器在1602LCD顯示電路中的應用 343
11.11.1 串/並轉換器的工作原理 343
11.11.2 仿真原理圖設計 343
11.11.3 程序設計與仿真 343
11.12 實例92:滑油溫度記錄儀設計 347
11.12.1 係統的工作原理 347
11.12.2 仿真原理圖設計 347
11.12.3 程序設計與仿真 348
11.13 實例93:膠粘劑固化溫度監控係統設計 351
11.13.1 係統的工作原理 351
11.13.2 仿真原理圖設計 351
11.13.3 程序設計與仿真 351
11.14 實例94:基於鉑熱電阻的防火係統設計 354
11.14.1 係統的工作原理 354
11.14.2 仿真原理圖設計 355
11.14.3 程序設計與仿真 357
11.15 實例95:脈衝渦流檢測的變頻信號源設計 359
11.15.1 係統的工作原理 359
11.15.2 仿真原理圖設計 359
11.15.3 程序設計與仿真 361
11.16 實例96:K型熱電偶的冷端自動補償設計 363
11.16.1 係統的工作原理 364
11.16.2 仿真原理圖設計 364
11.16.3 程序設計與仿真 366
11.17 實例97:電動機測速錶設計 368
11.17.1 係統的工作原理 368
11.17.2 仿真原理圖設計 368
11.17.3 程序設計與仿真 369
11.18 實例98:基於PWM的直流電動機調速係統設計 371
11.18.1 係統的工作原理 372
11.18.2 仿真原理圖設計 372
11.18.3 程序設計與仿真 373
11.19 實例99:熱敏打印機驅動程序設計 375
11.19.1 係統的工作原理 375
11.19.2 仿真原理圖設計 375
11.19.3 程序設計與仿真 376
11.20 實例100:航空發動機熱電偶信號模擬電壓源設計 377
11.20.1 係統的工作原理 378
11.20.2 電路原理圖設計 378
11.20.3 程序設計 379
參考文獻 381
· · · · · · (
收起)