第1章 微機基礎(chǔ)知識………………………………………………………………… 1
1.1 微處理器、微機和單片機的概念……………………………………………… 1
1.1.1 微處理器(機)的組成…………………………………………………… 1
1.1.2 存儲器和輸入/輸出接口…………………………………………………
5
1.2 微機的工作過程……………………………………………………………… 5
1.2.1 執(zhí)行一條指令的順序…………………………………………………… 6
1.2.2 執(zhí)行一條指令的過程…………………………………………………… 7
1.2.3 執(zhí)行一個程序的過程…………………………………………………… 8
1.3 常用數(shù)制和編碼……………………………………………………………… 11
1.3.1 數(shù)制及數(shù)制間轉(zhuǎn)換……………………………………………………… 12
1.3.2 計算機中常用編碼……………………………………………………… 18
1.4 數(shù)據(jù)在計算機中的表示……………………………………………………… 19
1.4.1 有符號數(shù)………………………………………………………………… 19
1.4.2 無符號數(shù)………………………………………………………………… 20
1.5 89C51/S51單片機…………………………………………………………… 21
1.5.1
AT89C51/S51系列單片機……………………………………………
22
1.5.2 STC89系列單片機…………………………………………………… 23
1.5.3 SST89系列單片機…………………………………………………… 23
1.6 思考題與習(xí)題………………………………………………………………… 24
第2章 89C51/S51單片機的硬件結(jié)構(gòu)和原理…………………………………… 25
2.1 89C51/S51單片機的內(nèi)部結(jié)構(gòu)及特點……………………………………… 25
2.1.1 89C51/S51單片機的基本組成………………………………………… 25
2.1.2 89C51/S51單片機芯片內(nèi)部結(jié)構(gòu)……………………………………… 26
2.2 89C51/S51單片機的引腳及其功能………………………………………… 29
2.3 89C51/S51單片機的存儲器配置…………………………………………… 34
2.3.1 程序存儲器地址空間…………………………………………………… 35
2.3.2 數(shù)據(jù)存儲器地址空間…………………………………………………… 37
2.4 89C51/S51CPU時序……………………………………………………… 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 匯編語言……………………………………………………………………… 50
3.1.1 指令和程序設(shè)計語言…………………………………………………… 50
3.1.2 指令格式………………………………………………………………… 51
3.2 尋址方式……………………………………………………………………… 52
3.2.1 7種尋址方式…………………………………………………………… 53
3.2.2 尋址空間及符號注釋…………………………………………………… 57
3.3 89C51/S51單片機的指令系統(tǒng)……………………………………………… 58
3.3.1 數(shù)據(jù)傳送指令…………………………………………………………… 59
3.3.2 算術(shù)運算指令…………………………………………………………… 63
3.3.3 邏輯操作指令…………………………………………………………… 67
3.3.4 控制程序轉(zhuǎn)移類指令…………………………………………………… 69
3.3.5 位操作(布爾處理)類指令……………………………………………… 77
3.4 思考題與習(xí)題………………………………………………………………… 80
第4章 匯編語言程序設(shè)計知識…………………………………………………… 85
4.1 編程的步驟、方法和技巧…………………………………………………… 85
4.1.1 編程步驟………………………………………………………………… 85
4.1.2 編程的方法和技巧……………………………………………………… 87
4.1.3 匯編語言程序的基本結(jié)構(gòu)……………………………………………… 88
4.2 偽指令………………………………………………………………………… 96
4.3 思考題與習(xí)題………………………………………………………………… 99
第5章 中斷系統(tǒng)…………………………………………………………………… 100
5.1 微機的輸入/輸出方式……………………………………………………… 100
5.1.1 無條件傳送方式……………………………………………………… 100
5.1.2 查詢傳送方式………………………………………………………… 100
5.1.3 直接存儲器存取(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)及中斷處理過程………………………………………………… 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章 定時器及應(yīng)用……………………………………………………………… 119
6.1 定時器概述………………………………………………………………… 119
6.1.1 什么是計數(shù)和定時…………………………………………………… 119
6.1.2 定時器/計數(shù)器的組成………………………………………………… 120
6.2 定時器的控制……………………………………………………………… 121
6.2.1 工作模式寄存器TMOD …………………………………………… 121
6.2.2 控制寄存器TCON …………………………………………………… 122
6.3 定時器的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 串行通信基本知識………………………………………………………… 138
7.1.1 數(shù)據(jù)通信……………………………………………………………… 138
7.1.2 串行通信的傳輸方式………………………………………………… 139
7.1.3 異步通信和同步通信………………………………………………… 140
7.1.4 串行通信的過程及通信協(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點對點異步通信……………………………… 161
7.3.1 通信協(xié)議……………………………………………………………… 161
7.3.2 波特率設(shè)置…………………………………………………………… 161
7.3.3 通信程序舉例………………………………………………………… 163
7.4 89C51/S51與PC機間通信………………………………………………
167
7.4.1 單片機與PC機通信的接口電路……………………………………
167
7.4.2 PC機通信軟件……………………………………………………… 168
7.4.3 89C51通信軟件設(shè)計………………………………………………… 173
7.5 無線單片機及其點到多點無線通信……………………………………… 177
7.5.1 無線單片機…………………………………………………………… 177
7.5.2 無線單片機實現(xiàn)點到多點的無線通信……………………………… 178
7.5.3 多點無線測溫系統(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章 單片機小系統(tǒng)及片外擴展………………………………………………… 185
8.1 串行擴展總線接口技術(shù)…………………………………………………… 185
8.1.1 SPI串行外設(shè)接口總線……………………………………………… 185
8.1.2 I2C總線……………………………………………………………… 191
8.1.3 單總線………………………………………………………………… 191
8.2 并行擴展三總線的產(chǎn)生…………………………………………………… 197
8.2.1 片外三總線結(jié)構(gòu)……………………………………………………… 197
8.2.2 系統(tǒng)擴展的實現(xiàn)……………………………………………………… 198
8.3 擴展數(shù)據(jù)存儲器…………………………………………………………… 199
8.4 簡單并行I/O口的擴展……………………………………………………
199
8.4.1 I/O口的直接輸入/輸出……………………………………………… 199
8.4.2 簡單I/O接口的擴展方法……………………………………………
200
8.5 思考題與習(xí)題……………………………………………………………… 202
第9章 應(yīng)用系統(tǒng)配置及接口技術(shù)………………………………………………… 204
9.1 人機通道配置與接口技術(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與單片機接口及編程……………… 220
9.2.2 8位2通道串行A/D芯片ADC0832與單片機接口及編程……………
222
9.2.3 10位單通道串行輸出A/D芯片TLC1549接口及編程…………… 224
9.2.4 12位串行A/D芯片AD7893與單片機接口及編程……………… 227
9.2.5 16位低速串行A/D芯片AD7705與單片機接口及編程…………… 230
9.2.6 16位高速串行A/D芯片AD7683與單片機接口及編程…………… 235
9.2.7 8位并行輸出A/D芯片ADC0809與單片機接口及編程…………… 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)實用程序…………………………………………………………… 257
10.1 主程序和子程序的概念…………………………………………………… 257
10.1.1 主程序………………………………………………………………… 257
10.1.2 子程序及參數(shù)傳遞…………………………………………………… 257
10.1.3 中斷服務(wù)子程序……………………………………………………… 259
10.2 數(shù)據(jù)采集及簡單控制程序………………………………………………… 260
10.2.1 數(shù)據(jù)采集程序………………………………………………………… 260
10.2.2 航標(biāo)燈控制程序……………………………………………………… 260
10.2.3 水位控制程序………………………………………………………… 262
10.2.4 蜂鳴音報警子程序…………………………………………………… 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 單片機片內(nèi)硬件看門狗……………………………………………… 277
10.6 最短程序…………………………………………………………………… 279
第11章 C51程序設(shè)計…………………………………………………………… 280
11.1 C51程序設(shè)計基礎(chǔ)………………………………………………………… 280
11.1.1 C51的標(biāo)識符和關(guān)鍵字……………………………………………… 280
11.1.2 C51的數(shù)據(jù)類型……………………………………………………… 282
11.1.3 C51變量的存儲方式………………………………………………… 283
11.1.4 C51運算符、表達式及規(guī)則………………………………………… 287
11.2 C51語句…………………………………………………………………… 289
11.2.1 說明語句……………………………………………………………… 289
11.2.2 表達式語句…………………………………………………………… 289
11.2.3 復(fù)合語句……………………………………………………………… 290
11.2.4 條件語句……………………………………………………………… 290
11.2.5 開關(guān)與跳轉(zhuǎn)語句……………………………………………………… 291
11.2.6 循環(huán)語句……………………………………………………………… 293
11.2.7 函數(shù)調(diào)用語句………………………………………………………… 294
11.2.8 返回語句……………………………………………………………… 294
11.2.9 空語句………………………………………………………………… 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 指針的地址計算……………………………………………………… 307
11.5.8 指針數(shù)組與指針型指針……………………………………………… 308
11.6 思考題與習(xí)題……………………………………………………………… 309
附錄A 80C51指令表……………………………………………………………… 311
附錄B 89C51指令矩陣(匯編/反匯編表) ……………………………………… 316
附錄C 8255A可編程外圍并行接口芯片及接口………………………………… 317
參考文獻……………………………………………………………………………… 325