第1章 绪论 1
1.1数制与编码的简单回顾 1
1.1.1计算机中的数制及相互转换 1
1.1.2二进制数的运算 4
1.1.3带符号数的表示 6
1.1.4带符号数运算时的溢出问题 8
1.1.5定点数和浮点数 8
1.1.6 BCD码和ASCII码 9
1.2单片机概述 10
1.2.1电子计算机的问世及其经典结构 10
1.2.2微型计算机的组成及其应用形态 11
1.2.3单片机的发展过程 12
1.2.4单片机的特点 13
1.2.5单片机的应用领域 13
1.2.6单片机的产品近况 14
习题1 15
第2章 MCS-51单片机的体系结构 16
2.1 MCS-51单片机的基本组成 16
2.1.1 80C51单片机的基本结构 16
2.1.2 MCS-51单片机的内部组成及信号引脚 18
2.1.3存储器结构 21
2.1.4 80C51单片机的特殊功能寄存器 24
2.2并行输入/输出口结构 26
2.2.1 P0口 27
2.2.2 P1口 28
2.2.3 P2口 29
2.2.4 P3口 30
2.2.5并行接口的负载能力 31
2.3时钟及复位电路 31
2.3.1时钟电路及时序 31
2.3.2单片机的复位电路 34
2.4 MCS-51单片机的最小系统 35
2.4.1单片机最小应用系统举例 35
2.4.2最小应用系统设计 35
习题2 36
第3章 MCS-51指令系统 38
3.1指令系统概述 38
3.1.1机器指令编码格式 38
3.1.2符号指令格式 39
3.1.3符号指令格式及注释中的常用符号 40
3.2寻址方式 40
3.2.1寄存器寻址 41
3.2.2直接寻址 41
3.2.3寄存器间接寻址 42
3.2.4立即寻址 43
3.2.5变址寻址 43
3.2.6相对寻址 44
3.2.7位寻址 45
3.3数据传送类指令 45
3.3.1一般传送类指令 45
3.3.2特殊传送类指令 47
3.4算术运算类指令 49
3.4.1加法 50
3.4.2减法 52
3.4.3乘法 53
3.4.4除法 53
3.5逻辑运算与循环类指令 53
3.5.1逻辑与 53
3.5.2逻辑或 54
3.5.3逻辑异或 54
3.5.4累加器清0和取反 55
3.5.5累加器循环移位 55
3.6控制转移类指令 56
3.6.1无条件转移 56
3.6.2条件转移 57
3.6.3调用与返回 58
3.6.4空操作 59
3.7位操作类指令 59
3.7.1位传送 60
3.7.2位状态设置 60
3.7.3位逻辑运算 60
3.7.4位判跳(条件转移) 61
习题3 61
第4章 汇编程序设计 64
4.1汇编程序设计概述 64
4.1.1程序编制的方法和技巧 64
4.1.2伪指令 67
4.2顺序程序设计 69
4.2.1数据传送 69
4.2.2查表程序 70
4.2.3简单运算 71
4.3分支程序设计 71
4.3.1分支程序实例 72
4.3.2分支程序结构 75
4.4循环程序设计 76
4.4.1循环程序实例 76
4.4.2循环程序结构 81
4.5子程序及其调用 83
4.5.1子程序的调用 83
4.5.2现场的保护和恢复 83
4.5.3参数传递 84
4.6常用汇编子程序 86
4.6.1代码转换程序 86
4.6.2算术运算程序 89
4.6.3查找、排序程序 91
习题4 94
第5章 MCS-51中断系统及定时/计数器 96
5.1 MCS-51的中断系统 96
5.1.1 MCS-51的中断系统结构 96
5.1.2 MCS-51的中断源 97
5.1.3 MCS-51中断的控制 99
5.2 MCS-51单片机中断处理过程 101
5.2.1中断响应条件和时间 101
5.2.2中断响应过程 102
5.2.3中断返回 102
5.2.4中断程序举例 103
5.3 MCS-51的定时/计数器 107
5.3.1定时/计数器的结构和工作原理 107
5.3.2定时/计数器的控制 108
5.3.3定时/计数器的工作方式 109
5.3.4定时/计数器用于外部中断扩展 111
5.3.5定时/计数器应用举例 111
习题5 114
第6章 MCS-51单片机的串口通信 115
6.1串口通信的基本知识 115
6.1.1通信的基本概念 115
6.1.2串行通信的分类 115
6.1.3串行通信的制式 116
6.1.4串行通信接口标准 117
6.2 MCS-51单片机的串口及控制寄存器 119
6.2.1 MCS-51串行口结构 119
6.2.2 MCS-51串行控制寄存器 120
6.3串口的工作方式 121
6.3.1方式0 121
6.3.2方式1 122
6.3.3方式2和方式3 123
6.3.4波特率的计算 124
6.4串口的应用 125
6.4.1双机通信 125
6.4.2多机通信 129
习题6 135
第7章 单片机接口及控制技术 136
7.1简单1/O口控制 136
7.1.1原理及流水灯电路 136
7.1.2控制程序及流程图 137
7.2数码管显示 138
7.2.1原理及控制电路 138
7.2.2控制程序及流程图 141
7.3键盘及接口 145
7.3.1键盘原理及控制电路 145
7.3.2控制程序及流程图 147
7.4键盘及显示综合实例——秒表 150
7.4.1功能说明 150
7.4.2关键技术及控制电路 150
7.4.3控制程序及流程图 151
7.5 LCD点阵字符型液晶显示器 158
7.5.1 TC 1602A简介 158
7.5.2控制电路 162
7.5.3控制程序及流程图 162
7.6 DS1302实时时钟 165
7.6.1实时时钟DS 1302 165
7.6.2控制电路 168
7.6.3控制程序及流程图 169
7.7 ADC0809电压检测电路 177
7.7.1 A/D转换器概述 177
7.7.2典型A/D转换器芯片ADC0809 178
7.7.3 ADC0809电压测量电路 181
7.7.4控制程序 182
习题7 187
第8章 MCS-51单片机应用系统的设计 188
8.1单片机应用系统概述 188
8.1.1单片机应用系统的特点 188
8.1.2 MCS-51单片机应用系统设计方法 188
8.2课程设计——16×16LED显示 191
8.2.1设计要求 191
8.2.2 16×16 LED显示总体设计方案 191
8.2.3硬件设计 193
8.2.4编程要点及软件设计 193
8.3课程设计——电脑钟 199
8.3.1设计要求 199
8.3.2电脑钟总体设计方案 200
8.3.3硬件设计 200
8.3.4软件设计及流程图 201
习题8 216
第9章 MCS-51单片机的C51程序设计 217
9.1 C51语言概述和程序结构 217
9.1.1 C51语言的特点 217
9.1.2程序结构 218
9.2标识符和关键字 221
9.3 C51语言数据类型和运算符 223
9.3.1 C51语言的数据类型 223
9.3.2 C51语言的运算符 231
9.4 C51程序的基本结构 235
9.4.1 if语句 235
9.4.2 switch case语句 236
9.4.3循环语句 237
9.5 C51函数和预处理命令 238
9.5.1函数的分类和定义 238
9.5.2中断服务函数 240
9.5.3 C51的库函数 241
9.5.4编译预处理命令 243
9.6 C51程序设计举例 244
习题9 245
附录1 MCS-51指令表 246
附录2 ASCII表 250
参考文献 251