第1章 微型计算机基础知识 1
1.1 计算机中的数制、数的转换及表示形式 1
1.1.1 计算机中的数制 1
1.1.2 数制之间的转换 2
1.1.3 计算机中数的表示形式 3
1.2 计算机中数和字符的编码 5
1.3 单片机概述 6
1.3.1 单片机的概念及特点 6
1.3.2 单片机的应用 7
1.3.3 单片机的开发环境 7
1.3.4 单片机程序开发流程 8
习题与思考题 9
第2章 MCS-51单片机结构与原理 10
2.1 MCS-51单片机内部结构 10
2.1.1 CPU 10
2.1.2 存储器 13
2.1.3 并行I/O口 16
2.1.4 可编程串行口 20
2.1.5 定时器/计数器 20
2.1.6 中断系统 20
2.2 MCS-51单片机外部引脚 21
2.3 MCS-51单片机工作方式 23
2.4 MCS-51单片机时序 24
习题与思考题 27
第3章 MCS-51单片机指令系统 29
3.1 指令系统概述 29
3.1.1 指令格式 29
3.1.2 指令的字节数 30
3.1.3 汇编指令常用符号 31
3.2 寻址方式 31
3.2.1 立即寻址 32
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.3 数据传送指令 35
3.3.1 内部数据传送指令 35
3.3.2 外部数据传送指令 37
3.3.3 堆栈操作指令 38
3.3.4 数据交换指令 39
3.4 算术、逻辑运算及移位指令 40
3.4.1 算术运算指令 40
3.4.2 逻辑操作指令 43
3.4.3 循环移位指令 45
3.5 控制转移指令 45
3.5.1 无条件转移指令 45
3.5.2 条件转移指令 47
3.5.3 子程序调用和返回指令 48
3.6 位操作指令 50
习题与思考题 52
第4章 MCS-51单片机程序设计 54
4.1 单片机编程语言概述 54
4.1.1 编程语言概述 54
4.1.2 单片机使用的编程语言 55
4.2 汇编语言的构成和汇编 55
4.2.1 汇编语言的构成 55
4.2.2 汇编语言的汇编 58
4.3 分支程序设计 59
4.4 循环程序设计 61
4.5 查表、子程序设计 63
4.5.1 查表程序设计 63
4.5.2 子程序设计 64
4.6 数制转换程序设计 65
4.7 延时程序设计 66
4.8 C51基础知识 67
4.8.1 C语言与C51 67
4.8.2 学习 C51的必备条件 67
4.8.3 单片机C语言程序开发流程 68
4.8.4 C51中的数据类型 68
4.8.5 C51中常用的头文件 69
4.8.6 C51中的运算符 69
4.8.7 C51中的基础语句 70
4.8.8 C51中的函数 71
习题与思考题 71
第5章 存储器扩展 73
5.1 概述 73
5.1.1 只读存储器 73
5.1.2 随机存储器 74
5.1.3 存储器扩展技术 74
5.2 程序存储器 76
5.3 数据存储器 80
5.4 MCS-51单片机外部存储器的扩展 84
5.4.1 程序存储器扩展电路 84
5.4.2 数据存储器扩展电路 84
5.4.3 Flash存储器的扩展 87
习题与思考题 90
第6章 MCS-51单片机中断系统 91
6.1 概述 91
6.1.1 中断的定义和作用 91
6.1.2 MCS-51中断源 91
6.1.3 中断嵌套 92
6.1.4 中断系统功能 93
6.2 MCS-51中断系统及应用 94
6.2.1 MCS-51的中断源和中断标志 94
6.2.2 MCS-51对中断请求的控制 96
6.2.3 MCS-51对中断的响应 98
6.2.4 MCS-51对中断的响应时间 99
6.2.5 MCS-51对中断请求的撤除 99
6.2.6 MCS-51中断系统的应用 100
习题与思考题 101
第7章 MCS-51单片机接口电路及典型应用 103
7.1 概述 103
7.1.1 I/O接口的作用 103
7.1.2 I/O数据传送方式 104
7.1.3 I/O接口类型 105
7.2 并行接口及应用 106
7.2.1 MCS-51内部I/O口及应用 106
7.2.2 简单I/O接口扩展及应用 107
7.2.3 可编程I/O接口芯片及应用 109
7.3 串行接口及应用 117
7.3.1 串行通信的基础知识 118
7.3.2 MCS-51单片机的串行口 120
7.3.3 MCS-51单片机串行口应用 124
7.4 定时器/计数器及其应用 128
7.4.1 定时器/计数器的结构和控制 128
7.4.2 定时器/计数器的工作方式 130
7.4.3 定时器/计数器的初始化 131
7.4.4 定时器/计数器的应用 132
7.5 MCS-51单片机与LED显示器接口应用 134
7.5.1 LED数码管显示原理 134
7.5.2 LED数码管显示方式 135
7.5.3 MCS-51与LED数码管接口及应用 136
7.6 MCS-51单片机与键盘接口应用 138
7.6.1 键盘控制原理 138
7.6.2 MCS-51与键盘接口及应用 142
习题与思考题 147
第8章 MCS-51单片机与A/D、D/A接口及应用 149
8.1 MCS-51单片机与A/D接口及应用 149
8.1.1 A/D转换原理 149
8.1.2 A/D转换器的主要技术指标 151
8.1.3 A/D转换器ADC0809 152
8.1.4 单片机与ADC0809的接口 155
8.1.5 串行接口A/D转换器TLC2543及其接口技术 158
8.2 MCS-51单片机与D/A接口及应用 159
8.2.1 D/A转换器工作原理 159
8.2.2 D/A转换器的主要技术指标 161
8.2.3 D/A转换器DAC0832 162
8.2.4 12位串行D/A转换器TLV5616及其接口技术 167
习题与思考题 170
第9章 Keil μVision IDE集成开发环境 171
9.1 软件简介 171
9.1.1 Keil μVision IDE的安装 171
9.1.2 Keil μVision IDE界面 171
9.2 Keil使用方法 174
9.2.1 建立项目 174
9.2.2 创建文件 174
9.2.3 向项目里添加源程序 176
9.2.4 文件的编译、连接 177
9.2.5 仿真器的选择 179
9.2.6 程序的调试 180
9.2.7 Keil μVision IDE的调试技巧 183
第10章 Proteus ISIS仿真软件 185
10.1 软件简介 185
10.2 Proteus电路设计方法 191
10.2.1 文件操作 191
10.2.2 在原理图中放置和编辑对象 191
10.2.3 连线 194
10.3 Proteus单片机仿真实例 195
10.3.1 单片机仿真 195
10.3.2 Proteus与Keil C的联合仿真 198
第11章 单片机应用系统实训题目 200
附录 MCS-51系列单片机指令表 220
参考文献 225