第1章 单片机概述 1
1.1 单片机概述 1
1.1.1 单片机及其应用 1
1.1.2 单片机与嵌入式系统的关系 3
1.2 单片机的发展与分类 4
1.2.1 单片机的发展 4
1.2.2 单片机的分类 5
1.2.3 目前我国主流的单片机系列 7
1.3 单片机的开发与学习 8
1.3.1 单片机应用系统的构建 8
1.3.2 单片机产品的设计过程 9
练习题 11
第2章 MCS-51单片机的硬件结构与工作原理 12
2.1 MCS-51单片机的片内结构 12
2.2 MCS-51单片机的封装与引脚 13
2.2.1 MCS-51单片机的封装形式 13
2.2.2 MCS-51单片机的引脚功能 14
2.3 MCS-51单片机的CPU 16
2.3.1 MCS-51单片机CPU的组成 16
2.3.2 指令执行的基本过程 16
2.4 MCS-51单片机最小系统 17
2.4.1 MCS-51单片机最小系统的电路和制作 17
2.4.2 MCS-51的时钟电路与时序 19
2.4.3 复位电路 21
2.5 MCS-51单片机的存储器结构 23
2.5.1 程序存储器 25
2.5.2 内部数据存储器 26
2.5.3 特殊功能寄存器 28
练习题 31
第3章 MCS-51指令系统 34
3.1 汇编语言概述 34
3.2 汇编语言格式 35
3.2.1 MCS-51汇编语言格式 35
3.2.2 指令系统常用符号和含义 35
3.3 寻址方式 36
3.3.1 寻址的含义 36
3.3.2 多种寻址方式 37
3.4 指令系统 39
3.4.1 数据传送类指令 40
3.4.2 算术操作类指令 43
3.4.3 逻辑运算与移位类指令 44
3.4.4 控制转移类指令 45
3.4.5 位操作类指令 47
3.5 伪指令 48
练习题 49
第4章 MCS-51汇编语言程序设计 51
4.1 汇编语言编程概述 51
4.2 汇编语言程序的基本结构 51
4.2.1 顺序结构 51
4.2.2 分支结构 53
4.2.3 循环结构 57
4.2.4 子程序 62
4.3 汇编语言实用程序设计 65
4.3.1 延时程序 65
4.3.2 查表程序 65
4.3.3 散转程序 68
4.3.4 码制转换程序 68
4.3.5 布尔处理程序 70
4.3.6 定点数运算程序 71
练习题 74
第5章 MCS-51单片机I/O接口的简单应用设计 75
5.1 I/O接口概述 75
5.2 I/O接口的功能和内部结构 76
5.2.1 P0口的内部结构及功能 77
5.2.2 P1口的内部结构及功能 79
5.2.3 P2口的内部结构及功能 80
5.2.4 P3口的内部结构及功能 81
5.3 I/O接口的编程 82
5.3.1 I/O接口的编程操作方式 82
5.3.2 I/O接口编程实例:发光二极管的控制 83
5.4 单片机与LED数码管的接口 84
5.4.1 LED数码管的结构 84
5.4.2 LED数码管的工作原理 86
5.4.3 数码管的应用 89
5.5 单片机与键盘的接口 90
5.5.1 按键 90
5.5.2 键盘的分类 91
5.5.3 键盘防抖 92
5.5.4 键盘接口 92
练习题 98
第6章 MCS-51单片机的中断和定时/计数原理及应用 99
6.1 中断的相关概念 99
6.2 MCS-51单片机的中断系统 102
6.2.1 MCS-51单片机中断系统的结构 102
6.2.2 中断相关寄存器 103
6.2.3 中断处理的过程 106
6.3 中断程序的设计及实例 110
6.3.1 中断程序的设计 110
6.3.2 中断程序设计实例 113
6.4 MCS-51单片机的定时器/计数器 116
6.4.1 定时器/计数器概述 116
6.4.2 定时器/计数器的结构 116
6.4.3 定时器/计数器的相关寄存器 118
6.4.4 定时器/计数器的四种工作方式 120
6.5 定时器/计数器的编程实例和应用 126
6.5.1 实例1 方波的产生 126
6.5.2 实例2 测量脉冲宽度 128
6.5.3 实例3 实时时钟的设计 128
练习题 131
第7章 MCS-51单片机串行口应用设计 133
7.1 通信方式与串行接口概述 133
7.2 串行口的编程操作 135
7.2.1 MCS-51单片机串行口的结构 135
7.2.2 MCS-51串行口的工作方式 136
7.2.3 串行口的使用方法 141
7.3 常用标准串行通信接口 143
7.3.1 RS-232C接口 144
7.3.2 RS-422A接口 145
7.3.3 RS-485接口 146
7.3.4 20mA电流环串行接口 146
7.4 MCS-51串口编程实例 147
7.4.1 实例1 PC机与MCS-51单片机双机通信设计 147
7.4.2 实例2 多单片机通信设计 150
7.4.3 实例3 PC机与多单片机通信设计 155
练习题 157
第8章 MCS-51系统扩展 158
8.1 MCS-51单片机的总线结构 158
8.2 MCS-51存储器的扩展 159
8.2.1 片外程序存储器的扩展 160
8.2.2 片外数据存储器的扩展 163
8.3 MCS-51单片机扩展I/O接口 168
8.3.1 简单I/O接口的扩展 169
8.3.2 用8255A扩展单片机的并行I/O接口 169
8.3.3 用8155H扩展单片机的并行I/O接口 174
8.4 MCS-51单片机扩展外部中断源 181
练习题 184
第9章 单片机接口技术 185
9.1 A/D转换接口扩展 185
9.1.1 A/D转换器概述 185
9.1.2 A/D转换器ADC0809与MCS-51单片机接口电路 187
9.2 D/A转换器接口扩展 191
9.2.1 D/A转换器的主要技术指标 191
9.2.2 DAC0832与MCS-51单片机接口 191
9.3 I2C接口扩展 195
9.3.1 I2C总线介绍 195
9.3.2 I2C接口串行E2PROM的应用 197
9.3.3 I2C串行A/D转换器MAX1169的接口应用 201
9.4 SPI接口扩展 205
9.4.1 SPI总线介绍 205
9.4.2 SPI串行A/D器件TLC1543的接口 206
9.5 USB接口扩展 211
9.5.1 USB总线介绍 211
9.5.2 USB器件FT245BM的接口开发 215
练习题 220
第10章 单片机系统的抗干扰设计 221
10.1 干扰的来源 221
10.2 硬件抗干扰措施 222
10.2.1 电源噪声的抑制 222
10.2.2 过程通道干扰抑制 223
10.2.3 接地技术 227
10.3 软件抗干扰措施 229
10.3.1 状态信号输入/输出中的抗干扰措施 229
10.3.2 CPU抗干扰技术 230
10.3.3 数字滤波 234
练习题 236
第11章 Keil软件与单片机C语言 237
11.1 Keil C51软件使用简介 237
11.1.1 Keil C51软件概述 237
11.1.2 Keil C51操作入门 237
11.1.3 在Keil C51下调试程序 241
11.2 单片机C语言程序设计及实例 243
11.2.1 单片机C语言概述 243
11.2.2 单片机内部资源的C语言编程实例 253
11.2.3 汇编语言和C语言的混合编程 256
11.3 液晶模块C语言驱动 259
练习题 265
附录A 指令速查表 266
附录B Proteus仿真软件简介 271
参考文献 275