第1章 单片机概论 1
1.1单片机概述 1
1.2单片机的历史与发展 3
1.2.1单片机的发展概况 3
1.2.2单片机的发展趋势 4
1.2.3单片机产品近况 5
1.3单片机的应用领域 7
1.4单片机中使用的数制及常用的语言 8
习题 10
第2章 单片机系统开发环境 11
2.1 Keil μVision3 C51集成开发环境 11
2.1.1 Keil μVision3 C51的安装 11
2.1.2 KeilμVision3 C51的使用及调试 13
2.2 ProteusISIS单片机仿真软件操作 16
2.2.1 Proteus ISIS软件环境 16
2.2.2在Proteus中创建新的元件 23
2.2.3 Proteus电路仿真 28
2.2.4 Proteus ISIS单片机仿真 33
2.3 Keil与Proteus联合调试 36
2.3.1 Keil与Proteus接口 36
2.3.2 Keil与Proteus联合调试实例 37
习题 39
第3章 80C51单片机的硬件结构 40
3.1 80C51单片机的硬件组成 40
3.1.1 80C51单片机硬件结构图 40
3.1.2 80C51单片机的引脚信号 41
3.2 80C51单片机的微处理器 43
3.2.1运算器 43
3.2.2控制器 44
3.2.3 CPU时序 44
3.3 80C51单片机存储器 45
3.3.1片内RAM结构及其地址空间分布 45
3.3.2片外RAM的扩展 49
3.3.3程序存储器 49
3.4时钟电路和复位电路 50
3.4.1时钟电路 50
3.4.2复位电路 51
习题 52
第4章 80C51单片机指令系统与程序设计 53
4.1概述 53
4.1.1机器码指令 53
4.1.2汇编语言指令 54
4.2寻址方式 55
4.2.1立即寻址 55
4.2.2寄存器寻址 55
4.2.3 RAM寻址 56
4.2.4程序存储器中数据的寻址 56
4.2.5 I/O端口中数据的寻址 57
4.2.6程序的寻址 57
4.2.7位寻址 58
4.3指令系统 59
4.3.1数据传送类指令 59
4.3.2算术运算类指令 63
4.3.3逻辑操作类指令 69
4.3.4位操作类指令 72
4.4汇编语言程序设计基础 73
4.4.1顺序程序设计 73
4.4.2循环程序设计 75
4.4.3分支程序设计 81
4.4.4子程序及其调用 88
习题 90
第5章 单片机的C语言编程 92
5.1单片机C51语言概述 92
5.1.1 C51的数据类型 92
5.1.2 C51对内部资源的定义 94
5.1.3常量与变量 95
5.1.4 C51绝对地址访问 96
5.2运算符和表达式 97
5.2.1关系运算符与关系表达式 97
5.2.2逻辑运算符与逻辑表达式 97
5.2.3算术运算符与算术表达式 98
5.2.4位运算符和复合赋值运算符 98
5.2.5条件运算符和指针运算符 100
5.2.6表达式语句 100
5.3分支程序设计 100
5.3.1 if语句 101
5.3.2 switch语句 101
5.4循环程序设计 102
5.4.1 while语句 102
5.4.2 do-while语句 103
5.4.3 for语句 103
5.4.4 break与continue语句 104
5.5函数 104
5.5.1函数的定义 105
5.5.2函数的调用 105
5.5.3中断函数 106
5.6数组及指针的使用 107
5.6.1数组的使用 107
5.6.2指针的使用 108
习题 110
第6章 80C51单片机片内功能模块的使用 111
6.1并行I/O接口的输入与输出 111
6.1.1在MOV指令下可直接输入/输出的P1口 112
6.1.2在MOVX指令下由系统总线进行输入/输出的P0和P2口 114
6.1.3具有特殊功能的P3口 116
6.1.4阶段实践 117
6.2中断系统 122
6.2.1中断系统的结构 122
6.2.2中断源和中断请求标志 123
6.2.3系统对中断的管理 124
6.2.4中断的响应过程 127
6.2.5中断程序的编程方法 128
6.2.6阶段实践 130
6.3片内定时器/计数器 131
6.3.1定时器/计数器的内部结构及工作原理 132
6.3.2定时器/计数器的工作方式 134
6.3.3定时器/计数器的应用设计 137
6.3.4阶段实践 141
6.4串行接口 146
6.4.1串行口的内部结构 146
6.4.2串行口的工作方式 148
6.4.3串行口的波特率 150
6.4.4 SMOD位对波特率的影响 151
6.4.5 80C51单片机串口通信应用 151
6.4.6阶段实践 154
习题 163
第7章 80C51单片机接口技术应用 165
7.1 LED显示接口电路 165
7.1.1 LED显示器和显示器接口 165
7.1.2 LED显示器接口技术 166
7.1.3阶段实践 169
7.2键盘接口电路 173
7.2.1键盘的工作原理 173
7.2.2独立式键盘 175
7.2.3矩阵式键盘 176
7.2.4键盘的编码 179
7.2.5阶段实践 183
7.3 LCD显示接口电路 185
7.3.1概述 185
7.3.2组成结构图 186
7.3.3模块接口说明 187
7.3.4模块的主要硬件构成 188
7.3.5指令说明 189
7.3.6读写时序图 191
7.3.7应用举例 192
7.3.8阶段实践 195
7.4 D/A转换接口电路 199
7.4.1 D/A转换接口电路的基本原理 200
7.4.2 D/A转换器的主要特点与技术指标 201
7.4.3 DAC 0832芯片 202
7.4.4 DAC 0832与80C51的接口设计 203
7.4.5阶段实践 204
7.5 A/D转换接口电路 206
7.5.1 A/D转换接口电路的基本原理 206
7.5.2 A/D转换器的主要技术指标 209
7.5.3 ADC 0809芯片 209
7.5.4阶段实践 211
习题 213
第8章 80C51单片机的串行通信技术 215
8.1串行通信基础 215
8.1.1串行通信分类 215
8.1.2串行通信的制式 217
8.1.3接收/发送时钟 218
8.1.4信号的调制与解调 220
8.1.5通信数据的检测和校正 221
8.1.6串行通信接口电路UART、 USRT和USART 222
8.2串行通信总线标准 224
8.2.1 RS-232C总线标准与应用 225
8.2.2 RS-449、 RS-422A及RS-423A接口总线标准与应用 231
8.2.3 RS-485标准总线接口 233
8.2.4 20mA电流环路串行接口 235
8.3 12C总线接口 236
8.3.1 I2C总线的功能和特点 236
8.3.2 I2C总线的构成及工作原理 236
8.3.3 I2C总线的工作方式 237
8.3.4 12C总线数据传输方式的模拟 238
8.3.5阶段实践 238
8.4 DS 18B20单线数字温度传感器 243
8.4.1 DS 18B20的特点 243
8.4.2 DS18B20的内部结构 244
8.4.3 DS18B20的控制方法 245
8.4.4 DS18B20的工作时序 245
8.4.5阶段实践 247
习题 252
第9章 单片机应用系统设计与调试 253
9.1单片机应用系统设计 253
9.1.1单片机应用系统设计步骤 253
9.1.2单片机应用系统硬件设计 255
9.1.3单片机应用系统软件设计 255
9.2单片机应用系统的开发与调试 256
9.2.1单片机应用系统的开发 256
9.2.2单片机应用系统的调试 258
9.3单片机课程设计 260
9.3.1单片机课程设计规范 260
9.3.2课程设计实例——电子万年历设计 262
习题 270
附录A 80C51系列单片机指令表 271
附录B ASCII码表 275
附录C C51库函数 276
参考文献 282