第1章 绪论 1
1.1 单片机简介 1
1.1.1 单片机发展概况 2
1.1.2 单片机的发展趋势 3
1.1.3 单片机厂商及机型 3
1.2 常用8位单片机 4
1.3 MCS-51系列单片机 5
1.4 单片机应用 7
习题 8
第2章 MCS-51单片机基本结构 9
2.1 MCS-51单片机内部结构 9
2.1.1 CPU 10
2.1.2 存储器 12
2.1.3 I/O端口 16
2.1.4 中断系统 19
2.1.5 定时/计数器 19
2.2 MCS-51单片机引脚功能 19
2.3 MCS-51单片机时序 21
2.3.1 机器周期和指令周期 21
2.3.2 取指/执行时序 23
2.3.3 访问片外ROM/RAM指令时序 24
2.4 单片机复位与复位电路 25
2.4.1 复位状态 25
2.4.2 复位电路 26
2.5 单片机最小应用系统 27
2.6 单片机低功耗运行 28
习题 29
第3章 MCS-51单片机指令系统 31
3.1 指令格式与分类 31
3.1.1 指令格式 31
3.1.2 指令分类 32
3.2 寻址方式 34
3.2.1 立即寻址 34
3.2.2 直接寻址 35
3.2.3 寄存器寻址 35
3.2.4 寄存器间接寻址 35
3.2.5 基址加变址寻址 36
3.2.6 相对寻址 36
3.3 数据传送类指令 37
3.3.1 内部数据存储器传送指令 37
3.3.2 外部数据存储器传送指令 38
3.3.3 程序存储器数据传送指令 38
3.3.4 数据交换指令 38
3.3.5 堆栈操作指令 39
3.4 算术运算类指令 39
3.4.1 加法运算指令 39
3.4.2 减法运算指令 40
3.4.3 乘除法运算指令 41
3.4.4 十进制调整指令 41
3.5 逻辑运算类指令 42
3.5.1 单操作数逻辑运算指令 42
3.5.2 双操作数逻辑运算指令 43
3.6 控制程序转移类指令 44
3.6.1 无条件转移指令 44
3.6.2 条件转移指令 47
3.6.3 子程序调用与返回指令 49
3.6.4 空操作指令 51
3.7 位操作类指令 51
3.7.1 位寻址方式 51
3.7.2 位操作指令 52
习题 53
第4章 单片机汇编语言程序设计 55
4.1 汇编语言程序设计的基础知识 55
4.1.1 汇编语言的语句格式 55
4.1.2 伪指令 56
4.1.3 汇编语言程序的基本框架 57
4.1.4 汇编过程 58
4.2 汇编程序设计方法 59
4.2.1 程序设计步骤 59
4.2.2 顺序程序 60
4.2.3 分支程序 61
4.2.4 循环程序 62
4.2.5 子程序设计 64
4.3 综合编程举例 66
4.3.1 算术运算程序 66
4.3.2 查表程序 68
4.3.3 数据排序程序 69
4.3.4 位操作程序 71
习题 72
第5章 MCS-51单片机的中断系统 73
5.1 中断的概念 73
5.2 中断系统结构 74
5.2.1 中断源 74
5.2.2 中断系统的特殊功能寄存器 75
5.3 中断处理过程 78
5.3.1 中断响应 78
5.3.2 中断处理 79
5.3.3 中断返回 80
5.4 中断系统应用举例 80
5.5 外部中断源的扩展 82
习题 84
第6章 定时器/计数器和串行通信 85
6.1 定时器/计数器的结构及工作原理 85
6.1.1 定时器/计数器的结构 85
6.1.2 工作方式和控制寄存器 86
6.1.3 定时器/计数器的工作方式 87
6.2 定时器/计数器的应用 90
6.3 串行口的结构及工作方式 95
6.3.1 串行通信的概念 96
6.3.2 串行口基本组成 97
6.3.3 串行口的寄存器 97
6.3.4 串行口的工作方式 99
6.3.5 串行通信波特率设置 100
6.3.6 串行口的多机通信 102
6.4 串行口的应用 102
6.5 RS-232C串行通信接口 106
习题 108
第7章 单片机的系统扩展 110
7.1 程序存储器的扩展 110
7.1.1 程序存储器的分类 110
7.1.2 典型程序存储芯片介绍 111
7.1.3 程序存储器的扩展方法 113
7.2 数据存储器的扩展 116
7.2.1 常用静态RAM芯片介绍 116
7.2.2 数据存储器的扩展方法 117
7.2.3 存储器的综合扩展 117
7.3 并行输入/输出接口的扩展 119
7.3.1 并行接口8255A的扩展 119
7.3.2 并行接口8155的扩展 125
7.4 A/D和D/A接口功能的扩展 130
7.4.1 A/D转换接口 130
7.4.2 D/A转换接口 134
习题 137
第8章 单片机的人机接口技术 138
8.1 LED显示器及其接口 138
8.1.1 LED的结构与原理 138
8.1.2 静态与动态显示 139
8.2 键盘及其接口 141
8.2.1 键盘的结构与原理 141
8.2.2 键盘接口电路 143
8.3 可编程键盘/显示器接口——Intel 8279 145
8.3.1 8279的结构与原理 145
8.3.2 8279的引脚与功能 146
8.3.3 8279的控制字 147
8.3.4 8279接口编程方法 151
8.4 打印机及其接口 153
8.4.1 PP40打印机的接口信号与操作方式 153
8.4.2 PP40打印机的接口方法与打印程序 155
习题 159
第9章 单片机的C语言编程 160
9.1 C51编程语言简介 160
9.1.1 C51编程语言 160
9.1.2 C51的程序结构 161
9.2 C51的数据类型 162
9.2.1 C51常量的类型 162
9.2.2 C51变量的类型 163
9.3 数据的存储器类型和存储器模式 166
9.3.1 数据的存储器类型 166
9.3.2 存储器模式 169
9.4 SFR、位变量、存储器和I//O接口的定义 169
9.4.1 特殊功能寄存器(SFR)的定义 169
9.4.2 位变量的定义 171
9.4.3 存储器和I/O接口的访问 171
9.5 C51的函数和运算符 172
9.5.1 函数 172
9.5.2 运算符 173
9.6 汇编语言与C51的混合编程 173
9.7 C语言单片机程序编写举例 176
习题 178
第10章 单片机应用系统设计方法 180
10.1 单片机应用方案设计基础 180
10.1.1 单片机应用方案的设计原则 180
10.1.2 以MCU为核心的系统硬件结构 181
10.1.3 应用系统软件结构的设计 182
10.1.4 开发工具的选择 183
10.1.5 应用系统的抗干扰设计 184
10.1.6 单片机应用系统的低功耗设计 187
10.2 单片机应用系统开发过程 188
10.2.1 单片机应用系统开发步骤 188
10.2.2 单片机硬件系统设计 188
10.2.3 系统软件设计 188
10.2.4 单片机开发软件KEIL介绍 195
习题 202
第11章 单片机应用系统实例 203
11.1 DS1302芯片构成的实时时钟系统 203
11.1.1 DS1302芯片简介 203
11.1.2 实时时钟系统电路设计 206
11.1.3 实时时钟系统软件设计 207
11.1.4 实时时钟系统的C语言源程序 208
11.2 DS18B20芯片构成的数字温度采集系统 214
11.2.1 DS18B20芯片简介 215
11.2.2 数字温度采集系统电路设计 216
11.2.3 数字温度采集系统软件设计 217
11.2.4 数字温度采集系统的汇编语言源程序 218
习题 223
附录A MCS-51单片机指令表 224
附录B ASCII码表 228
参考文献 229