第1章 单片机概述 1
引言 1
1.1 单片机的概念 2
1.1.1 单片机的基本概念 2
1.1.2 单片机的主要特点 2
1.1.3 单片机的发展过程 2
1.2 单片机的选择及应用领域 4
1.2.1 单片机的选择 4
1.2.2 单片机的应用领域 5
1.2.3 单片机的发展趋势 5
1.3 典型单片机性能概览 6
1.4 MCS-51单片机的学习 11
习题1 12
第2章 MCS-51单片机的结构与原理 13
引言 13
2.1 MCS-51单片机硬件结构及引脚 14
2.1.1 MCS-51单片机内部结构 14
2.1.2 MCS-51单片机外部引脚 17
2.2 MCS-51单片机的存储器 19
2.2.1 存储器的基本结构 19
2.2.2 程序存储器ROM 20
2.2.3 数据存储器RAM 20
2.2.4 特殊功能寄存器SFR 21
2.3 MCS-5 1单片机的系统时钟及时序 25
2.3.1 时钟电路 25
2.3.2 MCS-51的时序单位 26
2.3.3 典型时序分析 27
2.4 MCS-51单片机的工作方式 29
2.4.1 复位方式 29
2.4.2 程序执行方式 30
2.4.3 节电工作方式 31
2.4.4 编程和校验方式 32
2.5 MCS-51单片机最小系统 32
2.6 实验与实训 33
2.6.1 单片机最小系统硬件电路 33
2.6.2 复位、晶振、ALE信号的观察 33
习题2 34
第3章 MCS-51单片机汇编语言与程序设计 36
引言 36
3.1 概述 37
3.1.1 汇编语言程序的组成 37
3.1.2 汇编语言指令格式与伪指令 37
3.1.3 指令的分类 41
3.2 MCS-51单片机的寻址方式 42
3.2.1 立即寻址 42
3.2.2 直接寻址 42
3.2.3 寄存器寻址 43
3.2.4 寄存器间接寻址 44
3.2.5 变址寻址 45
3.2.6 相对寻址 46
3.2.7 位寻址 46
3.3 MCS-51单片机的指令系统 47
3.3.1 数据传送指令(DataTransfer) 47
3.3.2 算术运算指令(Arithmetic Operations) 54
3.3.3 逻辑运算及移位指令(Logical Operations and Rotate) 59
3.3.4 控制转移指令(Program Branching) 63
3.3.5 位操作指令(Boolean Variable Manipulation) 69
3.4 汇编语言程序设计基础 72
3.4.1 汇编语言程序设计的步骤 73
3.4.2 汇编语言的汇编与HEX文件 74
3.4.3 汇编语言的开发系统及调试 75
3.5 汇编语言程序设计方法 77
3.5.1 顺序程序设计 78
3.5.2 分支程序设计 78
3.5.3 循环程序设计 81
3.5.4 查表程序设计 84
3.5.5 子程序设计 87
3.6 实验与实训 90
3.6.1 Keil μVision4集成开发环境和程序调试 90
3.6.2 冒泡法数据排序 93
习题3 95
第4章 C51程序设计及Proteus 仿真 98
引言 98
4.1 编程语言种类及其特点 99
4.1.1 汇编语言的特点 99
4.1.2 C语言的特点 99
4.1.3 C51语言的特点 99
4.2 C51简介及特征 100
4.2.1 C51扩展 100
4.2.2 数据类型 101
4.2.3 存储类型 103
4.2.4 指针 105
4.2.5 函数 106
4.3 单片机的C51编程 108
4.3.1 输入/输出 108
4.3.2 外部中断 109
4.3.3 定时器/计数器 109
4.3.4 串行通信 110
4.4 Proteus软件仿真 111
4.4.1 Proteus软件介绍 111
4.4.2 基于Proteus的电路仿真 112
4.4.3 Keil与Proteus联合调试 118
4.5 实验与实训 120
4.5.1 Proteus绘制单片机最小系统 120
4.5.2 交通灯控制 120
习题4 122
第5章 MCS-51单片机的内部资源及应用 124
引言 124
5.1 MCS-51单片机的并行I/O接口 125
5.1.1 MCS-51内部并行I/O接口 125
5.1. 2 MCS-51内部并行I/O接口的应用 127
5.2 MCS-51单片机的中断系统 132
5.2.1 中断的基本概念 132
5.2.2 MCS-51的中断系统 134
5.2.3 MCS-51中断系统的编程 140
5.2.4 MCS-51扩展外部中断请求输入口 142
5.3 MCS-51单片机的定时器/计数器 143
5.3.1 定时器/计数器 143
5.3.2 定时器/计数器的工作方式 145
5.3.3 定时器/计数器的应用 146
5.4 MCS-51单片机的串行通信 150
5.4.1 概述 150
5.4.2 MCS-51的串行口 152
5.4.3 串行口的工作方式 153
5.4.4 串行口的通信波特率 155
5.4.5 串行口的应用 156
5.5 实验与实训 161
5.5.1 继电器控制 161
5.5.2 工业顺序控制 161
习题5 163
第6章 MCS-51单片机系统的扩展技术 166
引言 166
6.1 MCS-51单片机系统扩展概述 167
6.1.1 MCS-51系列单片机的外部扩展原理 167
6.1.2 MCS-51单片机系统地址空间的分配 168
6.2 存储器的扩展 169
6.2.1 程序存储器扩展 170
6.2.2 数据存储器扩展 173
6.2.3 MCS-51对外部存储器的扩展 175
6.3 并行I/O接口的扩展 176
6.3.1 概述 176
6.3.2 普通并行I/O接口扩展 177
6.3.3 可编程并行I/O接口芯片扩展 180
6.4 总线接口扩展 188
6.4.1 EIA RS-232C总线标准与接口电路 188
6.4.2 RS-422/RS-485总线标准与接口电路 191
6.4.3 I2C总线标准与接口电路 193
6.4.4 其他常用总线标准 197
6.5 实验与实训 199
6.5.1 数据存储器扩展 199
6.5.2 步进电动机控制 200
习题6 201
第7章 MCS-51单片机的输入/输出通道接口 202
引言 202
7.1 输入/输出通道概述 203
7.2 D/A转换器及接口技术 206
7.2.1 D/A转换器的性能指标 206
7.2.2 D/A转换器的分类 207
7.2.3 DAC0832转换器的接口 207
7.3 A/D转换器及接口技术 212
7.3.1 A/D转换器的性能指标 212
7.3.2 A/D转换器的分类 213
7.3.3 ADC0809转换器的接口 213
7.4 实验与实训 216
7.4.1 直流电动机调速 216
7.4.2 数据采集系统 217
习题7 219
第8章 MCS-51单片机的交互通道配置与接口 221
引言 222
8.1 MCS-51单片机与键盘的接口技术 222
8.1.1 概述 222
8.1.2 使用键盘时必须解决的问题 222
8.1.3 键盘接口 223
8.2 MCS-51单片机与显示器的接口技术 232
8.2.1 LED显示器及其接口 232
8.2.2 LCD显示器及其接口 239
8.3 MCS-51单片机键盘和显示器接口设计实例 241
8.3.1 利用8255芯片实现键盘和显示器接口 241
8.3.2 利用MCS-51的串行口实现键盘和显示器接口 243
8.3.3 利用专用芯片实现键盘和显示器接口 245
8.4 MCS-51单片机与微型打印机的接口技术 246
8.4.1 微型打印机的特点 246
8.4.2 接口技术 246
8.4.3 字符代码及打印命令 248
8.4.4 打印程序实例 249
8.5 实验与实训 250
8.5.1 可调数字电子钟 250
8.5.2 汉字打印实例 255
习题8 256
第9章 MCS-51单片机应用系统设计与实例 258
引言 258
9.1 单片机应用系统设计过程 259
9.1.1 总体设计 259
9.1.2 硬件设计 261
9.1.3 软件设计 262
9.1.4 单片机应用系统的调试与测试 264
9.2 提高系统可靠性的一般方法 265
9.2.1 电源干扰及其抑制 265
9.2.2 地线干扰及其抑制 266
9.2.3 其他提高系统可靠性的方法 268
9.3 应用实例——单片机温度控制系统 269
9.3.1 方案论证 269
9.3.2 总体设计 270
9.3.3 硬件设计 270
9.3.4 软件设计 273
9.3.5 综合调试 283
习题9 283
附录 284
附录A ASCⅡ码字符表 284
附录B MCS-51单片机指令表 285
附录C Proteus库元器件分类及部分元器件 289
参考文献 290