本書通過大量實(shí)例和采用程序逐行解說的方式介紹51單片機(jī)和C語言編程。全書主要內(nèi)容有單片機(jī)快速入門、數(shù)制與C51語言基礎(chǔ)、51單片機(jī)編程軟件的使用、單片機(jī)驅(qū)動(dòng)發(fā)光二極管的電路及編程、單片機(jī)驅(qū)動(dòng)LED數(shù)碼管的電路及編程、中斷功能的使用及編程、定時(shí)器/計(jì)數(shù)器的使用及編程、按鍵電路及編程、雙色LED點(diǎn)陣的使用及編程、液晶顯示屏的使用及編程、步進(jìn)電機(jī)的使用及編程、單片機(jī)的串行通信及編程、模擬I2C總線通信及編程、A/D(模/數(shù))與D/A(數(shù)/模)轉(zhuǎn)換電路及編程、51單片機(jī)的硬件系統(tǒng)、單片機(jī)開發(fā)常用電子元器件。
本書內(nèi)容由淺入深、語言通俗易懂,并且內(nèi)容結(jié)構(gòu)安排符合學(xué)習(xí)認(rèn)知規(guī)律,適合作為初學(xué)者學(xué)習(xí)51單片機(jī)C語言編程的自學(xué)圖書,也適合作為職業(yè)院校電類專業(yè)的單片機(jī)教材使用。
第1章單片機(jī)快速入門 1
1.1 單片機(jī)簡介 / 1
1.1.1 什么是單片機(jī) / 1
1.1.2 單片機(jī)應(yīng)用系統(tǒng)的組成及實(shí)例說明 / 2
1.1.3 單片機(jī)的分類 / 3
1.1.4 單片機(jī)的應(yīng)用領(lǐng)域 / 4
1.2 單片機(jī)應(yīng)用系統(tǒng)開發(fā)實(shí)例 / 4
1.2.1 選擇單片機(jī)的型號(hào) / 4
1.2.2 設(shè)計(jì)單片機(jī)電路原理圖 / 5
1.2.3 制作單片機(jī)電路 / 6
1.2.4 用編程軟件編寫單片機(jī)控制程序 / 7
1.2.5 計(jì)算機(jī)、下載(燒錄)器和單片機(jī)的連接 / 10
1.2.6 用燒錄軟件將程序?qū)懭雴纹瑱C(jī) / 13
1.2.7 單片機(jī)電路的通電與測試 / 16
第2章數(shù)制與C51語言基礎(chǔ) 18
2.1 數(shù)制與數(shù)制的轉(zhuǎn)換 / 18
2.1.1 十進(jìn)制數(shù) / 18
2.1.2 二進(jìn)制數(shù) / 18
2.1.3 十六進(jìn)制數(shù) / 20
2.1.4 二進(jìn)制數(shù)與十進(jìn)制數(shù)的轉(zhuǎn)換 / 20
2.1.5 二進(jìn)制數(shù)與十六進(jìn)制數(shù)的轉(zhuǎn)換 / 20
2.1.6 單片機(jī)的數(shù)的表示及運(yùn)算 / 21
2.2 C51語言基礎(chǔ) / 23
2.2.1 常量 / 23
2.2.2 變量 / 24
2.2.3 運(yùn)算符 / 24
2.2.4 關(guān)鍵字 / 27
2.2.5 數(shù)組 / 28
2.2.6 循環(huán)語句(while、do while、for語句) / 29
2.2.7 選擇語句(if、switch…case語句) / 30
第3章51單片機(jī)編程軟件的使用 33
3.1 Keil C51軟件的安裝 / 33
3.1.1 Keil C51軟件的版本及獲取 / 33
3.1.2 Keil C51軟件的安裝 / 33
3.2 程序的編寫與編譯 / 35
3.2.1 啟動(dòng)Keil C51軟件并新建工程文件 / 35
3.2.2 新建源程序文件并與工程關(guān)聯(lián)起來 / 38
3.2.3 編寫程序 / 40
3.2.4 編譯程序 / 42
3.3 程序的仿真與調(diào)試 / 45
3.3.1 編寫或打開程序 / 45
3.3.2 仿真設(shè)置 / 46
3.3.3 編譯程序 / 47
3.3.4 仿真調(diào)試程序 / 48
第4章單片機(jī)驅(qū)動(dòng)發(fā)光二極管的電路及編程 52
4.1 LED(發(fā)光二極管) / 52
4.1.1 外形與符號(hào) / 52
4.1.2 性質(zhì) / 52
4.1.3 檢測 / 53
4.1.4 限流電阻的阻值計(jì)算 / 53
4.2 單片機(jī)點(diǎn)亮單個(gè)LED的電路及程序詳解 / 53
4.2.1 單片機(jī)點(diǎn)亮單個(gè)LED的電路 / 53
4.2.2 采用位操作方式編程點(diǎn)亮單個(gè)LED的程序及詳解 / 54
4.2.3 采用字節(jié)操作方式編程點(diǎn)亮單個(gè)LED的程序及詳解 / 55
4.2.4 單個(gè)LED以固定頻率閃爍發(fā)光的程序及詳解 / 56
4.2.5 單個(gè)LED以不同頻率閃爍發(fā)光的程序及詳解 / 58
4.3 單片機(jī)點(diǎn)亮多個(gè)LED的電路及程序詳解 / 59
4.3.1 單片機(jī)點(diǎn)亮多個(gè)LED的電路 / 59
4.3.2 采用位操作方式編程點(diǎn)亮多個(gè)LED的程序及詳解 / 59
4.3.3 采用字節(jié)操作方式編程點(diǎn)亮多個(gè)LED的程序及詳解 / 60
4.3.4 多個(gè)LED以不同頻率閃爍發(fā)光的程序及詳解 / 61
4.3.5 多個(gè)LED左移和右移的程序及詳解 / 61
4.3.6 LED循環(huán)左移和右移的程序及詳解 / 63
4.3.7 LED移動(dòng)并閃爍發(fā)光的程序及詳解 / 64
4.3.8 用查表方式控制LED多樣形式發(fā)光的程序及詳解 / 65
4.3.9 LED花樣發(fā)光的程序及詳解 / 66
4.4 采用PWM(脈寬調(diào)制)方式調(diào)節(jié)LED亮度的原理及程序詳解 / 67
4.4.1 采用PWM方式調(diào)節(jié)LED亮度的原理 / 67
4.4.2 采用PWM方式調(diào)節(jié)LED亮度的程序及詳解 / 68
第5章單片機(jī)驅(qū)動(dòng)LED數(shù)碼管的電路及編程 70
5.1 單片機(jī)驅(qū)動(dòng)一位LED數(shù)碼管的電路及程序詳解 / 70
5.1.1 一位LED數(shù)碼管的外形、結(jié)構(gòu)與檢測 / 70
5.1.2 單片機(jī)連接一位LED數(shù)碼管的電路 / 72
5.1.3 單個(gè)數(shù)碼管靜態(tài)顯示一個(gè)字符的程序及詳解 / 73
5.1.4 單個(gè)數(shù)碼管動(dòng)態(tài)顯示多個(gè)字符的程序及詳解 / 73
5.1.5 單個(gè)數(shù)碼管環(huán)形轉(zhuǎn)圈顯示的程序及詳解 / 74
5.1.6 單個(gè)數(shù)碼管顯示邏輯電平的程序及詳解 / 74
5.2 單片機(jī)驅(qū)動(dòng)8位LED數(shù)碼管的電路及程序詳解 / 75
5.2.1 多位LED數(shù)碼管外形、結(jié)構(gòu)與檢測 / 75
5.2.2 單片機(jī)連接8位共陰型數(shù)碼管的電路 / 76
5.2.3 8位數(shù)碼管顯示1個(gè)字符的程序及詳解 / 78
5.2.4 8位數(shù)碼管逐位顯示8個(gè)字符的程序及詳解 / 79
5.2.5 8位數(shù)碼管同時(shí)顯示8個(gè)字符的程序及詳解 / 80
5.2.6 8位數(shù)碼管動(dòng)態(tài)顯示8個(gè)以上字符的程序及詳解 / 80
第6章中斷功能的使用及編程 82
6.1 中斷的基本概念與處理過程 / 82
6.1.1 什么是中斷 / 82
6.1.2 中斷的基本概念 / 82
6.1.3 中斷的處理過程 / 83
6.2 8051單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)與控制寄存器 / 83
6.2.1 中斷系統(tǒng)的結(jié)構(gòu) / 83
6.2.2 中斷源寄存器 / 84
6.2.3 中斷允許寄存器IE / 85
6.2.4 中斷優(yōu)先級(jí)控制寄存器IP / 86
6.3 中斷編程舉例 / 87
6.3.1 中斷編程的電路例圖 / 87
6.3.2 用外部中斷0以低電平方式觸發(fā)中斷的程序及詳解 / 88
6.3.3 用外部中斷1以下降沿方式觸發(fā)中斷的程序及詳解 / 89
第7章定時(shí)器/計(jì)數(shù)器的使用及編程 91
7.1 定時(shí)器/計(jì)數(shù)器的定時(shí)與計(jì)數(shù)功能 / 91
7.1.1 定時(shí)功能 / 91
7.1.2 計(jì)數(shù)功能 / 92
7.2 定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)原理 / 92
7.2.1 定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu) / 92
7.2.2 定時(shí)器/計(jì)數(shù)器的工作原理 / 92
7.3 定時(shí)器/計(jì)數(shù)器的控制寄存器與四種工作方式 / 94
7.3.1 定時(shí)器/計(jì)數(shù)器控制寄存器TCON / 94
7.3.2 工作方式控制寄存器TMOD / 94
7.3.3 定時(shí)器/計(jì)數(shù)器的工作方式 / 95
7.4 定時(shí)器/計(jì)數(shù)器的應(yīng)用及編程 / 99
7.4.1 產(chǎn)生1kHz方波信號(hào)的程序及詳解 / 99
7.4.2 產(chǎn)生50kHz方波信號(hào)的程序及詳解 / 100
7.4.3 產(chǎn)生周期為1s方波信號(hào)的程序與長延時(shí)的方法 / 101
第8章按鍵電路及編程 103
8.1 獨(dú)立按鍵輸入電路與程序詳解 / 103
8.1.1 開關(guān)輸入產(chǎn)生的抖動(dòng)及軟、硬件解決方法 / 103
8.1.2 單片機(jī)連接8個(gè)獨(dú)立按鍵和8個(gè)LED的電路 / 104
8.1.3 一個(gè)按鍵點(diǎn)動(dòng)控制一個(gè)LED亮滅的程序及詳解 / 104
8.1.4 一個(gè)按鍵鎖定控制一個(gè)LED亮滅的程序及詳解 / 104
8.1.5 四路搶答器的程序及詳解 / 106
8.1.6 獨(dú)立按鍵控制LED和LED數(shù)碼管的單片機(jī)電路 / 107
8.1.7 兩個(gè)按鍵控制一位數(shù)字增、減并用8位數(shù)碼管顯示的程序及詳解 / 107
8.1.8 兩個(gè)按鍵控制多位數(shù)字增、減并用8位數(shù)碼管顯示的程序及詳解 / 110
8.1.9 按鍵長按與短按產(chǎn)生不同控制效果的程序及詳解 / 111
8.1.10 8個(gè)獨(dú)立按鍵控制LED亮滅和LED數(shù)碼管顯示的程序及詳解 / 114
8.2 矩陣鍵盤輸入電路與程序詳解 / 116
8.2.1 單片機(jī)連接16鍵矩陣鍵盤和8位數(shù)碼管的電路 / 116
8.2.2 矩陣鍵盤行列掃描方式輸入及顯示的程序及詳解 / 116
8.2.3 中斷觸發(fā)鍵盤行列掃描的矩陣鍵盤輸入及顯示電路與程序詳解 / 120
8.2.4 矩陣鍵盤密碼鎖的程序及詳解 / 125
第9章雙色LED點(diǎn)陣的使用及編程 129
9.1 雙色LED點(diǎn)陣的結(jié)構(gòu)原理與檢測 / 129
9.1.1 共陽型和共陰型點(diǎn)陣的電路結(jié)構(gòu) / 129
9.1.2 點(diǎn)陣的混色規(guī)律 / 129
9.1.3 點(diǎn)陣的靜態(tài)字符或圖形顯示原理 / 130
9.1.4 點(diǎn)陣的動(dòng)態(tài)字符或圖形顯示原理 / 133
9.1.5 雙色點(diǎn)陣的識(shí)別與檢測 / 134
9.2 單片機(jī)驅(qū)動(dòng)雙色點(diǎn)陣的電路及編程 / 135
9.2.1 74HC595芯片 / 135
9.2.2 單片機(jī)配合74HC595芯片驅(qū)動(dòng)雙色LED點(diǎn)陣的電路 / 136
9.2.3 雙色點(diǎn)陣顯示一種顏色字符的程序及詳解 / 136
9.2.4 雙色點(diǎn)陣正反交替顯示兩種顏色字符的程序及詳解 / 139
9.2.5 字符移入和移出點(diǎn)陣的程序及詳解 / 141
第10章液晶顯示屏的使用及編程 145
10.1 1602字符型液晶顯示屏的硬、軟件 / 145
10.1.1 外形與引腳功能 / 145
10.1.2 內(nèi)部字庫及代碼 / 146
10.1.3 LCD屏各顯示位與DDRAM的地址關(guān)系 / 146
10.1.4 1602顯示屏的指令集 / 147
10.2 單片機(jī)驅(qū)動(dòng)1602液晶顯示屏的電路及編程 / 151
10.2.1 單片機(jī)驅(qū)動(dòng)1602液晶顯示屏的電路 / 151
10.2.2 1602液晶顯示屏靜態(tài)顯示字符的程序及詳解 / 151
10.2.3 1602液晶顯示屏逐個(gè)顯示字符的程序及詳解 / 154
10.2.4 1602液晶顯示屏字符滾動(dòng)顯示的程序及詳解 / 154
10.2.5 矩陣鍵盤輸入與1602液晶顯示屏顯示的電路及程序詳解 / 156
第11章步進(jìn)電機(jī)的使用及編程 160
11.1 步進(jìn)電機(jī)與驅(qū)動(dòng)芯片 / 160
11.1.1 步進(jìn)電機(jī)的結(jié)構(gòu)與工作原理 / 160
11.1.2 驅(qū)動(dòng)芯片ULN2003 / 163
11.1.3 五線四相步進(jìn)電機(jī) / 165
11.2 單片機(jī)驅(qū)動(dòng)步進(jìn)電機(jī)的電路及編程 / 166
11.2.1 由按鍵、單片機(jī)、驅(qū)動(dòng)芯片和數(shù)碼管構(gòu)成的步進(jìn)電機(jī)驅(qū)動(dòng)電路 / 166
11.2.2 用單4拍方式驅(qū)動(dòng)步進(jìn)電機(jī)正轉(zhuǎn)的程序及詳解 / 167
11.2.3 用雙4拍方式驅(qū)動(dòng)步進(jìn)電機(jī)自動(dòng)正反轉(zhuǎn)的程序及詳解 / 167
11.2.4 外部中斷控制步進(jìn)電機(jī)正反轉(zhuǎn)的程序及詳解 / 169
11.2.5 用按鍵控制步進(jìn)電機(jī)啟動(dòng)、加速、減速、停止的程序及詳解 / 171
第12章單片機(jī)的串行通信及編程 175
12.1 并行通信和串行通信 / 175
12.1.1 串行通信的兩種方式 / 175
12.1.2 串行通信的數(shù)據(jù)傳送方向 / 177
12.2 串行通信口的結(jié)構(gòu)與原理 / 178
12.2.1 串行通信口的結(jié)構(gòu) / 178
12.2.2 串行通信口的工作原理 / 178
12.3 串行通信口的控制寄存器 / 179
12.3.1 串行控制寄存器(SCON) / 179
12.3.2 電源控制寄存器(PCON) / 180
12.4 四種工作方式與波特率的設(shè)置 / 180
12.4.1 方式0 / 180
12.4.2 方式1 / 182
12.4.3 方式2 / 182
12.4.4 方式3 / 183
12.4.5 波特率的設(shè)置 / 183
12.5 串行通信的應(yīng)用編程 / 184
12.5.1 利用串行通信的方式0實(shí)現(xiàn)產(chǎn)品計(jì)數(shù)顯示的電路及編程 / 184
12.5.2 利用串行通信的方式1實(shí)現(xiàn)雙機(jī)通信的電路及編程 / 185
第13章模擬I2C總線通信及編程 190
13.1 I2C總線 / 190
13.1.1 概述 / 190
13.1.2 I2C總線通信協(xié)議 / 190
13.1.3 I2C總線的數(shù)據(jù)傳送格式 / 191
13.2 I2C總線存儲(chǔ)器24C02(E2PROM) / 192
13.2.1 外形與引腳功能 / 192
13.2.2 器件地址的設(shè)置 / 192
13.2.3 讀/寫操作 / 193
13.3 單片機(jī)與24C02的I2C總線通信電路及編程 / 196
13.3.1 模擬I2C總線通信的程序及詳解 / 196
13.3.2 利用I2C總線從24C02讀寫一個(gè)數(shù)據(jù)并用LED顯示的電路及程序詳解 / 199
13.3.3 利用I2C總線從24C02讀寫多個(gè)數(shù)據(jù)的電路及程序詳解 / 201
13.3.4 利用24C02存儲(chǔ)按鍵的操作信息的電路及程序詳解 / 202
第14章A/D(模/數(shù))與D/A(數(shù)/模)轉(zhuǎn)換電路及編程 206
14.1 A/D(模/數(shù))與D/A(數(shù)/模)轉(zhuǎn)換原理 / 206
14.1.1 A/D轉(zhuǎn)換 / 206
14.1.2 D/A轉(zhuǎn)換 / 208
14.2 A/D與D/A轉(zhuǎn)換芯片PCF8591 / 208
14.2.1 外形與引腳功能 / 208
14.2.2 器件地址和功能設(shè)置 / 209
14.3 由PCF8591芯片構(gòu)成的A/D和D/A轉(zhuǎn)換電路及編程 / 210
14.3.1 單片機(jī)、PCF8591芯片與8位數(shù)碼管構(gòu)成的A/D和D/A轉(zhuǎn)換及顯示電路 / 210
14.3.2 1路A/D轉(zhuǎn)換并顯示轉(zhuǎn)換值的程序及詳解 / 210
14.3.3 4路電壓測量顯示的程序及詳解 / 213
14.3.4 D/A轉(zhuǎn)換輸出顯示的程序及詳解 / 216
第15章51單片機(jī)的硬件系統(tǒng) 219
15.1 8051單片機(jī)的引腳功能與內(nèi)部結(jié)構(gòu) / 219
15.1.1 引腳功能 / 219
15.1.2 單片機(jī)與片外存儲(chǔ)器的連接與控制 / 221
15.1.3 內(nèi)部結(jié)構(gòu) / 223
15.2 8051單片機(jī)I/O端口的結(jié)構(gòu)與工作原理 / 225
15.2.1 P0端口 / 226
15.2.2 P1端口 / 227
15.2.3 P2端口 / 228
15.2.4 P3端口 / 228
15.3 8051單片機(jī)的存儲(chǔ)器 / 229
15.3.1 存儲(chǔ)器的存儲(chǔ)單位與編址 / 229
15.3.2 片內(nèi)外程序存儲(chǔ)器的使用與編址 / 230
15.3.3 片內(nèi)外數(shù)據(jù)存儲(chǔ)器的使用與編址 / 231
15.3.4 數(shù)據(jù)存儲(chǔ)器的分區(qū) / 231
15.3.5 特殊功能寄存器(SFR) / 233
15.4 STC89C5X系列單片機(jī) / 238
15.4.1 STC89C5X單片機(jī)的版本、封裝形式和引腳 / 238
15.4.2 STC89C5X系列單片機(jī)的型號(hào)命名規(guī)則 / 242
15.4.3 STC89C5X系列單片機(jī)的常用型號(hào)的主要參數(shù) / 242
15.4.4 STC89C5X系列單片機(jī)的I/O端口 / 242
15.4.5 STC89C5X系列單片機(jī)的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器 / 246
15.4.6 STC89C5X系列單片機(jī)的特殊功能寄存器 / 247
第16章單片機(jī)開發(fā)常用電子元器件 250
16.1 基本電子元器件 / 250
16.1.1 電阻器 / 250
16.1.2 電位器 / 252
16.1.3 排阻 / 253
16.1.4 電容器 / 254
16.1.5 電感器 / 255
16.1.6 變壓器 / 256
16.2 半導(dǎo)體元器件 / 259
16.2.1 二極管 / 259
16.2.2 整流二極管與整流橋堆 / 260
16.2.3 穩(wěn)壓二極管 / 261
16.2.4 肖特基二極管 / 262
16.2.5 快恢復(fù)二極管 / 263
16.2.6 三極管 / 264
16.2.7 單向晶閘管 / 267
16.2.8 絕緣柵型場效應(yīng)管(MOS管) / 268
16.3 其他類型元器件 / 270
16.3.1 雙色發(fā)光二極管 / 270
16.3.2 紅外線接收組件 / 271
16.3.3 光電耦合器 / 271
16.3.4 光遮斷器 / 272
16.3.5 耳機(jī) / 273
16.3.6 蜂鳴器 / 274
16.3.7 石英晶體諧振器(晶振) / 276
16.3.8 電磁繼電器 / 277
16.3.9 干簧管 / 278
16.3.10 自恢復(fù)熔斷器 / 278
16.3.11 瞬態(tài)電壓抑制二極管 / 279
16.4 貼片元器件 / 280
16.4.1 貼片封裝規(guī)格 / 280
16.4.2 手工焊接方法 / 280
16.4.3 貼片電阻器 / 282
16.4.4 貼片電位器 / 282
16.4.5 貼片熔斷器 / 283
16.4.6 貼片電容器 / 283
16.4.7 貼片電感器 / 284
16.4.8 貼片二極管 / 284
16.4.9 貼片三極管 / 285
16.5 集成電路 / 286
16.5.1 集成電路的引腳識(shí)別 / 286
16.5.2 三端固定輸出穩(wěn)壓器(78XX/79XX) / 286
16.5.3 三端精密穩(wěn)壓器(TL431) / 288
16.5.4 雙運(yùn)算放大器(LM358) / 289
16.5.5 雙電壓比較器(LM393) / 291
16.5.6 單全橋/單H橋/電機(jī)驅(qū)動(dòng)芯片(L9110) / 292
16.5.7 常用的74系列芯片型號(hào) / 293
16.5.8 8路三態(tài)輸出D型鎖存器芯片(74HC573) / 294
16.5.9 三-八線譯碼器/多路分配器芯片(74HC138) / 296
16.5.10 8路選擇器/分配器芯片。74HC4051) / 297
16.5.11 串/并轉(zhuǎn)換芯片(74HC164) / 298
16.5.12 并/串轉(zhuǎn)換芯片(74HC165) / 299
視頻講解清單 301