1.1 单片机基础知识 1
1.1.1 什么是单片机 1
1.1.2 单片机主流系列 1
第1章 绪论 1
1.1.3 单片机芯片技术的发展概况 2
1.2 单片机应用 4
1.2.1 单机应用 4
1.2.2 多机应用 5
1.2.3 单片机应用系统的分类 7
习题 8
1.2.4 单片机应用系统的构成方式 8
第2章 单片机的组成与工作原理 9
2.1 MCS—51单片机的内部结构 9
2.1.1 MCS—51系列的8051单片机结构 9
2.1.2 CPU结构 10
2.1.3 存储器 12
2.1.4 I/O口及相应的特殊功能寄存器 18
2.2 MCS—51单片机的引脚及其片外总线 22
2.2.1 P0~P3口引线 22
2.2.2 控制信号 23
2.3 CPU时序 24
2.4 CHMOS型单片机的节电方式 26
2.4.1 空闲方式 27
2.4.2 掉电方式 27
2.4.3 节电方式的应用 27
习题 29
第3章 MCS—51指令系统 30
3.1 指令的格式及标识 30
3.1.1 汇编指令 30
3.1.2 伪指令 31
3.2 寻址方式 32
3.1.3 指令中的符号标识 32
3.1.4 关于注释 32
3.2.1 寄存器寻址 33
3.2.2 直接寻址 33
3.2.3 寄存器间接寻址 34
3.2.4 立即寻址 35
3.2.5 基址寄存器加变址寄存器间接寻址 35
3.2.6 相对寻址 36
3.2.7 位寻址 36
3.4.1 内部数据传送指令 37
3.4 数据传送指令 37
3.3 数据操作和指令类型 37
3.3.2 指令类型 37
3.3.1 数据操作 37
3.4.2 累加器A与外部数据存储器传送指令 40
3.4.3 查表指令 41
3.5 算术操作指令 42
3.5.1 加法指令 42
3.5.2 减法指令 45
3.6.1 两个操作数的逻辑操作指令 46
3.6 逻辑操作类指令 46
3.5.4 除法指令 46
3.5.3 乘法指令 46
3.6.2 累加器A的逻辑操作指令 48
3.7 控制转移指令 49
3.7.1 无条件转移指令 49
3.7.2 条件转移指令 51
3.7.3 调用和返回指令 53
3.8 布尔变量操作类指令 55
3.8.1 位变量传送指令 55
3.8.2 位变量修改指令 55
3.8.3 位变量逻辑操作指令 56
3.9 指令的应用举例 57
习题 60
第4章 定时器/计数器及其应用 61
4.1 定时器/计数器的结构及工作原理 61
4.2 8051单片机的定时器/计数器 62
4.2.1 方式寄存器TMOD 62
4.2.2 控制寄存器TCON 63
4.3 定时器的工作方式 63
4.3.1 方式0 63
4.3.2 方式1 64
4.3.3 方式2 65
4.3.4 方式3 65
4.4 定时器/计数器的编程和应用举例 66
习题 72
第5章 中断 74
5.1 中断的概念 74
5.1.1 什么是中断 74
5.1.2 实现中断的好处 74
5.2 MCS—51的中断系统 75
5.2.1 中断源 75
5.1.3 常用中断源 75
5.1.4 中断系统功能 75
5.2.2 中断允许控制 77
5.2.3 中断优先级 78
5.2.4 中断响应与中断处理 79
5.3 中断控制与中断服务程序设计 81
5.3.1 中断控制 82
5.3.2 中断服务程序 82
5.3.3 中断应用举例 83
5.4.1 定时器/计数器T0、T1作为外中断 85
5.4 中断源的扩展 85
5.4.2 采用中断与查询相结合的方法扩展 86
习题 87
第6章 串行通信 88
6.1 串行通信概述 88
6.1.1 串行通信的字符格式 88
6.1.2 串行通信的数据通路形式 90
6.1.3 串行通信的传送速率 90
6.1.4 信号的调制与解调 91
6.2 通用的异步接收/发送器UART 92
6.3.1 串行接口的控制寄存器 94
6.3 MCS—51的串行通信接口 94
6.3.2 串行接口的工作方式 95
6.3.3 波特率设计 98
6.3.4 多机通信原理 100
6.4 串行通信应用举例 101
6.4.1 MCS—51串行口方式0应用实例 101
6.4.2 双机、多机通信应用 103
6.5 异步串行通信的标准接口 114
6.5.1 RS—232C接口 114
6.5.2 RS—449与RS—423/422/485接口 116
习题 119
第7章 系统扩展技术 120
7.1 系统扩展概述 120
7.2 程序存储器的扩展 122
7.2.1 常用的程序存储器 122
7.2.2 MCS—51程序存储器的扩展 125
7.3 数据存储器的扩展 129
7.3.1 常用静态数据存储器(SRAM) 129
7.3.2 数据存储器的扩展 130
7.3.3 数据存储器扩展举例 131
7.3.4 用E2PROM作为外部数据存储器 132
7.4.1 8255通用可编程并行接口电路 133
7.4 并行I/O接口的扩展 133
7.4.2 8155 RAM I/O接口 139
7.4.3 用TTL芯片扩展简单的I/O接口 144
7.5 串行口的扩展 147
7.5.1 可编程通信接口8251A(USART) 147
7.5.2 8251A的应用举例 152
7.6 定时器/计数器的扩展 155
7.6.1 8253可编程定时器/计数器 155
7.6.2 8253的接口和应用举例 160
7.7.1 D/A转换器 162
7.7 D/A、A/D转换接口 162
7.7.2 A/D转换器接口 171
习题 183
第8章 键盘和显示 185
8.1 键盘设计 185
8.1.1 键盘的基本工作原理 185
8.1.2 键的识别 186
8.1.3 抖动和重键问题的解决 190
8.1.4 键盘工作方式 190
8.2.1 LED显示器的结构 195
8.2.2 LED显示器的工作方式和显示程序 195
8.2 七段码发光显示接口 195
8.3 液晶显示器及其显示接口 203
8.3.1 液晶显示器的工作原理 203
8.3.2 液晶显示器的驱动方式 204
8.3.3 μPD7225可编程LCD驱动器及其应用 205
习题 210
第9章 单片机程序设计 211
9.1 程序设计语言 211
9.1.1 机器语言 211
9.1.2 汇编语言 211
9.2.1 源程序格式 212
9.1.3 高级语言 212
9.2 汇编语言源程序格式及伪指令 212
9.2.2 伪指令 213
9.2.3 汇编方式 215
9.3 单片机程序设计 216
9.3.1 程序设计概述 216
9.3.2 结构化程序设计 217
9.3.3 子程序设计 221
9.3.4 综合程序举例 225
习题 235
附录 MCS—51指令表 236