第1章 单片机基础 1
1.1 单片机 1
1.1.1 什么是单片机 1
1.1.2 单片机发展过程 1
1.1.3 单片机的特点 3
1.1.4 单片机应用领域 3
1.1.5 单片机系列产品 4
1.1.6 单片机课程学习方法 8
1.2 单片机引脚及内部结构 8
1.2.1 单片机引脚功能 8
1.2.2 单片机内部结构 9
1.2.3 单片机I/O端口 10
1.3 单片机存储器 12
1.3.1 单片机程序存储器 13
1.3.2 单片机数据存储器 14
1.3.3 单片机特殊功能寄存器 16
1.4 单片机工作方式 18
1.4.1 复位工作方式 18
1.4.2 程序执行方式 20
1.4.3 低功耗工作方式 21
思考与练习 22
第2章 单片机应用开发环境 24
2.1 Wave单片机开发环境 24
2.1.1 Wave软件 24
2.1.2 Wave应用 26
2.2 Keil uVision3环境下的C51程序开发 28
2.2.1 Keil C51简介 28
2.2.2 基于Keil的C语言程序设计实例 28
2.3 基于Proteus的单片机应用系统仿真 31
2.3.1 Proteus电子设计仿真软件 31
2.3.2 Proteus资源配置 33
2.3.3 Proteus ISIS参数设置 35
2.3.4 Proteus基本操作 36
2.3.5 基于Proteus的单片机应用系统设计实例 37
思考与练习 42
第3章 单片机指令系统 43
3.1 概述 43
3.1.1 单片机指令 43
3.1.2 汇编语言指令特点 44
3.1.3 指令及注释中常用符号 44
3.2 寻址方式 44
3.2.1 立即寻址 45
3.2.2 直接寻址 45
3.2.3 寄存器寻址 45
3.2.4 寄存器间接寻址 45
3.2.5 变址寻址 46
3.2.6 相对寻址 46
3.2.7 位寻址 47
3.3 单片机汇编指令 47
3.3.1 数据传送指令 47
3.3.2 算术运算指令 50
3.3.3 逻辑运算指令 54
3.3.4 位操作类指令 56
3.3.5 控制转移类指令 58
3.3.6 汇编伪指令 60
思考与练习 61
第4章 单片机程序设计方法 63
4.1 汇编程序设计方法 63
4.1.1 汇编程序设计基础 63
4.1.2 顺序结构程序设计 65
4.1.3 分支结构程序设计 66
4.1.4 循环结构程序设计 70
4.1.5 查表程序设计 74
4.1.6 子程序设计 75
4.2 单片机C51程序设计方法 76
4.2.1 C51程序结构 76
4.2.2 C51程序设计基础 78
4.2.3 C51的基本运算 84
4.2.4 C51的分支与循环程序 86
4.2.5 C51函数 90
4.2.6 C51语言程序设计实例 92
思考与练习 100
第5章 单片机功能部件 102
5.1 单片机中断系统 102
5.1.1 中断 102
5.1.2 中断系统结构 103
5.1.3 中断处理过程 104
5.1.4 与中断相关的特殊功能寄存器 105
5.1.5 中断函数 107
5.2 单片机外部中断 108
5.2.1 外部中断设置 108
5.2.2 外部中断源扩展 108
5.2.3 外部中断应用设计实例 109
5.3 单片机定时/计数器 119
5.3.1 定时/计数器结构 119
5.3.2 与定时/计数器相关的特殊功能寄存器 120
5.3.3 定时/计数器工作方式 121
5.3.4 定时/计数器应用设计实例 124
5.4 单片机串行通信 127
5.4.1 串行口结构 127
5.4.2 与串口控制相关的特殊功能寄存器 127
5.4.3 串行口工作方式 129
5.4.4 串行口波特率设置与计算 129
5.4.5 单片机串行口应用实例 130
思考与练习 134
第6章 单片机显示接口技术 136
6.1 LED显示接口技术 136
6.1.1 LED显示器 136
6.1.2 数码显示接口技术 136
6.1.3 点阵显示接口技术 138
6.1.4 LED显示接口电路设计实例 138
6.2 字符型LCD显示接口技术 143
6.2.1 字符型LCD显示器 143
6.2.2 字符型LCD显示设计实例 147
6.3 图形LCD显示接口技术 151
6.3.1 图形LCD显示器 151
6.3.2 图形LCD显示设计实例 159
思考与练习 163
第7章 单片机键盘接口技术 165
7.1 独立式键盘 165
7.1.1 独立式键盘结构 165
7.1.2 按键识别方法 165
7.1.3 独立式键盘应用设计实例 166
7.2 行列式键盘 169
7.2.1 行列式键盘结构 169
7.2.2 按键识别方法 169
7.2.3 行列式键盘应用设计实例 170
思考与练习 175
第8章 单片机转换器接口技术 176
8.1 A/ D转换技术 176
8.1.1 A/ D转换 176
8.1.2 并行A/D转换技术 177
8.1.3 串行A/D转换技术 179
8.1.4 A/ D转换设计与仿真 180
8.2 D/A转换技术 186
8.2.1 D/ A转换 186
8.2.2 并行D/A转换技术 186
8.2.3 串行D/ A转换接口技术 188
8.2.4 D/ A转换设计与仿真 189
思考与练习 193
第9章 单片机串行接口技术 195
9.1 RS-232总线 195
9.1.1 RS-232总线与单片机串行接口技术 195
9.1.2 RS-232应用实例 197
9.2 RS-485总线 204
9.2.1 RS-485总线与单片机串行接口技术 204
9.2.2 RS-485应用 205
9.3 I2C总线 205
9.3.1 I2C总线简介 205
9.3.2 I2C总线应用实例 212
9.4 SPI总线 220
9.4.1 SPI总线简介 220
9.4.2 SPI总线应用实例 221
9.5 单片机与蓝牙模块的串行接口技术 223
9.5.1 蓝牙模块HC-05 223
9.5.2 单片机与HC-05接口技术 224
9.5.3 单片机与HC-05应用实例 225
思考与练习 226
第10章 单片机应用系统设计 227
10.1 单片机应用系统开发过程 227
10.1.1 单片机应用系统组成框架 227
10.1.2 单片机应用系统开发流程 228
10.2 单片机应用系统抗干扰措施 232
10.2.1 硬件抗干扰措施 232
10.2.2 软件抗干扰措施 233
10.2.3 PCB板设计抗干扰措施 234
10.3 单片机应用系统开发实例 235
10.3.1 直流电机PWM调速系统设计 235
10.3.2 步进电机控制器设计 241
10.3.3 舵机控制器设计 244
10.3.4 炉温控制系统设计 249
10.3.5 音符发生器设计 254
10.3.6 基于单片机的转速表设计 257
10.3.7 基于单片机的晶闸管数字触发研究 259
附录A 51单片机指令 264
附录B Proteus常用元器件 268
附录C单片机学习开发板简介 270
参考文献 272