第1章 单片机概述 1
1.1什么是单片机 1
1.2单片机的特点 1
1.3单片机的应用 2
1.4单片机的历史 2
1.58位单片机的主要生产厂家和机型 3
1.6单片机的最新发展 4
1.7MCS-51系列单片机 5
1.8习题 7
第2章 MCS-51系列单片机的基本结构 8
2.1MCS-51单片机的外部引脚及功能 8
2.1.2控制引脚 9
2.1.1主电源及时钟引脚 9
2.1.3输入/输出引脚 10
2.2MCS-51单片机的内部结构 11
2.2.1MCS-51单片机微处理器(CPU) 11
2.2.2MCS-51单片机的存储器结构 15
2.2.3I/O端口 21
2.2.4定时器/计数器 25
2.2.5中断系统 25
2.2.6布尔(位)处理器 25
2.3MCS-51单片机的工作方式 26
2.3.1复位方式 26
2.3.2程序执行方式 27
2.3.4EPROM的编程和校验方式 28
2.3.3省电工作方式 28
2.5MCS-51单片机的工作时序 30
2.4MCS-51单片机的时钟电路 30
2.5.1机器周期和指令周期 31
2.5.2MCS-51单片机指令的取指/执行时序 31
2.5.3访问片外ROM/RAM的指令时序 33
2.5.4读/写片外RAM指令时序 34
2.6习题 34
第3章 指令系统 35
3.1MCS-51单片机的指令系统 35
3.1.1基本概念 35
3.1.2指令分类 35
3.1.4指令系统中符号说明 36
3.1.3指令格式 36
3.1.5单片机执行指令的过程 37
3.2指令系统的寻址方式 37
3.2.1立即寻址 37
3.2.2寄存器寻址 38
3.2.3直接寻址 38
3.2.4寄存器间接寻址 38
3.2.5基址寄存器加变址寄存器间接寻址 39
3.2.6相对寻址 39
3.2.7位寻址 39
3.3指令系统详解 40
3.3.1数据传递类指令 40
3.3.2算术运算类指令 43
3.3.3逻辑运算类指令 46
3.3.4控制转移类指令 48
3.3.5布尔变量操作类指令 50
3.4习题 52
第4章 汇编语言程序设计 53
4.1汇编语言概述 53
4.1.1汇编语言的优点 53
4.1.2汇编语言程序设计的过程 53
4.1.3程序质量 54
4.2MCS-51汇编语言 55
4.2.1汇编语言程序的格式 55
4.2.2MCS-51伪指令 56
4.3汇编程序设计 58
4.3.1顺序结构程序设计 58
4.3.2分支程序设计 59
4.3.3散转程序设计 61
4.3.4循环程序设计 63
4.3.5查表程序设计 67
4.3.6子程序设计 68
4.4汇编语言实用程序设计 71
4.4.1数码转换类程序 71
4.4.2查找与排序 74
4.5习题 76
5.1中断系统概述 77
5.1.1中断系统基本概念 77
第5章 中断系统原理与应用 77
5.1.2中断的主要功能 78
5.2MCS-51中断系统的结构 79
5.3中断请求源 79
5.4中断控制 81
5.4.1中断允许寄存器IE 81
5.4.2中断优先级寄存器IP 82
5.5中断响应过程 84
5.5.1中断响应 84
5.5.2中断返回 85
5.6外部中断的响应时间 85
5.7.2跳沿触发方式 86
5.8中断请求的撤消 86
5.7.1电平触发方式 86
5.7外部中断的触发方式选择 86
5.9中断服务程序的设计 87
5.10多个外部中断源系统设计 90
5.10.1定时器/计数器作为外部中断源的使用方法 90
5.10.2中断和查询结合的方法 91
5.10.3用优先权编码器扩展外部中断源 92
5.11中断编程实例 94
5.12习题 96
第6章 定时器/计数器 97
6.1定时器/计数器概述 97
6.1.1定时器/计数器结构 97
6.1.2定时器/计数器的初始化 99
6.1.3定时器/计数器的工作方式 101
6.2定时器/计数器综合应用举例 106
6.2.1门控位GATE的应用 106
6.2.2运行中读定时器/计数器 108
6.2.3实时时钟的设计 109
6.3习题 111
第7章 串行口 112
7.1串行通信的基本概念 112
7.1.1通信数据的传输方式 112
7.1.2串行通信的两种基本通信方式 113
7.1.3串行通信数据的传送速率 114
7.2串行口的工作方式 114
7.2.1方式0 115
7.2.2方式1 116
7.2.3方式2 117
7.2.4方式3 118
7.3波特率的设计 118
7.3.1定时器的溢出率计算 119
7.3.2串行口工作方式1和3的波特率设计 120
7.4串行口的多机通信 120
7.5串行口编程和应用 122
7.5.1串行口发送和接收数据 122
7.5.2双机通信 123
7.6习题 128
8.1.1扩展程序存储器的接口设计 129
8.1外部程序存储器设计 129
第8章 MCS-51单片机的存储器扩展 129
8.1.22732与8031的接口电路设计 131
8.1.3外扩8KBEPROM的8031系统 134
8.1.4扩展16KB的接口电路 136
8.2外部数据存储器设计 138
8.2.1扩展2KBRAM的接口电路 140
8.2.2扩展8KBRAM的接口电路 141
8.2.3扩展16KBRAM和16KBEPROM的接口电路 143
8.3习题 144
第9章 I/O接口扩展设计及应用 145
9.1可编程并行I/O接口芯片8255A 145
9.1.18255A芯片简介 145
9.1.28031单片机和8255A的接口设计 152
9.2MCS-51与可编程RAM/IO芯片8155H的接口 155
9.2.18155H芯片介绍 155
9.2.2MCS-51与8155H的接口设计 160
9.3用74LSTTL电路扩展并行I/O口 162
9.3.1用74LS377扩展8位并行输出口 162
9.3.2用74LS373扩展8位并行输入口 163
9.3.3用三态门扩展8位并行输入口 163
9.3.4采用74LSTTL的I/O接口扩展应用举例 164
9.4LED显示电路 165
9.4.1LED显示器结构及原理 165
9.4.2LED显示接口 167
9.4.3键盘接口 170
9.4.4可编程键盘/显示接口8279 173
9.4.5MCS-51与8279的连接设计 181
9.5习题 185
第10章 MCS-51与D/A、A/D的接口设计 186
10.1D/A转换器 186
10.1.1概述 186
10.1.2主要技术指标 187
10.2MCS-51单片机与8位D/A转换器接口技术 187
10.2.1DAC0832的技术指标 188
10.2.2DAC0832的结构及原理 188
10.2.3DAC0832管脚功能 189
10.2.48位D/A转换器 190
10.2.5D/A转换器的输出方式 192
10.3MCS-51单片机与12位D/A转换器接口技术 194
10.3.1DAC1210的技术指标 195
10.3.2DAC1210的结构与原理 195
10.3.38031与DAC1210转换器接口技术 197
10.4D/A转换器接口技术举例 199
10.4.1单极性输出接口系统设计 199
10.4.2双极性输出接口系统设计 200
10.4.3双路D/A同步控制系统设计 203
10.5A/D转换器 204
10.5.1双积分A/D转换器原理 204
10.5.2逐位逼近式A/D转换器原理 205
10.5.3描述A/D转换器的性能参数 205
10.6.2ADC0808/0809的组成及工作原理 206
10.6.1ADC0808/0809的主要功能特点 206
10.6MCS-51单片机与8位A/D转换器接口技术 206
10.6.3ADC0808/0809管脚功能 207
10.6.48031与ADC0808/0809接口设计 208
10.7MCS-51单片机与12位A/D转换器接口技术 212
10.7.1AD574的技术指标 213
10.7.2AD574结构及工作原理 213
10.7.3AD574转换器的应用 215
10.7.4AD574与单片机的接口及程序设计 216
10.8习题 217
11.1.1总体设计 218
11.1.2应用系统的硬件电路设计 218
11.1应用系统设计 218
第11章 应用系统设计与开发 218
11.1.3应用系统的软件设计 220
11.1.4调试与固化 220
11.1.5程序固化 221
11.1.6硬件抗干扰措施 221
11.1.7软件的抗干扰设计 223
11.2单片机开发系统开发工具 224
11.2.1单片机开发系统的构成 224
11.2.2单片机开发系统的功能 225
11.2.3单片机开发器介绍 226
11.3习题 226
附录A MCS-51系列单片机指令表 227
附录B 习题答案 233