第1章 微機(jī)基礎(chǔ)知識(shí)………………………………………………………………… 1
1.1 微處理器、微機(jī)和單片機(jī)的概念……………………………………………… 1
1.1.1 微處理器(機(jī))的組成…………………………………………………… 1
1.1.2 存儲(chǔ)器和輸入/輸出接口…………………………………………………
5
1.2 微機(jī)的工作過(guò)程……………………………………………………………… 5
1.2.1 執(zhí)行一條指令的順序…………………………………………………… 6
1.2.2 執(zhí)行一條指令的過(guò)程…………………………………………………… 7
1.2.3 執(zhí)行一個(gè)程序的過(guò)程…………………………………………………… 8
1.3 常用數(shù)制和編碼……………………………………………………………… 11
1.3.1 數(shù)制及數(shù)制間轉(zhuǎn)換……………………………………………………… 12
1.3.2 計(jì)算機(jī)中常用編碼……………………………………………………… 18
1.4 數(shù)據(jù)在計(jì)算機(jī)中的表示……………………………………………………… 19
1.4.1 有符號(hào)數(shù)………………………………………………………………… 19
1.4.2 無(wú)符號(hào)數(shù)………………………………………………………………… 20
1.5 89C51/S51單片機(jī)…………………………………………………………… 21
1.5.1
AT89C51/S51系列單片機(jī)……………………………………………
22
1.5.2 STC89系列單片機(jī)…………………………………………………… 23
1.5.3 SST89系列單片機(jī)…………………………………………………… 23
1.6 思考題與習(xí)題………………………………………………………………… 24
第2章 89C51/S51單片機(jī)的硬件結(jié)構(gòu)和原理…………………………………… 25
2.1 89C51/S51單片機(jī)的內(nèi)部結(jié)構(gòu)及特點(diǎn)……………………………………… 25
2.1.1 89C51/S51單片機(jī)的基本組成………………………………………… 25
2.1.2 89C51/S51單片機(jī)芯片內(nèi)部結(jié)構(gòu)……………………………………… 26
2.2 89C51/S51單片機(jī)的引腳及其功能………………………………………… 29
2.3 89C51/S51單片機(jī)的存儲(chǔ)器配置…………………………………………… 34
2.3.1 程序存儲(chǔ)器地址空間…………………………………………………… 35
2.3.2 數(shù)據(jù)存儲(chǔ)器地址空間…………………………………………………… 37
2.4 89C51/S51CPU時(shí)序……………………………………………………… 44
2.5 復(fù)位操作……………………………………………………………………… 46
2.5.1 復(fù)位操作的主要功能…………………………………………………… 46
2.5.2 復(fù)位電路………………………………………………………………… 48
2.6 思考題與習(xí)題………………………………………………………………… 49
第3章 指令系統(tǒng)…………………………………………………………………… 50
3.1 匯編語(yǔ)言……………………………………………………………………… 50
3.1.1 指令和程序設(shè)計(jì)語(yǔ)言…………………………………………………… 50
3.1.2 指令格式………………………………………………………………… 51
3.2 尋址方式……………………………………………………………………… 52
3.2.1 7種尋址方式…………………………………………………………… 53
3.2.2 尋址空間及符號(hào)注釋…………………………………………………… 57
3.3 89C51/S51單片機(jī)的指令系統(tǒng)……………………………………………… 58
3.3.1 數(shù)據(jù)傳送指令…………………………………………………………… 59
3.3.2 算術(shù)運(yùn)算指令…………………………………………………………… 63
3.3.3 邏輯操作指令…………………………………………………………… 67
3.3.4 控制程序轉(zhuǎn)移類指令…………………………………………………… 69
3.3.5 位操作(布爾處理)類指令……………………………………………… 77
3.4 思考題與習(xí)題………………………………………………………………… 80
第4章 匯編語(yǔ)言程序設(shè)計(jì)知識(shí)…………………………………………………… 85
4.1 編程的步驟、方法和技巧…………………………………………………… 85
4.1.1 編程步驟………………………………………………………………… 85
4.1.2 編程的方法和技巧……………………………………………………… 87
4.1.3 匯編語(yǔ)言程序的基本結(jié)構(gòu)……………………………………………… 88
4.2 偽指令………………………………………………………………………… 96
4.3 思考題與習(xí)題………………………………………………………………… 99
第5章 中斷系統(tǒng)…………………………………………………………………… 100
5.1 微機(jī)的輸入/輸出方式……………………………………………………… 100
5.1.1 無(wú)條件傳送方式……………………………………………………… 100
5.1.2 查詢傳送方式………………………………………………………… 100
5.1.3 直接存儲(chǔ)器存取(DMA)方式………………………………………… 101
5.2 中斷的概念………………………………………………………………… 101
5.3 89C51/S51中斷系統(tǒng)結(jié)構(gòu)及中斷控制…………………………………… 103
5.3.1 89C51/S51中斷源…………………………………………………… 104
5.3.2 中斷控制……………………………………………………………… 104
5.4 中斷響應(yīng)及中斷處理過(guò)程………………………………………………… 109
5.4.1 中斷響應(yīng)……………………………………………………………… 109
5.4.2 中斷處理……………………………………………………………… 111
5.4.3 中斷返回……………………………………………………………… 112
5.4.4 關(guān)于具體的中斷服務(wù)程序…………………………………………… 112
5.5 中斷程序舉例……………………………………………………………… 113
5.5.1 主程序………………………………………………………………… 113
5.5.2 中斷服務(wù)程序………………………………………………………… 114
5.6 思考題與習(xí)題……………………………………………………………… 117
第6章 定時(shí)器及應(yīng)用……………………………………………………………… 119
6.1 定時(shí)器概述………………………………………………………………… 119
6.1.1 什么是計(jì)數(shù)和定時(shí)…………………………………………………… 119
6.1.2 定時(shí)器/計(jì)數(shù)器的組成………………………………………………… 120
6.2 定時(shí)器的控制……………………………………………………………… 121
6.2.1 工作模式寄存器TMOD …………………………………………… 121
6.2.2 控制寄存器TCON …………………………………………………… 122
6.3 定時(shí)器的4種模式及應(yīng)用………………………………………………… 123
6.3.1 模式1及應(yīng)用………………………………………………………… 124
6.3.2 模式2及應(yīng)用………………………………………………………… 125
6.3.3 模式3及應(yīng)用………………………………………………………… 128
6.3.4 綜合應(yīng)用舉例………………………………………………………… 129
6.4 思考題與習(xí)題……………………………………………………………… 136
第7章 89C51/S51串行口及串行通信技術(shù)……………………………………… 138
7.1 串行通信基本知識(shí)………………………………………………………… 138
7.1.1 數(shù)據(jù)通信……………………………………………………………… 138
7.1.2 串行通信的傳輸方式………………………………………………… 139
7.1.3 異步通信和同步通信………………………………………………… 140
7.1.4 串行通信的過(guò)程及通信協(xié)議………………………………………… 142
7.2 串行口及應(yīng)用……………………………………………………………… 144
7.2.1 89C51/S51串行口…………………………………………………… 144
7.2.2 89C51/S51串行口的應(yīng)用…………………………………………… 156
7.3 89C51/S51與89C51/S51點(diǎn)對(duì)點(diǎn)異步通信……………………………… 161
7.3.1 通信協(xié)議……………………………………………………………… 161
7.3.2 波特率設(shè)置…………………………………………………………… 161
7.3.3 通信程序舉例………………………………………………………… 163
7.4 89C51/S51與PC機(jī)間通信………………………………………………
167
7.4.1 單片機(jī)與PC機(jī)通信的接口電路……………………………………
167
7.4.2 PC機(jī)通信軟件……………………………………………………… 168
7.4.3 89C51通信軟件設(shè)計(jì)………………………………………………… 173
7.5 無(wú)線單片機(jī)及其點(diǎn)到多點(diǎn)無(wú)線通信……………………………………… 177
7.5.1 無(wú)線單片機(jī)…………………………………………………………… 177
7.5.2 無(wú)線單片機(jī)實(shí)現(xiàn)點(diǎn)到多點(diǎn)的無(wú)線通信……………………………… 178
7.5.3 多點(diǎn)無(wú)線測(cè)溫系統(tǒng)…………………………………………………… 179
7.6 RFID技術(shù)與物聯(lián)網(wǎng)的應(yīng)用……………………………………………… 181
7.6.1 物聯(lián)網(wǎng)定義…………………………………………………………… 181
7.6.2 RFID技術(shù)…………………………………………………………… 181
7.7 思考題與習(xí)題……………………………………………………………… 184
第8章 單片機(jī)小系統(tǒng)及片外擴(kuò)展………………………………………………… 185
8.1 串行擴(kuò)展總線接口技術(shù)…………………………………………………… 185
8.1.1 SPI串行外設(shè)接口總線……………………………………………… 185
8.1.2 I2C總線……………………………………………………………… 191
8.1.3 單總線………………………………………………………………… 191
8.2 并行擴(kuò)展三總線的產(chǎn)生…………………………………………………… 197
8.2.1 片外三總線結(jié)構(gòu)……………………………………………………… 197
8.2.2 系統(tǒng)擴(kuò)展的實(shí)現(xiàn)……………………………………………………… 198
8.3 擴(kuò)展數(shù)據(jù)存儲(chǔ)器…………………………………………………………… 199
8.4 簡(jiǎn)單并行I/O口的擴(kuò)展……………………………………………………
199
8.4.1 I/O口的直接輸入/輸出……………………………………………… 199
8.4.2 簡(jiǎn)單I/O接口的擴(kuò)展方法……………………………………………
200
8.5 思考題與習(xí)題……………………………………………………………… 202
第9章 應(yīng)用系統(tǒng)配置及接口技術(shù)………………………………………………… 204
9.1 人機(jī)通道配置與接口技術(shù)………………………………………………… 204
9.1.1 鍵盤接口及處理程序………………………………………………… 204
9.1.2 LED顯示器接口及顯示程序………………………………………… 212
9.1.3 串行口控制的鍵盤/LED顯示器接口電路………………………… 216
9.2 系統(tǒng)前向通道中的A/D轉(zhuǎn)換器及接口技術(shù)…………………………… 220
9.2.1 8位串行A/D芯片TLC0831與單片機(jī)接口及編程……………… 220
9.2.2 8位2通道串行A/D芯片ADC0832與單片機(jī)接口及編程……………
222
9.2.3 10位單通道串行輸出A/D芯片TLC1549接口及編程…………… 224
9.2.4 12位串行A/D芯片AD7893與單片機(jī)接口及編程……………… 227
9.2.5 16位低速串行A/D芯片AD7705與單片機(jī)接口及編程…………… 230
9.2.6 16位高速串行A/D芯片AD7683與單片機(jī)接口及編程…………… 235
9.2.7 8位并行輸出A/D芯片ADC0809與單片機(jī)接口及編程…………… 239
9.3 系統(tǒng)后向通道配置及接口技術(shù)…………………………………………… 242
9.3.1 后向通道中的功率開關(guān)器件及接口………………………………… 243
9.3.2 雙向晶閘管(可控硅)溫度控制系統(tǒng)………………………………… 246
9.3.3 串行輸入D/A芯片TLC5615接口技術(shù)…………………………… 246
9.3.4 并行輸入D/A芯片及接口技術(shù)………………………………………
251
9.4 思考題與習(xí)題……………………………………………………………… 255
第10章 系統(tǒng)實(shí)用程序…………………………………………………………… 257
10.1 主程序和子程序的概念…………………………………………………… 257
10.1.1 主程序………………………………………………………………… 257
10.1.2 子程序及參數(shù)傳遞…………………………………………………… 257
10.1.3 中斷服務(wù)子程序……………………………………………………… 259
10.2 數(shù)據(jù)采集及簡(jiǎn)單控制程序………………………………………………… 260
10.2.1 數(shù)據(jù)采集程序………………………………………………………… 260
10.2.2 航標(biāo)燈控制程序……………………………………………………… 260
10.2.3 水位控制程序………………………………………………………… 262
10.2.4 蜂鳴音報(bào)警子程序…………………………………………………… 265
10.3 數(shù)據(jù)處理程序……………………………………………………………… 265
10.3.1 排序程序……………………………………………………………… 266
10.3.2 數(shù)字濾波程序………………………………………………………… 266
10.3.3 標(biāo)度變換(工程量變換)……………………………………………… 267
10.4 代碼轉(zhuǎn)換程序……………………………………………………………… 270
10.5 抗干擾技術(shù)………………………………………………………………… 272
10.5.1 軟件陷阱技術(shù)………………………………………………………… 272
10.5.2 軟件看門狗…………………………………………………………… 275
10.5.3 單片機(jī)片內(nèi)硬件看門狗……………………………………………… 277
10.6 最短程序…………………………………………………………………… 279
第11章 C51程序設(shè)計(jì)…………………………………………………………… 280
11.1 C51程序設(shè)計(jì)基礎(chǔ)………………………………………………………… 280
11.1.1 C51的標(biāo)識(shí)符和關(guān)鍵字……………………………………………… 280
11.1.2 C51的數(shù)據(jù)類型……………………………………………………… 282
11.1.3 C51變量的存儲(chǔ)方式………………………………………………… 283
11.1.4 C51運(yùn)算符、表達(dá)式及規(guī)則………………………………………… 287
11.2 C51語(yǔ)句…………………………………………………………………… 289
11.2.1 說(shuō)明語(yǔ)句……………………………………………………………… 289
11.2.2 表達(dá)式語(yǔ)句…………………………………………………………… 289
11.2.3 復(fù)合語(yǔ)句……………………………………………………………… 290
11.2.4 條件語(yǔ)句……………………………………………………………… 290
11.2.5 開關(guān)與跳轉(zhuǎn)語(yǔ)句……………………………………………………… 291
11.2.6 循環(huán)語(yǔ)句……………………………………………………………… 293
11.2.7 函數(shù)調(diào)用語(yǔ)句………………………………………………………… 294
11.2.8 返回語(yǔ)句……………………………………………………………… 294
11.2.9 空語(yǔ)句………………………………………………………………… 295
11.3 C51的流程控制結(jié)構(gòu)…………………………………………………… 295
11.4 C51函數(shù)………………………………………………………………… 295
11.4.1 函數(shù)的定義…………………………………………………………… 296
11.4.2 函數(shù)的調(diào)用…………………………………………………………… 296
11.5 數(shù)組和指針……………………………………………………………… 300
11.5.1 數(shù)組的定義和引用…………………………………………………… 300
11.5.2 字符數(shù)組……………………………………………………………… 301
11.5.3 數(shù)組元素賦初值……………………………………………………… 302
11.5.4 數(shù)組作為函數(shù)的參數(shù)………………………………………………… 302
11.5.5 指針的概念…………………………………………………………… 303
11.5.6 數(shù)組的指針…………………………………………………………… 306
11.5.7 指針的地址計(jì)算……………………………………………………… 307
11.5.8 指針數(shù)組與指針型指針……………………………………………… 308
11.6 思考題與習(xí)題……………………………………………………………… 309
附錄A 80C51指令表……………………………………………………………… 311
附錄B 89C51指令矩陣(匯編/反匯編表) ……………………………………… 316
附錄C 8255A可編程外圍并行接口芯片及接口………………………………… 317
參考文獻(xiàn)……………………………………………………………………………… 325