原理篇 2
第1章 微型计算机基础 2
1.1 计算机中的数制 2
1.1.1 计算机中常用的数制 2
1.1.2 各种数制之间的转换 4
1.2 计算机中的码制和编码 6
1.2.1 有符号数的表示方法 6
1.2.2 小数的表示方法 8
1.2.3 微型计算机中常用的信息编码 9
1.2.4 数据在计算机内部的存储模式 10
1.3 微型计算机硬件基础 11
1.3.1 微型计算机硬件的基本结构 11
1.3.2 计算机的基本工作原理 12
1.3.3 数据的输入/输出 15
1.4 单片微型计算机 15
1.4.1 单片机的概念 16
1.4.2 单片机的分类 16
1.4.3 单片机产品简介 17
习题与思考题 18
第2章 51系列单片机的硬件结构 19
2.1 51系列单片机的内部结构 19
2.2 51单片机的引脚功能 22
2.2.1 电源引脚及时钟引脚 22
2.2.2 控制引脚 22
2.2.3 端口(I/O)引脚 23
2.3 51单片机的存储器结构 24
2.3.1 存储器地址分配 24
2.3.2 程序存储器 24
2.3.3 数据存储器 25
2.3.4 特殊功能寄存器区 27
2.4 51单片机并行接口结构 28
2.4.1 P0三态双向口 28
2.4.2 P1准双向口 30
2.4.3 P2准双向口 30
2.4.4 P3多功能口 31
2.5 51单片机的时序与复位 32
2.5.1 时钟电路 32
2.5.2 时钟周期、机器周期和指令周期 32
2.5.3 CPU时序 33
2.5.4 复位电路 36
习题与思考题 37
第3章 51系列单片机的指令系统 38
3.1 计算机编程语言概述 38
3.2 51单片机指令系统的基础 39
3.2.1 指令系统的分类 39
3.2.2 指令的格式 39
3.2.3 常用的描述符号 40
3.3 51单片机指令的寻址方式 40
3.3.1 立即寻址 41
3.3.2 直接寻址 41
3.3.3 寄存器寻址 42
3.3.4 寄存器间接寻址 42
3.3.5 变址寻址 43
3.3.6 相对寻址 44
3.3.7 位寻址 45
3.3.8 寄存器隐含寻址 45
3.4 数据传送类指令 45
3.4.1 内部数据传送指令 46
3.4.2 累加器A与外部数据存储器传送指令 47
3.4.3 查表指令 48
3.4.4 堆栈操作指令 49
3.4.5 交换指令 50
3.5 算术运算类指令 51
3.5.1 不带进位加法指令 51
3.5.2 带进位加法指令 52
3.5.3 带借位减法指令 53
3.5.4 乘法指令 54
3.5.5 除法指令 55
3.5.6 加1和减1指令 55
3.5.7 十进制调整指令 56
3.6 逻辑运算指令 57
3.6.1 清零指令 57
3.6.2 求反指令 57
3.6.3 循环移位指令 58
3.6.4 逻辑“与”操作指令 59
3.6.5 逻辑“或”操作指令 60
3.6.6 逻辑“异或”操作指令 60
3.7 控制转移类指令 61
3.7.1 无条件转移指令 61
3.7.2 条件转移指令 63
3.7.3 子程序调用及返回指令 65
3.7.4 空操作指令 67
3.8 位操作指令 67
习题与思考题 69
第4章 汇编语言程序设计 71
4.1 汇编语言程序设计概述 71
4.1.1 汇编语言的概念 71
4.1.2 汇编语言的特点 71
4.2 汇编语言的伪指令与汇编 71
4.2.1 常用伪指令语句 72
4.2.2 汇编语言的运算符 74
4.2.3 汇编语言的汇编 75
4.3 汇编语言程序设计方法 75
4.4 汇编语言程序的基本结构 76
4.4.1 顺序程序设计 76
4.4.2 分支程序设计 79
4.4.3 循环程序设计 81
4.4.4 子程序设计 82
4.5 汇编语言程序设计举例 85
4.5.1 算术运算程序 85
4.5.2 数制转换程序 85
4.5.3 定时程序 87
4.5.4 多分支及查表程序 89
4.5.5 数值比较排序程序 90
习题与思考题 93
第5章 51系列单片机中断系统 95
5.1 中断概述 95
5.1.1 中断的基本概念 95
5.1.2 中断系统的功能 95
5.2 51系列单片机中断系统结构 97
5.2.1 中断系统结构 97
5.2.2 中断的控制 99
5.3 中断的响应 101
5.3.1 中断响应条件 101
5.3.2 中断的响应及中断处理 101
5.3.3 系统的复位 102
5.4 中断系统的应用 103
5.4.1 中断程序的初始化 103
5.4.2 外部中断编程举例 104
习题与思考题 106
第6章 51单片机的定时器/计数器 108
6.1 定时器/计数器的结构及控制字 108
6.1.1 定时器/计数器的结构 108
6.1.2 定时器/计数器的控制字 109
6.2 定时器/计数器的工作模式 110
6.2.1 模式0 110
6.2.2 模式1 111
6.2.3 模式2 111
6.2.4 模式3 112
6.3 定时器/计数器应用举例 113
6.3.1 模式0及模式1的应用 113
6.3.2 模式2的应用 114
6.3.3 门控位GATE的使用 115
6.3.4 定时器/计数器中断响应延迟的处理 116
习题与思考题 116
第7章 51单片机的串行接口 118
7.1 串行通信基本知识 118
7.1.1 通信的概念 118
7.1.2 通信的传送方式 119
7.1.3 异步通信和同步通信 119
7.1.4 波特率和发送接收时钟 121
7.1.5 常用的串行通信协议 121
7.2 51单片机串行口结构 123
7.2.1 基本结构 124
7.2.2 控制寄存器 124
7.3 串行口工作方式 126
7.3.1 方式0 126
7.3.2 方式1 128
7.3.3 方式2和方式3 129
7.4 串行通信波特率的设置 130
7.4.1 方式0的波特率 130
7.4.2 方式2的波特率 130
7.4.3 方式1和方式3的波特率 131
7.5 串行通信应用举例 132
7.5.1 串行口方式0的应用 132
7.5.2 串行口方式1的应用 133
7.5.3 串行口方式2和方式3的应用 135
习题与思考题 135
第8章 单片机系统的扩展 137
8.1 51单片机的外部三总线 137
8.1.1 系统总线 137
8.1.2 P0口地址信息的锁存 138
8.1.3 地址译码方式 139
8.2 外部存储器的扩展 139
8.2.1 外部数据存储器的扩展 139
8.2.2 外部程序存储器的扩展 141
8.3 并行I/O接口的扩展 143
8.3.1 并行I/O接口的简单扩展 144
8.3.2 可编程并行I/O接口芯片8155 145
习题与思考题 152
第9章 C51简介 153
9.1 C51程序结构 153
9.2 C51的数据 154
9.2.1 C51的数据类型 154
9.2.2 C51的数据存储 156
9.3 C51的函数 157
9.4 C51的指针 159
9.4.1 指针的基本概念 159
9.4.2 C51指针变量的定义 159
9.5 C51编程举例 160
习题与思考题 162
应用篇 164
第10章 键盘及显示接口 164
10.1 键盘接口 164
10.1.1 键盘接线的两种形式及其识别 164
10.1.2 键盘管理的几个问题 166
10.1.3 键盘识别程序举例 166
10.2 LED数码管显示接口 169
10.2.1 静态数码管显示 170
10.2.2 动态数码管显示 172
10.2.3 数码管显示中小数点的处理 173
10.2.4 多位数码管动态显示编程 175
10.3 点阵显示接口 177
10.4 液晶显示接口 179
10.4.1 液晶显示工作原理简介 179
10.4.2 液晶显示器的应用 180
10.5 键盘管理程序设计举例 188
10.5.1 通用键盘管理程序流程图 189
10.5.2 简易计算器键盘管理程序设计举例 189
习题与思考题 192
第11章 单片机模拟接口技术 193
11.1 数模转换接口技术 193
11.1.1 数模转换原理 193
11.1.2 单片机与8位D/A转换器 195
11.1.3 单片机与12位D/A转换器接口 200
11.2 模数转换器接口技术 202
11.2.1 模数转换器简介 202
11.2.2 单片机与8位A/D转换器的接口 205
11.2.3 单片机与12位A/D转换器的接口 209
习题与思考题 212
第12章 定时器及中断系统的应用 213
12.1 定时器的应用 213
12.2 外部中断的应用 217
12.3 中断系统的扩展 219
12.3.1 用定时器/计数器扩展外部中断源 219
12.3.2 中断和查询相结合的外部中断源扩展 220
习题与思考题 221
第13章 串行通信应用 222
13.1 单片机的点对点通信 222
13.1.1 TTL/CMOS电平接口 222
13.1.2 RS-232C通信接口 222
13.1.3 RS-485通信接口 223
13.2 单片机多机通信 224
13.2.1 多机通信系统的构成 224
13.2.2 多机通信过程 224
13.3 简易485网络举例 225
13.3.1 单片机网络的构成 225
13.3.2 通信协议 225
13.3.3 多机通信软件编程 226
13.4 其他串行通信方式 228
13.4.1 SPI总线 228
13.4.2 I2C总线 229
13.4.3 单总线 232
习题与思考题 235
第14章 51单片机其他接口电路 236
14.1 时钟电路芯片 236
14.1.1 DS1302的原理与应用 236
14.1.2 DS 12887的原理与应用 241
14.2 超声波检测接口 247
14.2.1 超声波检测的基本原理 247
14.2.2 超声波测距系统的设计 247
14.3 温度测量接口DS 18B20 250
14.3.1 DS 18B20的结构及工作原理 250
14.3.2 DS 18B20的寄存器及命令集 251
14.3.3 DS 18B20的温度计算 251
14.3.4 应用程序设计 251
14.4 红外线检测接口 253
14.4.1 红外遥控的基本原理 253
14.4.2 红外器件及其应用电路 254
14.5 声光检测 256
14.5.1 声音传感器的原理与应用 256
14.5.2 光电传感器 258
14.6 信号转换(V/I、 V/F) 259
14.6.1 V/I转换接口电路 259
14.6.2 V/F转换和F/V转换及其接口 261
习题与思考题 264
第15章 单片机抗干扰技术 265
15.1 单片机硬件抗干扰技术 265
15.1.1 电源抗干扰 265
15.1.2 隔离技术 265
15.1.3 接地技术 267
15.1.4 硬件看门狗及掉电保护 268
15.2 单片机软件抗干扰技术 269
15.2.1 指令冗余技术 270
15.2.2 软件陷阱技术 270
15.2.3 软件看门狗技术 272
15.2.4 故障自动恢复处理程序 272
习题与思考题 274
附录A Keil C51软件的使用 275
A.1简单程序的调试 276
A.2 Keil程序调试窗口 282
A.2.1 程序调试时的常用窗口 282
A.2.2 各窗口在程序调试时的使用 284
附录B 51单片机指令汇总 287
参考文献 291