第1章 微機基礎知識………………………………………………………………… 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ù)制間轉換……………………………………………………… 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 思考題與習題………………………………………………………………… 24
第2章 89C51/S51單片機的硬件結構和原理…………………………………… 25
2.1 89C51/S51單片機的內部結構及特點……………………………………… 25
2.1.1 89C51/S51單片機的基本組成………………………………………… 25
2.1.2 89C51/S51單片機芯片內部結構……………………………………… 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 復位操作……………………………………………………………………… 46
2.5.1 復位操作的主要功能…………………………………………………… 46
2.5.2 復位電路………………………………………………………………… 48
2.6 思考題與習題………………………………………………………………… 49
第3章 指令系統(tǒng)…………………………………………………………………… 50
3.1 匯編語言……………………………………………………………………… 50
3.1.1 指令和程序設計語言…………………………………………………… 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 算術運算指令…………………………………………………………… 63
3.3.3 邏輯操作指令…………………………………………………………… 67
3.3.4 控制程序轉移類指令…………………………………………………… 69
3.3.5 位操作(布爾處理)類指令……………………………………………… 77
3.4 思考題與習題………………………………………………………………… 80
第4章 匯編語言程序設計知識…………………………………………………… 85
4.1 編程的步驟、方法和技巧…………………………………………………… 85
4.1.1 編程步驟………………………………………………………………… 85
4.1.2 編程的方法和技巧……………………………………………………… 87
4.1.3 匯編語言程序的基本結構……………………………………………… 88
4.2 偽指令………………………………………………………………………… 96
4.3 思考題與習題………………………………………………………………… 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)結構及中斷控制…………………………………… 103
5.3.1 89C51/S51中斷源…………………………………………………… 104
5.3.2 中斷控制……………………………………………………………… 104
5.4 中斷響應及中斷處理過程………………………………………………… 109
5.4.1 中斷響應……………………………………………………………… 109
5.4.2 中斷處理……………………………………………………………… 111
5.4.3 中斷返回……………………………………………………………… 112
5.4.4 關于具體的中斷服務程序…………………………………………… 112
5.5 中斷程序舉例……………………………………………………………… 113
5.5.1 主程序………………………………………………………………… 113
5.5.2 中斷服務程序………………………………………………………… 114
5.6 思考題與習題……………………………………………………………… 117
第6章 定時器及應用……………………………………………………………… 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種模式及應用………………………………………………… 123
6.3.1 模式1及應用………………………………………………………… 124
6.3.2 模式2及應用………………………………………………………… 125
6.3.3 模式3及應用………………………………………………………… 128
6.3.4 綜合應用舉例………………………………………………………… 129
6.4 思考題與習題……………………………………………………………… 136
第7章 89C51/S51串行口及串行通信技術……………………………………… 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 串行口及應用……………………………………………………………… 144
7.2.1 89C51/S51串行口…………………………………………………… 144
7.2.2 89C51/S51串行口的應用…………………………………………… 156
7.3 89C51/S51與89C51/S51點對點異步通信……………………………… 161
7.3.1 通信協(xié)議……………………………………………………………… 161
7.3.2 波特率設置…………………………………………………………… 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通信軟件設計………………………………………………… 173
7.5 無線單片機及其點到多點無線通信……………………………………… 177
7.5.1 無線單片機…………………………………………………………… 177
7.5.2 無線單片機實現(xiàn)點到多點的無線通信……………………………… 178
7.5.3 多點無線測溫系統(tǒng)…………………………………………………… 179
7.6 RFID技術與物聯(lián)網(wǎng)的應用……………………………………………… 181
7.6.1 物聯(lián)網(wǎng)定義…………………………………………………………… 181
7.6.2 RFID技術…………………………………………………………… 181
7.7 思考題與習題……………………………………………………………… 184
第8章 單片機小系統(tǒng)及片外擴展………………………………………………… 185
8.1 串行擴展總線接口技術…………………………………………………… 185
8.1.1 SPI串行外設接口總線……………………………………………… 185
8.1.2 I2C總線……………………………………………………………… 191
8.1.3 單總線………………………………………………………………… 191
8.2 并行擴展三總線的產(chǎn)生…………………………………………………… 197
8.2.1 片外三總線結構……………………………………………………… 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 思考題與習題……………………………………………………………… 202
第9章 應用系統(tǒng)配置及接口技術………………………………………………… 204
9.1 人機通道配置與接口技術………………………………………………… 204
9.1.1 鍵盤接口及處理程序………………………………………………… 204
9.1.2 LED顯示器接口及顯示程序………………………………………… 212
9.1.3 串行口控制的鍵盤/LED顯示器接口電路………………………… 216
9.2 系統(tǒng)前向通道中的A/D轉換器及接口技術…………………………… 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)后向通道配置及接口技術…………………………………………… 242
9.3.1 后向通道中的功率開關器件及接口………………………………… 243
9.3.2 雙向晶閘管(可控硅)溫度控制系統(tǒng)………………………………… 246
9.3.3 串行輸入D/A芯片TLC5615接口技術…………………………… 246
9.3.4 并行輸入D/A芯片及接口技術………………………………………
251
9.4 思考題與習題……………………………………………………………… 255
第10章 系統(tǒng)實用程序…………………………………………………………… 257
10.1 主程序和子程序的概念…………………………………………………… 257
10.1.1 主程序………………………………………………………………… 257
10.1.2 子程序及參數(shù)傳遞…………………………………………………… 257
10.1.3 中斷服務子程序……………………………………………………… 259
10.2 數(shù)據(jù)采集及簡單控制程序………………………………………………… 260
10.2.1 數(shù)據(jù)采集程序………………………………………………………… 260
10.2.2 航標燈控制程序……………………………………………………… 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 標度變換(工程量變換)……………………………………………… 267
10.4 代碼轉換程序……………………………………………………………… 270
10.5 抗干擾技術………………………………………………………………… 272
10.5.1 軟件陷阱技術………………………………………………………… 272
10.5.2 軟件看門狗…………………………………………………………… 275
10.5.3 單片機片內硬件看門狗……………………………………………… 277
10.6 最短程序…………………………………………………………………… 279
第11章 C51程序設計…………………………………………………………… 280
11.1 C51程序設計基礎………………………………………………………… 280
11.1.1 C51的標識符和關鍵字……………………………………………… 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 復合語句……………………………………………………………… 290
11.2.4 條件語句……………………………………………………………… 290
11.2.5 開關與跳轉語句……………………………………………………… 291
11.2.6 循環(huán)語句……………………………………………………………… 293
11.2.7 函數(shù)調用語句………………………………………………………… 294
11.2.8 返回語句……………………………………………………………… 294
11.2.9 空語句………………………………………………………………… 295
11.3 C51的流程控制結構…………………………………………………… 295
11.4 C51函數(shù)………………………………………………………………… 295
11.4.1 函數(shù)的定義…………………………………………………………… 296
11.4.2 函數(shù)的調用…………………………………………………………… 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 思考題與習題……………………………………………………………… 309
附錄A 80C51指令表……………………………………………………………… 311
附錄B 89C51指令矩陣(匯編/反匯編表) ……………………………………… 316
附錄C 8255A可編程外圍并行接口芯片及接口………………………………… 317
參考文獻……………………………………………………………………………… 325