第0章 绪论 1
0.1 微型计算机发展史 1
0.2 微型计算机的分类 2
0.3 微型计算机的应用 3
第1章 微型机的基本知识 4
1.1 微处理器、微型机和单片机的概念 4
1.2 微型机模型的组成 5
1.2.1 CPU的内部结构 5
1.2.2 存储器 8
1.2.3 I/O接口和外设 9
1.2.4 模型机的工作过程 9
1.3 微机系统 12
1.3.1 微机硬件组成 12
1.3.2 软件系统 15
1.3.3 衡量计算机性能的主要技术指标 16
1.4 单片微型计算机 17
1.4.1 单片机发展史 17
1.4.2 单片机发展趋势 17
1.4.3 单片机内部结构 18
1.4.4 单片机应用系统 19
1.4.5 单片机典型产品 20
1.4.6 单片机的应用 26
习题与思考 28
第2章 MCS-51单片机硬件结构 29
2.1 MCS-51单片机主要功能特点 29
2.2 MCS-51单片机内部结构分析 31
2.3 MCS-51单片机的引脚功能 32
2.3.1 时钟电路 32
2.3.2 控制信号 33
2.3.3 I/O口 35
2.3.4 MCS-51单片机管脚的应用特性 38
2.4 MCS-51的存储器组织 39
2.4.1 MCS-51程序存储器 39
2.4.2 数据存储器 41
2.4.3 专用寄存器 43
2.4.4 外部数据存储器 47
2.5 MCS-51 CPU时序 47
2.5.1 机器周期、状态、相位 47
2.5.2 典型指令的取指和执行时序 47
2.6 MCS-51低功耗运行方式 49
2.6.1 HMOS型单片机掉电运行方式 49
2.6.2 CHMOS型单片机的掉电运行方式与待机方式 49
2.7 MCS-51内部程序存储器的写入、校验和加密 50
2.7.1 8751片内EPROM的写入和擦除 50
2.7.2 8751/8051内部程序校验 51
2.7.3 内部程序存储器加密位 52
习题与思考 52
第3章 MCS-51指令系统 54
3.1 指令系统概述 54
3.1.1 指令与指令系统 54
3.1.2 程序与程序设计 54
3.1.3 汇编语言 55
3.1.4 伪指令 57
3.1.5 MCS-51指令系统的特点 60
3.2 MCS-51指令的寻址方式 62
3.2.1 立即寻址 62
3.2.2 直接寻址 63
3.2.3 寄存器寻址 64
3.2.4 寄存器间接寻址 64
3.2.5 基址寄存器加变址寄存器间接寻址 65
3.2.6 相对寻址 66
3.2.7 位寻址 67
3.3 MCS-51指令系统介绍 67
3.3.1 数据传送指令(共29条) 68
3.3.2 算术运算指令(共24条) 80
3.3.3 逻辑运算指令(共24条) 91
3.3.4 控制转移指令(共17条) 100
3.3.5 布尔处理类指令 108
习题与思考 114
第4章 汇编语言程序设计 119
4.1 概述 119
4.1.1 采用汇编语言的优点 119
4.1.2 汇编语言程序设计步骤 119
4.1.3 评价程序质量的标准 120
4.2 简单程序 120
4.3 分支程序 123
4.3.1 简单分支程序 123
4.3.2 多重分支程序 124
4.3.3 N路分支程序 125
4.4 循环程序 129
4.4.1 循环程序的导出 129
4.4.2 多重循环 133
4.4.3 编写循环程序应注意的问题 135
4.5 查表程序 136
4.6 子程序的设计及其调用 140
4.6.1 子程序的概念 140
4.6.2 调用子程序的要点 140
4.6.3 子程序的调用及嵌套 144
4.7 程序设计举例 147
4.7.1 算术运算程序 147
4.7.2 代码转换程序 153
习题与思考 156
第5章 MCS-51定时/计数器、串行口及中断系统 159
5.1 MCS-51定时/计数器 159
5.1.1 定时/计数器结构与工作原理 159
5.1.2 定时/计数器的方式寄存器和控制寄存器 161
5.1.3 定时/计数器的4种工作方式 162
5.1.4 定时/计数器T2 164
5.1.5 定时/计数器的初始化 166
5.1.6 定时/计数器应用举例 167
5.2 MCS-51串行口 170
5.2.1 串行通信的两种基本方式 170
5.2.2 MCS-51串行口结构 171
5.2.3 串行口工作方式 172
5.2.4 波特率的设计 175
5.2.5 串行口的应用 177
5.3 MCS-51单片机中断系统 180
5.3.1 中断的一般功能 181
5.3.2 中断请求源 182
5.3.3 中断控制 183
5.3.4 中断响应过程 185
5.3.5 外部中断的响应时序与触发方式 186
5.3.6 多外部中断源的设计 187
5.3.7 用软件模拟第三个中断优先级 189
习题与思考 190
第6章 单片机系统扩展设计 192
6.1 MCS-51系统扩展原理 192
6.2 MCS-51存储器系统配置 193
6.2.1 程序存储器 193
6.2.2 数据存储器 194
6.3 程序存储器扩展设计 194
6.3.1 外部程序存储器操作时序 194
6.3.2 常用程序存储器芯片 196
6.3.3 程序存储器扩展设计 201
6.4 数据存储器扩展设计 204
6.4.1 外部数据存储器操作时序 204
6.4.2 常用数据存储器芯片介绍 205
6.4.3 数据存储器扩展设计 209
6.5 I/O接口概述 212
6.6 可编程并行I/O接口芯片8255A 213
6.6.1 8255A的结构 213
6.6.2 8255A的操作说明 214
6.6.3 应用举例 217
6.7 可编程RAM/IO扩展器8155/8156 220
6.7.1 8155/8156芯片的结构 220
6.7.2 RAM和I/O端口寻址方式及应用 221
6.7.3 命令寄存器及状态寄存器 222
6.7.4 8155内部定时器 223
6.7.5 MCS-51与8155的接口方法和应用实例 224
6.8 用TTL芯片扩展简单的I/O接口 226
6.9 显示器与键盘接口 229
6.9.1 显示器接口 229
6.9.2 键盘接口 233
6.9.3 可编程键盘/显示接口8279 235
6.9.4 MCS-51与8279的连接应用举例 243
6.10 并行打印机接口 248
6.10.1 PP40的接口信号 248
6.10.2 PP40的工作方式 249
6.10.3 8051与PP40的接口方法 252
6.10.4 打印程序设计举例 252
习题与思考 258
第7章 数模及模数转换器接口 260
7.1 D/A转换器 260
7.1.1 R-2R T型解码网络D/A转换器 260
7.1.2 描述D/A转换器的性能参数 261
7.2 MCS-51单片机与8位D/A转换器接口技术 262
7.2.1 DAC0832的技术指标 262
7.2.2 DAC0832的结构及原理 263
7.2.3 DAC0832管脚功能 263
7.2.4 8位D/A转换器接口方法 264
7.2.5 D/A转换器的输出方式 266
7.3 MCS-51单片机与12位D/A转换器接口技术 269
7.3.1 DAC1210的技术指标 269
7.3.2 DAC1210的结构与原理 269
7.3.3 8031与DAC1210转换器接口技术 271
7.4 D/A转换器接口技术举例 272
7.4.1 单极性输出接口系统设计 272
7.4.2 双极性输出接口系统设计 274
7.4.3 双路D/A同步控制系统设计 277
7.5 A/D转换器 278
7.5.1 双积分A/D转换器原理 279
7.5.2 逐位逼近式A/D转换器原理 279
7.5.3 描述A/D转换器的性能参数 280
7.6 MCS-51单片机与8位A/D转换器接口技术 281
7.6.1 ADC0808/0809的主要功能 281
7.6.2 ADC0808/0809的组成及工作原理 281
7.6.3 ADC0808/0809管脚功能 282
7.6.4 8031与ADC0808/0809接口设计 283
7.7 MCS-51单片机与12位A/D转换器接口技术 287
7.7.1 AD574的技术指标 288
7.7.2 AD574结构及工作原理 288
7.7.3 AD574转换器的应用 290
7.7.4 AD574与单片机的接口及程序设计 291
7.8 测控系统中的模拟量输入通道 292
7.8.1 模拟量输入通道的结构形式 293
7.8.2 多通道模拟开关 294
7.8.3 多通道模拟开关的扩展应用 296
7.8.4 采样/保持电路 297
7.9 A/D转换中数字滤波程序设计 299
7.9.1 算术平均值法滤波 299
7.9.2 中值法滤波 300
7.9.3 滑动平均值法滤波 300
7.9.4 程序判断法滤波 300
7.9.5 复合法数字滤波 300
习题与思考 301
第8章 单片机C语言程序设计 303
8.1 C语言与汇编语言的编程特点 303
8.1.1 汇编语言的特点 303
8.1.2 C语言的特点 303
8.1.3 C51的特点 304
8.2 C语言简介 304
8.2.1 概述 304
8.2.2 C语言的数据类型 305
8.2.3 数据类型转换 307
8.2.4 基本运算符和表达式 308
8.2.5 C程序的语句 311
8.3 C51对标准C语言的扩展 317
8.3.1 数据类型 317
8.3.2 变量存储类型 318
8.3.3 存储器模式 319
8.3.4 特殊功能寄存器 319
8.3.5 指针 321
8.3.6 绝对地址的访问 322
8.3.7 函数的使用 323
8.4 C51典型程序设计举例 324
8.4.1 数据分析和处理 325
8.4.2 硬件(接口)的操控 328
习题与思考 333
第9章 与MCS-51兼容的新型单片机 334
9.1 ATMEL 89系列单片机 334
9.1.1 概述 334
9.1.2 AT89C2051/AT89C1051单片机 336
9.1.3 AT89C51/52与AT89LV51/52单片机 340
9.2 Philips公司8XC552系列单片机 342
9.2.1 8XC552的主要性能 342
9.2.2 8XC552内部结构及引脚描述 342
9.2.3 8XC552特殊功能寄存器SFR 343
9.2.4 8XC552并行I/O端口及复用功能 345
9.2.5 脉冲宽度调制器PWM 346
9.2.6 A/D转换器 347
9.2.7 定时器T2和捕捉比较逻辑 349
9.2.8 监视定时器T3 352
9.2.9 8XC552中断系统 353
9.2.10 I2C总线简介 354
9.3 ADI公司ADuC系列微转换器 356
9.3.1 ADuC812 356
9.3.2 ADuC816 373
9.3.3 ADuC824 376
习题与思考 379
第10章 单片机应用系统研制方法 380
10.1 单片机应用系统的设计 380
10.1.1 单片机应用系统设计概述 380
10.1.2 总体设计 380
10.1.3 硬件设计 382
10.1.4 可靠性设计 383
10.1.5 保密性设计 387
10.1.6 软件设计 388
10.2 单片机开发系统 392
10.2.1 单片机开发系统与开发工具 392
10.2.2 单片机开发系统的功能 393
10.3 单片机应用系统调试 395
10.3.1 硬件调试方法 395
10.3.2 软件调试方法 397
习题与思考 399
附录A REG51.H文件 400
附录B ABSACC.H文件 403
附录C ASCII码字符表 404
附录D MCS-51系列单片机指令表 405
参考文献 412