第1章 绪论 1
1.1 单片机概述 1
1.1.1 单片机的定义 1
1.1.2 单片机的一般结构及特点 1
1.1.3 单片机的分类 2
1.2 单片机的发展与应用领域 2
1.2.1 单片机的发展 2
1.2.2 单片机的应用领域 3
1.3 AT89C52单片机的主要功能特性 3
习题 4
第2章 AT89C52单片机的硬件基础知识 5
2.1 AT89C52单片机的内部结构及引脚 5
2.1.1 AT89C52单片机的内部结构框图和主要组成部分 5
2.1.2 AT89C52单片机的引脚及功能 6
2.2 AT89C52单片机的存储器配置 8
2.2.1 AT89C52单片机存储器配置特点 8
2.2.2 AT89C52单片机的数据存储器 10
2.2.3 AT89C52单片机的程序存储器 15
2.3 AT89C52单片机的堆栈操作 16
2.4 AT89C52单片机时钟电路与时序 18
2.4.1 时钟信号的产生 18
2.4.2 AT89C52单片机的时序 19
2.5 AT89C52单片机的复位方式与复位电路 20
习题 22
第3章 AT89C52单片机指令系统 23
3.1 AT89C52单片机指令系统概述 23
3.1.1 指令系统的基本概念 23
3.1.2 AT89C52单片机指令格式 24
3.2 AT89C52单片机的寻址方式 25
3.3 AT89C52单片机指令分类详述 29
3.3.1 数据传送指令 29
3.3.2 算术运算指令 36
3.3.3 逻辑运算及移位指令 43
3.3.4 控制转移指令 47
3.3.5 位操作指令 55
3.3.6 I/O口访问指令使用说明 58
3.4 AT89C52单片机指令小结 59
习题 59
第4章 单片机软件设计基础知识 62
4.1 单片机汇编语言程序设计基础 62
4.1.1 汇编语言的语句格式及伪指令 62
4.1.2 汇编语言程序设计步骤和方法 65
4.1.3 汇编语言程序的基本结构形式 67
4.2 单片机汇编语言程序设计实例 77
4.2.1 汇编源程序的编辑与编译 77
4.2.2 汇编语言程序设计实例 80
4.3 单片机C51程序设计语言 82
4.3.1 C51的数据类型与存储类型 83
4.3.2 C51对单片机资源的定义 88
4.3.3 C51的运算符和表达式 91
4.3.4 C51的函数 92
4.3.5 内部资源操作类程序 98
4.3.6 数据运算处理类程序 104
习题 110
第5章 AT89C52单片机中断系统与定时器 111
5.1 单片机中断系统概述 111
5.1.1 中断的基本概念 111
5.1.2 中断的主要功能 113
5.2 AT89C52单片机的中断系统及应用实例 114
5.2.1 中断源 114
5.2.2 中断系统结构及中断控制 115
5.2.3 中断响应的条件及过程和时间 118
5.2.4 中断优先级 120
5.2.5 中断应用实例 121
5.3 AT89C52单片机的定时器/计数器及应用实例 123
5.3.1 定时器/计数器概述 123
5.3.2 定时器/计数器0/1结构及工作原理 125
5.3.3 定时器/计数器0/1的控制寄存器 126
5.3.4 定时器/计数器0/1工作方式及应用 127
5.3.5 定时器/计数器0/1工作方式小结 136
5.3.6 定时器/计数器2的控制寄存器 137
5.3.7 定时器/计数器2的工作方式 138
5.3.8 基于Proteus仿真软件的定时器/计数器应用实例 142
习题 146
第6章 AT89C52单片机的串行口及应用 148
6.1 串行通信基础知识 148
6.1.1 串行通信基本概念 149
6.1.2 串行通信总线标准及接口技术 154
6.2 AT89C52单片机串行口及控制寄存器 162
6.2.1 串行口寄存器的结构 163
6.2.2 串行通信控制寄存器 163
6.3 AT89C52单片机串行口工作方式 165
6.3.1 串行工作方式0 165
6.3.2 串行工作方式1 166
6.3.3 串行工作方式2 167
6.3.4 串行工作方式3 167
6.4 单片机之间的串行通信及设计实例 168
6.4.1 单片机点对点异步通信实例 168
6.4.2 基于Proteus软件的单片机双机通信实例 176
6.5 PC机与单片机之间的串行通信及设计实例 179
6.5.1 PC机与多单片机串行通信协议的制定 180
6.5.2 PC机与多单片机串行通信的实现 180
习题 183
第7章 AT89C52单片机外部功能扩展 184
7.1 外部功能扩展概述 184
7.2 外部存储器的扩展 185
7.2.1 外部存储器扩展概述 185
7.2.2 程序存储器的扩展 187
7.2.3 数据存储器的扩展 191
7.2.4 基于Proteus软件的数据存储器扩展实例 196
7.2.5 基于Proteus软件的程序存储器扩展实例 198
7.3 I/O口扩展及应用 199
7.3.1 I/O口扩展概述 199
7.3.2 可编程并行接口芯片8255A及应用实例 204
7.3.3 键盘与LED显示器接口设计 215
7.3.4 基于Proteus软件的键盘及LED显示器接口实例 225
7.4 单片机与数模及模数转换器的接口及应用 229
7.4.1 单片机与A/D转换器的接口及应用 229
7.4.2 单片机与D/A转换器的接口及应用 238
习题 246
第8章 AT89C52单片机应用系统设计实例 248
8.1 单片机应用系统设计基础 248
8.1.1 单片机应用系统的一般构成 248
8.1.2 单片机应用系统的设计步骤 250
8.2 单片机应用系统常用数据处理算法 256
8.2.1 数字滤波算法 256
8.2.2 系统误差的处理思路 260
8.3 单片机应用系统设计实例 261
8.3.1 基于Proteus软件的超声测距仪设计 261
8.3.2 基于Proteus软件的交通信号灯模拟控制 269
8.3.3 基于Proteus软件的点阵式LCD显示系统设计 276
8.3.4 机务设备检修装置的显示系统设计 287
8.3.5 烘干炉温度控制系统设计 295
习题 298
附录 299
附录Ⅰ AT89C52单片机指令系统 299
附录Ⅱ Proteus电子设计软件 304
Ⅱ.1 Proteus软件简介 304
Ⅱ.1.1 Proteus软件组成 304
Ⅱ.1.2 Proteus软件资源 304
Ⅱ.1.3 基于Proteus产品设计方法 307
Ⅱ.1.4 Proteus软件应用 308
Ⅱ.2 Proteus软件基本操作 308
Ⅱ.2.1 Proteus ISIS操作界面 308
Ⅱ.2.2 Proteus软件基本操作 309
Ⅱ.3 Proteus ISIS参数设置 311
Ⅱ.3.1 Proteus ISIS编辑环境设置 311
Ⅱ.3.2 Proteus ISIS系统参数设置 312
Ⅱ.4 基于Proteus的电路设计 313
Ⅱ.4.1 设计流程 313
Ⅱ.4.2 设计实例 313
Ⅱ.5 基于Proteus的电路仿真 315
Ⅱ.5.1 单片机应用系统交互式仿真 316
Ⅱ.5.2 基于图表的仿真 318
参考文献 320