第1章 绪论 1
1.1 微型计算机与单片机 1
1.1.1 电子计算机 1
1.1.2 微型计算机 1
1.1.3 单片机 2
1.2 单片机的发展概况 3
1.2.1 单片机发展历程 3
1.2.2 常用单片机系列简介 4
1.3 单片机的应用领域 6
习题 7
第2章 51单片机的基本结构和工作原理 8
2.1 51单片机的基本构成 8
2.1.1 内部结构 8
2.1.2 引脚功能 9
2.2 中央处理器 10
2.2.1 CPU的功能单元 11
2.2.2 CPU的时钟电路与时序 12
2.2.3 单片机的复位 13
2.3 存储器空间 14
2.3.1 程序存储器ROM 15
2.3.2 数据存储器RAM 16
2.4 I/O端口结构 19
2.4.1 P0口和P2口的结构及功能 19
2.4.2 P1口和P3口的结构及功能 21
2.4.3 I/O口的应用特性 21
习题 22
第3章 51单片机的指令系统 24
3.1 指令格式 24
3.1.1 51汇编语言的指令格式 24
3.1.2 指令中的符号 24
3.2 寻址方式 25
3.2.1 立即寻址 25
3.2.2 直接寻址 25
3.2.3 寄存器寻址 25
3.2.4 寄存器间接寻址 26
3.2.5 变址寻址 26
3.2.6 相对寻址 26
3.2.7 位寻址 26
3.3 指令系统 27
3.3.1 数据传送类指令 27
3.3.2 算术运算类指令 31
3.3.3 逻辑操作类指令 34
3.3.4 控制转移类指令 36
3.3.5 位操作类指令 40
习题 42
第4章 51汇编语言程序设计 45
4.1 单片机汇编语言概述 45
4.1.1 汇编语言及其特点 45
4.1.2 汇编语言的语句格式及伪指令 45
4.1.3 汇编语言程序设计步骤 47
4.2 单片机汇编语言程序设计举例 47
4.2.1 顺序结构 47
4.2.2 分支结构 49
4.2.3 循环结构 52
4.2.4 子程序结构 54
4.3 实用汇编子程序举例 57
4.3.1 定点数与浮点数的表示方法 57
4.3.2 算术运算子程序 58
4.3.3 代码转换子程序 67
习题 70
第5章 51单片机C语言程序设计 72
5.1 C51的特点 72
5.2 C51的程序结构 72
5.3 C51的数据类型、存储类型及存储模式 73
5.3.1 C51的数据类型 73
5.3.2 C51的存储类型及存储模式 74
5.3.3 51单片机硬件结构的C51定义 75
5.4 C51的运算符及其表达式 76
5.4.1 算术运算符及其表达式 77
5.4.2 关系运算符及其表达式 77
5.4.3 逻辑运算符及其表达式 78
5.4.4 位运算符及其表达式 78
5.4.5 赋值运算符及其表达式 78
5.5 C51构造数据类型 79
5.5.1 数组 79
5.5.2 指针 79
5.6 C51函数 80
5.6.1 函数的定义 80
5.6.2 函数的调用 81
5.6.3 C51库函数 81
5.7 C51流程控制及编程举例 83
5.7.1 选择结构 84
5.7.2 循环结构 86
5.8 KeilμVision集成开发环境简介 90
5.8.1 KeilμVision界面 90
5.8.2 工程项目创建与目标文件生成 90
5.8.3 仿真调试 95
习题 97
第6章 51单片机的中断系统及其应用 98
6.1 中断的概念 98
6.2 51单片机中断系统的结构 99
6.2.1 中断源及中断入口 99
6.2.2 中断控制 100
6.3 51单片机中断处理过程 102
6.3.1 中断请求 102
6.3.2 中断响应 103
6.3.3 中断服务 103
6.3.4 中断返回 103
6.4 中断应用举例 103
习题 107
第7章 51单片机的定时器及其应用 108
7.1 定时器的结构与功能 108
7.1.1 定时器的结构 108
7.1.2 定时器的功能 109
7.2 定时器的控制和工作方式 109
7.2.1 定时器的控制 109
7.2.2 定时器的工作方式 110
7.3 定时器应用举例 112
7.3.1 定时应用 112
7.3.2 计数应用 116
7.3.3 门控应用 117
7.3.4 外部中断源扩展 119
习题 120
第8章 单片机串行口及其应用 121
8.1 串行通信基础 121
8.1.1 通信的概念 121
8.1.2 串行通信的分类 121
8.1.3 信号的调制与解调 123
8.1.4 串行通信接口电路 123
8.2 51单片机串行口 126
8.2.1 串行口的结构 126
8.2.2 串行口控制寄存器 127
8.2.3 串行口的工作方式 128
8.2.4 串行口波特率的设置 130
8.3 51单片机串行口应用 131
8.3.1 串并转换与接口扩展 131
8.3.2 双机通信 132
8.3.3 多机通信 137
习题 142
第9章 单片机系统扩展 144
9.1 单片机系统扩展概述 144
9.1.1 并行扩展技术 144
9.1.2 串行扩展技术 145
9.2 存储器扩展 145
9.2.1 存储器扩展的基本方法 145
9.2.2 存储器扩展举例 146
9.3 I/O接口扩展 151
9.3.1 I/O接口扩展概述 151
9.3.2 简单I/O接口扩展 152
9.3.3 可编程I/O接口扩展 154
9.4 串行总线扩展技术 161
9.4.1 I2C串行总线接口 161
9.4.2 SPI串行外设接口 169
9.4.3 单总线接口 170
习题 171
第10章 人机交互接口 172
10.1 键盘接口 172
10.1.1 键盘接口的特点 172
10.1.2 独立式键盘接口 173
10.1.3 矩阵式键盘接口 177
10.1.4 键盘的工作方式 182
10.2 显示器接口 184
10.2.1 LED数码管 184
10.2.2 LED数码管接口设计 185
10.2.3 LCD液晶显示器 190
10.2.4 LCD液晶显示器接口设计 194
习题 199
第11章 模拟量I/O接口 200
11.1 ADC和DAC在单片机系统中的作用 200
11.2 ADC及其与单片机的接口 200
11.2.1 ADC概述 200
11.2.2 ADC与单片机的接口技术 201
11.3 DAC及其与单片机的接口 211
11.3.1 DAC概述 211
11.3.2 DAC与单片机的接口技术 212
习题 218
第12章 单片机应用系统设计方法 219
12.1 单片机应用系统的组成 219
12.2 单片机应用系统设计的基本原则 219
12.3 单片机应用系统设计的一般过程 220
12.3.1 确定任务 220
12.3.2 总体设计 220
12.3.3 硬件设计 222
12.3.4 软件设计 223
12.3.5 结构设计 224
12.3.6 样机联调 224
12.3.7 性能测试与评估 225
12.3.8 产品定型 225
习题 225
附录A 51单片机指令速查表 227
附录B ASCII码表 230
附录C 常用实验程序 231
参考文献 239