目 录 3
基 础 篇 3
第1章 绪论 3
1.1什么是单片机 3
1.1.1微型计算机 3
1.1.2微型计算机的构成 3
1.1.3单片机由来 4
1.2单片机与21世纪 5
1.2.1单片机的特点 5
1.2.2单片机应用渗入到各个领域 6
1.2.3 21世纪的单片机 9
1.3.1 单片机产品的历史概况 10
1.3单片机产品 10
1.3.2 当前主要的8位单片机产品 11
1.4单片机应用技术的发展 14
1.4.1模糊控制技术 15
1.4.2数字信号处理技术 16
1.4.3 学习VHDL语言,掌握嵌入式实时操作系统,推动嵌入式应用技术的发展 18
第2章MCS-51单片机的基础知识 21
2.1 51系列单片机的组成与结构 21
2.1.1主要部件介绍 21
2.1.2 8051系列单片机的引脚和功能 23
2.2单片机的工作原理 24
2.2.1指令与程序 25
2.2.2 CPU工作原理 25
2.2.3单片机执行程序的过程 26
2.3时钟电路和CPU时序 28
2.3.1时钟和时钟电路 28
2.3.2 CPU时序和有关概念 29
2.4复位电路 31
2.4.1复位信号的产生 31
2.4.2复位电路和相关参数 32
2.4.3复位状态 33
2.5存储器和地址空间 34
2.5.1存储器空间和地址 34
2.5.2程序存储器 35
2.5.3 外部RAM和外部I/O口 36
2.5.4 内部RAM 37
2.5.5特殊功能寄存器空间 39
2.6并行I/O接口 42
2.6.1 8051单片机的四个并行输入/输出口和引脚 42
2.6.2 P1口 43
2.6.3 P0口 43
2.6.4 P2口 44
2.6.5 P3口 45
2.6.6并行I/O基本操作 46
2.6.7简单应用举例 47
2.7定时器/计数器 48
2.7.1 概述 48
2.7.2定时器的特殊功能寄存器 48
2.7.3时间常数计算即初值a的确定 50
2.7.4定时器/计数器初始化程序 51
2.7.5 四种工作方式的原理结构图 52
2.8.1 概述 55
2.8 串行口 55
2.8.2 串行口的特殊功能寄存器 56
2.8.3串行口的工作方式和波特率 57
2.8.4多机通信原理 60
2.8.5串行口的基本操作 61
2.8.6简单应用举例 61
2.9 中断系统 62
2.9.1 基本概念 62
2.9.2 8051的中断系统结构 63
2.9.3 中断源 63
2.9.5 中断系统的特殊功能寄存器 64
2.9.4中断入口地址 64
2.9.6中断响应过程 66
2.9.7中断设置举例 66
第3章8051的指令系统和汇编程序 72
3.1指令系统概述 72
3.1.1 8051汇编语言指令格式 72
3.1.2机器码指令格式 73
3.2 寻址方式 73
3.2.1 寻址概念 73
3.2.2符号解释 74
3.2.3七种寻址方式 75
3.3.1 数据操作 81
3.3.2指令类型 81
3.3数据操作和指令类型 81
3.4数据传送类指令 82
3.4.1 内部RAM数据传送指令(MOV) 82
3.4.2外部数据传送指令(MOVX) 84
3.4.3程序存储器查表指令(MOVC) 85
3.4.4堆栈操作命令 86
3.4.5交换指令 87
3.5算术运算类指令 88
3.5.1 加法指令 89
3.5.2带进位加法指令 89
3.5.3带借位减法指令 91
3.5.4乘法指令 91
3.5.6加1指令 92
3.5.5除法指令 92
3.5.7减1指令 93
3.5.8十进制调整指令 93
3.5.9算术运算指令举例 95
3.6逻辑操作指令 96
3.6.1逻辑“与”指令 96
3.6.2逻辑“或”指令 96
3.6.3逻辑“异或”指令 97
3.6.4循环移位指令 97
3.6.5取反指令 98
3.6.6清“0”指令 99
3.6.7逻辑运算指令应用举例 99
3.7控制转移类指令 99
3.7.1无条件转移指令 100
3.7.2条件转移指令 101
3.7.3间接转移指令 102
3.7.4调用子程序及返回指令 103
3.7.5空操作指令 104
3.7.6程序控制类指令应用举例 104
3.8位操作指令 104
3.8.1位数据传送指令 105
3.8.2位修正指令 105
3.8.3位逻辑运算指令 106
3.8.4判位转移指令 106
3.8.5位操作类指令应用举例 107
3.9单片机汇编语言设计过程与示例 107
3.9.1汇编语言的规范 107
3.9.3结构化程序设计 110
3.9.2汇编语言程序设计步骤 110
应 用 篇 123
第4章 定时器/计数器的应用 123
4.1 可变频率发生器 123
4.1.1定时器,计数器的异同 123
4.1.2定时器,计数器所用的SFR 123
4.1.3对定时器,计数器进行初值的设定 123
4.1.4定时器/计数器的中断入口 124
4.2用定时器产生波形 124
4.2.1 产生周期固定的方波脉冲序列 124
4.2.2产生一定占空比的序列脉冲 125
4.2.3产生周期超长的序列脉冲 126
4.3.1较低频率的测量 128
4.3检测未知脉冲的频率或脉宽 128
4.3.2较高频率的测量 130
4.3.3利用门控位测量方波频率 131
4.4步进电机的控制 132
4.4.1步进电机的原理简介 132
4.4.2三相六拍步进电机的控制信号 133
4.4.3单片机控制三相六拍的步进电机 133
第5章并行口应用 138
5.1键盘接口技术 138
5.1.1键盘工作原理 138
5.1.2按键的机械特性 139
5.1.3键输入程序流程 140
5.1.4 应用实例 140
5.2.1 LED数码管显示器 142
5.2输出显示技术 142
5.2.2 LED数码显示器有静态和动态两种显示方式 143
5.2.3单片机并行口控制数码显示管的应用实例 144
5.3并行口外扩展器件8255 146
5.3.1 8255引脚与外框图 147
5.3.2 8255工作方式 148
5.3.3 8255工作过程 151
5.3.4 8255中断开/关字 152
5.3.5其他 153
第6章 串行口的应用 155
6.1 串行通信 155
6.1.1串行通信概述 155
6.1.3 MCS-51系列单片机的串行口 156
6.1.2单片机的串行通信 156
6.1.4 串行口的初始化编程 158
6.2 UART的应用 160
6.2.1 单片机与单片机之间的串行通信 160
6.2.2带校验的传送 162
6.2.3 用串行口中断的UART全双工通信 163
6.2.4单片机与PC机的通信 164
6.3多机通信 171
6.4同步移位寄存器方式的应用 172
6.4.1用串行口扩展8位LED数码显示器 172
6.4.2控制N个码盘的数据输入 173
6.4.3用通用的I/O虚拟一个能工作于移位寄存器方式的串行口 175
6.5介绍几种串行总线 176
6.5.1 串行总线与串行扩展接口 177
6.5.2 I2C总线的串行扩展技术 179
6.6串行总线扩展应用举例 183
6.6.1 扩展具有I2C总线接口的E2PROM——24LC×× 183
6.6.2 80C51与串行E2PROM 24LC32的电路连接与编程 188
6.6.3用I2C总线扩展I/O接口 192
第7章单片机扩展系统 196
7.1 概述 196
7.2地址译码的方法 197
7.2.1线选法 197
7.2.2全地址译码法 198
7.3程序存储器外扩展 199
7.3.1 常用的EPROM存储器芯片 199
7.3.3扩展示例 200
7.3.2外部程序存储器扩展方法 200
7.4.1常用的数据存储器芯片 201
7.4数据存储器RAM外扩展 201
7.4.2外部数据存储器扩展方法 202
7.4.3扩展示例 202
7.5并行口外扩展 203
7.5.1基本常用的MCS-51并行接口扩展器件 203
7.5.2并行接口扩展方法 203
7.5.3扩展芯片8155 203
第8章 单片机在模拟世界中的应用 209
8.1 概述 209
8.2单片机的数据采集系统 209
9.1应用系统的一般研制过程 215
第9章 单片机应用系统的设计与开发 215
9.1.1 总体设计 216
9.1.2硬件设计 217
9.1.3软件设计 219
9.2单片机的开发、开发工具和开发方法 221
9.2.1单片机的开发 221
9.2.2单片机开发系统的功能 222
9.2.3单片机应用系统的调试 224
9.2.4单片机应用系统的设计举例 228
9.2.5要注意的几个问题 237
附录1 80C51指令表 239
附录2基础知识 243