第1章 绪论 1
1.1 概述 1
1.1.1 单片机的产生与发展 2
1.1.2 单片机的发展趋势 3
1.1.3 单片机的应用 4
1.2 单片机系列介绍 5
1.2.1 单片机的主要生产制造商及其特点 5
1.2.2 单片机的四个主要系列 6
本章小结 10
习题 10
第2章 MCS-51系列单片机的基本结构 11
2.1 单片机的基本结构 11
2.1.1 单片机的内部结构及功能部件 12
2.1.2 单片机的外部引脚说明 13
2.2 中央处理器CPU 15
2.2.1 运算部件 15
2.2.2 控制部件及振荡器 16
2.2.3 布尔(位)处理器 17
2.3 存储器 17
2.3.1 单片机存储器的分类及存储空间的配置 17
2.3.2 内部数据存储器 18
2.3.3 外部数据存储器 22
2.3.4 程序存储器 22
2.3.5 Flash闪速存储器的编程 24
2.4 并行输入/输出接口 25
2.4.1 I/O接口电路概述 25
2.4.2 P0口 25
2.4.3 P1口 26
2.4.4 P2口 27
2.4.5 P3口 27
2.5 I/O接口电路的作用 28
2.5.1 接口与端口 29
2.5.2 I/O接口的编址方式 30
2.6 输入/输出传送方式 30
2.6.1 无条件传送方式 30
2.6.2 查询传送方式 31
2.6.3 中断传送方式 31
2.7 CPU时序与复位 32
2.7.1 基本概念 32
2.7.2 CPU的时序 33
2.7.3 复位电路与复位状态 34
2.7.4 掉电与节电方式 34
本章小结 35
习题 36
第3章 指令系统及汇编语言程序设计 37
3.1 MCS-51单片机汇编语言与指令格式 37
3.1.1 单片机的汇编语言 37
3.1.2 指令格式 38
3.1.3 指令中的常用符号 39
3.2 寻址方式 39
3.2.1 寄存器寻址 39
3.2.2 立即寻址 40
3.2.3 寄存器间接寻址 41
3.2.4 直接寻址 41
3.2.5 变址寻址 42
3.2.6 相对寻址 42
3.2.7 位寻址 43
3.3 MCS-51单片机指令系统 43
3.3.1 数据传送类指令 44
3.3.2 算术运算类指令 50
3.3.3 逻辑运算及移位类指令 56
3.3.4 控制转移类指令 59
3.3.5 位操作指令 67
3.4 汇编语言及汇编语言程序设计 70
3.4.1 机器语言、汇编语言和高级语言 70
3.4.2 汇编程序与伪指令 71
3.5 基本程序设计方法 75
3.5.1 程序的基本结构 75
3.5.2 顺序结构程序设计 76
3.5.3 分支(选择)结构程序设计 77
3.5.4 循环结构程序设计 79
3.5.5 子程序结构程序设计 80
本章小结 82
习题 82
第4章 中断、定时/计数器与串行口 85
4.1 中断 85
4.1.1 中断的概念 85
4.1.2 MCS-51单片机的中断系统 86
4.1.3 中断源及优先级 87
4.1.4 中断响应的条件、过程和时间 90
4.1.5 外部中断的请求与撤除 92
4.1.6 中断程序举例 93
4.2 定时/计数器 94
4.2.1 定时/计数器的结构及工作原理 95
4.2.2 定时/计数器的控制与实现 96
4.2.3 定时/计数器的工作方式 97
4.2.4 定时/计数器的应用举例 99
4.3 串行接口 101
4.3.1 串行通信的基本知识 101
4.3.2 MCS-51串行接口及其控制 103
4.3.3 串行口的工作方式 106
4.3.4 多处理机通信方式 108
4.3.5 串行口的应用举例 109
本章小结 114
习题 114
第5章 单片机系统的扩展 115
5.1 概述 115
5.2 系统总线扩展 115
5.2.1 并行总线扩展 116
5.2.2 串行总线扩展 117
5.2.3 编址技术 117
5.3 存储器的扩展 119
5.3.1 存储器扩展概述 119
5.3.2 程序存储器的扩展 119
5.3.3 数据存储器的扩展 121
5.3.4 全地址范围的存储器最大扩展系统 123
5.4 I/O的扩展与应用 124
5.4.1 用TTL芯片扩展I/O口 124
5.4.2 用可编程芯片扩展I/O口 127
5.5 LED数码显示器 134
5.5.1 LED的结构与显示编码方式 134
5.5.2 LED数码显示器的接口方法与显示电路 136
5.5.3 LED数码显示器应用举例 138
5.6 键盘接口 140
5.6.1 键盘接口的工作原理 141
5.6.2 键盘接口电路 143
5.6.3 键盘扫描程序 143
5.6.4 键盘接口实例 144
5.7 A/D转换器 147
5.7.1 A/D转换器概述 148
5.7.2 典型A/D转换器芯片——ADC0809 148
5.7.3 CS-51单片机与ADC0809接口 149
5.7.4 A/D转换器应用举例 152
5.7.5 串行A/D转换接口芯片TLC1543 153
5.8 D/A转换器 159
5.8.1 D/A转换器的技术性能指标 159
5.8.2 典型D/A转换器芯片——DAC0832 160
5.8.3 MCS-51单片机与DAC0832接口 161
5.8.4 串行D/A转换接口芯片TLC5615 163
本章小结 167
习题 167
第6章 基于MCS-51的典型串行总线设计 171
6.1 概述 171
6.2 SPI总线 171
6.2.1 SPI总线的工作原理 172
6.2.2 SPI总线的通信时序 172
6.2.3 硬件电路设计 173
6.2.4 软件设计 175
6.2.5 小结 176
6.3 RS-485总线 176
6.3.1 RS-485总线的工作原理 177
6.3.2 RS-485总线的通信协议 178
6.3.3 硬件电路设计 179
6.3.4 软件设计 181
6.3.5 小结 188
6.4 I2C总线 189
6.4.1 I2C总线的工作原理 189
6.4.2 I2C总线的通信时序 190
6.4.3 硬件电路设计 191
6.4.4 软件设计 192
6.4.5 小结 197
本章小结 197
习题 197
第7章 应用系统设计与应用实例 198
7.1 应用系统设计流程 198
7.1.1 总体设计 199
7.1.2 硬件原理设计 199
7.1.3 印制电路板设计 200
7.1.4 软件设计 200
7.1.5 调试、运行与维护 201
7.1.6 C语言与WAVE开发环境 202
7.2 家用电器典型实例——全自动洗衣机 204
7.2.1 洗衣机的工作原理及设计需求分析 205
7.2.2 方案设计 205
7.2.3 硬件原理图及分析 205
7.2.4 控制过程的软件程序实现 208
7.2.5 实例小结 212
7.3 工业应用实例——配电站综合自动化系统遥测终端单元 212
7.3.1 配电站综合自动化简介 212
7.3.2 综合自动化遥测单元功能需求 212
7.3.3 硬件原理设计 215
7.3.4 程序的设计与组织 220
7.3.5 程序的优化设计 222
7.3.6 各功能模块实现的程序源代码 226
7.3.7 实例小结 236
7.4 网络应用典型实例——单片机实现以太网接口 237
7.4.1 设计分析 237
7.4.2 以太网协议 237
7.4.3 以太网协议控制芯片 238
7.4.4 硬件电路设计 239
7.4.5 电路原理图及说明 242
7.4.6 软件设计 244
7.4.7 实例小结 262
附录 263
附录一 汇编指令集 263
附录二 实验指导 269
实验一 数据块搬移 269
实验二 数制转换 270
实验三 无符号双字节快速乘法子程序 271
实验四 P1口操作实验 273
实验五 工业顺序控制 274
实验六 数字电压表 278
实验七 数字秒表/定时器 282
实验八 急救车与交通灯 290
实验九 双机通信 294
附录三 共阳极显示七段码表 305
附录四 常用芯片引脚图 306
附录五 基于CAN总线的RTU通信协议 309
参考文献 322