第1篇知識準(zhǔn)備篇
第1章單片機(jī)概述2
1.1什么是單片機(jī)2
1.2單片機(jī)的發(fā)展3
1.3單片機(jī)的特點4
1.4單片機(jī)的用途5
1.5如何學(xué)習(xí)單片機(jī)5
1.6練習(xí)題6
第2章開發(fā)準(zhǔn)備7
2.1開發(fā)環(huán)境7
2.1.1硬件連接7
2.1.2下載器驅(qū)動安裝8
2.1.3程序下載軟件安裝與使用12
2.1.4集成開發(fā)環(huán)境安裝與使用18
2.2開發(fā)流程23
2.2.1Keil C51工程創(chuàng)建及程序編譯23
2.2.2程序運行31
2.3開發(fā)語言35
2.3.1C51與標(biāo)準(zhǔn)C語言36
2.3.2C51的數(shù)據(jù)類型36
2.3.3C51常用頭文件39
2.4練習(xí)題39
第3章硬件基礎(chǔ)知識41
3.1LY51S開發(fā)板簡介41
3.2板載元器件42
3.2.1電子元器件42
3.2.2集成電路49
3.2.3接插件50
3.2.4導(dǎo)線51
3.3練習(xí)題51
第4章單片機(jī)基本原理52
4.1MCS51單片機(jī)基本特性52
4.2單片機(jī)內(nèi)部結(jié)構(gòu)53
4.3單片機(jī)外部引腳54
4.3.1單片機(jī)外部引腳圖54
4.3.2單片機(jī)引腳分類55
4.4單片機(jī)時序57
4.5單片機(jī)最小系統(tǒng)58
4.6單片機(jī)存儲器結(jié)構(gòu)62
4.6.1程序存儲器62
4.6.2數(shù)據(jù)存儲器63
4.7練習(xí)題68
第5章I/O端口70
5.1單片機(jī)的I/O端口70
5.1.1I/O端口概述70
5.1.2I/O端口基本原理71
5.1.3I/O端口基本操作72
5.2端口輸出控制——發(fā)光二極管74
5.2.1案例51:點亮一個發(fā)光二極管76
5.2.2案例52:發(fā)光二極管流水顯示80
5.2.3拓展項目:花樣流水燈83
5.3端口輸出控制——數(shù)碼管84
5.3.1數(shù)碼管結(jié)構(gòu)與顯示原理84
5.3.2數(shù)碼管靜態(tài)顯示驅(qū)動86
5.3.3案例53:獨立共陽數(shù)碼管循環(huán)顯示0~989
5.3.4數(shù)碼管動態(tài)顯示驅(qū)動90
5.3.5案例54:8位數(shù)碼管同時顯示0~793
5.3.6拓展項目:數(shù)碼管顯示動態(tài)數(shù)據(jù)96
5.4端口輸入控制——獨立按鍵96
5.4.1獨立按鍵的連接方式97
5.4.2獨立按鍵的檢測原理98
5.4.3按鍵去抖及按鍵處理流程99
5.4.4案例55:搶答器101
5.4.5拓展項目:獨立按鍵長按、短按效果102
5.5端口輸入控制——矩陣鍵盤103
5.5.1矩陣鍵盤的連接方式103
5.5.2矩陣鍵盤的檢測原理104
5.5.3案例56:矩陣鍵盤鍵號LED顯示105
5.5.4拓展項目:矩陣鍵盤密碼鎖110
5.6練習(xí)題111
第6章外部中斷113
6.1中斷系統(tǒng)概述113
6.1.1中斷原理113
6.1.2中斷的作用114
6.1.3中斷應(yīng)實現(xiàn)的功能114
6.1.4中斷相關(guān)概念115
6.2單片機(jī)中斷資源116
6.2.1中斷源及入口地址116
6.2.2中斷控制及設(shè)置117
6.3C51中斷處理函數(shù)的編寫119
6.4外部中斷編程實戰(zhàn)121
6.4.1案例61:獨立按鍵控制LED狀態(tài)轉(zhuǎn)換121
6.4.2拓展項目:按鍵改變流水燈的流水方向124
6.5練習(xí)題125
第7章定時/計數(shù)器127
7.1定時/計數(shù)器簡介127
7.2定時/計數(shù)器的結(jié)構(gòu)及相關(guān)寄存器127
7.2.1定時/計數(shù)器的結(jié)構(gòu)127
7.2.2定時/計數(shù)器的相關(guān)寄存器128
7.3定時/計數(shù)器的工作原理129
7.3.1定時功能129
7.3.2計數(shù)功能131
7.4定時/計數(shù)器的工作方式131
7.4.1方式0131
7.4.2方式1131
7.4.3方式2132
7.4.4方式3132
7.5定時/計數(shù)器編程實戰(zhàn)133
7.5.1定時/計數(shù)器的程序設(shè)計流程133
7.5.2案例71:按鍵10次翻轉(zhuǎn)LED狀態(tài) 133
7.5.3案例72:發(fā)光二極管定時閃爍135
7.5.4案例73:定時器產(chǎn)生任意占空比PWM139
7.5.5拓展項目:發(fā)光二極管定時流水顯示141
7.6練習(xí)題142
第8章串口通信144
8.1串口通信概述144
8.1.1通信的基本概念144
8.1.2串行通信的工作方式145
8.1.3串行通信的時鐘及傳輸速率145
8.1.4串行通信協(xié)議146
8.2串口通信接口電路原理148
8.351單片機(jī)串口結(jié)構(gòu)及相關(guān)寄存器151
8.3.1串口的結(jié)構(gòu)151
8.3.2串口的相關(guān)寄存器152
8.4串口的工作方式及波特率設(shè)置154
8.4.1方式0154
8.4.2方式1155
8.4.3方式2和方式3156
8.4.4波特率設(shè)置158
8.5串口應(yīng)用編程實戰(zhàn)159
8.5.1串口應(yīng)用的程序設(shè)計流程159
8.5.2案例81:串口擴(kuò)展并行輸出流水燈顯示160
8.5.3案例82:雙機(jī)通信單字符收發(fā)164
8.5.4拓展項目:字符串收發(fā)168
8.6練習(xí)題170
第3篇進(jìn)階功能篇
第9章繼電器173
9.1什么是繼電器173
9.2繼電器的結(jié)構(gòu)及工作原理174
9.3繼電器的驅(qū)動電路175
9.4繼電器編程實戰(zhàn)176
9.4.1繼電器的程序設(shè)計流程176
9.4.2案例91:繼電器狀態(tài)切換及LED顯示176
9.5練習(xí)題178
第10章蜂鳴器179
10.1什么是蜂鳴器179
10.2蜂鳴器的結(jié)構(gòu)原理179
10.3蜂鳴器的驅(qū)動電路180
10.4蜂鳴器編程實戰(zhàn)181
10.4.1蜂鳴器的程序設(shè)計流程181
10.4.2案例101:蜂鳴器模擬救護(hù)車聲音181
10.5練習(xí)題183
第11章步進(jìn)電機(jī)184
11.1什么是步進(jìn)電機(jī)184
11.1.1步進(jìn)電機(jī)簡介184
11.1.2步進(jìn)電機(jī)分類185
11.2步進(jìn)電機(jī)的硬件結(jié)構(gòu)186
11.2.1步進(jìn)電機(jī)硬件結(jié)構(gòu)186
11.2.2步進(jìn)電機(jī)術(shù)語解釋186
11.2.3步進(jìn)電機(jī)的轉(zhuǎn)動原理187
11.3步進(jìn)電機(jī)的驅(qū)動方式187
11.4步進(jìn)電機(jī)控制編程實戰(zhàn)189
11.4.1步進(jìn)電機(jī)的程序設(shè)計189
11.4.2案例111:電機(jī)正轉(zhuǎn)反轉(zhuǎn)190
11.4.3案例112:按鍵控制步進(jìn)電機(jī)正反轉(zhuǎn)192
11.5練習(xí)題193
第12章直流電機(jī)195
12.1什么是直流電機(jī)195
12.2直流電機(jī)的原理及分類195
12.2.1直流電機(jī)的原理195
12.2.2直流電機(jī)的分類197
12.3直流電機(jī)的驅(qū)動方式198
12.4直流電機(jī)編程實戰(zhàn)199
12.4.1案例121:直流電機(jī)按鍵控制199
12.4.2案例122:直流電機(jī)PWM調(diào)速201
12.5練習(xí)題204
第13章舵機(jī)205
13.1什么是舵機(jī)205
13.2舵機(jī)的工作原理206
13.3舵機(jī)的角度控制原理206
13.4舵機(jī)編程實戰(zhàn)207
13.4.1舵機(jī)的程序設(shè)計流程207
13.4.2案例131:按鍵調(diào)節(jié)舵機(jī)轉(zhuǎn)角207
13.5練習(xí)題210
第14章1602液晶211
14.1概述211
14.21602液晶的基本原理及控制方式212
14.2.11602液晶的引腳結(jié)構(gòu)212
14.2.21602液晶的顯示內(nèi)容213
14.2.31602液晶的控制方式214
14.31602液晶編程實戰(zhàn)216
14.3.11602液晶模塊的程序設(shè)計流程216
14.3.2案例141:1602液晶滾動顯示字符串217
14.4練習(xí)題221
第15章雙色點陣屏222
15.1雙色點陣的基本原理222
15.2雙色點陣的驅(qū)動芯片224
15.3雙色點陣的硬件連線225
15.4雙色點陣編程實戰(zhàn)225
15.4.1雙色點陣的控制流程225
15.4.2案例151:雙色點陣顯示特定圖形226
15.5練習(xí)題230
第16章模數(shù)/數(shù)模轉(zhuǎn)換231
16.1模數(shù)/數(shù)模轉(zhuǎn)換原理231
16.2ADC轉(zhuǎn)換類型及應(yīng)用232
16.3DAC轉(zhuǎn)換類型及應(yīng)用234
16.4練習(xí)題235
第17章紅外收發(fā)236
17.1紅外接收與編解碼定義236
17.2紅外接收原理237
17.3紅外發(fā)射原理238
17.4紅外收發(fā)編程實戰(zhàn)238
17.4.1紅外收發(fā)的程序設(shè)計思路238
17.4.2案例171:紅外解碼液晶屏顯示238
17.5練習(xí)題243
第4篇總線協(xié)議篇
第18章I2C總線與E2PROM(24C02)245
18.1I2C總線概述245
18.2I2C通信協(xié)議247
18.2.1I2C通信協(xié)議247
18.2.2單片機(jī)模擬I2C總線247
18.3E2PROM 24C02應(yīng)用概述248
18.3.124C02芯片簡介248
18.3.224C02硬件原理與連接248
18.3.324C02存儲結(jié)構(gòu)與尋址249
18.3.424C02讀/寫操作時序250
18.4PCF8591模擬采集與輸出251
18.4.1PCF8591芯片簡介251
18.4.2PCF8591硬件原理及連接252
18.4.3PCF8591尋址及功能選擇253
18.5I2C總線應(yīng)用編程實戰(zhàn)254
18.5.1I2C總線應(yīng)用程序設(shè)計流程254
18.5.2案例181:24C02記憶開機(jī)次數(shù)255
18.5.3案例182:PCF8591的一路AD數(shù)碼管顯示261
18.5.4案例183:PCF8591 DA輸出模擬263
18.6練習(xí)題265
第19章SPI協(xié)議267
19.1SPI總線協(xié)議267
19.1.1SPI簡介267
19.1.2SPI通信模式268
19.2DS1302時鐘芯片269
19.3DS1302的引腳結(jié)構(gòu)及相關(guān)寄存器270
19.3.1DS1302的引腳結(jié)構(gòu)270
19.3.2DS1302的寄存器設(shè)置271
19.4SPI協(xié)議應(yīng)用編程實戰(zhàn)273
19.4.1SPI協(xié)議應(yīng)用的程序設(shè)計流程273
19.4.2案例191:DS1302時鐘顯示273
19.5練習(xí)題278
第20章1Wire總線279
20.1概述279
20.2DS18B20數(shù)字溫度傳感器280
20.2.1DS18B20傳感器特性280
20.2.2DS18B20的引腳結(jié)構(gòu)281
20.2.3DS18B20的硬件連接281
20.2.4DS18B20的內(nèi)部結(jié)構(gòu)282
20.2.5DS18B20的工作原理284
20.2.6DS18B20的工作時序288
20.2.7DS18B20使用中注意事項290
20.31Wire總線應(yīng)用編程實戰(zhàn)291
20.3.1DS18B20模塊的程序設(shè)計流程291
20.3.2案例201:溫度采集液晶顯示291
20.4練習(xí)題294
第5篇綜合實戰(zhàn)篇
第21章計算器296
21.1硬件需求296
21.2設(shè)計思路296
21.3編程實戰(zhàn)298
21.4運行效果301
第22章串口測溫302
22.1硬件需求302
22.2設(shè)計思路302
22.3編程實戰(zhàn)302
22.4運行效果304
第23章99分鐘倒計時器306
23.1硬件需求306
23.2設(shè)計思路306
23.3編程實戰(zhàn)308
23.4運行效果312
附錄AASCII表314
附錄B進(jìn)制轉(zhuǎn)換表315
附錄CC51數(shù)據(jù)類型及運算符316
參考文獻(xiàn)318