目录 1
第1章 单片机基础知识 1
1.1 单片机的特点及分类 1
1.1.1 单片机的特点 1
1.1.2 单片机的分类 1
1.2 单片机的应用领域 3
1.3 单片机的发展概况 4
1.4 小结 5
1.5 习题 5
第2章 MCS-51单片机的系统结构 6
2.1 总体结构 6
2.1.1 内部结构 6
2.1.2 引脚定义及功能 7
2.1.3 片外总线结构 8
2.2 CPU和时钟电路 10
2.2.1 CPU结构 10
2.2.2 时钟电路 10
2.2.3 CPU时序 11
2.2.4 复位电路 12
2.3 存储器 13
2.3.1 程序存储器 13
2.3.2 数据存储器 14
2.3.3 特殊功能寄存器(SFR) 15
2.4 并行I/O口 18
2.4.1 P0口 18
2.4.2 P1口 19
2.4.3 P2口 20
2.4.4 P3口 20
2.5 小结 21
2.6 习题 22
第3章 MCS-51单片机的指令系统 23
3.1 概述 23
3.1.1 MCS-51单片机指令格式 23
3.1.2 指令的字节 24
3.1.3 MCS-51单片机的助记符语言 24
3.1.4 常用符号说明 25
3.2 寻址方式 26
3.2.1 立即寻址 26
3.2.2 直接寻址 27
3.2.3 寄存器寻址 28
3.2.4 寄存器间接寻址 28
3.2.5 变址寻址 29
3.2.6 位寻址 29
3.2.7 相对寻址 30
3.3 数据传送与交换指令 30
3.3.1 内部数据传送指令 31
3.3.2 外部RAM数据传送指令(4条) 33
3.3.3 查表指令(2条) 33
3.3.4 堆栈存取指令(2条) 34
3.3.5 数据交换指令(5条) 35
3.4 算术运算指令 35
3.4.1 加减法指令 36
3.4.2 乘法和除法指令 39
3.5 逻辑运算及移位指令 40
3.5.1 逻辑运算指令 40
3.5.2 移位指令(4条) 41
3.6 控制转移指令 42
3.6.1 无条件转移指令(4条) 42
3.6.2 条件转移指令(8条) 44
3.6.3 子程序调用和返回指令(4条) 45
3.7 位操作指令 47
3.8 伪指令 49
3.10 习题 51
3.9 小结 51
第4章 中断系统、内部定时/计数器 53
4.1 中断概述 53
4.1.1 中断技术的概念 53
4.1.2 中断的特点 54
4.1.3 中断系统的功能 54
4.2 MCS-51单片机中断系统的结构 55
4.2.1 中断源 55
4.2.2 中断标志寄存器 56
4.2.3 中断控制寄存器 57
4.3 中断响应 58
4.3.1 中断处理的过程 58
4.3.2 中断申请的撤除 59
4.4.1 汇编语言中断程序设计 60
4.4 中断程序设计 60
4.4.2 C语言中断程序设计 62
4.5 定时/计数器的结构及工作原理 63
4.5.1 定时/计数器的结构 63
4.5.2 定时/计数器的工作原理 64
4.6 定时/计数器工作方式 65
4.6.1 工作方式寄存器和控制寄存器 65
4.6.2 定时/计数器的工作方式 65
4.7 定时/计数器的编程和应用 68
4.7.1 定时/计数器的初始化编程 68
4.7.2 应用编程举例 69
4.8 小结 70
4.9 习题 71
第5章 串行数字通信 73
5.1 串行通信概述 73
5.1.1 同步和异步通信 73
5.1.2 串行通信的制式 75
5.1.3 串行通信的信号传输 75
5.2 串行口的结构及工作原理 78
5.2.1 串行口的结构 78
5.2.2 串行口的控制 79
5.2.3 串行口的工作方式 80
5.3 MCS-51串行口的应用 81
5.3.1 串并变换 81
5.3.2 单片机的双机通信 83
5.3.3 单片机与PC的通信 87
5.4 小结 91
5.5 习题 92
第6章 汇编语言程序设计 93
6.1 汇编语言 93
6.2 顺序结构程序设计 94
6.3 循环结构程序设计 95
6.4 分支结构程序设计 99
6.5 子程序设计 102
6.5.1 子程序的概念 102
6.5.2 子程序的设计 102
6.6 实用程序举例 104
6.6.1 代码转换程序 104
6.6.2 延时程序 108
6.6.3 查表程序 109
6.6.4 运算程序 111
6.7 小结 116
6.8 习题 116
第7章 单片机的C语言程序设计 118
7.1 单片机编程语言介绍 118
7.2 C51的程序结构 119
7.3 C51的数据与运算 119
7.3.1 数据类型 119
7.3.2 数据的存储 120
7.3.3 MCS-51结构的C51定义 122
7.3.4 C51的指针类型 123
7.4.2 循环结构程序的设计 124
7.4 单片机的C语言程序设计 124
7.4.1 顺序结构程序的设计 124
7.4.3 分支结构程序的设计 125
7.5 汇编语言和C语言的混合编程 127
7.6 小结 129
7.7 习题 129
第8章 MCS-51的系统扩展与接口技术 131
8.1 并行I/O口的扩展 131
8.1.1 并行I/O口的简单扩展 132
8.1.2 用8255芯片扩展I/O口 132
8.2 存储器的扩展 138
8.2.1 程序存储器的扩展 138
8.2.2 数据存储器的扩展 139
8.3 最小系统与三总线的概念 140
8.3.1 最小系统 140
8.3.2 单片机的三组总线 141
8.4 键盘接口 142
8.4.1 键盘消抖原理 142
8.4.2 键盘工作原理 143
8.4.3 键盘输入程序设计 144
8.4.4 键盘输入程序的改进 147
8.4.5 定时扫描方式 148
8.4.6 中断扫描方式 149
8.5 显示接口 149
8.6 A/D接口 153
8.7.1 8031单片机与DAC0832的接口 157
8.7 D/A转换接口 157
8.7.2 8031单片机与AD 7520的接口 160
8.8 小结 162
8.9 习题 162
第9章 单片机应用系统的开发 164
9.1 单片机的开发系统 164
9.1.1 单片机开发系统的构成 164
9.1.2 单片机开发系统的功能 165
9.2 典型单片机开发系统介绍 166
9.2.1 DVCC单片机开发系统 166
9.2.2 WAVE单片机开发系统 169
9.3.1 总体设计 172
9.3 单片机应用系统的研制过程 172
9.3.2 硬件设计 174
9.3.3 软件设计 174
9.4 单片机应用系统开发实例——多户电子电能表的研制 176
9.4.1 电能计量原理 176
9.4.2 显示电路的设计 178
9.4.3 存储电路的设计 181
9.4.4 单片机系统电路设计 191
9.5 小结 193
9.6 习题 193
第10章 实训选题——实用程序的设计 194
10.1 单片机交通灯控制器 194
10.1.1 控制任务与控制原理 194
10.1.3 系统软件设计 195
10.1.2 系统硬件设计 195
10.1.4 要点与思考内容 200
10.2 单片机低频信号发生器 200
10.2.1 控制任务与控制原理 200
10.2.2 系统硬件设计 202
10.2.3 系统软件设计 202
10.2.4 要点与思考内容 207
10.3 学校作息时间单片机控制 207
10.3.1 控制任务与控制原理 207
10.3.2 系统硬件设计 209
10.3.3 系统软件设计 209
10.3.4 要点与思考内容 218
10.4.1 控制任务与控制原理 219
10.4 单片机汉字显示控制 219
10.4.2 系统硬件设计 220
10.4.3 系统软件设计 222
10.4.4 要点与思考内容 226
10.5 单片机音乐演奏控制器 226
10.5.1 控制任务与控制原理 226
10.5.2 系统硬件设计 227
10.5.3 系统软件设计 228
10.5.4 要点与思考内容 233
附录 234
附录1 MCS-51单片机按功能排序的指令表 234
附录2 MCS-51单片机按字母排序的指令表 238
参考文献 242