第1章 51单片机结构及工作原理 1
1.1微型计算机基础 1
1.1.1单片机及其发展概况 1
1.1.2计算机中的数制及相互转换 3
1.1.3二进制数的运算 7
1.1.4计算机中数的表示方法 10
1.2 51单片机的基本组成和功能 13
1.2.1 51系列单片机的主要功能 13
1.2.2 51系列单片机基本结构 14
1.2.3 51系列单片机外部引脚 15
1.3 51单片机的内部结构 19
1.3.1中央处理单元 19
1.3.2存储器 21
1.3.3定时器/计数器 25
1.3.4 I/O口 26
1.3.5中断系统 26
1.4 51单片机的工作方式 29
1.4.1时钟和时钟电路 29
1.4.2 CPU时序 29
1.4.3复位状态和复位电路 30
本章小结 32
习题与思考 32
第2章 51单片机指令系统及汇编语言程序设计基础 33
2.1 51单片机指令格式 33
2.1.1指令格式 33
2.1.2指令的字节数 34
2.1.3指令的分类 35
2.2 51单片机寻址方式 36
2.2.1立即寻址 37
2.2.2直接寻址 37
2.2.3寄存器寻址 38
2.2.4寄存器间接寻址 38
2.2.5变址寻址 39
2.2.6相对寻址 39
2.2.7位寻址 40
2.3 51单片机指令 40
2.3.1数据传送类指令 40
2.3.2算术运算类指令 44
2.3.3逻辑运算及移位指令 47
2.3.4控制转移类指令 51
2.3.5位操作类指令 56
2.3.6伪指令 59
2.4汇编语言程序设计基础 61
2.4.1汇编语言程序的格式 62
2.4.2汇编语言程序的基本结构 63
2.4.3顺序结构程序设计 63
2.4.4分支程序设计 64
2.4.5循环程序设计 67
2.4.6查表程序设计 72
2.4.7子程序设计 74
本章小结 79
习题与思考 79
第3章 51单片机的硬件资源 81
3.1 51单片机并行I/O口 81
3.1.1 I/O口的作用 81
3.1.2内部并行I/O口 82
3.1.3内部并行I/O口的应用 85
3.2 51单片机中断系统 85
3.2.1中断的定义 86
3.2.2中断源 86
3.2.3中断控制 87
3.2.4中断优先级结构 89
3.2.5中断响应 90
3.2.6中断响应时间 91
3.2.7中断请求的撤除 91
3.2.8中断系统的初始化 92
3.2.9外部中断源的扩展 93
3.3 51单片机定时器/计数器 95
3.3.1定时器/计数器的结构及工作原理 95
3.3.2控制定时器/计数器的寄存器 96
3.3.3定时器/计数器的初始化 97
3.3.4定时器/计数器的工作方式 99
3.4 51单片机串行通信 105
3.4.1串行通信 105
3.4.2 51单片机串行接口 107
3.4.3 51单片机串行通信的工作方式 109
本章小结 112
习题与思考 112
第4章 C51程序设计基础 114
4.1 C51语言的符号类型 114
4.1.1标识符 114
4.1.2关键字 114
4.1.3运算符 116
4.1.4分隔符 118
4.2常量与变量 120
4.2.1基本数据类型 120
4.2.2常量 121
4.2.3变量 122
4.2.4变量的作用范围 123
4.3 C51语句 124
4.3.1说明语句与空语句 124
4.3.2表达式语句 126
4.3.3条件语句 127
4.3.4开关、跳转语句 128
4.3.5循环语句 130
4.3.6复合语句 132
4.3.7函数调用语句 132
4.3.8预处理 133
本章小结 137
习题与思考 137
第5章 C51数据结构 139
5.1数组 139
5.1.1数组的定义和引用 139
5.1.2字符数组 139
5.1.3数组元素赋初值 140
5.1.4数组作为函数的参数 140
5.2指针 141
5.2.1指针与地址 141
5.2.2指针变量 141
5.3结构 142
5.3.1结构说明和结构变量定义 142
5.3.2结构变量的使用 143
5.3.3结构数组和结构指针 143
5.4联合 144
5.5枚举 145
本章小结 146
习题与思考 146
第6章 C51编译器及简介 147
6.1 KEIL C51编译器简介 147
6.1.1 KEIL C51开发套件 147
6.1.2 KEIL C51的安装 147
6.1.3 KEIL C51开发实例 147
6.2 C51库函数概述 150
6.2.1本征库函数和非本征库函数 150
6.2.2几类重要库函数 150
6.2.3 C51库函数原型列表 151
本章小结 153
习题与思考 153
第7章 51单片机人机交互 154
7.1外部显示元件设计 154
7.1.1 LED数码管 154
7.1.2 16 × 2字符型液晶显示器编程 161
7.2键盘输入设计 168
7.2.1键盘接口类型 168
7.2.2键盘的防抖技术 171
7.2.3键盘扫描方式编程 172
7.2.4键盘中断方式编程 174
7.3外接打印机接口设计 176
7.3.1打印机接口信号 177
7.3.2字符和汉字编码 178
7.3.3打印命令 178
7.3.4外接打印机接口电路设计 180
7.3.5外接打印机驱动程序设计 182
本章小结 184
习题与思考 184
第8章 51单片机数据采集 185
8.1传感器技术概述 185
8.1.1传感器的组成 185
8.1.2传感器的基本特性 186
8.2常用的A/D转换元件 187
8.2.1 A/D转换元件的结构和工作原理 187
8.2.2 A/D转换元件的接口电路 192
8.2.3单片机A/D转换软件编程 192
8.3温度数据采集元件设计 194
8.3.1温度数据采集元件的结构和工作原理 194
8.3.2温度数据采集元件的接口电路 198
8.3.3单片机温度数据采集软件编程 199
8.4压力数据采集元件设计 205
8.4.1压力数据采集元件的结构和工作原理 205
8.4.2压力数据采集元件接口电路 210
8.4.3单片机压力数据采集软件编程 211
本章小结 212
习题与思考 212
第9章 51单片机串行通信 214
9.1单片机串行通信设计 214
9.1.1常用接口芯片结构和工作原理 214
9.1.2单片机串行通信电路设计 220
9.1.3单片机串行通信软件编程 221
*9.2 Windows.NET环境下计算机与单片机串行通信程序设计 230
9.2.1 Windows.NET串行类介绍 230
9.2.2计算机与下位机通信协议 232
9.2.3计算机的串行通信程序的设计 238
9.2.4单片机串行通信程序的设计 240
本章小结 249
习题与思考 249
第10章 51单片机外部存储器扩展 251
10.1外部I/O的扩展 251
10.1.1I/O口扩展概述 251
10.1.2I/O地址译码技术 252
10.2存储器概述 253
10.2.1存储器的类型 254
10.2.2常用的存储器 255
10.2.3存储器扩展电路的工作方式 258
10.3外部存储器扩展 259
10.3.1扩展程序存储器 259
10.3.2扩展数据存储器及编程 261
10.3.3程序存储器与数据存储器同时扩展 266
本章小结 267
习题与思考 267
第11章 51单片机输出控制 269
11.1常用输出接口电路 269
11.1.1单片机与光电隔离元件的接口电路 269
11.1.2单片机与模拟开关元件的接口电路 271
11.1.3单片机与继电器的接口电路 273
11.2常用D/A转换器设计 279
11.2.1 D/A转换器的结构和工作原理 279
11.2.2 D/A转换器的接口电路 281
11.2.3 D/A转换器的单片机编程 282
*11.3直流电动机的控制设计 283
11.3.1直流电动机驱动电路的基本工作原理 284
11.3.2采用单片机的直流电动机控制电路设计 291
11.3.3直流电动机驱动的编程 291
本章小结 293
习题与思考 293
附录A 51单片机指令系统表 294
附录B C51语言的库函数 298
参考文献 303