第1章 绪论 1
1.1单片机的产生和发展 1
1.1.1什么是单片机 1
1.1.2单片机技术发展的四个阶段 1
1.1.3单片机的发展趋势 3
1.1.4单片机的应用范围 3
1.1.5 MCS-51系列单片机的家族简介 4
1.1.6主要单片机芯片厂商 5
1.1.7国内常用8位单片机 6
1.2关于PIC、AVR、ARM 7
1.2.1什么是PIC单片机 7
1.2.2什么是AVR单片机 7
1.2.3什么是ARM 7
思考题与习题 8
课后阅读资料 9
第2章 MCS-51系列单片机的结构及原理 13
2.1 MCS-51系列单片机的内部结构 13
2.2 MCS-51系列单片机的引脚功能 15
2.2.1 MCS-51系列单片机引脚简介 16
2.2.2三总线结构 18
2.3单片机的存储器 18
2.3.1程序存储器 18
2.3.2数据存储器 19
2.3.3特殊功能寄存器(SFR) 20
2.4并行I/O口 23
2.4.1 P0口的结构 24
2.4.2 P1口的结构 25
2.4.3 P2口的结构 25
2.4.4 P3口的结构 25
2.5时钟电路与复位 26
2.5.1振荡器和时钟电路 26
2.5.2 CPU的时序及有关概念 27
2.5.3单片机的复位状态 27
2.5.4单片机的复位电路 28
2.6掉电保护和低功耗设计 30
2.6.1掉电保护 30
2.6.2 80C51的低功耗设计 31
思考题与习题 31
第3章 MCS-51系列单片机的寻址方式和指令系统 33
3.1指令系统简介 33
3.1.1指令概述 33
3.1.2汇编语言指令格式 34
3.1.3机器码的三种格式 34
3.1.4指令中常用符号说明 35
3.2寻址方式 35
3.2.1立即寻址 35
3.2.2直接寻址 36
3.2.3寄存器寻址 36
3.2.4寄存器间接寻址 36
3.2.5变址寻址 37
3.2.6相对寻址 37
3.2.7位寻址 37
3.3数据传送类指令 38
3.3.1内部RAM数据传送指令 38
3.3.2访问外部RAM的数据传送指令 40
3.3.3程序存储器向累加器A传送数据指令 40
3.3.4数据交换指令 41
3.3.5堆栈操作指令 42
3.4算术运算类指令 42
3.4.1加法指令 43
3.4.2带进位加法指令 43
3.4.3带借位减法指令 44
3.4.4加1指令 45
3.4.5减1指令 45
3.4.6乘、除法指令 45
3.4.7十进制调整指令 46
3.5逻辑运算及移位类指令 48
3.5.1逻辑与运算指令 48
3.5.2逻辑或运算指令 48
3.5.3逻辑异或运算指令 49
3.5.4累加器清零、取反指令 49
3.5.5循环移位指令 49
3.6控制转移类指令 50
3.6.1无条件转移指令 50
3.6.2条件转移指令 52
3.6.3子程序调用及返回指令 55
3.6.4空操作指令 57
3.7位操作类指令 57
3.7.1位变量传送指令 57
3.7.2位置位、清零指令 58
3.7.3位逻辑运算指令 58
3.7.4位控制转移指令 58
思考题与习题 59
第4章 汇编语言程序设计 63
4.1程序设计概述 63
4.1.1程序设计语言简介 63
4.1.2汇编语言程序设计步骤 64
4.2汇编语言源程序的编辑和汇编 64
4.2.1伪指令 65
4.2.2源程序的编辑和汇编 66
4.3汇编语言程序设计 67
4.3.1顺序程序设计 68
4.3.2分支程序设计 69
4.3.3循环程序设计 71
4.3.4子程序设计 78
4.4其他程序设计方法 83
4.4.1查表程序设计 83
4.4.2散转程序设计 87
4.5实用子程序举例 91
4.5.1代码转换类子程序 92
4.5.2运算类子程序 97
4.5.3数据比较类子程序 102
思考题与习题 108
第5章 定时/计数器 110
5.1定时/计数器0和1 110
5.1.1定时/计数器的结构及功能 110
5.1.2定时/计数器0和1的控制和状态寄存器 111
5.1.3 T0和T1的4种工作模式 113
5.2定时/计数器2 115
5.2.1 T2控制寄存器T2CON 115
5.2.2定时/计数器T2的工作方式 116
5.3定时/计数器的应用 117
5.3.1定时/计数器模式0的应用 118
5.3.2定时/计数器模式1的应用 118
5.3.3定时/计数器模式2的应用 119
5.3.4定时/计数器门控位GATE的应用 119
5.3.5运行中读定时/计数器 120
思考题与习题 120
第6章 串行接口 122
6.1串行通信概述 122
6.1.1串行通信的实现 122
6.1.2串行通信的通信方式 123
6.1.3串行通信的传输方式 125
6.2 MCS-51系列单片机的串行接口 125
6.2.1 MCS-51系列单片机串行口的结构 126
6.2.2 MCS-51单片机串行口的控制 126
6.2.3波特率设计 128
6.3串行口工作模式 129
6.3.1模式0 129
6.3.2模式1 130
6.3.3模式2 131
6.3.4模式3 131
6.4串行通信应用举例 131
6.4.1串行口在模式0时的应用 131
6.4.2串行口在模式1时的应用 133
6.4.3串行口在模式2和模式3时的应用 135
6.5 MCS-51系列单片机实用通信技术 137
6.5.1单片机双机通信技术 137
6.5.2单片机多机通信技术 143
6.5.3单片机与PC机通信设计 150
思考题与习题 153
第7章 中断系统 155
7.1中断的基本概念 155
7.1.1什么是中断 155
7.1.2中断服务程序与调用子程序的区别 156
7.2中断源和中断标志 156
7.2.1中断源 156
7.2.2中断请求标志 157
7.3中断控制 158
7.3.1中断允许控制寄存器IE 158
7.3.2中断优先级控制寄存器IP 158
7.4中断处理过程 159
7.4.1中断响应 159
7.4.2中断处理 160
7.4.3中断返回 160
7.4.4中断请求的撤除 161
7.4.5中断响应时间 161
7.5中断功能的应用实例 161
思考题与习题 169
第8章 存储器的扩展 171
8.1概述 171
8.1.1 MCS-51系列单片机的片外总线结构 171
8.1.2 MCS-51系列单片机的系统扩展能力 172
8.1.3 MCS-51系列单片机扩展常用存储器芯片 173
8.2地址的锁存 174
8.2.1锁存的作用 174
8.2.2地址锁存器 174
8.2.3地址译码 175
8.3外部存储器的扩展方法 178
8.3.1外部存储器扩展的内容和步骤 178
8.3.2程序存储器的扩展 179
8.3.3数据存储器的扩展 186
思考题与习题 189
第9章 单片机的接口技术 190
9.1单片机接口技术的基本方法 190
9.1.1 MCS-51单片机的接口信号和编址方法 190
9.1.2单片机与外设的数据交换方式 191
9.1.3 I/O指令与编程方法 192
9.2并行接口技术 193
9.2.1简单并行I/O接口扩展 193
9.2.2 8155可编程I/O接口及扩展技术 194
9.2.3 8255可编程接口电路的扩展 199
9.3单片机键盘接口技术 203
9.3.1键的识别 203
9.3.2键盘接口和程序设计 205
9.4数码显示器接口电路 207
9.4.1单片机与LED显示器接口技术 208
9.4.2单片机与液晶显示器接口技术 210
9.5 A/D与D/A转换接口技术 212
9.5.1 D/A转换接口技术 212
9.5.2 A/D转换接口技术 215
思考题与习题 217
第10章 单片机应用系统的设计与开发 219
10.1单片机应用系统设计的一般方法 219
10.1.1硬件设计及制作的一般方法 219
10.1.2软件设计的一般方法 219
10.2交通信号灯的单片机控制 220
10.2.1交通信号灯的定时控制 220
10.2.2干支线路口的交通信号灯控制 221
10.2.3特种车辆优先的交通信号灯控制 222
10.3步进电机的单片机控制 224
10.3.1步进电机的控制原理 224
10.3.2步进电机的单片机控制 224
10.4单总线 228
10.4.1单总线简介 228
10.4.2 DS18B20构成的单总线测温系统 228
10.5 I2C串行总线扩展技术 236
10.5.1 I2 C串行总线概述 237
10.5.2 I2 C总线的数据传送 238
10.5.3 I2C总线数据传送的模拟 242
10.5.4 I2C总线应用程序设计实例 248
10.6单片机与光电耦合器 249
10.6.1光电耦合器工作原理 249
10.6.2单片机与光电耦合器的接口 250
10.6.3光电耦合器接口程序设计 251
10.7倒计时器的设计 252
10.7.1实时日历时钟芯片DS12C887简介 252
10.7.2倒计时器的硬件电路设计 255
10.7.3倒计时器的软件设计 255
思考题与习题 257
附录 258
参考文献 264