第1章 绪论 1
1.1 计算机控制系统的组成 1
1.1.1 计算机控制系统的硬件 2
1.1.2 计算机控制系统的软件 3
1.2 计算机控制系统的分类 4
1.2.1 操作指导系统 4
1.2.2 直接数字控制系统 5
1.2.3 计算机监督控制系统 5
1.2.4 分布式控制系统 7
1.2.5 现场总线控制系统 8
1.3 常用的51系列单片机 8
1.3.1 Intel公司的MCS-51系列单片机 9
1.3.2 Atmel公司的AT89系列单片机 9
1.3.3 Philips公司的51系列单片机 10
1.4 习题 11
第2章 MCS-51单片机的结构和时序 12
2.1 MCS-51单片机的结构 12
2.1.1 MCS-51的组成 12
2.1.2 CPU的结构 13
2.1.3 存储器的结构 16
2.1.4 MCS-51的并行I/O端口 22
2.1.5 MCS-51的定时/计数器 25
2.1.6 MCS-51的中断系统 26
2.1.7 MCS-51的串行接口 26
2.2 MCS-51的引脚功能及片外总线结构 27
2.2.1 MCS-51的引脚功能 27
2.2.2 MCS-51的片外总线结构 29
2.3 MCS-51单片机的工作方式 29
2.3.1 复位工作方式 30
2.3.2 程序执行工作方式 31
2.3.3 节电工作方式 32
2.3.4 编程和校验工作方式 32
2.4 MCS-51单片机的时序 33
2.4.1 时钟电路 33
2.4.2 CPU时序的有关概念 33
2.4.3 MCS-51的取指令和执行指令时序 34
2.4.4 MCS-51访问外部存储器的指令时序 35
2.5 习题 38
第3章 MCS-51系列单片机的指令系统及汇编程序设计 39
3.1 指令系统概述 39
3.1.1 汇编指令格式 39
3.1.2 指令描述符号介绍 40
3.2 寻址方式 40
3.2.1 立即寻址 41
3.2.2 寄存器寻址 41
3.2.3 直接寻址 41
3.2.4 寄存器间接寻址 41
3.2.5 变址寻址 42
3.2.6 相对寻址 43
3.2.7 位寻址 43
3.3 MCS-51系列单片机的指令系统 44
3.3.1 数据传送类指令 44
3.3.2 算术运算类指令 49
3.3.3 逻辑运算及移位指令 54
3.3.4 位操作指令 57
3.3.5 控制转移类指令 58
3.4 汇编语言程序设计 64
3.4.1 汇编语言程序伪指令 64
3.4.2 结构化程序设计 67
3.5 习题 80
第4章 C51高级语言程序设计 84
4.1 C语言高级编程 84
4.1.1 C语言的特点 84
4.1.2 C语言与MCS-51系列单片机 85
4.1.3 C51编译器 85
4.1.4 Keil 8051开发工具 87
4.1.5 C51程序结构 87
4.2 C51对标准C语言的扩展 89
4.2.1 存储区域 89
4.2.2 数据类型 90
4.2.3 常量和变量 91
4.2.4 存储器模式 95
4.2.5 绝对地址的访问 97
4.3 C51的运算符及表达式 99
4.3.1 算术运算符 99
4.3.2 关系和逻辑运算符 99
4.3.3 位运算符 100
4.3.4 逗号运算符 101
4.3.5 赋值运算符 101
4.3.6 条件运算符 102
4.3.7 指针与地址运算符 102
4.3.8 表达式和表达式语句 103
4.4 C51函数 104
4.5 C51构造数据类型 112
4.5.1 数组和指针 112
4.5.2 结构、共同体和枚举 117
4.6 C51库函数 120
4.6.1 本征库函数和非本征库函数 121
4.6.2 访问SFR和位地址的REGxxx.H文件 122
4.6.3 C51库函数 122
4.7 C51程序编写 122
4.7.1 C51程序的基本结构 122
4.7.2 编写高效的C51程序及优化程序 129
4.8 C51语言与汇编语言 130
4.8.1 C51与汇编语言的接口 131
4.8.2 函数的声明及段名的命名规则 133
4.9 习题 134
第5章 MCS-51的定时器、中断系统以及串行口 135
5.1 MCS-51单片机的定时/计数器 135
5.1.1 定时/计数器的结构 135
5.1.2 定时/计数器的控制 136
5.1.3 定时/计数器的工作方式 137
5.1.4 定时/计数器的初始化 139
5.1.5 定时/计数器应用举例 140
5.2 MCS-51单片机的中断系统 145
5.2.1 MCS-51的中断系统组成 145
5.2.2 中断源和中断请求标志 146
5.2.3 中断控制 147
5.2.4 中断的处理过程及响应时间 149
5.2.5 中断系统的初始化及应用 151
5.2.6 中断源的扩展 153
5.3 MCS-51的串行接口 157
5.3.1 串行口的结构 157
5.3.2 串行口的工作方式 159
5.3.3 串行口的通信波特率 161
5.3.4 串行口的初始化 162
5.3.5 串行口的应用举例 162
5.3.6 串行口在多机通信中的应用 169
5.4 习题 170
第6章 单片机的人机交互与扩展技术 172
6.1 单片机系统的人机交互技术 172
6.1.1 显示器接口技术 172
6.1.2 键盘接口技术 181
6.1.3 串行通信接口技术 187
6.2 存储器的扩展技术 193
6.2.1 存储器扩展中应考虑的问题 193
6.2.2 存储器的并行扩展 195
6.2.3 存储器的串行扩展 199
6.3 系统扩展技术 205
6.3.1 并行I/O接口的扩展及应用 205
6.3.2 可编程串行显示接口芯片MAX7219及扩展应用 213
6.4 习题 218
第7章 过程通道 220
7.1 输入/输出通道的结构 220
7.1.1 输入通道的结构 220
7.1.2 输出通道的结构 222
7.2 多路开关及采样量化保持 223
7.2.1 多路模拟开关 223
7.2.2 信号采样及量化 224
7.2.3 保持器 226
7.3 模拟量输出通道接口技术 227
7.3.1 DAC的主要性能指标 227
7.3.2 并行DAC及接口技术 228
7.3.3 串行DAC及接口技术 236
7.4 模拟量输入通道接口技术 239
7.4.1 ADC的主要技术指标 240
7.4.2 并行ADC及接口技术 241
7.4.3 串行ADC及接口技术 249
7.5 压频转换器和频压转换器 259
7.6 开关量输入输出通道 262
7.6.1 开关量输入通道 262
7.6.2 开关量输出通道 263
7.7 习题 266
第8章 数字控制器设计 268
8.1 概述 268
8.2 数字PID控制器 268
8.2.1 PID控制器的数字化实现 268
8.2.2 数字PID控制器算法的几种改进形式 271
8.2.3 PID控制器的参数整定 277
8.3 直接数字控制器的设计 280
8.3.1 直接数字控制器的脉冲传递函数 280
8.3.2 最少拍随动系统数字控制器的设计 281
8.3.3 最少拍无波纹随动系统数字控制器的设计 284
8.4 纯滞后对象控制器的设计 286
8.4.1 大林算法 286
8.4.2 史密斯预估补偿算法 288
8.5 数字控制器的计算机实现 289
8.5.1 直接程序法 290
8.5.2 串行程序法 290
8.5.3 并行程序法 292
8.6 习题 293
第9章 MCS-51系列单片机应用系统开发与设计 295
9.1 单片机系统开发与设计 295
9.1.1 系统总体方案设计 295
9.1.2 硬件设计 296
9.1.3 软件设计 297
9.1.4 系统调试 299
9.1.5 印制电路板设计 302
9.2 抗干扰技术 303
9.2.1 干扰源及其分类 304
9.2.2 硬件抗干扰技术 305
9.2.3 软件抗干扰技术 307
9.3 8路温度巡检仪应用设计 308
9.3.1 设计任务及硬件电路设计 308
9.3.2 系统软件设计 312
9.4 步进电动机控制系统设计 316
9.4.1 设计任务及硬件电路设计 316
9.4.2 系统软件设计 318
9.5 出租车计费器设计 321
9.5.1 设计任务及硬件电路设计 321
9.5.2 系统软件设计 322
附录 328
附录A MCS-51系列单片机指令表 328
附录B Keil C51库函数 331
附录C C51极限值 335
参考文献 336