第1章 绪论 1
1.1 电子计算机概述 1
1.1.1 电子计算机的经典结构 1
1.1.2 微型计算机的组成及其应用形态 2
1.2 单片机的发展过程及产品近况 4
1.2.1 单片机的发展过程 4
1.2.2 单片机产品近况 5
1.3 单片机的特点及应用领域 6
1.3.1 单片机的特点 6
1.3.2 单片机的应用领域 6
1.4 单片机应用系统开发过程 7
1.4.1 指令及目标码 7
1.4.2 开发过程 8
1.4.3 单片机开发技术的进展 9
1.5 μVision集成开发环境简介 9
1.5.1 μVision的界面 9
1.5.2 目标程序的生成 10
1.5.3 仿真调试 12
1.5.4 示例步骤 12
本章小结 13
思考题及习题 13
实验一 应用系统开发过程演示 14
第2章 80C51的结构和原理 16
2.1 80C51系列概述 16
2.1.1 MCS-51系列 16
2.1.2 80C51系列 17
2.2 80C51的基本结构与应用模式 17
2.2.1 80C51的基本结构 17
2.2.2 80C51的应用模式 18
2.3 80C51典型产品资源配置与引脚封装 19
2.3.1 80C51典型产品资源配置 19
2.3.2 80C51单片机的封装和引脚 20
2.4 80C51单片机的CPU 21
2.4.1 CPU的功能单元 22
2.4.2 CPU的时钟与时序 24
2.4.3 80C51单片机的复位 27
2.5 80C51的存储器组织 28
2.5.1 80C51单片机的程序存储器配置 29
2.5.2 80C51单片机的数据存储器配置 32
2.5.3 80C51单片机的特殊功能寄存器(SFR) 35
2.6 80C51的并行口结构与操作 37
2.6.1 P0口、P2口的结构 37
2.6.2 P1口、P2口的结构 40
2.6.3 并行口驱动简单外设 42
本章小结 46
思考题及习题 47
实验二 片上资源认知实验 47
第3章 80C51的指令系统 49
3.1 指令格式及常用符号 49
3.1.1 机器指令的字节编码形式 49
3.1.2 符号指令的书写格式 51
3.2 80C51的寻址方式 52
3.2.1 寄存器寻址 53
3.2.2 直接寻址 53
3.2.3 寄存器间接寻址 54
3.2.4 立即寻址 55
3.2.5 变址寻址 55
3.2.6 相对寻址 56
3.2.7 位寻址 57
3.3 数据传送类指令(29条) 58
3.3.1 一般传送指令 58
3.3.2 特殊传送指令 61
3.4 算术运算类指令(24条) 66
3.4.1 加法 67
3.4.2 减法 70
3.4.3 乘法 70
3.4.4 除法 71
3.5 逻辑运算与循环类指令(24条) 72
3.5.1 逻辑与 73
3.5.2 逻辑或 73
3.5.3 逻辑异或 73
3.5.4 累加器清0和取反 74
3.5.5 累加器循环移位 74
3.6 控制转移类指令(17条) 76
3.6.1 无条件转移 76
3.6.2 条件转移 79
3.6.3 调用与返回 80
3.6.4 空操作 81
3.7 位操作类指令(17条) 83
3.7.1 位传送 83
3.7.2 位状态设置 84
3.7.3 位逻辑运算 84
3.7.4 位判跳(条件转移) 85
本章小结 86
思考题及习题 87
实验三 指令与寻址方式认知实验 89
第4章 80C51的汇编语言程序没计 91
4.1 程序编制的方法和技巧 91
4.1.1 程序编制的步骤 91
4.1.2 程序编制的方法和技巧 92
4.1.3 汇编语言的语句格式 93
4.2 源程序的编辑和汇编 94
4.2.1 源程序的编辑和汇编 95
4.2.2 伪指令 97
4.3 基本程序结构 101
4.3.1 顺序程序 101
4.3.2 分支程序 101
4.3.3 循环程序 104
4.4 子程序及其调用 105
4.4.1 现场保护与恢复 106
4.4.2 参数传递 106
4.4.3 常用子程序示例 109
4.5 简单I/O设备的并口直接驱动示例 117
4.5.1 独立式键盘与LED显示示例 117
4.5.2 矩阵式键盘与LED显示示例 122
本章小结 128
思考题及习题 128
实验四 程序设计与硬件仿真实验 129
第5章 80C51的中断系统及定时/计数器 134
5.1 80C51单片机的中断系统 134
5.1.1 80C51中断系统的结构 134
5.1.2 80C51的中断源 136
5.1.3 80C51中断的控制 137
5.2 80C51单片机中断处理过程 139
5.2.1 中断响应条件和时间 139
5.2.2 中断响应过程 140
5.2.3 中断返回 141
5.2.4 中断程序举例 141
5.3 80C51单片机的定时/计数器 144
5.3.1 定时/计数器的结构和工作原理 144
5.3.2 定时/计数器的控制 145
5.3.3 定时/计数器的工作方式 146
5.3.4 定时/计数器用于外部中断扩展 150
5.3.5 定时/计数器应用举例 150
* 5.4 80C52的定时/计数器T2 155
5.4.1 T2的相关控制寄存器 155
5.4.2 T2的工作方式 156
本章小结 159
思考题及习题 160
实验五 中断与定时/计数器实验 161
第6章 80C51单片机的串行口 163
6.1 计算机串行通信基础 163
6.1.1 串行通信的基本概念 164
6.1.2 串行通信接口标准 167
6.2 80C51单片机的串行口 170
6.2.1 80C51串行口的结构 170
6.2.2 80C51串行口的控制寄存器 171
6.2.3 80C51串行口的工作方式 172
6.2.4 80C51波特率确定与初始化步骤 176
6.3 80C51单片机的串行口应用 177
6.3.1 利用单片机串口的并行I/O扩展 177
6.3.2 单片机与单片机间的通信 178
6.3.3 单片机与PC机间的通信 182
本章小结 187
思考题及习题 188
实验六 串行接口实验 189
第7章 80C51单片机的系统扩展 191
7.1 存储器的扩展 191
7.1.1 程序存储器的扩展 191
7.1.2 数据存储器的扩展 194
輸入/输出及其控制方式 197
7.2.1 输人/输出接口的功能 197
7.2.2 单片机与I/O设备的数据传送方式 198
7.2.3 单片机扩展TTL芯片的输人/输出 200
7.3 81C55接口芯片及其应用 202
7.3.1 81C55的结构及工作方式 202
7.3.2 81C55的接口方法 206
7.4 LCD接口及其扩展 211
7.4.1 LCD1602模块的外形与引脚 211
7.4.2 LCD1602模块的组成 212
7.4.3 LCD1602模块的命令 214
7.4.4 80C51与LCD1602模块的接口示例 215
本章小结 218
思考题及习题 218
实验七 并行接口扩展实验 218
第8章 80C51的串行总线扩展 221
8.1 I2C总线接口及其扩展 221
8.1.1 I2C总线基础 221
8.1.2 80C51的I2C总线时序模拟 224
8.1.3 80C51与AT24C02的接口 226
8.2 SPI总线接口及其扩展 231
8.2.1 单片机扩展SPI总线的系统结构 232
8.2.2 单片机SPI总线的时序模拟 232
8.3 串行时钟日历芯片DS1302及其接口 234
8.3.1 DS1302的性能与引脚 234
8.3.2 DS1302的操作 234
8.3.3 DS1302的寄存器及RAM 235
8.3.4 DS1302与单片机的接口 237
本章小结 239
思考题及习题 240
实验八 串行存储器扩展实验 240
第9章 80C51单片机的模拟量接口 242
9.1 D/A转换器及其与单片机的接口 242
9.1.1 DAC0832芯片主要特性与结构 242
9.1.2 DAC0832与单片机的接口 244
9.2 A/D转换器及其与单片机的接口 246
9.2.1 ADC0809芯片及其与单片机的接口 246
9.2.2 AD574A芯片及其与单片机的接口 250
9.2.3 串行A/D转换器TLC0831及其与单片机的接口 254
本章小结 256
思考题及习题 257
实验九 模拟量输人接口实验 257
第10章 80C51单片机的C语言程序设计 259
10.1 单片机C语言概述 259
10.1.1 C51程序开发过程 259
10.1.2 C51程序结构 260
10.2 C51的数据类型与运算 261
10.2.1 C51的数据类型 261
10.2.2 C51数据的存储器类型 262
10.2.3 80C51硬件结构的C51定义 264
10.2.4 C51的运算符和表达式 265
10.3 C51流程控制语句 267
10.3.1 C51选择语句 267
10.3.2 C51循环语句 269
10.4 C51的指针类型 270
10.4.1 一般指针 270
10.4.2 基于存储器的指针 271
10.5 C51的函数 271
10.5.1 C51函数的定义 272
10.5.2 C51函数的调用与参数传递 272
10.5.3 C51的库函数 273
10.6 C51编程实例 273
10.6.1 80C51内部资源的编程 273
10.6.2 80C51扩展资源的编程 275
本章小结 278
思考题及习题 278
实验十 C51程序设计实验 279
第11章 80C51应用系统设计方法 282
11.1 单片机应用系统设计过程 282
11.1.1 系统设计的基本要求 282
11.1.2 系统设计的步骤 283
11.2 提高系统可靠性的一般方法 285
11.2.1 电源干扰及其抑制 285
11.2.2 地线干扰及其抑制 286
11.2.3 其他提高系统可靠性的方法 287
11.3 数据采集系统的设计 288
11.3.1 模拟输人通道的组成 289
11.3.2 设计示例 290
11.4 智能二线制温度变送器设计实例 291
11.4.1 智能温度变送器简介 291
11.4.2 硬件设计 292
11.4.3 软件设计 297
本章小结 303
思考题及习题 303
附录 305
附录A 80C51单片机指令速查表 305
附录B C51相关资源 309
附录C ASCⅡ码表 320
附录D 常用芯片引脚 321
参考文献 322