第1章 绪论 1
1.1 计算机中信息的表示方法 1
1.1.1 常用数制及其算术运算 1
1.1.2 计算机中数的表示及编码 3
1.1.3 逻辑代数简介 8
1.2 微型计算机系统的组成及工作原理 10
1.2.1 微型计算机的组成 11
1.2.2 微型计算机的组成及其应用形态 12
1.3 单片机的发展过程及主流产品 14
1.3.1 单片机的发展过程 14
1.3.2 单片机主流产品 15
1.4 单片机的特点及应用领域 17
1.4.1 单片机的特点 17
1.4.2 单片机的应用领域 17
1.5 单片机应用系统开发简述 18
1.5.1 单片机应用系统的开发 18
1.5.2 单片机应用系统的传统开发方式 19
1.5.3 单片机开发方式的发展 20
1.6 单片机仿真软件Proteus 20
1.6.1 Proteus软件仿真的特点 21
1.6.2 Proteus软件的简单用法 22
1.6.3 Proteus软件应用举例 26
1.6.4 Proteus与第三方软件Keil的联合仿真 31
1.7 μVision软件开发环境 35
1.7.1 μVision的界面 35
1.7.2 目标程序的生成 36
本章小结 39
习题 39
项目1:单片机应用系统开发过程示范 40
项目2:应用8052+Proteus设计闪烁的LED,并按设定的时间间隔闪烁 41
第2章 MCS-51的结构和原理 43
2.1 MCS-51的基本结构与应用模式 43
2.1.1 MCS-51的基本结构 43
2.1.2 MCS-51的应用模式 45
2.2 MCS-51典型产品资源配置与引脚封装 45
2.2.1 MCS-51典型产品资源配置 45
2.2.2 MCS-51单片机的封装和引脚 46
2.3 MCS-51单片机的CPU 49
2.3.1 CPU的功能单元 49
2.3.2 CPU的时钟与时序 50
2.3.3 MCS-51单片机的复位 52
2.4 MCS-51的存储器组织 53
2.4.1 MCS-51单片机的程序存储器配置 54
2.4.2 MCS-51单片机的数据存储器配置 54
2.4.3 MCS-51单片机的特殊功能寄存器 57
2.5 MCS-51的并行口结构与操作 60
2.5.1 P0口、P2口的结构 60
2.5.2 P1口、P3口的结构 62
2.5.3 并行口驱动简单外部设备 63
本章小结 66
习题 66
项目:片上资源认知展示 67
第3章 MCS-51的指令系统 68
3.1 指令格式及常用符号 68
3.2 机器指令的字节编码形式 69
3.3 80C51的寻址方式 71
3.3.1 寄存器寻址方式 71
3.3.2 直接寻址方式 71
3.3.3 寄存器间接寻址方式 72
3.3.4 立即寻址 73
3.3.5 变址寻址方式 73
3.3.6 相对寻址方式 74
3.3.7 位寻址方式 74
3.4 数据传送类指令(29条) 75
3.4.1 一般传送指令(16条) 75
3.4.2 特殊传送指令(13条) 76
3.5 算术运算类指令(24条) 78
3.5.1 加法 79
3.5.2 减法 81
3.5.3 乘法(1条) 82
3.5.4 除法(1条) 82
3.6 逻辑运算与循环移位指令(24条) 82
3.6.1 逻辑“与”运算指令(6条) 82
3.6.2 逻辑“或”运算指令(6条) 82
3.6.3 逻辑“异或”运算指令(6条) 83
3.6.4 累加器A清零和取反指令 83
3.6.5 累加器循环移位指令 83
3.7 控制转移类指令(17条) 84
3.7.1 无条件转移指令(4条) 84
3.7.2 条件转移指令(8条) 85
3.7.3 调用与返回指令(4条) 86
3.7.4 空操作(1条) 87
3.8 位操作类指令(17条) 87
3.8.1 位传送 87
3.8.2 位状态设置 87
3.8.3 位逻辑运算 88
3.8.4 位判跳(条件转移) 88
本章小结 89
习题 89
项目:指令与寻址方式展示 90
第4章 MCS-51的汇编语言程序设计 92
4.1 程序编制的方法和技巧 92
4.1.1 程序编制的步骤 92
4.1.2 程序编制的方法 93
4.1.3 汇编语言的语句格式 93
4.2 源程序的编辑与汇编 94
4.2.1 源程序的编辑与汇编概述 94
4.2.2 伪指令 95
4.3 基本程序 97
4.3.1 顺序程序 97
4.3.2 分支程序 100
4.3.3 循环程序 104
4.4 子程序及其调用 109
4.4.1 现场保护与恢复 110
4.4.2 参数传递 111
4.4.3 常用子程序示例 113
4.5 简单I/O设备的应用程序设计 115
4.5.1 独立式键盘与LED显示示例 116
4.5.2 矩阵式键盘与LED显示示例 119
本章小结 122
习题 122
项目:程序设计与硬件仿真综合示范 123
第5章 MCS-51单片机的中断系统及定时器/计数器 127
5.1 MCS-51单片机的中断系统 127
5.1.1 MCS-51单片机中断系统的结构 127
5.1.2 MCS-51单片机的中断源 127
5.1.3 MCS-51中断的控制 130
5.2 MCS-51单片机中断处理过程 132
5.2.1 中断响应条件和时间 132
5.2.2 中断响应过程 133
5.2.3 中断返回 133
5.2.4 中断程序举例 134
5.2.5 多个外部中断源系统设计 136
5.3 MCS-51单片机的定时器/计数器 137
5.3.1 定时器/计数器的逻辑结构和工作原理 138
5.3.2 定时器/计数器的控制 138
5.3.3 定时器/计数器的工作方式 139
5.3.4 定时器/计数器用于外部中断扩展 142
5.3.5 定时器/计数器应用举例 143
5.4 MCS-51的定时器/计数器T2 146
5.4.1 T2的相关控制寄存器 146
5.4.2 T2的工作方式 148
本章小结 150
习题 150
项目:中断与定时器/计数器示范 151
第6章 MCS-51单片机的串行口 156
6.1 计算机串行通信基础 156
6.1.1 串行通信的基本概念 156
6.1.2 串行通信接口标准 158
6.2 MCS-51单片机的串行口 159
6.2.1 MCS-51串行口的结构 159
6.2.2 MCS-51串行口的控制寄存器 160
6.2.3 MCS-51串行口的工作方式 161
6.2.4 MCS-51波特率的确定与初始化步骤 163
6.3 MCS-51单片机的串行口应用 163
6.3.1 利用单片机串行口的并行I/O扩展 163
6.3.2 单片机与单片机间的通信 166
6.3.3 单片机与计算机间的通信 168
本章小结 171
习题 172
项目:MCS-51串行口应用实验——双机通信 172
第7章 单片机的最小应用系统与外部扩展 175
7.1 单片机的最小应用系统 175
7.1.1 单片机的时钟电路 175
7.1.2 复位电路及复位状态 176
7.1.3 MCS-51单片机引线及外部总线结构 177
7.1.4 MCS-51单片机的最小应用系统 179
7.1.5 MCS-51单片机的最小应用系统 179
7.2 单片机的外部扩展 180
7.2.1 外部扩展芯片与地址总线的连接 180
7.2.2 外部扩展芯片与数据总线的连接 182
7.2.3 外部扩展芯片与控制总线的连接 182
7.3 用TTL或CMOS芯片扩展简单的I/O口 183
7.3.1 用寄存器扩展简单的输出接口 183
7.3.2 用三态缓冲器扩展输入接口 184
7.3.3 用三态缓冲寄存器扩展输入/输出接口 185
7.3.4 应用举例 186
7.3.5 开关量的驱动与隔离 190
本章小结 192
习题 193
项目:拨盘开关接口示例 193
第8章 MCS-51单片机的模拟量接口 195
8.1 D/A转换器及其与单片机的接口 195
8.1.1 DAC0832芯片的主要特性与结构 195
8.1.2 DAC0832与单片机的接口 196
8.2 A/D转换器及其与单片机的接口 199
8.2.1 ADC0809芯片的结构及其与单片机的接口 199
8.2.2 AD574A芯片及其与单片机的接口 202
8.2.3 串行A/D转换器TLC0831及其与单片机的接口 206
8.3 A/D、D/A转换器应用领域及其在系统设计中的重要性 207
本章小结 208
习题 208
项目:模拟量输入接口示范 208
第9章 MCS-51单片机的C语言程序设计 212
9.1 单片机C语言概述 212
9.1.1 C51语言程序开发过程 212
9.1.2 C51语言程序结构 216
9.2 C51的标识符与关键字 217
9.2.1 标识符 217
9.2.2 关键字 218
9.3 C51的数据类型与运算 219
9.3.1 C51的数据类型 219
9.3.2 常量与变量 222
9.3.3 C51语言的运算符和表达式 226
9.4 流程控制语句 231
9.4.1 顺序执行类语句 231
9.4.2 控制转移类语句 232
9.5 C51的预处理命令 237
9.5.1 文件包含命令 237
9.5.2 宏定义命令 238
9.5.3 条件编译命令 239
9.5.4 其他预处理命令 240
9.6 指针 242
9.6.1 通用指针 242
9.6.2 存储器专用指针 243
9.6.3 通用指针和存储器专用指针的比较 244
9.6.4 抽象指针 245
9.6.5 指针的应用 246
9.7 C51语言的函数 248
9.7.1 C51函数的定义 248
9.7.2 C51函数的调用与参数传递 249
9.7.3 C51语言的中断函数 251
9.7.4 C51语言的库程序 252
9.8 C51编程实例 258
本章小结 264
习题 264
项目:C51程序设计示范 265
第10章 MCS-51应用系统设计 273
10.1 单片机应用系统设计过程 273
10.1.1 系统设计的基本要求 273
10.1.2 系统设计的步骤 273
10.2 提高系统可靠性的一般方法 275
10.2.1 电源干扰及其抑制 275
10.2.2 地线干扰及其抑制 276
10.2.3 提高系统可靠性的其他方法 277
10.3 数据采集系统的设计 278
10.3.1 模拟输入通道的组成 279
10.3.2 设计示例 280
10.4 智能二线制温度变送器设计示例 281
10.4.1 智能温度变送器简介 281
10.4.2 硬件设计 282
10.4.3 软件设计 286
本章小结 290
习题 291
项目1:应用80C51和Proteusy设计LED模拟交通灯,并写出仿真过程 291
项目2:ADC0809 A/D转换器基本应用技术 293
附录A 52子系列单片机 299
附录B 8XC552单片机 304
附录C MCS-51指令系统表 316
附录D MCS-51指令速查表 320
参考文献 323