第1章 绪论 1
1.1 嵌入式系统简介 1
1.1.1 嵌入式系统概念 1
1.1.2 嵌入式处理器 1
1.2 单片机的基本概念 3
1.2.1 CPU、微型计算机及微型计算机系统 3
1.2.2 单片机 4
1.2.3 单片机应用系统 5
1.2.4 单片机的发展和应用 5
1.3 51系列单片机简介 7
1.3.1 8位单片机——嵌入式系统低端应用的主流 7
1.3.2 51系列8位单片机基本情况介绍 7
1.3.3 51系列单片机的最新发展 8
1.4 单片机应用系统的开发工具和开发过程 9
1.4.1 开发系统的作用 9
1.4.2 开发系统的组成 9
1.4.3 仿真 10
1.4.4 单片机应用系统的开发过程 11
1.5 任务1:信号灯控制实战 11
1.5.1 实现功能要求 11
1.5.2 硬件电路连接 11
1.5.3 任务分析与实现 13
1.5.4 小结 16
第2章 仿真软件 17
2.1 Proteus仿真软件简介 17
2.1.1 Proteus ISIS和Proteus VSM简介 17
2.1.2 Proteus ISIS功能简介 19
2.1.3 绘制原理图 27
2.1.4 给CPU载入程序 35
2.1.5 在Proteus中调试程序 35
2.2 Keil仿真软件简介 37
2.2.1 在Keil中编写程序 37
2.2.2 在Keil中对程序进行汇编 39
2.2.3 在Keil中对程序进行调试 39
2.2.4 实现Keil与Proteus协同仿真 41
2.3 任务2:信号灯控制实战之Proteus仿真 43
2.3.1 绘制Proteus电原理图 43
2.3.2 编写、汇编源程序 43
2.3.3 给CPU载入程序 44
2.3.4 在Protcus中运行程序 45
2.3.5 改变闪烁速度 45
第3章 MCS-51单片机的组成和结构分析 46
3.1 MCS-51单片机的存储器空间和存储器 46
3.1.1 MCS-51单片机的存储器空间 46
3.1.2 程序存储器 48
3.1.3 数据存储器 49
3.1.4 内部数据存储器 49
3.1.5 几个特殊功能寄存器简介 53
3.2 MCS-51单片机的引脚信号 55
3.2.1 MCS-51单片机引脚的基本功能 56
3.2.2 MCS-51单片机引脚信号的第二功能 57
3.3 振荡电路和复位电路 58
3.3.1 延时程序分析 58
3.3.2 振荡电路 59
3.3.3 时序定时单位 60
3.3.4 复位电路 61
3.4 MCS-51单片机的并行I/O接口 63
3.4.1 并行I/O接口的基本结构 63
3.4.2 P0口的结构 63
3.4.3 P1口的结构 64
3.4.4 P2口的结构 64
3.4.5 P3口的结构 65
第4章 MCS-51单片机的指令系统和程序设计 65
4.1 指令系统概述 66
4.1.1 指令系统概述 66
4.1.2 指令的操作码 67
4.1.3 指令的操作数 67
4.1.4 指令的分类 68
4.1.5 指令的格式 69
4.2 寻址方式 70
4.2.1 立即寻址 70
4.2.2 直接寻址 70
4.2.3 寄存器寻址 71
4.2.4 寄存器间接寻址 72
4.2.5 变址寻址 72
4.2.6 相对寻址 73
4.2.7 位寻址 73
4.3 数据传送类指令 74
4.3.1 MOV指令 75
4.3.2 MOVX指令 76
4.3.3 MOVC指令 78
4.3.4 数据交换指令 79
4.3.5 栈操作指令 80
4.4 算术运算类指令 81
4.4.1 加法指令 81
4.4.2 减法指令 83
4.4.3 乘、除运算指令 84
4.4.4 增量、减量指令 84
4.4.5 二—十进制调整指令 85
4.5 逻辑操作类指令 87
4.5.1 单操作数逻辑操作指令 87
4.5.2 双操作数逻辑操作指令 88
4.6 程序转移类指令 90
4.6.1 无条件转移指令 90
4.6.2 条件转移指令 92
4.6.3 子程序调用和返回指令 95
4.6.4 空操作NOP 96
4.7 位操作类指令 97
4.7.1 位传送指令 97
4.7.2 位逻辑操作指令 97
4.7.3 位状态控制指令 98
4.7.4 位条件转移指令 99
4.8 伪指令 100
4.9 MCS-51汇编语言程序设计 102
4.9.1 汇编语言程序设计基本步骤 102
4.9.2 顺序结构程序设计 102
4.9.3 分支结构程序设计 104
4.9.4 循环结构程序设计 107
4.9.5 查表结构程序设计 109
4.9.6 子程序设计 111
第5章 MCS-51单片机的中断系统 113
5.1 任务3:用中断方法控制信号灯 113
5.1.1 要求 113
5.1.2 任务分析 114
5.1.3 编写、汇编、运行程序 114
5.1.4 程序分析 115
5.1.5 问题的提出 115
5.2 中断的概念 115
5.2.1 什么是中断 115
5.2.2 中断的基本术语 116
5.2.3 中断服务程序和子程序的区别 117
5.2.4 中断技术的优势 117
5.3 MCS-51单片机的中断系统 118
5.3.1 中断源 118
5.3.2 与中断有关的特殊功能寄存器 118
5.3.3 中断优先级结构 120
5.4 单片机中断处理过程 121
5.4.1 中断响应条件 121
5.4.2 中断处理过程 121
5.4.3 中断请求的撤销 122
5.4.4 中断响应的时间 123
5.5 单片机中断程序的编制 123
5.5.1 建立主程序和中断服务程序的连接 123
5.5.2 中断处理程序的编写 124
第6章 MCS-51单片机的定时/计数器 129
6.1 任务4:用定时器控制信号灯 129
6.1.1 要求 129
6.1.2 任务分析 129
6.1.3 编写、汇编、运行程序 129
6.1.4 程序分析 130
6.1.5 问题的提出 131
6.2 定时/计数器的结构和工作原理 131
6.2.1 定时/计数器的逻辑框图 131
6.2.2 定时/计数器的工作原理 131
6.3 定时/计数器的控制寄存器 133
6.3.1 定时器方式寄存器TMOD 133
6.3.2 定时器控制寄存器TCON 134
6.4 定时/计数器的工作方式 135
6.4.1 工作方式0 135
6.4.2 工作方式1 135
6.4.3 工作方式2 136
6.4.4 工作方式3 136
6.5 定时/计数器应用编程 137
6.5.1 初始化和编程注意事项 137
6.5.2 时间常数的计算 138
6.5.3 定时器应用编程举例 138
第7章 MCS-51单片机的串行通信及其接口 147
7.1 任务5:用串行接口控制信号灯 147
7.1.1 要求 147
7.1.2 任务分析 147
7.1.3 编写、汇编、运行程序 148
7.1.4 问题的提出 149
7.2 串行通信的一般概念 149
7.2.1 两种基本的通信方式 149
7.2.2 串行通信的两种基本方式 150
7.2.3 串行通信的类型 151
7.2.4 串行通信的接口电路 152
7.3 MCS-51串行接口的结构 152
7.3.1 串行接口的内部结构 152
7.3.2 串行接口的控制寄存器 153
7.4 串行接口的工作方式 155
7.4.1 方式0 155
7.4.2 UART方式 155
7.5 MCS-51串行通信接口应用举例 156
7.5.1 定时器时间常数的计算 157
7.5.2 双机通信 158
7.5.3 多机通信 160
7.5.4 PC机和单片机之间的通信 161
第8章 MCS-51单片机接口技术 165
8.1 任务6:采用单只LED数码管显示模拟生产线计件 165
8.1.1 要求 165
8.1.2 任务分析 166
8.1.3 编写、汇编、运行程序 166
8.1.4 问题的提出 168
8.2 系统扩展概述 168
8.2.1 单片机的最小系统 168
8.2.2 系统扩展时的三总线结构 168
8.2.3 系统扩展的主要方面 169
8.3 并行I/O接口的扩展 169
8.3.1 扩展I/O接口时应注意的几个问题 170
8.3.2 用TTL芯片进行I/O接口扩展 172
8.3.3 采用8255芯片扩展I/O接口 174
8.3.4 采用8155芯片扩展I/O接口 177
8.4 MCS-51单片机与LED数码管的接口技术 179
8.4.1 LED数码管显示器的结构 179
8.4.2 LED显示器接口 181
8.5 MCS-51单片机与LCD液晶显示器的接口技术 185
8.5.1 LCD液晶显示器的特点和分类 186
8.5.2 12864液晶显示器 186
8.5.3 12864液晶显示器与单片机的连接 189
8.6 按键接口 190
8.6.1 按键开关状态的可靠输入 190
8.6.2 按键处理的软件结构 192
8.6.3 独立式按键接口电路 192
8.6.4 矩阵式键盘 194
8.7 MCS-51单片机与A/D转换器的接口技术 195
8.7.1 A/D转换器主要技术指标 196
8.7.2 A/D转换器的选择原则 196
8.7.3 常见的A/D转换器 197
8.7.4 A/D转换器ADC0809 197
8.8 MCS-51单片机与D/A转换器的接口技术 201
8.8.1 D/A转换接口设计的一般问题 201
8.8.2 D/A转换器的性能指标 202
8.8.3 D/A转换集成芯片系列 202
8.8.4 常用D/A接口芯片DAC0832 203
8.9 单片机应用系统设计举例 210
8.9.1 系统设计要求 211
8.9.2 系统总体方案 211
8.9.3 DS18B20数字温度传感器概述 211
8.9.4 系统硬件原理图 214
8.9.5 软件设计 214
8.9.6 编写、汇编源程序 215
8.9.7 给CPU载入程序 221
8.9.8 在Proteus中运行程序 221
附录A MCS-51指令表 223
附录B AT89S51单片机简介 227
B.1 AT89S51的新增功能 227
B.2 AT89S51在结构上的变化 228
附录C 自研多功能板 233
C.1 硬件功能 233
C.2 各个功能模块相应的结构 234
参考文献 240