第1章 绪论 1
1.1 单片机 1
1.1.1 单片机的含义 1
1.1.2 单片机的发展 1
1.1.3 MCS-51和80C51系列简介 4
1.1.4 单片机的应用 7
1.2 单片机与嵌入式系统 8
1.2.1 嵌入式系统 8
1.2.2 单片机与嵌入式系统的发展道路 9
1.3 课程的特点和教学安排 11
第2章 单片机的基本结构与工作原理2.1 单片机的基本组成 13
2.2 80C51单片机的引脚功能和结构框图 15
2.2.1 引脚功能 15
2.2.2 内部结构框图和组成 18
2.3 80C51单片机CPU的结构和特点 19
2.3.1 中央控制器 19
2.3.2 运算器 22
2.3.3 时钟电路及CPU的工作时序 24
2.4 80C51单片机的存储器结构和地址空间 28
2.4.1 程序存储器 29
2.4.2 数据存储器 31
2.5 80C51单片机的布尔(位)处理器 36
2.6 80C51单片机的工作方式 37
2.6.1 复位方式 37
2.6.2 程序执行方式 39
2.6.3 低功耗工作方式 39
2.6.4 烧录方式 40
思考与练习 47
第3章 80C51单片机的指令系统3.1 概述 48
3.1.1 指令分类 48
3.1.2 指令格式 48
3.1.3 指令系统中使用的符号 49
3.2 寻址方式和寻址空间 49
3.3 指令系统 54
3.3.1 数据传送类指令 54
3.3.2 算术运算类指令 59
3.3.3 逻辑运算类指令 64
3.3.4 控制转移类指令 67
3.3.5 布尔(位)操作类指令 71
思考与练习 74
第4章 80C51单片机的功能单元4.1 并行I/O接口 77
4.1.1 P1口 78
4.1.2 P3口 80
4.1.3 P2口 82
4.1.4 P0口 84
4.2 定时器/计数器 85
4.2.1 概述 85
4.2.2 定时器/计数器T0、T1 86
4.2.3 定时器/计数器T2 92
4.2.4 看门狗 98
4.2.5 定时器/计数器的编程和使用 99
4.3 串行接口 107
4.4 中断系统 123
4.4.1 中断、中断源及中断优先级的概念 123
4.4.2 中断的控制和操作 124
4.4.3 中断的响应过程和中断矢量地址 127
思考与练习 128
第5章 80C51单片机的程序设计 130
5.1 概述 130
5.1.1 计算机语言——机器语言、汇编语言与高级语言 130
5.1.2 程序设计及程序结构 132
5.2 汇编语言及其程序设计 135
5.2.1 汇编语言 135
5.2.2 汇编语言程序设计 139
5.3 C语言及其程序设计 155
5.3.1 Keil C语言 155
5.3.2 C语言与汇编语言的混合编程 164
5.3.3 C语言程序设计 168
5.3.4 80C51功能单元的C语言编程 173
思考与练习 177
第6章 80C51单片机的系统扩展 179
6.1 概述 179
6.1.1 外部并行扩展性能 180
6.1.2 外部串行扩展性能 181
6.2 单片机的外部并行扩展 187
6.2.1 程序存储器的扩展 187
6.2.2 片外数据存储器的扩展 190
6.2.3 扩展片外程序存储器和片外数据存储器 194
6.2.4 通过并行总线扩展I/O口 196
6.3 单片机的外部串行扩展 198
6.3.1 串行扩展E2PROM 198
6.3.2 串行扩展I/O接口 214
6.4 外部中断源的扩展 220
思考与练习 221
第7章 单片机的典型外围接口技术7.1 键盘接口 222
7.1.1 键盘的工作原理和扫描方式 222
7.1.2 键盘的接口电路 224
7.2 显示接口 225
7.2.1 LED显示器的工作原理 225
7.2.2 显示电路的分类与接口 226
7.3 DAC接口 232
7.3.1 D/A转换器及其接口电路的一般特点 232
7.3.2 D/A转换器的接口电路 234
7.4 ADC接口 246
7.4.1 A/D转换器及其接口电路的一般特点 246
7.4.2 A/D转换器的接口电路 247
思考与练习 263
第8章 80C51单片机的应用系统实例8.1 压力、流速数据采集系统 264
8.1.1 设计目标 264
8.1.2 设计描述 264
8.1.3 硬件系统组成 265
8.1.4 软件描述 268
8.2 单片机控制的电加热锅炉电路 274
8.2.1 工作原理 274
8.2.2 电路工作过程 277
8.2.3 软件设计 277
8.2.4 程序代码 278
附录 282
参考文献 287