第1章 微型计算机基础知识 1
1.1 计算机中负数的表示和运算 1
1.1.1 机器数和真值 1
1.1.2 负数的3种表示 3
1.1.3 补码运算 5
1.1.4 原码的乘、除运算 7
1.2 数字电子计算机中的常用编码 9
1.2.1 BCD码及十进制调整 9
1.2.2 ASCII码及国内通用字符编码 10
1.3 微型计算机概述 13
1.3.1 微处理器、微型计算机和微型计算机系统 13
1.3.2 微型计算机结构 14
1.3.3 微处理器的基本结构 15
1.3.4 指令执行过程 18
1.4 单片微型计算机 18
1.4.1 单片机的特点 19
1.4.2 单片机的主要品种系列 20
1.4.3 单片机的供应状态 21
习题和思考题 22
第2章 微型计算机的存储器 25
2.1 只读存储器 25
2.1.1 只读存储器的结构及分类 25
2.1.2 只读存储器典型产品举例 28
2.2 随机存取存储器 31
2.2.1 随机存取存储器的基本结构 31
2.2.2 静态基本存储电路 32
2.2.3 动态基本存储电路 33
2.2.4 典型RAM芯片举例 34
2.2.5 Flash存储器 36
2.3 微型计算机存储器的组成与扩展 39
2.3.1 存储器芯片的选择 39
2.3.2 存储器芯片组的连接 40
2.4 CPU与存储器的接口 44
2.4.1 CPU与ROM的接口 44
2.4.2 CPU与RAM的接口 44
习题和思考题 45
第3章 MCS-51单片机的结构和原理 47
3.1 MCS-51系列单片机的结构 47
3.1.1 MCS-51单片机的基本组成 47
3.1.2 MCS-51单片机 48
3.1.3 8051单片机的内部结构 49
3.2 8051单片机的引脚及其功能 56
3.3 MCS-51单片机的工作方式 58
3.3.1 复位方式 58
3.3.2 程序执行方式 59
3.3.3 单步执行方式 59
3.3.4 掉电和节电方式 59
3.3.5 编程和校验方式 60
3.4 MCS-51单片机的时序 61
3.4.1 机器周期和指令周期 61
3.4.2 MC5-51指令的取指/执行时序 61
3.4.3 访问外部ROM和外部RAM的时序 62
3.5 MCS-51单片机外部存储器的扩展 64
3.5.1 程序存储器的扩展 65
3.5.2 数据存储器的扩展 65
3.5.3 单片机和Flash存储器的连接 66
习题和思考题 69
第4章 MCS-51单片机的指令系统 71
4.1 指令和指令程序 71
4.1.1 指令和助记符 71
4.1.2 指令的字节数 72
4.2 寻址方式 73
4.3 数据传送指令 79
4.3.1 内部RAM单元之间的数据传送指令 80
4.3.2 涉及外部存储器的数据传送指令 82
4.3.3 堆栈操作指令 84
4.3.4 数据交换指令 84
4.4 算术运算指令 85
4.4.1 加法指令 85
4.4.2 带进位加法指令 86
4.4.3 加1指令 87
4.4.4 带借位减法指令和减1指令 87
4.4.5 乘、除指令 88
4.4.6 十进制调整指令和数据指针加1指令 89
4.5 逻辑运算及移位指令 91
4.5.1 逻辑与运算指令 92
4.5.2 逻辑或运算指令 92
4.5.3 逻辑异或运算指令 92
4.5.4 累加器清零及取反指令 93
4.5.5 移位指令 94
4.6 控制转移指令 96
4.6.1 无条件转移指令 96
4.6.2 条件转移指令 98
4.6.3 子程序调用及返回指令 101
4.6.4 空操作指令 103
4.7 布尔变量操作指令 103
4.7.1 位传送指令 104
4.7.2 位置位指令 105
4.7.3 位运算指令 105
4.7.4 位控制转移指令 105
习题和思考题 108
第5章 汇编语言程序设计 111
5.1 汇编语言源程序的格式 111
5.1.1 标号 112
5.1.2 操作数 112
5.2 伪指令 113
5.2.1 汇编起始命令ORG 113
5.2.2 汇编结束命令END 113
5.2.3 等值命令EQU 114
5.2.4 数据地址赋值命令DATA 114
5.2.5 定义字节指令DB 114
5.2.6 定义字命令DW 115
5.2.7 定义空间命令DS 116
5.2.8 位地址符号命令BIT 116
5.3 汇编语言源程序的人工汇编 116
5.4 MCS-51程序设计举例 118
5.4.1 顺序程序 118
5.4.2 分支程序 120
5.4.3 循环程序 126
5.4.4 查表程序 130
5.4.5 子程序 133
5.4.6 运算程序 137
习题和思考题 145
第6章 微型计算机的输入/输出及中断6.1 I/O接口电路概述 148
6.1.1 I/O接口电路的作用 148
6.1.2 接口与端口的差别 149
6.1.3 外设的编址方式 150
6.1.4 将外设当做数据存储器访问 153
6.2 I/O传送方式 154
6.2.1 无条件传送方式 154
6.2.2 查询式传送方式 156
6.2.3 中断传送方式 158
6.2.4 直接存储器存取方式 158
6.3 中断概述 159
6.3.1 中断源 160
6.3.2 硬件中断的分类 160
6.3.3 中断的开放与关闭 161
6.3.4 中断源的判别和中断优先级 161
6.4 中断处理过程 163
6.4.1 中断申请 164
6.4.2 中断响应 164
6.4.3 中断处理 165
6.4.4 中断返回 166
6.5 MCS-51的中断系统及其控制 166
6.5.1 中断系统中的寄存器 166
6.5.2 中断源及中断标志位 166
6.5.3 中断开放的控制 168
6.5.4 中断优先级的控制 169
6.5.5 中断响应 170
6.5.6 中断响应时间 171
6.5.7 中断申请的撤销 172
6.5.8 中断系统初始化 173
6.5.9 中断方式应用举例 174
6.6 MCS-51外部中断源的扩展 177
6.6.1 借用定时/计数器溢出中断作为外部中断 177
6.6.2 用查询方式扩展中断源 178
习题和思考题 180
第7章 MCS-51的并行接口 181
7.1 MCS-51内部I/O口及其应用 181
7.1.1 MCS-51的I/O口直接用于输入/输出 181
7.1.2 MCS-51的I/O口改组为非8位端口 183
7.2 MCS-51并行I/O口的扩展 186
7.2.1 外接锁存器和缓冲器扩展I/O口 186
7.2.2 用8255A可编程并行接口芯片扩展I/O口 188
7.2.3 用8155通用接口芯片扩展I/O口 194
7.3 并行口应用——单片机显示/键盘系统 200
7.3.1 LED数码显示器的控制与编程 200
7.3.2 非编码键盘与单片机的接口 202
7.3.3 显示/键盘系统 206
7.4 MCS-51内部定时/计数器及其应用 207
7.4.1 工作方式 208
7.4.2 控制方式 209
7.4.3 应用举例 213
7.4.4 电脑时钟 216
7.4.5 复用方式 221
7.5 单片机应用实例 222
7.5.1 液晶显示器 222
7.5.2 车辆计费器 231
习题和思考题 241
第8章 单片机与数/模及模/数转换器的接口8.1 D/A转换器 243
8.2 MCS-51单片机与D/A转换器的接口 246
8.2.1 DAC0832 D/A转换器 246
8.2.2 DAC0832和MCS-51单片机的连接 247
8.2.3 8051单片机和12位D/A转换器的接口 250
8.2.4 D/A转换器的应用 252
8.3 A/D转换器 255
8.3.1 逐次比较型A/D转换器 255
8.3.2 双积分型A/D转换器 258
8.4 MCS-51单片机与A/D转换器接口 260
8.4.1 ADC0809 A/D转换器 260
8.4.2 ADC0809和8031的连接 262
8.4.3 对12位A/D转换器的接口 264
8.5 数据采集和处理系统 266
8.5.1 数据采集和处理系统的硬件 266
8.5.2 数据采集和处理系统的软件 267
习题和思考题 267
第9章 MCS-51系统的串行接口 270
9.1 串行通信的基本知识 270
9.1.1 串行通信的两种基本方式 270
9.1.2 串行通信中数据的传送方式 272
9.1.3 并/串变换和串行口 273
9.2 MCS-51单片机的串行口 274
9.2.1 MCS-51单片机串行口的控制 275
9.2.2 MCS-51单片机串行口的工作方式 276
9.3 MCS-51单片机串行口的应用 279
9.3.1 MCS-51单片机串行通信的波特率 279
9.3.2 串行口方式0用做扩展并行I/O口 280
9.3.3 串行口方式1和方式3的发送和接收 282
9.3.4 多机通信 285
9.4 MCS-51单片机RS-232串行口 290
9.5 用USART器件扩展MCS-51单片机串行口 292
9.5.1 8251A通用同步/异步接口芯片特性 292
9.5.2 8251A的结构和引脚功能 292
9.5.3 8251A的控制字格式 294
9.5.4 8251A的初始化 295
9.5.5 8251A和MCS-51单片机的连接 296
习题和思考题 297
第10章 8086CPU及Intel微机系统 298
10.1 8086CPU及个人计算机 298
10.1.1 8086CPU结构 298
10.1.2 流水线技术的发展 300
10.1.3 8086的寄存器结构 301
10.1.4 8086的引脚 303
10.1.5 8086的工作模式 304
10.1.6 8086的总线周期 306
10.2 8086系统扩展 307
10.2.1 8086和存储器的连接 307
10.2.2 16位数据的读/写 308
10.2.3 现代微机存储系统的层次结构 309
10.2.4 现代微机的外存储器 311
10.2.5 8086对外设的访问 314
10.2.6 8086的中断系统和8259中断控制器 315
10.2.7 DMA过程和8237DMA控制器 320
10.3 微型计算机总线的发展 325
10.3.1 不同层次的总线 325
10.3.2 系统总线的主要性能指标 326
10.3.3 微型计算机系统总线的发展 327
10.3.4 USB总线 330
10.4 微处理器技术的发展 332
10.4.1 Intel微处理器的发展 332
10.4.2 嵌入式系统微处理器的发展 334
习题和思考题 337
附录A 测试题 339
附录B MCS-51系列单片机指令表 344