第一节 计算机中的数制与码制 1
1.1.1 十进制数 1
1.1.2 二进制数 1
第一章 微型计算机基础知识 1
1.1.3 十六进制数 2
1.1.4 数制之间的转换 2
1.1.5 BCD码 4
1.1.6 ASCII码 4
第二节 计算机中数的运算 4
1.2.1 机器数的表示方法 4
第三节 微型计算机基本工作原理 6
1.2.2 补码的加减运算 6
1.3.1 微处理器 7
1.3.2 存贮器 8
1.3.3 I/O设备 9
1.3.4 微机简单工作过程 9
第二章 MCS-51单片机系统结构 11
第一节 MCS-51单片机总体结构 11
第二节 MCS-51单片机存贮器结构 13
2.2.1 程序存贮器 13
2.2.2 内部数据存贮器和特殊功能寄存器 14
第三节 MCS-51输入/输出端口 16
2.2.3 外部数据存贮器 16
2.3.1 P0口 17
2.3.2 P1口 17
2.3.3 P2口 18
2.3.4 P3口 18
2.3.5 端口负载能力和接口要求 18
第四节 CPU时序 19
2.4.1 振荡器和时钟电路 19
2.4.2 CPU时序 19
第五节 MCS-51单片机引脚及功能 21
2.5.1 引脚及功能 21
2.5.2 复位电路及掉电操作 22
第三章 MCS-51指令系统 25
第一节 MCS-51寻址方式 25
第二节 数据传送指令 28
3.2.1 内部8位数据传送指令 29
3.2.2 16位数据传送指令 30
3.2.3 外部数据传送指令 30
3.2.4 交换与查表类指令 31
3.2.5 堆栈操作指令 32
第三节 算术运算指令 34
3.3.1 加、减法指令 34
3.3.2 乘、除法指令 36
3.4.1 逻辑运算指令 38
第四节 逻辑运算及移位指令 38
3.4.2 循环移位指令 40
第五节 控制转移指令 41
3.5.1 无条件转移指令 41
3.5.2 条件转移指令 42
3.5.3 调用和返回指令 44
第六节 位操作指令 46
第四章 汇编语言程序设计 50
第一节 汇编语言的基本概念 50
4.1.1 机器语言、汇编语言和高级语言 50
第二节 汇编语言源程序的机器汇编和人工汇编 51
4.1.2 汇编语言格式 51
4.2.1 伪指令 52
4.2.2 机器汇编 54
4.2.3 人工汇编 54
第三节 简单程序设计 55
4.3.1 流程图 56
4.3.2 直接程序的设计 56
第四节 分支程序设计 58
第五节 循环程序设计 59
4.5.1 循环程序的导出 59
4.5.2 循环程序举例 60
4.6.1 子程序的概念 62
第六节 子程序设计 62
4.6.2 子程序的设计 63
第七节 运算程序设计 65
4.7.1 双字节无符号数加减法 65
4.7.2 无符号数二进制乘法 66
4.7.3 无符号数二进制除法 67
第五章 MCS-51定时器 71
第一节 定时器结构 71
5.1.1 定时器方式寄存器TMOD 72
第二节 定时器工作方式 73
5.2.1 方式0 73
5.1.2 定时器控制寄存器TCON 73
5.2.2 方式1 74
5.2.3 方式2 74
5.2.4 方式3 74
第三节 定时器应用举例 75
第六章 MCS-51串行接口 80
第一节 串行通信的基本知识 80
6.1.1 并行通信和串行通信 80
6.1.2 串行通信两种基本方式 80
6.1.3 波特率 81
6.2.1 串行口缓冲寄存器SBUF 82
第二节 串行接口的控制 82
6.1.4 通信方向 82
6.2.2 串行口控制寄存器SCON 83
6.2.3 电源控制寄存器PCON 83
第三节 串行口的波特率 84
第四节 串行口的工作方式及应用 84
6.4.1 方式0及其应用 84
6.4.2 方式1 86
6.4.3 方式2和方式3 86
6.4.4 多机通信原理 88
6.4.5 单片机和PC机之间的通信 88
7.1.1 计算机与外设交换信息的方式 91
第七章 中断系统 91
第一节 中断概述 91
7.1.2 中断的基本概念 92
第二节 MCS-51单片机的中断管理系统 93
7.2.1 中断源和中断请求标志 93
7.2.2 中断的开放和关闭 95
7.2.3 中断源的优先级 95
7.2.4 中断响应过程 96
7.2.5 中断响应时间 97
第三节 中断系统的应用 97
7.3.1 外部中断源的扩展 97
7.3.2 中断应用 99
第一节 程序存贮器扩展 102
8.1.1 EPROM存贮器 102
第八章 MCS-51系统扩展 102
8.1.2 程序存贮器扩展 104
第二节 数据存贮器扩展 106
8.2.1 静态RAM存贮器 106
8.2.2 数据存贮器扩展 107
第三节 I/O口扩展 110
8.3.1 可编程的并行接口8255A 110
8.3.2 可编程的并行接口8155 114
9.1.1 LED显示器 120
9.1.2 静态显示方式 120
第九章 接口技术 120
第一节 显示接口 120
9.1.3 动态显示方式 122
第二节 键盘接口 125
9.2.1 键盘接口需解决的问题 125
9.2.2 独立式按键 126
9.2.3 行列式键盘 127
9.2.4 可编程的键盘接口芯片8279 128
第三节 A/D转换器接口 136
9.3.1 ADC0809结构 136
9.3.2 ADC0809与8031的连接 137
第四节 D/A接口 138
9.4.1 DAC0832数模转换器 138
9.4.2 DAC0832与8031接口 139
9.4.3 D/A转换器的应用 141
第五节 系统设计及开发方法 142
9.5.1 总体设计 142
9.5.2 硬件及软件设计 143
9.5.3 利用开发机进行调试 145
第六节 应用系统实例 146
9.6.1 概述 146
9.6.2 数学模型 146
9.6.3 系统总体设计 147
9.6.4 功能模块设计 149
9.6.5 数据处理方法 151
9.6.6 抗干扰措施 151
9.6.7 主程序设计 151
第十章 用C语言对单片机进行编程 154
第一节 C51的数据类型 154
第二节 C51存贮类型 158
10.2.1 存贮类型 158
10.2.2 存贮模式 161
10.2.3 绝对地址访问 162
10.3.1 指针 166
第三节 C51的指针和数组 166
10.3.2 数组 167
第四节 函数 169
10.4.1 函数定义 169
10.4.2 函数调用 170
10.4.3 函数调用中参数传递 171
第五节 8051中断的C编程 173
10.5.1 定时器中断 174
10.5.2 利用串行口实现多机通信的中断编程 175
第六节 C51和汇编混合编程 177
10.6.1 用C文件产生汇编文件 177
10.6.3 在C程序中调用汇编语言程序 178
10.6.2 内含汇编语言 178
第七节 C51应用程序实例 180
10.7.1 键盘显示接口的C编程 180
10.7.2 串行EEPROM的C编程 183
10.7.3 8031单片机和A/D转换器接口的C编程 189
10.7.4 8031和打印机接口的C编程 195
附录一 美国标准信息交换码ASCII码字符表 208
附录二 MCS-51单片机位地址表 209
附录三 MCS-51系列单片机指令表 210
附录四 C51库函数 213
参考书目 230