本書以51系列單片機(jī)8051為背景,以實(shí)際工程中應(yīng)用最為廣泛的C51語言程序設(shè)計(jì)為基礎(chǔ),從應(yīng)用角度出發(fā),系統(tǒng)地論述了單片機(jī)的組成原理、指令系統(tǒng)和匯編語言及單片機(jī)C語言、中斷系統(tǒng)、并行和串行接口以及8051與A/D和D/A的接口等問題,并在此基礎(chǔ)上討論了單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)。全書共13章。
本書內(nèi)容全面,可作為高等學(xué)校自動(dòng)化、電氣工程及其自動(dòng)化、建筑電氣與智能化、計(jì)算機(jī)、通信工程、電子信息工程、機(jī)電一體化、機(jī)械等專業(yè)的教材,也可供單片機(jī)應(yīng)用技術(shù)領(lǐng)域的工程技術(shù)人員參考。
隨著現(xiàn)代社會(huì)的發(fā)展,單片機(jī)在工業(yè)控制、機(jī)電一體化、家電等領(lǐng)域的應(yīng)用越來越普遍,社會(huì)對(duì)掌握單片機(jī)應(yīng)用技術(shù)的人才的需求也越來越大,相應(yīng)的單片機(jī)技術(shù)的開發(fā)應(yīng)用也逐漸成為廣大技術(shù)人員必須掌握的技術(shù)之一。
“單片機(jī)”是一門比較難學(xué)的技術(shù),其特點(diǎn)是抽象度比較高,學(xué)好這門技術(shù)絕非一日之功,入門也需要有一個(gè)循序漸進(jìn)的過程。本書以廣泛使用的8051單片機(jī)為背景,以實(shí)際工程中應(yīng)用愈來愈廣泛的C51程序設(shè)計(jì)為基礎(chǔ),從應(yīng)用角度出發(fā),從小到大,從簡到繁地解剖和分析單片機(jī)的結(jié)構(gòu)與原理。目前針對(duì)單片機(jī)技術(shù)的書籍雖然比較多,但大多數(shù)書籍基本上還限于原理式的敘述,很少有結(jié)合工程實(shí)踐進(jìn)行具體的講解。針對(duì)以上情況,本書作者根據(jù)長期從事單片機(jī)技術(shù)教學(xué)的經(jīng)驗(yàn),以及幾十年來在工業(yè)控制領(lǐng)域的工程實(shí)踐經(jīng)驗(yàn),結(jié)合工程應(yīng)用,對(duì)傳統(tǒng)的單片機(jī)教材的知識(shí)框架重新進(jìn)行了調(diào)整,編寫了本書。
全書共13章,各章具體內(nèi)容如下:
· 第1章:介紹了單片機(jī)的入門基礎(chǔ)知識(shí),包括如何學(xué)習(xí)單片機(jī)、單片機(jī)的學(xué)習(xí)工具、單片機(jī)的基礎(chǔ)知識(shí)、單片機(jī)與嵌入式系統(tǒng)、單片機(jī)的基本操作、常用單片機(jī)介紹和單片機(jī)系統(tǒng)開發(fā)方法等。
· 第2章:主要講解了單片機(jī)仿真軟件Keil C51的使用方法和步驟,包括Keil軟件界面、創(chuàng)建μVision3工程、利用μVision3調(diào)試器調(diào)試程序和51單片機(jī)的燒錄等。
· 第3章:主要講解了8051單片機(jī)的結(jié)構(gòu)和原理,包括8051系列單片機(jī)的基本結(jié)構(gòu)、存儲(chǔ)空間配置和功能、并行I/O端口、時(shí)鐘電路及CPU時(shí)序、8051系列單片機(jī)的工作方式、8051系列單片機(jī)指令系統(tǒng)和匯編語言程序設(shè)計(jì)等。
· 第4章:主要介紹了單片機(jī)C語言的基礎(chǔ)知識(shí),包括C語言與MCS51、C語言基礎(chǔ)、C51的數(shù)據(jù)存儲(chǔ)類型與8051存儲(chǔ)器結(jié)構(gòu)、8051特殊功能寄存器及其C51定義、C51指針、C51的輸入/輸出、C51函數(shù)、C51與匯編語言混合編程和C51常用語句等。
· 第5章:主要講解了單片機(jī)的中斷系統(tǒng),包括中斷的概念、8051的中斷源和中斷控制寄存器、中斷處理的過程、中斷響應(yīng)等待時(shí)間、C51中斷服務(wù)函數(shù)和中斷系統(tǒng)的應(yīng)用等。
· 第6章:主要講解了單片機(jī)的定時(shí)器/計(jì)數(shù)器控制,包括8051定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)和工作原理、定時(shí)器/計(jì)數(shù)器的控制寄存器、定時(shí)器/計(jì)數(shù)器的工作方式、定時(shí)器/計(jì)數(shù)器用于外部中斷擴(kuò)展、定時(shí)器/計(jì)數(shù)器應(yīng)用、定時(shí)器2和看門狗等。
· 第7章:介紹了單片機(jī)系統(tǒng)的擴(kuò)展,包括單片機(jī)系統(tǒng)總線的形成、外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展、外部程序存儲(chǔ)器的擴(kuò)展、簡單I/O端口擴(kuò)展、8255A可編程并行輸入/輸出接口、8155可編程并行輸入/輸出接口和8051并行接口及其C51定義等。
· 第8章:介紹了單片機(jī)顯示接口設(shè)計(jì),包括LED顯示器及其接口、液晶顯示器(LCD)概述、段式液晶顯示器、字符型液晶顯示器、ZY12864D圖形點(diǎn)陣液晶顯示器等。
· 第9章:介紹了單片機(jī)鍵盤接口設(shè)計(jì),包括按鍵的狀態(tài)輸入及去抖動(dòng)、鍵盤與CPU的連接方式、鍵盤掃描控制方式、獨(dú)立式按鍵和矩陣式鍵盤等。
· 第10章:講解了單片機(jī)串行通信的知識(shí),包括串行通信概述、8051串行口、8051串行口的應(yīng)用、串行通信總線標(biāo)準(zhǔn)及其接口、單片機(jī)與PC通信的接口電路和常用的串行總線接口簡介等。
· 第11章:講解了單片機(jī)的I2C總線,包括I2C總線的概述、協(xié)議、信號(hào)的模擬和24C02器件等。
· 第12章:介紹了單片機(jī)的數(shù)模和模數(shù)轉(zhuǎn)換,包括A/D轉(zhuǎn)換電路接口技術(shù)、D/A轉(zhuǎn)換接口電路和單片機(jī)開關(guān)量驅(qū)動(dòng)輸出接口電路等。
· 第13章:通過兩個(gè)實(shí)例——溫濕度檢測儀和家庭安全報(bào)警系統(tǒng),介紹了單片機(jī)系統(tǒng)的設(shè)計(jì)方法和步驟。
本書作者長期使用單片機(jī)進(jìn)行教學(xué)、科研和實(shí)際生產(chǎn)工作,有著豐富的教學(xué)和編著經(jīng)驗(yàn)。本書在內(nèi)容編排上,按照讀者學(xué)習(xí)的一般規(guī)律,結(jié)合大量實(shí)例講解單片機(jī)設(shè)計(jì)和單片機(jī)C語言程序設(shè)計(jì),能夠使讀者快速、真正地掌握單片機(jī)的使用。
本書既可以作為高等院校自動(dòng)化、電氣工程及其自動(dòng)化、建筑電氣與智能化、計(jì)算機(jī)、通信工程、電子信息工程、機(jī)電一體化、機(jī)械等專業(yè)的教材,也可以作為讀者自學(xué)的教程,同時(shí)也非常適合作為相關(guān)專業(yè)工作人員的參考手冊。
第1章 單片機(jī)入門 1
1.1 如何學(xué)習(xí)單片機(jī) 1
1.2 單片機(jī)的學(xué)習(xí)工具 2
1.3 單片機(jī)的基礎(chǔ)知識(shí) 4
1.3.1 概述 4
1.3.2 單片機(jī)的發(fā)展趨勢 6
1.3.3 8051系列單片機(jī) 6
1.3.4 單片機(jī)中的數(shù)制與碼制 8
1.4 單片機(jī)與嵌入式系統(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 單片機(jī)的基本操作 17
1.6 常用單片機(jī)介紹 21
1.7 單片機(jī)系統(tǒng)開發(fā)方法 23
1.8 實(shí)踐訓(xùn)練——利用單片機(jī)控制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單片機(jī)的燒錄 43
2.6 實(shí)踐訓(xùn)練——Keil C51軟件的使用 46
思考與練習(xí) 53
第3章 8051單片機(jī)硬件結(jié)構(gòu)及匯編語言 54
3.1 8051系列單片機(jī)的基本結(jié)構(gòu) 54
3.1.1 內(nèi)部結(jié)構(gòu)框圖 54
3.1.2 外部引腳功能 55
3.2 8051系列單片機(jī)存儲(chǔ)空間配置和功能 56
3.2.1 存儲(chǔ)器的基本概念 57
3.2.2 8051的程序存儲(chǔ)器(ROM) 59
3.2.3 8051的數(shù)據(jù)存儲(chǔ)器(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 時(shí)鐘電路及CPU時(shí)序 68
3.4.1 時(shí)鐘電路 68
3.4.2 CPU時(shí)序 69
3.5 8051系列單片機(jī)的工作方式 71
3.5.1 復(fù)位方式 71
3.5.2 低功耗方式 73
3.6 8051系列單片機(jī)指令系統(tǒng) 73
3.6.1 指令系統(tǒng)概述 74
3.6.2 尋址方式 76
3.6.3 8051單片機(jī)指令系統(tǒng) 80
3.7 匯編語言程序設(shè)計(jì) 89
3.7.1 匯編語言概述 89
3.7.2 順序結(jié)構(gòu)程序設(shè)計(jì) 92
3.7.3 分支結(jié)構(gòu)程序設(shè)計(jì) 93
3.7.4 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 93
3.8 實(shí)踐訓(xùn)練——輸入輸出信號(hào)控制 94
思考與練習(xí) 98
第4章 單片機(jī)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擴(kuò)展的關(guān)鍵字 103
4.2.3 編譯器 103
4.2.4 數(shù)據(jù)類型 104
4.3 C51數(shù)據(jù)存儲(chǔ)類型與8051存儲(chǔ)器結(jié)構(gòu) 110
4.3.1 C51數(shù)據(jù)的存儲(chǔ) 110
4.3.2 C51變量的定義 111
4.3.3 C51變量的存儲(chǔ)類型 111
4.3.4 C51變量的存儲(chǔ)區(qū) 112
4.3.5 C51變量的存儲(chǔ)模式 112
4.3.6 C51變量的絕對(duì)定位 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 存儲(chǔ)器專用指針 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 實(shí)踐訓(xùn)練——交通信號(hào)燈模擬
控制系統(tǒng) 135
思考與練習(xí) 136
第5章 中斷系統(tǒng) 138
5.1 中斷的概念 138
5.2 8051的中斷源和中斷控制寄存器 140
5.3 中斷處理的過程 143
5.4 中斷響應(yīng)等待時(shí)間 145
5.5 C51中斷服務(wù)函數(shù) 146
5.6 中斷系統(tǒng)的應(yīng)用 149
5.7 實(shí)踐訓(xùn)練——鍵控彩燈 153
思考與練習(xí) 156
第6章 定時(shí)器/計(jì)數(shù)器控制 158
6.1 8051定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)和
工作原理 158
6.2 定時(shí)器/計(jì)數(shù)器的控制寄存器 159
6.3 定時(shí)器/計(jì)數(shù)器的工作方式 161
6.4 定時(shí)器/計(jì)數(shù)器用于外部中斷擴(kuò)展 164
6.5 定時(shí)器/計(jì)數(shù)器應(yīng)用 165
6.6 定時(shí)器2 167
6.7 看門狗 170
6.8 實(shí)踐訓(xùn)練——簡易頻率計(jì)設(shè)計(jì) 171
思考與練習(xí) 173
第7章 單片機(jī)系統(tǒng)的擴(kuò)展 175
7.1 單片機(jī)系統(tǒng)總線的形成 175
7.2 外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展 176
7.2.1 全譯碼 177
7.2.2 部分譯碼 179
7.2.3 線選法 180
7.3 外部程序存儲(chǔ)器的擴(kuò)展 180
7.3.1 EPROM擴(kuò)展 181
7.3.2 E2PROM擴(kuò)展 182
7.4 簡單I/O端口擴(kuò)展 184
7.5 8255A可編程并行輸入/輸出接口 186
7.5.1 8255A的結(jié)構(gòu)和引腳功能 186
7.5.2 8255A與8051 型單片機(jī)
典型連接電路 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單片機(jī)的連接電路 197
7.6.3 8155工作方式控制字和狀態(tài)字 198
7.6.4 8155工作方式 199
7.6.5 8155定時(shí)器/計(jì)數(shù)器 200
7.7 8051并行接口及其C51定義 201
7.8 實(shí)踐訓(xùn)練——存儲(chǔ)器擴(kuò)展 202
思考與練習(xí) 203
第8章 顯示接口設(shè)計(jì) 205
8.1 LED顯示器及其接口 205
8.1.1 靜態(tài)顯示方式 208
8.1.2 動(dòng)態(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顯示板與單片機(jī)的接口 216
8.5 ZY12864D圖形點(diǎn)陣液晶顯示器 222
8.6 實(shí)踐訓(xùn)練——LED顯示器的使用 225
思考與練習(xí) 229
第9章 鍵盤接口及其設(shè)計(jì) 230
9.1 按鍵的狀態(tài)輸入及去抖動(dòng) 230
9.2 鍵盤與CPU的連接方式 232
9.3 鍵盤掃描控制方式 233
9.4 獨(dú)立式按鍵 234
9.5 矩陣式鍵盤 235
9.6 實(shí)踐訓(xùn)練——電子密碼鎖設(shè)計(jì) 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 利用串行口擴(kuò)展并行口 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 單片機(jī)與PC機(jī)通信的接口電路 265
10.6 常用的串行總線接口簡介 268
10.7 實(shí)踐訓(xùn)練——單片機(jī)與單片機(jī)之間的
串行通信 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總線信號(hào)的模擬 278
11.4 24C02器件 284
11.5 實(shí)踐訓(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與單片機(jī)的接口
電路編程 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 單片機(jī)開關(guān)量驅(qū)動(dòng)輸出接口電路 312
12.3.1 發(fā)光二極管 312
12.3.2 蜂鳴器 313
12.3.3 單片機(jī)與繼電器接口電路 314
12.3.4 光電隔離接口 317
12.4 實(shí)踐訓(xùn)練——簡易波形發(fā)生器 318
12.5 實(shí)踐訓(xùn)練——簡易數(shù)字電壓表 324
思考與練習(xí) 329
第13章 單片機(jī)綜合實(shí)例分析 331
13.1 單片機(jī)應(yīng)用系統(tǒng)開發(fā)設(shè)計(jì) 331
13.2 單片機(jī)應(yīng)用系統(tǒng)的開發(fā)工具 333
13.3 單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)方法 335
13.3.1 系統(tǒng)基本結(jié)構(gòu)組成 335
13.3.2 單片機(jī)應(yīng)用系統(tǒng)硬、軟件的
設(shè)計(jì)原則 336
13.3.3 硬件設(shè)計(jì) 337
13.3.4 軟件設(shè)計(jì) 338
13.3.5 資源分配 338
13.4 單片機(jī)應(yīng)用系統(tǒng)調(diào)試 339
13.4.1 單片機(jī)應(yīng)用系統(tǒng)調(diào)試工具 339
13.4.2 單片機(jī)應(yīng)用系統(tǒng)的一般調(diào)試
方法 340
13.5 單片機(jī)系統(tǒng)的抗干擾技術(shù) 343
13.6 基于51單片機(jī)的溫濕度檢測儀 350
13.6.1 方案的設(shè)計(jì) 351
13.6.2 硬件電路的設(shè)計(jì) 351
13.6.3 軟件設(shè)計(jì) 362
13.7 家庭安全報(bào)警系統(tǒng) 364
13.7.1 系統(tǒng)硬件選擇 365
13.7.2 硬件電路設(shè)計(jì) 369
13.7.3 系統(tǒng)軟件設(shè)計(jì) 373
思考與練習(xí) 375
參考文獻(xiàn) 376