第1章 微型计算机基础知识 1
1.1 计算机中的数制与码制 1
1.1.1 十进制数 1
1.1.2 二进制数 1
1.1.3 十六进制数 2
1.1.4 数制转换 2
1.1.5 BCD码 3
1.1.6 ASCII码 3
1.2 计算机中数的运算 4
1.2.1 机器数的表示方法 4
1.2.2 补码的加减运算 5
1.3 微型计算机基本工作原理 6
1.3.1 微处理器 6
1.3.2 存贮器 8
1.3.3 I/O设备 8
1.3.4 微机简单工作过程 9
1.4 单片微型计算机 9
1.4.1 单片机的发展过程 10
1.4.2 单片机的发展趋势 10
1.4.3 单片机的应用领域 11
第2章 MCS-51单片机系统结构 14
2.1 MCS-51单片机总体结构 14
2.1.1 CPU 14
2.1.2 存贮器配置 15
2.1.3 L/O口 15
2.2 MCS-51单片机存贮器结构 16
2.2.1 程序存贮器 16
2.2.2 内部数据存贮器和特殊功能寄存器 16
2.2.3 外部数据存贮器 19
2.3 MCS-51输入/输出端口 19
2.3.1 P0口 19
2.3.2 P1口 20
2.3.3 P2口 20
2.3.4 P3口 21
2.3.5 端口负载能力和接口要求 21
2.4 CPU时序 22
2.4.1 振荡器和时钟电路 22
2.4.2 CPU时序 22
2.5 MCS-51单片机引脚及功能 24
2.5.1 引脚及功能 24
2.5.2 复位电路及掉电操作 25
第3章 MCS-51指令系统 27
3.1 MCS-51寻址方式 27
3.2 数据传送指令 30
3.2.1 内部8位数据传送指令 31
3.2.2 16位数据传送指令 32
3.2.3 外部数据传送指令 32
3.2.4 交换与查表类指令 33
3.2.5 堆栈操作指令 34
3.3 算术运算指令 36
3.3.1 加、减法指令 36
3.3.2 乘、除法指令 38
3.4 逻辑运算及移位指令 40
3.4.1 逻辑运算指令 40
3.4.2 循环移位指令 42
3.5 控制转移指令 43
3.5.1 无条件转移指令 43
3.5.2 条件转移指令 44
3.5.3 调用和返回指令 46
3.6 位操作指令 48
第4章 汇编语言程序设计 52
4.1 汇编语言的基本概念 52
4.1.1 机器语言、汇编语言和高级语言 52
4.1.2 汇编语言格式 53
4.2 汇编语言源程序的机器汇编和人工汇编 53
4.2.1 伪指令 54
4.2.2 机器汇编 56
4.2.3 人工汇编 56
4.3 简单程序设计 57
4.3.1 流程图 58
4.3.2 直接程序的设计 58
4.4 分支程序设计 60
4.5 循环程序设计 61
4.5.1 循环程序的导出 61
4.5.2 循环程序举例 62
4.6 子程序设计 64
4.6.1 子程序的概念 64
4.6.2 子程序的设计 65
4.7 运算程序设计 67
4.7.1 双字节无符号数加减法 67
4.7.2 无符号数二进制乘法 68
4.7.3 无符号数二进制除法 69
第5章 MCS-51定时器 73
5.1 定时器结构 73
5.1.1 定时器方式寄存器TMOD 74
5.1.2 定时器控制寄存器TCON 75
5.2 定时器工作方式 75
5.2.1 方式0 75
5.2.2 方式1 76
5.2.3 方式2 76
5.2.4 方式3 76
5.3 定时器应用举例 77
5.3.1 方式0应用 77
5.3.2 方式1应用 78
5.3.3 方式2应用 79
5.3.4 门控位应用 80
第6章 MCS-51串行接口 82
6.1 串行通信的基本知识 82
6.1.1 并行通信和串行通信 82
6.1.2 串行通信两种基本方式 82
6.1.3 波特率 83
6.1.4 通信方向 84
6.2 串行接口的控制 84
6.2.1 串行口缓冲寄存器SBUF 84
6.2.2 串行口控制寄存器SCON 85
6.2.3 电源控制寄存器PCON 85
6.3 串行口的波特率 86
6.4 串行口的工作方式及应用 86
6.4.1 方式0及其应用 86
6.4.2 方式1及其应用 88
6.4.3 方式2和方式3及其应用 88
6.4.4 多机通信原理 90
6.4.5 单片机和PC机之间的通信 90
第7章 中断系统 93
7.1 中断概述 93
7.1.1 计算机与外设交换信息的方式 93
7.1.2 中断的基本概念 94
7.2 MCS-51单片机的中断管理系统 95
7.2.1 中断源和中断请求标志 95
7.2.2 中断的开放和关闭 97
7.2.3 中断源的优先级 97
7.2.4 中断响应过程 98
7.2.5 中断响应时间 99
7.3 中断系统的应用 99
7.3.1 外部中断源的扩展 99
7.3.2 中断应用 101
第8章 MCS-51系统扩展 104
8.1 单片机的三总线结构 104
8.2 程序存贮器扩展 105
8.2.1 EPROM存贮器 105
8.2.2 程序存贮器扩展 106
8.3 数据存贮器扩展 108
8.3.1 静态RAM存贮器 109
8.3.2 数据存贮器扩展 109
8.4 串行E2PROM扩展 113
8.4.1 串行E2PROM24LC65的结构特点 114
8.4.2 串行E2PROM的硬件接口及软件编程 117
8.5 I/O口扩展 120
8.5.1 可编程的并行接口8255A 121
8.5.2 8255和MCS-51单片机的接口 123
第9章 接口技术 127
9.1 显示接口 127
9.1.1 LED显示器 127
9.1.2 静态显示方式 127
9.1.3 动态显示方式 129
9.2 键盘接口 132
9.2.1 键盘接口需解决的问题 132
9.2.2 独立式按键 133
9.2.3 行列式键盘 134
9.2.4 可编程的键盘接口芯片8279 135
9.3 A/D转换器接口 143
9.3.1 ADC0809结构 143
9.3.2 ADC0809与8031的连接 144
9.3.3 AD574与8031单片机接口 145
9.4 D/A接口 148
9.4.1 DAC0832数模转换器 148
9.4.2 DAC0832与8031接口 149
9.4.3 D/A转换器的应用 150
9.5 系统设计及开发方法 152
9.5.1 总体设计 153
9.5.2 硬件及软件设计 153
9.5.3 利用开发机进行调试 155
9.6 应用系统实例 156
9.6.1 概述 156
9.6.2 数学模型 156
9.6.3 系统总体设计 157
9.6.4 功能模块设计 159
9.6.5 数据处理方法 161
9.6.6 抗干扰措施 161
9.6.7 主程序设计 161
第10章 用C语言对单片机进行编程10.1 C51的数据类型 164
10.2 C51存贮类型 168
10.2.1 存贮类型 168
10.2.2 存贮模式 171
10.2.3 绝对地址访问 171
10.3 C51的指针和数组 176
10.3.1 指针 176
10.3.2 数组 177
10.4 函数 179
10.4.1 函数定义 179
10.4.2 函数调用 180
10.4.3 函数调用中参数传递 181
10.5 8051中断的C编程 183
10.5.1 定时器中断 184
10.5.2 利用串行口实现多机通信的中断编程 185
10.6 C51和汇编混合编程 187
10.6.1 用C文件产生汇编文件 187
10.6.2 内含汇编语言 188
10.6.3 在C程序中调用汇编语言程序 188
10.7 C51应用程序实例 190
10.7.1 键盘显示接口的C编程 190
10.7.2 串行E2PROM的C编程 193
10.7.3 8031单片机和A/D转换器接口的C编程 195
10.7.4 8031和打印机接口的C编程 200
附录一 美国标准信息交换码ASCII码字符表 206
附录二 MCS-51单片机位地址表 207
附录三 MCS-51系列单片机指令表 208
附录四 C51库函数 211
附录五 WH型打印机打印命令集 228
参考书目 236