第一章 微型计算机基础知识 1
1.1 计算机中负数的表示及运算 1
1.1.1 机器数和真值 1
1.1.2 负数的三种表示 3
1.1.3 补码运算 5
1.1.4 原码的乘、除运算 6
1.2 数字电子计算机中常用编码 9
1.2.1 BCD码及十进制调整 9
1.2.2 ASCII码及国内通用字符编码 10
1.3 微型计算机概述 12
1.3.1 微处理器、微型计算机和微型计算机系统 12
1.3.2 微型计算机结构 13
1.3.3 微处理器的基本结构 14
1.3.4 指令执行过程 18
1.4 单片微型计算机 18
1.4.1 单片机的特点 19
1.4.2 单片机的主要品种系列 19
1.4.3 单片机的供应状态 21
习题和思考题 22
第二章 微型计算机的存贮器 25
2.1 只读存贮器(ROM) 25
2.1.1 只读存贮器的结构及分类 26
2.1.2 只读存贮器典型产品举例 29
2.2 随机存取存贮器RAM 31
2.2.1 RAM的基本结构 32
2.2.2 静态基本存贮电路 33
2.2.3 动态基本存贮电路 34
2.2.4 典型RAM芯片举例 35
2.2.5 FLASH存贮器 37
2.3 微型计算机存贮器的组成与扩展 40
2.3.1 存贮器芯片的选择 40
2.3.2 存贮器芯片组的连接 41
2.4 CPU与存贮器的接口 45
2.4.1 CPU与ROM的接口 45
2.4.2 CPU与RAM的接口 46
2.5 盒式磁带及软磁盘存贮器 46
2.5.1 盒式磁带作为外存贮器 46
习题和思考题 47
2.5.2 软盘存贮器 47
第三章 MCS-51单片机的结构和原理 50
3.1 MCS-51系列单片机的结构 50
3.1.1 MCS-51单片机的基本组成 50
3.1.2 MCS-51系列 51
3.1.3 8051单片机的内部结构 51
3.2 8051单片机的引脚及其功能 59
3.3 MCS-51单片机的工作方式 60
3.3.1 复位方式 61
3.3.2 程序执行方式 61
3.3.3 单步执行方式 61
3.3.4 掉电和节电方式 62
3.3.5 编程和校验方式 62
3.4.1 机器周期和指令周期 63
3.4 MCS-51单片机的时序 63
3.4.2 MCS-51指令的取指/执行时序 64
3.4.3 访问外部ROM和外部RAM的时序 65
3.5 MCS-51单片机外部存贮器的扩展 66
3.5.1 程序存贮器的扩展 67
3.5.2 数据存贮器的扩展 68
3.5.3 单片机和FLASH存贮器的连接 69
习题和思考题 71
第四章 MCS-51单片机的指令系统 73
4.1 指令和指令程序 73
4.1.1 指令和助记符 73
4.1.2 指令的字节数 74
4.2 寻址方式 75
4.3 数据传送指令 81
4.3.1 内部RAM单元之间的数据传送指令 82
4.3.2 涉及外部存贮器的数据传送指令 84
4.3.3 堆栈操作指令 86
4.3.4 数据交换指令 86
4.4 算术运算指令 86
4.4.1 加法指令 87
4.4.2 带进位加法指令 88
4.4.3 加1指令 89
4.4.4 带借位减法指令和减1指令 89
4.4.5 乘、除指令和其他运算指令 90
4.5 逻辑运算及移位指令 93
4.5.1 逻辑与运算指令 93
4.5.3 逻辑异或运算指令 94
4.5.2 逻辑或运算指令 94
4.5.4 累加器清零及取反指令 95
4.4.5 移位指令 96
4.6 控制转移指令 98
4.6.1 无条件转移指令 98
4.6.2 条件转移指令 99
4.6.3 子程序调用及返回指令 103
4.6.4 空操作指令 105
4.7 布尔变量操作指令 106
4.7.1 位传送指令 106
4.7.2 位置位指令 106
4.7.3 位运算指令 107
4.7.4 位控制转移指令 108
习题和思考题 110
第五章 汇编语言程序设计 112
5.1 汇编语言源程序的格式 112
5.1.1 标号 113
5.1.2 操作数 113
5.2 伪指令 114
5.2.1 ORG(汇编起始命令) 114
5.2.2 END(汇编结束命令) 114
5.2.3 EQU(等值命令) 115
5.2.4 DATA(数据地址赋值命令) 115
5.2.5 DB(定义字节指令) 115
5.2.6 DW(定义字命令) 116
5.2.8 BIT(位地址符号命令) 117
5.3 汇编语言源程序的人工汇编 117
5.2.7 DS(定义空间命令) 117
5.4 MCS-51程序设计举例 119
5.4.1 简单程序 119
5.4.2 分支程序 121
5.4.3 循环程序 127
5.4.4 查表程序 131
5.4.5 子程序 134
5.4.6 运算程序 138
习题和思考题 146
6.1 I/O接口电路概述 149
6.1.1 I/O接口电路的作用 149
第六章 微型计算机的输入/输出 149
6.1.2 接口与端口的差别 150
6.1.3 外设的编址方式 151
6.1.4 将外设当作数据存贮器访问 154
6.2 输入/输出传送方式 155
6.2.1 无条件传送 155
6.2.2 查询式传送 157
6.2.3 中断传送方式 159
6.2.4 直接存贮器存取(DMA)方式 160
习题和思考题 161
第七章 MCS-51的中断和中断接口 162
7.1 中断概述 162
7.1.1 中断源 162
7.1.3 中断的开放与关闭 163
7.1.2 硬件中断的分类 163
7.1.4 中断源的判别和中断优先级 164
7.2 中断处理过程 166
7.2.1 中断请求 166
7.2.2 中断响应 167
7.2.3 中断处理 168
7.2.4 中断返回 168
7.3 MCS-51的中断系统及其控制 169
7.3.1 中断系统的一般功能 169
7.3.2 MCS-51中断系统中的寄存器 169
7.3.2 MCS-51中断源及中断标志位 170
7.3.3 MCS-51中断开放的控制 172
7.3.4 MCS-51中断优先级的控制 173
7.3.5 MCS-51的中断响应 174
7.3.6 中断响应时间 175
7.3.7 中断请求的撤除 176
7.3.8 MCS-51中断系统初始化 177
7.3.9 中断方式应用举例:8031和打印机的接口 177
7.4 MCS-51外部中断源的扩展 181
7.4.1 借用定时/计数器溢出中断作为外部中断 181
7.4.2 用查询方式扩展中断源 182
7.4.3 用8259可编程中断控制器扩展中断源 184
习题和思考题 190
第八章 MCS-51的并行接口 192
8.1 MCS-51内部I/O口及其应用 192
8.1.1 MCS-51的I/O口直接用于输入/输出 192
8.1.2 MCS-51的I/O口改组为非8位端口 194
8.2.1 用8243输入/输出扩展器扩展I/O口 197
8.2 MCS-51并行I/O口的扩展 197
8.2.2 用8255A可编程并行接口芯片扩展I/O口 200
8.2.3 用8155通用接口芯片扩展L/O口 206
8.3 并行口应用——单片机显示/键盘系统 212
8.3.1 LED数码显示器的控制与编程 212
8.3.2 非编码键盘与单片机的接口 215
8.3.3 显示/键盘系统 219
8.4 MC-51内部定时/计数器及其应用 220
8.4.1 MCS-51内部定时/计数器的工作方式 221
8.4.2 MCS-51内部定时/计数器的控制 222
8.4.3 应用举例 226
8.4.4 电脑时钟 229
8.4.5 MCS-51定时/计数器的复用 234
习题和思考题 235
第九章 单片机与数模及模数转换器的接口 238
9.1 D/A转换器 238
9.2 MCS-51单片机与D/A转换器的接口 241
9.2.1 DAC0832数模转换器 241
9.2.2 DAC0832和MCS-51单片机的连接 243
9.2.3 8051单片机和12位D/A转换器的接口 246
9.2.4 D/A转换器的应用 248
9.3 A/D转换器 251
9.3.1 逐次比较型A/D转换器 251
9.3.2 双积分型A/D转换器 253
9.4 MCS-51单片机与A/D转换器接口 256
9.4.1 ADC0809模数转换器 256
9.4.2 ADC0809和8031的连接 258
9.4.3 对12位A/D转换器的接口 260
9.5 数据采集和处理系统 262
9.5.1 数据采集和处理系统的硬件 262
9.5.2 数据采集和处理系统的软件 263
习题和思考题 263
第十章 MCS-51系统的串行接口 266
10.1 串行通信的基本知识 266
10.1.1 串行通信的两种基本方式 266
10.1.2 串行通信中数据的传送方式 269
10.1.3 并串变换和串行接口 269
10.2 MCS-51单片机的串行接口 271
10.2.1 MCS-51单片机串行口的控制 271
10.2.2 MCS-51单片机串行口的工作方式 272
10.3.1 MCS-51单片机串行通信的波特率 275
10.3 MCS-51单片机串行口的应用 275
10.3.2 串行口方式0用作扩展并行I/O口 276
10.3.3 串行口方式1和方式3的发送和接收 279
10.3.4 多机通信 282
10.4 MCS-51单片机RS-232串行接口 286
10.5 用USART器件扩展MCS-51单片机串行口 288
10.5.1 Intel 8251A通用同步/异步接口芯片特性 288
10.5.2 8251A的结构和引脚功能 289
10.5.3 8251A的控制字格式 291
10.5.4 8251A的初始化 292
10.5.5 8251A和MCS-51单片机的连接 293
习题和思考题 294
附录一 MCS-51系列单片机指令表 295