第1章 微型计算机系统基本知识 1
1.1 概述 1
1.1.1 微型计算机 1
1.1.2 微型计算机的发展概况 2
1.1.3 单片机的发展概况 2
1.1.4 80C51系列单片机 4
1.1.5 单片机的特点和应用 4
1.1.6 单片机技术的发展趋势 5
1.2 单片机系统的组成 7
1.2.1 微处理器(CPU) 8
1.2.2 总线 9
1.2.3 存储器 9
1.2.4 输入/输出设备及其接口电路 12
1.2.5 单片机系统的软件 12
1.3 计算机中数的表示方法及运算 12
1.3.1 二进制、十进制和十六进制数 13
1.3.2 数制转换 14
1.3.3 二进制数和十六进制数运算 17
1.3.4 原码、反码和补码 20
1.4 常用编码 23
1.4.1 8421 BCD码 23
1.4.2 ASCII码 25
1.5 习题 27
第2章 80C51单片机内部结构和工作原理 29
2.1 内部结构和引脚功能 29
2.1.1 内部结构 29
2.1.2 引脚功能 30
2.2 存储空间配置和功能 32
2.2.1 程序存储器(ROM) 33
2.2.2 外部数据存储器(外RAM) 33
2.2.3 内部数据存储器(内RAM) 34
2.2.4 特殊功能寄存器(SFR) 35
2.2.5 程序计数器PC 38
2.3 I/O端口结构及工作原理 38
2.3.1 P0口 39
2.3.2 P1口 40
2.3.3 P2口 40
2.3.4 P3口 41
2.4 时钟和时序 41
2.4.1 时钟电路 41
2.4.2 时钟周期和机器周期 42
2.4.3 一般指令取指/执行时序 43
2.4.4 读外ROM时序 43
2.4.5 读写外RAM时序 44
2.5 复位和低功耗工作方式 45
2.5.1 复位方式 45
2.5.2 低功耗工作方式 46
2.6 ATMEL89系列单片机 47
2.6.1 AT89C51系列单片机 48
2.6.2 AT89C2051系列单片机 49
2.7 习题 50
第3章 80C51系列单片机指令系统 51
3.1 指令系统基本概念 51
3.1.1 指令基本格式 51
3.1.2 指令分类 52
3.1.3 指令系统中的常用符号 52
3.1.4 寻址方式 53
3.2 指令系统 55
3.2.1 数据传送类指令 55
3.2.2 算术运算类指令 65
3.2.3 逻辑运算及移位指令 72
3.2.4 位操作类指令 77
3.2.5 控制转移类指令 79
3.3 习题 89
第4章 汇编语言程序设计 97
4.1 汇编语言程序设计基本概念 97
4.1.1 汇编语言及其语句结构 97
4.1.2 伪指令 97
4.1.3 汇编 99
4.1.4 程序设计的基本方法 100
4.2 程序设计举例 101
4.2.1 顺序程序 101
4.2.2 分支程序 103
4.2.3 循环程序 106
4.2.4 查表程序 112
4.2.5 散转程序 114
4.3 习题 115
第5章 中断系统和定时/计数器 118
5.1 80C51中断系统 118
5.1.1 中断概述 118
5.1.2 中断源和中断控制寄存器 119
5.1.3 中断处理过程 122
5.1.4 中断响应等待时间 124
5.1.5 中断请求的撤除 124
5.1.6 中断优先控制和中断嵌套 125
5.1.7 中断系统的应用 126
5.2 80C51定时/计数器 131
5.2.1 定时/计数器概述 131
5.2.2 定时/计数器的控制寄存器 131
5.2.3 定时/计数器工作方式 133
5.2.4 定时/计数器的应用 134
5.3 习题 143
第6章 串行通信 146
6.1 串行通信概述 146
6.1.1 异步通信和同步通信 146
6.1.2 串行通信波特率 147
6.1.3 串行通信的制式 147
6.1.4 串行通信的校验 148
6.2 80C51串行口 149
6.2.1 串行口特殊功能寄存器 149
6.2.2 串行工作方式 150
6.3 多机通信 157
6.3.1 多机通信原理 157
6.3.2 多机通信应用举例 158
6.4 习题 162
第7章 80C51并行扩展技术 165
7.1 并行扩展概述 165
7.1.1 并行扩展连接方式 165
7.1.2 并行扩展寻址方式 166
7.2 并行扩展外ROM 170
7.2.1 并行扩展EPROM 170
7.2.2 并行扩展E2PROM 172
7.3 并行扩展外RAM 176
7.4 用74系列芯片并行扩展I/O口 178
7.4.1 74373扩展输入口 179
7.4.2 74377扩展输出口 180
7.4.3 扩展总线驱动能力 181
7.5 并行扩展I/O口可编程芯片介绍 182
7.6 习题 184
第8章 80C51串行扩展技术 186
8.1 串行扩展概述 186
8.1.1 串行扩展特点 186
8.1.2 串行扩展方式分类 187
8.1.3 虚拟串行扩展概念 188
8.2 80C51移位寄存器串行扩展技术 188
8.2.1 移位寄存器串行扩展方式 188
8.2.2 串行方式0归一化子程序 189
8.2.3 80C51 I/O虚拟串行接口 191
8.2.4 移位寄存器串行扩展应用 193
8.3 I2C总线串行扩展技术 194
8.3.1 I2C总线串行扩展概述 194
8.3.2 80C51单主系统虚拟I2C总线软件包 197
8.4 虚拟I2C总线扩展I/O口 202
8.4.1 I2C总线扩展I/O口通用器件PCF8574 202
8.4.2 PCF8574应用实例 203
8.5 虚拟I2C总线扩展AT24CXX系列E2PROM 204
8.5.1 I2C总线E2PROM芯片AT24C02 204
8.5.2 扩展AT24C02应用举例 205
8.6 串行扩展93CX6系列E2PROM 208
8.6.1 AT93C46特点、引脚功能和指令系统 208
8.6.2 AT93C46读写应用 209
8.7 习题 213
第9章 常用外围设备接口电路 215
9.1 LED数码管显示接口 216
9.1.1 LED数码管 216
9.1.2 LED数码管编码方式 216
9.1.3 静态显示方式及其典型应用电路 218
9.1.4 动态显示方式及其典型应用电路 221
9.1.5 虚拟I2C总线串行显示电路 223
9.2 键盘接口 226
9.2.1 键盘接口概述 226
9.2.2 独立式按键及其接口电路 228
9.2.3 矩阵式键盘及其接口电路 230
9.3 A/D转换接口电路 234
9.3.1 A/D转换的基本概念 234
9.3.2 并行A/D ADC0809及其接口电路 235
9.3.3 串行A/D ADC0832及其接口电路 239
9.3.4 I2C串行A/D典型应用电路 241
9.4 D/A转换接口电路 243
9.4.1 D/A转换的基本概念 243
9.4.2 DAC0832及其接口电路 244
9.4.3 DAC0832应用实例 246
9.4.4 I2C串行D/A典型应用电路 248
9.5 开关量驱动输出接口电路 249
9.5.1 驱动发光二极管 249
9.5.2 驱动继电器 249
9.5.3 光电隔离接口 249
9.5.4 驱动晶闸管 250
9.6 习题 251
第10章 单片机应用系统 255
10.1 单片机应用系统的设计 255
10.1.1 总体设计 256
10.1.2 硬件设计 257
10.1.3 软件设计 258
10.1.4 抗干扰设计 259
10.2 单片机应用系统的开发工具 261
10.2.1 开发工具概述 261
10.2.2 单片机开发系统的功能 262
10.2.3 单片机应用系统的调试 264
10.3 单片机温度控制系统应用实例 265
10.3.1 系统要求和控温方案 266
10.3.2 硬件设计 266
10.3.3 软件设计 268
10.3.4 改进提高 271
10.4 汽车倒车测距仪应用实例 272
10.4.1 工作原理 272
10.4.2 硬件电路 272
10.4.3 软件程序 274
10.5 大电流正弦波稳流电源控制实例 278
10.5.1 概述 278
10.5.2 主控电路工作原理 278
10.5.3 单片机控制电路 280
10.5.4 程序设计 281
10.6 智能型即热式热水器控制实例 290
10.6.1 控制电路和工作原理 290
10.6.2 模糊控制简介 291
10.6.3 程序设计 292
附录 80C51反汇编指令表 300
参考文献 301