第1章 单片机的发展与应用领域 1
1.1 单片机是什么 1
1.1.1 微型计算机分类 1
1.1.2 单片机的基本结构 2
1.2 单片机的分类 3
1.2.1 4位单片机 3
1.2.2 8位单片机 3
1.2.3 16位机 5
1.2.4 32位机 5
1.3 单片机的应用 6
1.4 小结 7
第2章 工程任务、系统要求及系统需求分析 8
2.1 承接工程项目 8
2.1.1 工程项目的定义与来源 8
2.1.2 工程项目实例 8
2.2 工程需求分析 9
2.2.1 系统工作过程分析 9
2.2.2 系统工作环境分析 10
2.2.3 系统指标对需求的附加资源分析 10
2.2.4 项目需求分析报告 12
2.2.5 单片机外围电路的结构设计 12
2.2.6 单片机的选型方法 12
第3章 系统需求条件下的单片机选型 14
3.1 MCS-51系列单片机的硬件资源 14
3.1.1 MCS-51系列单片机的体系结构 14
3.1.2 MCS-51系列单片机的内部结构 15
3.1.3 MCS-51系列单片机的片内资源 17
3.1.4 MCS-51系列单片机的管脚功能及排列 18
3.1.5 MCS-51系列单片机的输入/输出口 21
3.1.6 MCS-51系列单片机的外总线结构 24
3.1.7 常用的几类存储器 26
3.1.8 MCS-51系列单片机的振荡周期、状态周期、机器周期 26
3.1.9 MCS-51系列单片机运行的硬件条件 29
3.2 MCS-51机内核的升级型单片机——STC89C5X系列单片机的硬件资源 29
3.3 针对项目的系统硬件设计 32
3.3.1 单片机的选择 32
3.3.2 人机交互电路设计 32
3.3.3 系统控制模块规划 40
3.3.4 系统检测控制模块规划 44
3.3.5 检测控制板电路设计 47
第4章 控制系统的大脑——软件(控制程序)的构建基础 54
4.1 系统开发条件及开发平台的建立 54
4.2 从机器码到高级语言 55
4.3 STC系列单片机的片内存储器及特殊功能寄存器 56
4.3.1 STC系列单片机的片内存储器 56
4.3.2 MCS-51系列单片机的片内数据存储器 59
4.3.3 STC系列单片机的片内特殊功能寄存器 61
4.4 汇编语言指令分析 67
4.4.1 MCS-51汇编语言格式 67
4.4.2 MCS-51指令系统的分类及一般说明 68
4.4.3 MCS-51的寻址方式 69
4.4.4 MCS-51汇编语言程序设计基础 70
4.5 从指令到程序设计 72
4.5.1 伪指令 72
4.5.2 数据传送类指令 73
4.5.3 算术运算类指令 85
4.5.4 逻辑操作类指令 98
4.5.5 控制转移指令 105
4.5.6 位(布尔)操作类指令 109
4.6 结构和数制转换类汇编语言程序设计 117
4.6.1 查表程序设计 117
4.6.2 散转程序设计 119
4.6.3 循环程序设计 121
4.6.4 数据拼拆与转换程序设计 125
第5章 MCS-51系列单片机内部定时/计数器、中断系统及串行口I/O口的应用 129
5.1 I/O口的应用 130
5.1.1 创建汉字显示条件 130
5.1.2 字符或汉字字模的处理 135
5.1.3 液晶显示器字符或汉字的静态效果显示驱动程序 137
5.2 定时/计数器 149
5.2.1 时间的表达方式及时间测量分辨率 149
5.2.2 定时/计数功能概述 150
5.2.3 定时/计数器的应用 153
5.3 中断的基本概念、中断控制及中断响应过程 155
5.3.1 中断的基本概念 155
5.3.2 中断控制 157
5.3.3 中断响应过程 159
5.4 定时/计数器中断编程步骤及应用 160
5.4.1 定时/计数器中断编程步骤 160
5.4.2 定时/计数器中断编程实例 161
5.5 外部中断源的中断请示及中断服务程序编写 165
5.6 主程序的几种结构 168
5.6.1 过程控制结构 169
5.6.2 时间触发结构 170
5.6.3 事件触发结构 170
5.7 多个外部中断源的设计 171
5.7.1 计数器作为外部中断源的使用方法 171
5.7.2 外部中断源复用技术——硬件、软件结合 173
5.8 串行口及串行通信 176
5.8.1 串行通信的基本概念 176
5.8.2 串行通信 180
5.8.3 串行口结构及工作原理 183
5.8.4 串行口的工作方式 184
5.8.5 双机通信及编程举例 192
5.8.6 多机通信原理及系统设计 208
5.8.7 多机通信及编程举例 210
5.9 RS-232C接口 212
5.9.1 RS-232C接口标准 212
5.9.2 RS-232C逻辑电平 213
5.9.3 RS-232C标准的电气连接方式 213
5.9.4 RS-232C设备与TTL/CMOS器件接口间的电平转换 214
5.10 RS-485接口 215
5.10.1 RS-485接口标准 215
5.10.2 RS-485收/发器 216
5.10.3 51单片机RS-485通信系统设计 217
5.11 多个中断源同时开放时应注意的问题 219
第6章 STC系列单片机新增片内资源及应用 221
6.1 系统性能方面的改善 221
6.1.1 降低单片机对系统的电磁干扰的三大措施 221
6.1.2 STC片内扩展RAM的用法 222
6.1.3 STC片内扩展DATA_Flash的用法 222
6.1.4 STC系列中新增加的外部中断源的应用 227
6.1.5 STC系列中新增加的其他功能概述 229
6.2 定时/计数器T2原理及应用 232
6.2.1 概述 232
6.2.2 定时/计数器T2的工作方式及应用 234
6.3 步进电机的运行控制 242
6.3.1 步进电机的运行控制原理 243
6.3.2 步进电机的驱动程序 244
第7章 MCS-51系列单片机并行总线扩展方法 249
7.1 MCS-51系列单片机的控制信号及三总线 249
7.1.1 单片机的最小应用系统及扩展系统 249
7.1.2 MCS-51系列单片机并行总线扩展方法 250
7.2 MCS-51系列单片机外部程序存储器扩展 253
7.2.1 总线扩展常用器件简介 253
7.2.2 27系列EPROM型存储器 256
7.3 MCS-51系列单片机外部数据存储器扩展 263
7.3.1 MCS-51系列单片机常用数据存储器简介 264
7.3.2 MCS-51系列单片机与62系列数据存储器的接口设计 266
7.4 MCS-51系列单片机外部非易失性数据存储器扩展 269
7.4.1 并行接口EEPROM型非易失性数据存储器概述 269
7.4.2 28系列并行接口EEPROM的一般特性 270
7.4.3 28系列EEPROM的选型 271
7.4.4 28系列并行EEPROM存储器的数据安全措施 271
7.5 MCS-51系列单片机总线扩展系统的地址译码技术 275
7.5.1 问题的来源 275
7.5.2 可编程逻辑器件解决方案 277
7.6 I/O接口芯片的扩展 283
7.6.1 概述 283
7.6.2 可编程并行输入/输出接口8255A 284
7.7 模数转换器的扩展 313
7.7.1 研究模数、数模转换器的意义 313
7.7.2 A/D转换的原理 314
7.7.3 ADC0808/0809与8051的接口设计 321
7.7.4 基于ADC0808/0809的8051采样程序设计 324
7.8 数模转换器的扩展 327
7.8.1 数模转换原理 327
7.8.2 数模转换器DAC0832的内部结构与外部特性 331
7.8.3 DAC0832与51机的接口电路与程序设计 335
第8章 串行总线技术在工程中的应用 341
8.1 串行总线简介 341
8.2 I2C总线时序分析及器件应用实例 342
8.2.1 I2C总线时序分析 342
8.2.2 CAT1161与51机的接口及应用程序 346
8.3 SPI总线时序分析及器件应用实例 357
8.3.1 SPI总线时序分析 357
8.3.2 LTC1598与51机的接口及应用程序 358
8.4 一总线时序分析及器件应用实例 363
8.4.1 一总线简介 363
8.4.2 DS18B20与51机的接口与应用程序 364
8.5 容错技术 377
8.6 单片机系统开发的全过程 380
第9章 单片机应用系统的图形化编程 386
9.1 图形化编译系统简介 386
9.2 单片机应用系统的图形化编程 387
附录A 单片机常用数制、编码及数据格式 392
A.1 数制 392
A.1.1 十进制数 392
A.1.2 十进制计数 393
A.1.3 二进制 393
A.1.4 二进制计数 393
A.1.5 八进制数 394
A.1.6 十六进制 395
A.2 数制与代码 395
A.2.1 二进制、八进制、十六进制向十进制转换的方法 395
A.2.2 十进制数转换成二进制、八进制、十六进制数 396
A.2.3 二进制与八进制、十六进制之间的相互转换及八进制与十六进制之间的相互转换 397
A.2.4 十进制与十六进制转换方法 398
A.3 二进制数的运算 400
A.3.1 二进制数的算术运算 400
A.3.2 计算机中数的表示方法 401
A.3.3 二进制数的逻辑运算 404
A.3.4 浮点数简介 406
A.4 编码 409
A.4.1 二十进制编码 409
A.4.2 字符数字码 411
附录B MCS-51系列单片机指令编码表 414
附录C ASCII码表 423
参考文献 426