本書以51系列單片機8051為背景,以實際工程中應(yīng)用最為廣泛的C51語言程序設(shè)計為基礎(chǔ),從應(yīng)用角度出發(fā),系統(tǒng)地論述了單片機的組成原理、指令系統(tǒng)和匯編語言及單片機C語言、中斷系統(tǒng)、并行和串行接口以及8051與A/D和D/A的接口等問題,并在此基礎(chǔ)上討論了單片機應(yīng)用系統(tǒng)的設(shè)計。全書共13章。
本書內(nèi)容全面,可作為高等學(xué)校自動化、電氣工程及其自動化、建筑電氣與智能化、計算機、通信工程、電子信息工程、機電一體化、機械等專業(yè)的教材,也可供單片機應(yīng)用技術(shù)領(lǐng)域的工程技術(shù)人員參考。
隨著現(xiàn)代社會的發(fā)展,單片機在工業(yè)控制、機電一體化、家電等領(lǐng)域的應(yīng)用越來越普遍,社會對掌握單片機應(yīng)用技術(shù)的人才的需求也越來越大,相應(yīng)的單片機技術(shù)的開發(fā)應(yīng)用也逐漸成為廣大技術(shù)人員必須掌握的技術(shù)之一。
“單片機”是一門比較難學(xué)的技術(shù),其特點是抽象度比較高,學(xué)好這門技術(shù)絕非一日之功,入門也需要有一個循序漸進的過程。本書以廣泛使用的8051單片機為背景,以實際工程中應(yīng)用愈來愈廣泛的C51程序設(shè)計為基礎(chǔ),從應(yīng)用角度出發(fā),從小到大,從簡到繁地解剖和分析單片機的結(jié)構(gòu)與原理。目前針對單片機技術(shù)的書籍雖然比較多,但大多數(shù)書籍基本上還限于原理式的敘述,很少有結(jié)合工程實踐進行具體的講解。針對以上情況,本書作者根據(jù)長期從事單片機技術(shù)教學(xué)的經(jīng)驗,以及幾十年來在工業(yè)控制領(lǐng)域的工程實踐經(jīng)驗,結(jié)合工程應(yīng)用,對傳統(tǒng)的單片機教材的知識框架重新進行了調(diào)整,編寫了本書。
全書共13章,各章具體內(nèi)容如下:
· 第1章:介紹了單片機的入門基礎(chǔ)知識,包括如何學(xué)習(xí)單片機、單片機的學(xué)習(xí)工具、單片機的基礎(chǔ)知識、單片機與嵌入式系統(tǒng)、單片機的基本操作、常用單片機介紹和單片機系統(tǒng)開發(fā)方法等。
· 第2章:主要講解了單片機仿真軟件Keil C51的使用方法和步驟,包括Keil軟件界面、創(chuàng)建μVision3工程、利用μVision3調(diào)試器調(diào)試程序和51單片機的燒錄等。
· 第3章:主要講解了8051單片機的結(jié)構(gòu)和原理,包括8051系列單片機的基本結(jié)構(gòu)、存儲空間配置和功能、并行I/O端口、時鐘電路及CPU時序、8051系列單片機的工作方式、8051系列單片機指令系統(tǒng)和匯編語言程序設(shè)計等。
· 第4章:主要介紹了單片機C語言的基礎(chǔ)知識,包括C語言與MCS51、C語言基礎(chǔ)、C51的數(shù)據(jù)存儲類型與8051存儲器結(jié)構(gòu)、8051特殊功能寄存器及其C51定義、C51指針、C51的輸入/輸出、C51函數(shù)、C51與匯編語言混合編程和C51常用語句等。
· 第5章:主要講解了單片機的中斷系統(tǒng),包括中斷的概念、8051的中斷源和中斷控制寄存器、中斷處理的過程、中斷響應(yīng)等待時間、C51中斷服務(wù)函數(shù)和中斷系統(tǒng)的應(yīng)用等。
· 第6章:主要講解了單片機的定時器/計數(shù)器控制,包括8051定時器/計數(shù)器的結(jié)構(gòu)和工作原理、定時器/計數(shù)器的控制寄存器、定時器/計數(shù)器的工作方式、定時器/計數(shù)器用于外部中斷擴展、定時器/計數(shù)器應(yīng)用、定時器2和看門狗等。
· 第7章:介紹了單片機系統(tǒng)的擴展,包括單片機系統(tǒng)總線的形成、外部數(shù)據(jù)存儲器的擴展、外部程序存儲器的擴展、簡單I/O端口擴展、8255A可編程并行輸入/輸出接口、8155可編程并行輸入/輸出接口和8051并行接口及其C51定義等。
· 第8章:介紹了單片機顯示接口設(shè)計,包括LED顯示器及其接口、液晶顯示器(LCD)概述、段式液晶顯示器、字符型液晶顯示器、ZY12864D圖形點陣液晶顯示器等。
· 第9章:介紹了單片機鍵盤接口設(shè)計,包括按鍵的狀態(tài)輸入及去抖動、鍵盤與CPU的連接方式、鍵盤掃描控制方式、獨立式按鍵和矩陣式鍵盤等。
· 第10章:講解了單片機串行通信的知識,包括串行通信概述、8051串行口、8051串行口的應(yīng)用、串行通信總線標(biāo)準(zhǔn)及其接口、單片機與PC通信的接口電路和常用的串行總線接口簡介等。
· 第11章:講解了單片機的I2C總線,包括I2C總線的概述、協(xié)議、信號的模擬和24C02器件等。
· 第12章:介紹了單片機的數(shù)模和模數(shù)轉(zhuǎn)換,包括A/D轉(zhuǎn)換電路接口技術(shù)、D/A轉(zhuǎn)換接口電路和單片機開關(guān)量驅(qū)動輸出接口電路等。
· 第13章:通過兩個實例——溫濕度檢測儀和家庭安全報警系統(tǒng),介紹了單片機系統(tǒng)的設(shè)計方法和步驟。
本書作者長期使用單片機進行教學(xué)、科研和實際生產(chǎn)工作,有著豐富的教學(xué)和編著經(jīng)驗。本書在內(nèi)容編排上,按照讀者學(xué)習(xí)的一般規(guī)律,結(jié)合大量實例講解單片機設(shè)計和單片機C語言程序設(shè)計,能夠使讀者快速、真正地掌握單片機的使用。
本書既可以作為高等院校自動化、電氣工程及其自動化、建筑電氣與智能化、計算機、通信工程、電子信息工程、機電一體化、機械等專業(yè)的教材,也可以作為讀者自學(xué)的教程,同時也非常適合作為相關(guān)專業(yè)工作人員的參考手冊。
第1章 單片機入門 1
1.1 如何學(xué)習(xí)單片機 1
1.2 單片機的學(xué)習(xí)工具 2
1.3 單片機的基礎(chǔ)知識 4
1.3.1 概述 4
1.3.2 單片機的發(fā)展趨勢 6
1.3.3 8051系列單片機 6
1.3.4 單片機中的數(shù)制與碼制 8
1.4 單片機與嵌入式系統(tǒng) 12
1.4.1 嵌入式系統(tǒng)簡介 13
1.4.2 單片嵌入式系統(tǒng) 14
1.4.3 單片嵌入式系統(tǒng)結(jié)構(gòu) 15
1.4.4 單片嵌入式系統(tǒng)的應(yīng)用領(lǐng)域 16
1.5 單片機的基本操作 17
1.6 常用單片機介紹 21
1.7 單片機系統(tǒng)開發(fā)方法 23
1.8 實踐訓(xùn)練——利用單片機控制LED 24
思考與練習(xí) 26
第2章 Keil C51軟件的使用 27
2.1 概述 27
2.2 Keil軟件界面 28
2.2.1 Keil μVision3 IDE的工作界面 28
2.2.2 Keil μVision3 IDE的菜單 28
2.3 創(chuàng)建μVision3工程 36
2.4 利用μVision3調(diào)試器調(diào)試程序 40
2.5 51單片機的燒錄 43
2.6 實踐訓(xùn)練——Keil C51軟件的使用 46
思考與練習(xí) 53
第3章 8051單片機硬件結(jié)構(gòu)及匯編語言 54
3.1 8051系列單片機的基本結(jié)構(gòu) 54
3.1.1 內(nèi)部結(jié)構(gòu)框圖 54
3.1.2 外部引腳功能 55
3.2 8051系列單片機存儲空間配置和功能 56
3.2.1 存儲器的基本概念 57
3.2.2 8051的程序存儲器(ROM) 59
3.2.3 8051的數(shù)據(jù)存儲器(RAM) 60
3.3 并行I/O端口 65
3.3.1 P0口 65
3.3.2 P1口 66
3.3.3 P2口 67
3.3.4 P3口 67
3.4 時鐘電路及CPU時序 68
3.4.1 時鐘電路 68
3.4.2 CPU時序 69
3.5 8051系列單片機的工作方式 71
3.5.1 復(fù)位方式 71
3.5.2 低功耗方式 73
3.6 8051系列單片機指令系統(tǒng) 73
3.6.1 指令系統(tǒng)概述 74
3.6.2 尋址方式 76
3.6.3 8051單片機指令系統(tǒng) 80
3.7 匯編語言程序設(shè)計 89
3.7.1 匯編語言概述 89
3.7.2 順序結(jié)構(gòu)程序設(shè)計 92
3.7.3 分支結(jié)構(gòu)程序設(shè)計 93
3.7.4 循環(huán)結(jié)構(gòu)程序設(shè)計 93
3.8 實踐訓(xùn)練——輸入輸出信號控制 94
思考與練習(xí) 98
第4章 單片機C語言編程基礎(chǔ) 100
4.1 C語言與MCS51 100
4.2 C語言基礎(chǔ) 102
4.2.1 C語言與ANSI C 的區(qū)別 102
4.2.2 C51擴展的關(guān)鍵字 103
4.2.3 編譯器 103
4.2.4 數(shù)據(jù)類型 104
4.3 C51數(shù)據(jù)存儲類型與8051存儲器結(jié)構(gòu) 110
4.3.1 C51數(shù)據(jù)的存儲 110
4.3.2 C51變量的定義 111
4.3.3 C51變量的存儲類型 111
4.3.4 C51變量的存儲區(qū) 112
4.3.5 C51變量的存儲模式 112
4.3.6 C51變量的絕對定位 113
4.4 8051特殊功能寄存器及其C51定義 114
4.4.1 位變量定義 114
4.4.2 C51特殊功能寄存器的定義 116
4.5 C51指針 117
4.5.1 通用指針 117
4.5.2 存儲器專用指針 118
4.5.3 指針變換 119
4.5.4 C51指針應(yīng)用 119
4.6 C51的輸入/輸出 121
4.6.1 基本輸入/輸出函數(shù) 121
4.6.2 格式輸出函數(shù)printf 121
4.6.3 格式輸入函數(shù)scanf 122
4.7 C51函數(shù) 124
4.7.1 內(nèi)部函數(shù) 124
4.7.2 C51函數(shù)的定義 125
4.8 C51與匯編語言混合編程 126
4.8.1 在C51程序中嵌入?yún)R編程序 126
4.8.2 C51程序與匯編程序混合編程 127
4.9 C51常用語句 130
4.9.1 條件語句 130
4.9.2 循環(huán)語句 132
4.10 實踐訓(xùn)練——交通信號燈模擬
控制系統(tǒng) 135
思考與練習(xí) 136
第5章 中斷系統(tǒng) 138
5.1 中斷的概念 138
5.2 8051的中斷源和中斷控制寄存器 140
5.3 中斷處理的過程 143
5.4 中斷響應(yīng)等待時間 145
5.5 C51中斷服務(wù)函數(shù) 146
5.6 中斷系統(tǒng)的應(yīng)用 149
5.7 實踐訓(xùn)練——鍵控彩燈 153
思考與練習(xí) 156
第6章 定時器/計數(shù)器控制 158
6.1 8051定時器/計數(shù)器的結(jié)構(gòu)和
工作原理 158
6.2 定時器/計數(shù)器的控制寄存器 159
6.3 定時器/計數(shù)器的工作方式 161
6.4 定時器/計數(shù)器用于外部中斷擴展 164
6.5 定時器/計數(shù)器應(yīng)用 165
6.6 定時器2 167
6.7 看門狗 170
6.8 實踐訓(xùn)練——簡易頻率計設(shè)計 171
思考與練習(xí) 173
第7章 單片機系統(tǒng)的擴展 175
7.1 單片機系統(tǒng)總線的形成 175
7.2 外部數(shù)據(jù)存儲器的擴展 176
7.2.1 全譯碼 177
7.2.2 部分譯碼 179
7.2.3 線選法 180
7.3 外部程序存儲器的擴展 180
7.3.1 EPROM擴展 181
7.3.2 E2PROM擴展 182
7.4 簡單I/O端口擴展 184
7.5 8255A可編程并行輸入/輸出接口 186
7.5.1 8255A的結(jié)構(gòu)和引腳功能 186
7.5.2 8255A與8051 型單片機
典型連接電路 188
7.5.3 8255A的控制字 189
7.5.4 8255A的工作方式 190
7.6 8155可編程并行輸入/輸出接口 196
7.6.1 8155的引腳及結(jié)構(gòu) 196
7.6.2 8155與8051單片機的連接電路 197
7.6.3 8155工作方式控制字和狀態(tài)字 198
7.6.4 8155工作方式 199
7.6.5 8155定時器/計數(shù)器 200
7.7 8051并行接口及其C51定義 201
7.8 實踐訓(xùn)練——存儲器擴展 202
思考與練習(xí) 203
第8章 顯示接口設(shè)計 205
8.1 LED顯示器及其接口 205
8.1.1 靜態(tài)顯示方式 208
8.1.2 動態(tài)顯示方式 208
8.2 液晶顯示器(LCD)概述 211
8.2.1 LCD顯示器的特性 211
8.2.2 LCD結(jié)構(gòu)原理與種類 211
8.2.3 LCD顯示器的主要參數(shù) 212
8.3 段式液晶顯示器 212
8.4 字符型液晶顯示器 213
8.4.1 字符型LCD的結(jié)構(gòu)和引腳 213
8.4.2 顯示板控制器的指令系統(tǒng) 215
8.4.3 LCD顯示板與單片機的接口 216
8.5 ZY12864D圖形點陣液晶顯示器 222
8.6 實踐訓(xùn)練——LED顯示器的使用 225
思考與練習(xí) 229
第9章 鍵盤接口及其設(shè)計 230
9.1 按鍵的狀態(tài)輸入及去抖動 230
9.2 鍵盤與CPU的連接方式 232
9.3 鍵盤掃描控制方式 233
9.4 獨立式按鍵 234
9.5 矩陣式鍵盤 235
9.6 實踐訓(xùn)練——電子密碼鎖設(shè)計 238
思考與練習(xí) 245
第10章 串行口通信 246
10.1 串行通信概述 246
10.1.1 異步通信 247
10.1.2 同步通信 247
10.1.3 串行通信的制式 247
10.1.4 串行通信的傳送速率 248
10.2 8051串行口 248
10.2.1 8051串行口結(jié)構(gòu) 248
10.2.2 串行口工作原理 249
10.2.3 串行口的控制寄存器 249
10.2.4 串行口的工作方式 251
10.2.5 波特率的設(shè)定 252
10.3 8051串行口的應(yīng)用 253
10.3.1 利用串行口擴展并行口 254
10.3.2 8051串行口的通信 255
10.4 串行通信總線標(biāo)準(zhǔn)及其接口 258
10.4.1 RS232C串行接口標(biāo)準(zhǔn) 258
10.4.2 RS422與RS485串行接口標(biāo)準(zhǔn) 262
10.5 單片機與PC機通信的接口電路 265
10.6 常用的串行總線接口簡介 268
10.7 實踐訓(xùn)練——單片機與單片機之間的
串行通信 269
思考與練習(xí) 272
第11章 I2C總線 273
11.1 I2C總線概述 273
11.1.1 I2C總線的特性 273
11.1.2 I2C總線工作原理 274
11.1.3 I2C總線硬件結(jié)構(gòu)圖 276
11.2 I2C總線協(xié)議 276
11.3 I2C總線信號的模擬 278
11.4 24C02器件 284
11.5 實踐訓(xùn)練——I2C總線的使用 291
思考與練習(xí) 293
第12章 A/D和D/A轉(zhuǎn)換接口 294
12.1 A/D轉(zhuǎn)換電路接口技術(shù) 294
12.1.1 A/D轉(zhuǎn)換器的主要性能指標(biāo) 295
12.1.2 A/D轉(zhuǎn)換原理 295
12.1.3 A/D轉(zhuǎn)換器ADC0809的接口 298
12.1.4 ADC0809與單片機的接口
電路編程 301
12.2 D/A轉(zhuǎn)換接口電路 303
12.2.1 D/A轉(zhuǎn)換器工作原理 303
12.2.2 D/A轉(zhuǎn)換器的技術(shù)性能指標(biāo) 306
12.2.3 典型D/A轉(zhuǎn)換器芯片DAC0832 307
12.3 單片機開關(guān)量驅(qū)動輸出接口電路 312
12.3.1 發(fā)光二極管 312
12.3.2 蜂鳴器 313
12.3.3 單片機與繼電器接口電路 314
12.3.4 光電隔離接口 317
12.4 實踐訓(xùn)練——簡易波形發(fā)生器 318
12.5 實踐訓(xùn)練——簡易數(shù)字電壓表 324
思考與練習(xí) 329
第13章 單片機綜合實例分析 331
13.1 單片機應(yīng)用系統(tǒng)開發(fā)設(shè)計 331
13.2 單片機應(yīng)用系統(tǒng)的開發(fā)工具 333
13.3 單片機應(yīng)用系統(tǒng)的設(shè)計方法 335
13.3.1 系統(tǒng)基本結(jié)構(gòu)組成 335
13.3.2 單片機應(yīng)用系統(tǒng)硬、軟件的
設(shè)計原則 336
13.3.3 硬件設(shè)計 337
13.3.4 軟件設(shè)計 338
13.3.5 資源分配 338
13.4 單片機應(yīng)用系統(tǒng)調(diào)試 339
13.4.1 單片機應(yīng)用系統(tǒng)調(diào)試工具 339
13.4.2 單片機應(yīng)用系統(tǒng)的一般調(diào)試
方法 340
13.5 單片機系統(tǒng)的抗干擾技術(shù) 343
13.6 基于51單片機的溫濕度檢測儀 350
13.6.1 方案的設(shè)計 351
13.6.2 硬件電路的設(shè)計 351
13.6.3 軟件設(shè)計 362
13.7 家庭安全報警系統(tǒng) 364
13.7.1 系統(tǒng)硬件選擇 365
13.7.2 硬件電路設(shè)計 369
13.7.3 系統(tǒng)軟件設(shè)計 373
思考與練習(xí) 375
參考文獻(xiàn) 376