第1章 单片机的基础知识 1
1.1 计算机中数据的表示方法 1
1.1.1 带符号数的表示方法 1
1.1.2 字符在计算机内的表示 5
1.2 微型计算机的基本结构 5
1.3 微处理器的组成及功能 7
1.4 单片机的概念及其特点 9
1.5 典型的单片机产品 10
1.6 单片机的应用 10
1.7 单片机的发展趋势 11
习题与思考 12
第2章 MCS-51系列单片机结构 13
2.1 MCS-51系列单片机结构与引脚 13
2.1.1 引脚及功能说明 13
2.1.2 内部结构及功能部件 15
2.2 中央处理器CPU 16
2.3 单片机的时钟与时序 18
2.3.1 时钟电路 18
2.3.2 CPU时序 18
2.4 MCS-51单片机存储器及存储空间 20
2.4.1 程序存储器 21
2.4.2 内部数据存储器 22
2.4.3 外部数据存储器 25
2.5 MCS-51单片机并行I/O口 26
2.6 单片机复位和复位电路 29
2.6.1 单片机复位功能 29
2.6.2 复位电路 30
2.7 MCS-51系列单片机的工作方式 30
2.7.1 程序执行方式 30
2.7.2 掉电和节电方式 30
2.7.3 EPROM编程和校验方式 31
习题与思考 32
第3章 指令系统 33
3.1 寻址方式 33
3.2 指令系统常用符号 35
3.3 MCS-51单片机的指令系统 35
3.3.1 数据传送类指令 35
3.3.2 算术运算类指令 41
3.3.3 逻辑运算类指令 45
3.3.4 控制转移类指令 46
3.3.5 布尔操作类指令 50
习题与思考 51
第4章 汇编语言程序设计 55
4.1 MCS-51单片机汇编语言的伪指令 55
4.2 程序流程图和程序结构 57
4.2.1 顺序结构程序设计 58
4.2.2 分支结构程序设计 59
4.2.3 循环结构程序设计 60
4.2.4 子程序结构程序设计 64
4.3 常用程序设计举例 66
4.3.1 查表程序设计 66
4.3.2 排序和检索程序设计 68
4.3.3 运算程序设计 71
4.3.4 数制转换程序设计 74
4.3.5 滤波程序设计 76
习题与思考 80
第5章 中断系统 81
5.1 中断的概念 81
5.2 MCS-51中断系统 82
5.2.1 MCS-51中断源 82
5.2.2 中断控制 83
5.2.3 中断处理 85
5.3 中断应用程序举例&R 7
习题与思考 90
第6章 内部定时器/计数器及串行接口 91
6.1 定时器/计数器 91
6.1.1 定时器/计数器结构与功能 91
6.1.2 定时器/计数器相关寄存器 92
6.I.3 定时器/计数器工作模式 93
6.1.4 定时器/计数器应用 95
6.1.5 定时器/计数器应用的其他问题 98
6.1.6 MCS-51定时器/计数器2的工作方式 100
6.2 MCS-51串行接口 103
6.2.1 串行通信概念 104
6.2.2 MCS-51串行接口 106
6.2.3 串行口的工作方式 108
6.2.4 T2作波特率发生器 110
6.2.5 MCS-51多机通信原理 111
6.2.6 串行通信总线标准及接口 112
6.2.7 串行通信的应用举例 115
习题与思考 118
第7章 单片机系统扩展 120
7.1 单片机系统总线扩展原理 120
7.2 存储器扩展技术 121
7.2.1 总线扩展的地址译码方法 122
7.2.2 程序存储器的扩展 124
7.2.3 数据存储器的扩展 129
7.2.4 存储器综合扩展技术 130
7.3 MCS-51系列单片机I/O口扩展 131
7.3.1 并行I/O口的简单扩展 131
7.3.2 采用可编程并行I/O接口芯片8255A扩展 132
7.3.3 采用可编程并行I/O接口芯片8155扩展 140
7.4 单片机I/O端口模拟时序扩展设备 145
7.4.1 SPI串行接口总线技术 146
7.4.2 I2C串行接口总线技术 147
7.4.3 串行单总线技术 151
习题与思考 154
第8章 单片机应用接口技术 156
8.1 显示器接口 156
8.1.1 LED显示器接口 156
8.1.2 点阵式发光显示屏的接口技术 162
8.1.3 LCD显示接口 165
8.2 键盘接口技术 170
8.2.1 独立式键盘接口设计 171
8.2.2 矩阵式键盘接口设计 172
8.3 A/D转换器接口 177
8.3.1 A/D转换器概述 177
8.3.2 A/D转换器芯片ADC0809与单片机接口 177
8.3.3 AD574与单片机接口 181
8.4 D/A转换器接口 184
8.4.1 D/A转换器概述 184
8.4.2 8位D/A转换器DAC0832与单片机接口 184
习题与思考 188
第9章 C51程序基础 189
9.1 C51简介 189
9.2 C51程序结构 189
9.3 C51数据类型 191
9.4 常量与变量 192
9.4.1 常量 192
9.4.2 变量 192
9.5 运算符与表达式 195
9.5.1 赋值运算 196
9.5.2 算术运算 196
9.5.3 关系运算 197
9.5.4 逻辑运算 197
9.5.5 位运算 198
9.5.6 自增减运算及复合运算 198
9.5.7 逗号表达式 199
9.6 C51程序结构 199
9.6.1 分支结构 199
9.6.2 循环结构 200
9.7 数组、结构体、联合体 201
9.7.1 数组 201
9.7.2 结构体 203
9.7.3 联合体 206
9.8 指针 206
9.8.1 指针的定义与引用 206
9.8.2 指针和数组 207
9.8.3 指针和结构体、联合体 209
习题与思考 209
第10章 函数及C51程序设计 211
10.1 函数的定义 211
10.2 函数的调用 212
10.3 变量的作用域与存储方式 212
10.4 中断函数 213
10.5 C51库函数和头文件 214
10.6 C51程序举例 215
10.7 C51与汇编混合编程 231
10.7.1 模块内接口 231
10.7.2 模块间接口 232
10.8 C51的启动文件 237
习题与思考 240
第11章 单片机应用系统设计技术 242
1 1.1 单片机应用系统的基本结构 242
11.2 单片机应用系统的设计原则 43
11.3 单片机应用系统的设计过程 244
11.3.1 总体设计 244
11.3.2 硬件设计 244
11.3.3 软件设计 247
11.3.4 系统调试 248
11.4 可靠性设计 249
11.4.1 干扰的来源 249
11.4.2 硬件抗干扰技术 249
11.4.3 软件抗干扰技术 253
习题与思考 255
第12章 柴油发电机组测控系统设计举例 256
12.1 系统基本原理 256
12.2 主要技术指标要求 256
12.3 系统总体设计 257
12.4 系统的硬件设计 262
12.5 软件设计 264
附录1 MCS-51指令系统 280
附录2 常用字符的ASCII码(用十六进制数表示) 283
参考文献 284