第1章 绪论 1
1.1 电子计算机的发展概述 1
1.1.1 电子计算机的问世及其经典结构 1
1.1.2 微型计算机的组成及其应用形态 2
1.2 单片机的发展过程及产品近况 3
1.2.1 单片机的发展过程 3
1.2.2 单片机产品近况 4
1.3 单片机的特点及应用领域 5
1.3.1 单片机的特点 5
1.3.2 单片机的应用 5
1.4 单片机应用系统开发简介 6
1.4.1 单片机应用系统的开发 6
1.4.2 单片机应用系统开发过程 6
1.4.3 单片机开发方式的发展 7
思考题与习题 7
第2章 80C51单片机的结构与原理 9
2.1 80C51单片机的外特性 9
2.1.1 引脚功能 9
2.1.2 外部总线 10
2.2 80C51单片机的内部结构 11
2.2.1 80C51单片机的组成 11
2.2.2 时钟电路与时序 12
2.2.3 复位与复位电路 14
2.2.4 并行I/O端口 15
2.3 80C51单片机的存储器组织 18
2.3.1 程序存储器 18
2.3.2 数据存储器 19
2.3.3 特殊功能寄存器 21
2.4 串行接口 23
2.4.1 计算机通信技术基础 23
2.4.2 串行接口的内部结构 24
2.4.3 串行接口的工作方式 26
2.4.4 串行口的初始化 28
思考题与习题 28
第3章 80C51的指令系统 30
3.1 指令格式及常用符号 30
3.1.1 汇编语言指令格式 30
3.1.2 本章中符号的定义 31
3.2 80C51的寻址方式 31
3.2.1 立即寻址 31
3.2.2 寄存器寻址 32
3.2.3 寄存器间接寻址 33
3.2.4 直接寻址 33
3.2.5 变址寻址 34
3.2.6 相对寻址 34
3.2.7 位寻址 35
3.2.8 寻址方式小结 36
3.3 80C51的指令系统简介 36
3.4 数据传送类指令(29条) 36
3.4.1 8位数据传送指令 37
3.4.2 16位数据传送指令 38
3.4.3 外部数据传送指令 39
3.4.4 查表指令 39
3.4.5 堆栈指令 40
3.4.6 数据交换类指令 41
3.4.7 数据传送类指令小结 42
3.4.8 数据传送类指令练习题 42
3.5 算术运算类指令(24条) 43
3.5.1 加法指令 44
3.5.2 减法指令 47
3.5.3 无符号数乘法指令 48
3.5.4 无符号数除法指令 48
3.6 逻辑运算与循环类指令(24条) 48
3.6.1 逻辑运算类指令 48
3.6.2 累加器循环移位 50
3.7 控制转移类指令(17条) 52
3.7.1 无条件转移指令 52
3.7.2 条件转移指令 54
3.7.3 调用与返回指令 56
3.7.4 空操作指令 57
3.7.5 控制转移类指令应用实例 57
3.8 位操作类指令(17条) 58
3.8.1 位传送指令 58
3.8.2 位状态设置指令 58
3.8.3 位逻辑运算指令 59
3.9 伪指令 59
3.10 本章小结 61
思考题与习题 62
第4章 汇编语言程序设计 64
4.1 程序编制的方法和技巧 64
4.1.1 汇编语言程序设计的步骤 64
4.1.2 编制程序的方法和技巧 65
4.1.3 汇编语言的语句格式 66
4.2 基本程序结构 66
4.2.1 顺序结构程序设计 66
4.2.2 分支结构程序设计 68
4.2.3 循环分支结构程序设计 71
4.3 子程序设计 75
4.3.1 子程序的调用与返回 75
4.3.2 保存与恢复寄存器内容 76
4.3.3 子程序的参数传递 77
4.3.4 编写子程序时应注意的问题 77
4.3.5 常用子程序 77
思考题与习题 80
第5章 80C51的中断系统与定时器/计数器 81
5.1 80C51的中断系统 81
5.1.1 中断及中断嵌套的概念 81
5.1.2 中断请求源和中断控制 82
5.1.3 中断处理过程 85
5.1.4 应用举例 86
5.2 80C51单片机的定时器/计数器 87
5.2.1 定时器/计数器的结构与工作原理 88
5.2.2 定时器/计数器的工作方式 90
5.2.3 定时器/计数器的初始化 92
5.2.4 应用举例 93
思考题与习题 95
第6章 80C51的C语言程序设计 96
6.1 单片机C语言概述 96
6.1.1 C51程序开发过程 96
6.1.2 C51程序结构 97
6.2 C51的数据类型与运算 98
6.2.1 C51的数据类型 98
6.2.2 C51数据的存储类型 99
6.2.3 80C51硬件结构的C51定义 100
6.2.4 C51的运算符和表达式 102
6.3 C51流程控制语句 103
6.3.1 C51选择语句 104
6.3.2 C51循环语句 105
6.4 C51的指针和函数 107
6.4.1 一般指针 107
6.4.2 基于存储器的指针 108
6.4.3 C51函数的定义 108
6.4.4 C51函数的调用与参数传递 108
6.4.5 C51的库函数 110
6.5 综合编程 118
6.5.1 定时器应用举例 118
6.5.2 串行通信 119
思考题与习题 121
第7章 80C51系统扩展技术 122
7.1 程序存储器的扩展设计 122
7.1.1 访问外部程序存储器的时序 122
7.1.2 EPROM接口设计 123
7.1.3 E2PROM接口设计 125
7.2 数据存储器的扩展设计 129
7.2.1 80C51访问外部RAM的定时波形 129
7.2.2 数据存储器的扩展设计 130
7.2.3 RAM的掉电保护 131
7.3 显示器接口扩展技术 132
7.3.1 LED结构与原理 132
7.3.2 动态显示程序设计 133
7.4 键盘接口设计 136
7.4.1 键盘工作原理 136
7.4.2 键盘接口设计 137
7.5 模/数(A/D)和数/模(D/A)转换器电路接口设计 140
7.5.1 D/A转换器与8031的接口设计 141
7.5.2 A/D转换器与8031的接口设计 145
7.5.3 采样、保持和滤波 148
思考题与习题 149
第8章 单片机产品设计 151
8.1 概述 151
8.1.1 单片机产品设计 151
8.1.2 单片机产品设计与调试的一般原则 151
8.2 传感器接口电路 154
8.2.1 概述 154
8.2.2 传感器接口电路 155
8.3 单片机产品的抗干扰技术 157
8.3.1 干扰源及其传播途径 157
8.3.2 电源产品的抗干扰措施 158
8.3.3 地线产品 160
8.3.4 A/D和D/A转换器的抗干扰措施 161
8.3.5 长线传输干扰的排除 163
8.3.6 几种元器件的抗干扰措施 163
8.4 8位A/D、D/A转换产品的设计实例 165
8.4.1 产品的硬件设计 165
8.4.2 产品软件设计 169
思考题与习题 178
参考文献 180