第1章 单片机基础知识 1
1.1单片机的发展概述 1
1.1.1单片机的发展过程 1
1.1.2单片机的发展趋势 2
1.2单片机的特点及分类 3
1.3单片机的应用领域 5
1.4小结 6
习题 6
第2章 MCS-51单片机的系统结构 7
2.1总体结构 7
2.1.1内部结构 7
2.1.2引脚定义及功能 8
2.1.3片外总线结构 10
2.2 CPU和时钟电路 11
2.2.1 CPU结构 11
2.2.2时钟电路 11
2.2.3 CPU时序 12
2.2.4复位电路 13
2.3存储器 15
2.3.1程序存储器 15
2.3.2数据存储器 16
2.3.3特殊功能寄存器 17
2.4并行I/O口 21
2.4.1 P0口 21
2.4.2 P1口 22
2.4.3 P2口 22
2.4.4 P3口 23
2.5小结 24
习题 24
第3章 MCS-51单片机的指令系统 26
3.1概述 26
3.1.1 MCS-51单片机指令格式 26
3.1.2指令的字节 27
3.1.3 MCS-51单片机的助记符语言 28
3.1.4常用符号说明 29
3.2寻址方式 29
3.2.1立即寻址 30
3.2.2直接寻址 30
3.2.3寄存器寻址 31
3.2.4寄存器间接寻址 31
3.2.5变址寻址 32
3.2.6位寻址 33
3.2.7相对寻址 33
3.3数据传送与交换指令 34
3.3.1内部数据传送指令 34
3.3.2外部RAM数据传送指令(4条) 37
3.3.3查表指令(2条) 37
3.3.4堆栈操作指令(2条) 38
3.3.5数据交换指令(5条) 39
3.4算术运算指令 40
3.4.1加减法指令 40
3.4.2乘法和除法指令 44
3.5逻辑运算及移位指令 44
3.5.1逻辑运算指令 44
3.5.2移位指令(4条) 46
3.6控制转移指令 47
3.6.1无条件转移指令(4条) 47
3.6.2条件转移指令(8条) 49
3.6.3子程序调用和返回指令(4条) 51
3.7位操作指令 53
3.8伪指令 56
3.9小结 58
习题 58
第4章 中断系统、内部定时/计数器 60
4.1中断系统 60
4.1.1中断系统概述 60
4.1.2中断源 62
4.1.3中断系统的控制 63
4.1.4中断响应 65
4.2中断程序设计 67
4.2.1汇编语言中断程序设计 67
4.2.2 C语言中断程序设计 69
4.3定时/计数器 70
4.3.1定时/计数器的结构 70
4.3.2定时/计数器的工作原理 71
4.3.3定时/计数器的工作方式 71
4.4定时/计数器的编程 75
4.4.1定时/计数器的初始化编程 75
4.4.2应用编程举例 76
4.5小结 77
习题 77
第5章 串行数字通信 79
5.1串行通信概述 79
5.1.1同步通信和异步通信 79
5.1.2串行通信的制式 81
5.1.3串行通信的信号传输 81
5.2串行口的结构及工作原理 84
5.2.1串行口的结构 84
5.2.2串行口的控制 85
5.2.3串行口的工作方式 86
5.3 MCS-51串行口的应用 87
5.3.1串并变换 87
5.3.2单片机的双机通信 89
5.3.3单片机与PC的通信 93
5.4小结 96
习题 97
第6章 汇编语言程序设计 98
6.1汇编语言 98
6.2基本程序结构设计 99
6.2.1顺序结构程序设计 99
6.2.2循环结构程序设计 100
6.2.3分支结构程序设计 104
6.3子程序设计 106
6.3.1子程序的概念 106
6.3.2子程序的设计 107
6.4实用程序举例 109
6.4.1代码转换程序 109
6.4.2延时程序 112
6.4.3查表程序 113
6.4.4运算程序 115
6.5小结 119
习题 120
第7章 单片机的C语言程序设计 122
7.1单片机编程语言介绍 122
7.2 C51的程序结构 123
7.3 C51的数据与运算 123
7.3.1数据类型 123
7.3.2数据的存储 124
7.3.3 MCS-51结构的C51定义 126
7.3.4 C51的指针类型 127
7.4单片机的C语言程序设计 128
7.4.1顺序结构程序的设计 128
7.4.2循环结构程序的设计 128
7.4.3分支结构程序的设计 129
7.5汇编语言和C语言的混合编程 131
7.6小结 133
习题 133
第8章 MCS-51的系统扩展与接口技术 135
8.1最小系统的概念 135
8.2并行I/O口的扩展 137
8.2.1并行I/O口的简单扩展 137
8.2.2用8255芯片扩展I/O口 138
8.3存储器的扩展 143
8.3.1程序存储器的扩展 143
8.3.2数据存储器的扩展 144
8.4键盘接口 145
8.4.1键盘消抖原理 145
8.4.2独立式键盘 147
8.4.3矩阵式键盘接口 148
8.4.4键盘输入程序设计 149
8.4.5键盘扫描方式 153
8.5显示接口 154
8.5.1 LED显示接口 154
8.5.2液晶显示器接口 158
8.6 A/D接口 163
8.7 D/A转换接口 166
8.7.1 8031单片机与DAC0832的接口 166
8.7.2 8031单片机与AD7520的接口 169
8.8小结 171
习题 171
第9章 单片机应用系统的开发 173
9.1单片机的开发系统 173
9.1.1单片机开发系统的构成 173
9.1.2单片机开发系统的功能 174
9.2典型单片机开发系统介绍 175
9.2.1 DVCC单片机开发系统 175
9.2.2 WAVE单片机开发系统 178
9.3单片机应用系统的研制过程 181
9.3.1总体设计 182
9.3.2硬件设计 183
9.3.3软件设计 183
9.4单片机应用系统开发实例——多户电子电能表的研制 186
9.4.1电能计量原理 186
9.4.2显示电路的设计 187
9.4.3存储电路的设计 190
9.4.4单片机系统电路设计 200
9.5小结 202
习题 202
第10章 实训练习——实用程序的设计 204
10.1单片机交通灯控制器 204
10.1.1控制任务与控制原理 204
10.1.2系统硬件设计 205
10.1.3系统软件设计 205
10.1.4要点与思考内容 209
10.2单片机低频信号发生器 209
10.2.1控制任务与控制原理 209
10.2.2系统硬件设计 212
10.2.3系统软件设计 212
10.2.4要点与思考内容 216
10.3学校作息时间单片机控制 216
10.3.1控制任务与控制原理 216
10.3.2系统硬件设计 218
10.3.3系统软件设计 219
10.3.4要点与思考内容 226
10.4单片机汉字显示控制 227
10.4.1控制任务与控制原理 227
10.4.2系统硬件设计 228
10.4.3系统软件设计 230
10.4.4要点与思考内容 233
10.5单片机音乐演奏控制器 234
10.5.1控制任务与控制原理 234
10.5.2系统硬件设计 235
10.5.3系统软件设计 236
10.5.4要点与思考内容 240
附录1 MCS-51单片机按功能排序的指令表 241
附录2 MCS-51单片机按字母排序的指令表 245
习题答案 249