第1章 概述 1
1.1单片机的结构组成、特点和指标 1
1.1.1微型计算机的基本结构 1
1.1.2单片机的基本结构 2
1.1.3单片机的特点 3
1.1.4单片机的重要指标 4
1.2单片机的发展历史和产品类型 4
1.2.1单片机的发展历史 4
1.2.2单片机的产品类型 5
1.2.3 80C51系列单片机 5
1.2.4其他系列单片机 8
1.3单片机的应用 9
1.3.1单片机应用领域 9
1.3.2单片机应用举例 10
1.4单片机技术相关网站 14
思考题与习题1 14
第2章 MCS-51单片机硬件结构和工作原理 15
2.1 MCS-51单片机的分类 15
2.2单片机硬件结构 15
2.2.1单片机的引脚功能 15
2.2.2单片机的内部结构 17
2.3中央处理器(CPU) 18
2.3.1运算器 18
2.3.2控制器 19
2.3.3布尔(位)处理器 19
2.4存储器 20
2.4.1程序存储器(ROM) 20
2.4.2数据存储器(RAM) 21
2.5并行I/O接口 25
2.5.1 P1口 25
2.5.2 P2口 26
2.5.3 P3口 27
2.5.4 P0口 27
2.5.5并行I/O接口的应用 28
2.6时钟电路和时序 32
2.6.1时钟电路 32
2.6.2时序 33
2.7单片机的工作方式 34
2.7.1复位方式 34
2.7.2程序执行方式 35
2.7.3低功耗运行方式 36
思考题与习题2 37
第3章 MCS-51指令系统及汇编程序设计 38
3.1指令系统简介 38
3.1.1指令系统的分类 38
3.1.2指令格式 39
3.1.3指令中的常用符号 39
3.1.4寻址方式 40
3.2指令系统 44
3.2.1数据传送指令 44
3.2.2算术运算指令 48
3.2.3逻辑运算指令 52
3.2.4控制转移指令 55
3.2.5位操作指令 59
3.3汇编语言程序设计 61
3.3.1汇编语言程序设计的步骤 61
3.3.2汇编语言的程序编辑和汇编 62
3.3.3结构化程序设计方法 65
思考题与习题3 72
第4章 MCS-51单片机的C程序设计 74
4.1 C51概述 74
4.2 C51语法基础 75
4.2.1标识符和关键字 75
4.2.2数据类型 76
4.2.3 C51运算符 78
4.2.4程序结构 78
4.3 C51对MCS-51单片机的访问 79
4.3.1存储类型 79
4.3.2存储模式 80
4.3.3对特殊功能寄存器的访问 81
4.3.4对存储器和并行口的访问 82
4.3.5位地址访问 84
4.3.6中断函数 85
4.4 C51结构化程序设计 86
4.4.1顺序结构程序 86
4.4.2选择结构程序 86
4.4.3循环结构程序 89
4.5 C51程序设计实例 91
4.5.1查表程序 91
4.5.2单片机应用程序设计 92
4.5.3 C51语言和汇编语言混合编程 97
4.5.4编程优化的概念 99
思考题与习题4 100
第5章 MCS-51单片机中断、定时/计数器及串行口 101
5.1中断系统 101
5.1.1中断系统概述 101
5.1.2 MCS-51单片机中断系统 103
5.1.3中断系统应用举例 111
5.2定时/计数器 114
5.2.1定时/计数器的结构与原理 114
5.2.2定时/计数器的工作方式 116
5.2.3定时/计数器对输入信号的要求 119
5.2.4定时/计数器的应用 119
5.3串行口 126
5.3.1串行通信基础知识 126
5.3.2 MCS-51单片机串行口 127
5.3.3串行口的应用 132
思考题与习题5 139
第6章 单片机系统基本并行扩展技术 141
6.1并行扩展概述 141
6.2外部总线扩展 141
6.3外部存储器扩展 142
6.3.1外部ROM扩展 142
6.3.2外部RAM扩展 147
6.3.3多存储器芯片扩展 149
6.4并行口扩展 150
6.4.1 8155可编程并行口芯片 150
6.4.2 8155与单片机的接口方法 153
6.5显示器与键盘扩展 154
6.5.1 LED显示器扩展 154
6.5.2 LCD显示器扩展 156
6.5.3键盘接口扩展 162
6.5.4键盘和显示器接口设计实例 165
6.6 A/D和D/A转换器扩展 167
6.6.1并行A/D转换器扩展 167
6.6.2并行D/A转换器扩展 170
思考题与习题6 173
第7章 单片机系统常用串行扩展技术 174
7.1串行扩展概述 174
7.2常用串行总线协议 174
7.2.1 I2C串行总线 174
7.2.2 SPI总线 178
7.2.3 1-Wire总线 181
7.3串行存储器扩展 184
7.3.1 I2C接口的EEPROM存储器扩展 184
7.3.2 SPI接口的大容量Flash存储器扩展 191
7.4串行转并行I/O接口扩展 201
7.4.1串行转并行I/O扩展芯片的工作原理 201
7.4.2串行总线扩展I/O接口实例 204
思考题与习题7 205
第8章 单片机系统外设串行扩展技术 206
8.1串行键盘和LED显示器扩展 206
8.1.1串行键盘和LED显示器控制芯片的工作原理 206
8.1.2串行键盘和LED显示器扩展实例 209
8.2串行A/D和D/A转换器扩展 215
8.2.1串行A/D转换器扩展 215
8.2.2串行D/A转换器扩展 225
思考题与习题8 229
第9章 单片机系统电源设计与抗干扰技术 230
9.1单片机系统电源设计的考虑因素 230
9.2线性稳压电源 230
9.2.1三端固定输出集成稳压器 231
9.2.2三端可调输出集成稳压器 231
9.2.3低压差线性稳压器(LDO) 232
9.3 DC/DC电源 233
9.3.1降压型DC/DC电源电路 233
9.3.2升压型DC/DC电源电路 235
9.3.3 DC/DC模块电源的选择与应用 237
9.4 AC/DC电源 238
9.4.1 AC/DC电源技术 238
9.4.2 AC/DC模块电源 240
9.5基准电源的产生方法 241
9.5.1稳压管基准电源电路 241
9.5.2集成基准电源电路 241
9.6干扰对单片机应用系统的影响 244
9.7硬件抗干扰技术 244
9.7.1无源滤波 244
9.7.2有源滤波 245
9.7.3去耦电路 245
9.7.4屏蔽技术 245
9.7.5隔离技术 246
9.7.6接地技术 247
9.8软件抗干扰技术 249
9.8.1软件抗干扰的一般方法 249
9.8.2指令冗余技术 250
9.8.3软件陷阱技术 250
9.8.4“看门狗”技术 253
思考题与习题9 255
第10章 单片机系统开发工具 256
10.1单片机应用系统开发环境 256
10.1.1开发系统的功能 256
10.1.2开发系统的分类 256
10.2 Keil C51开发工具及仿真调试方法 257
10.2.1 Keil C51开发工具 257
10.2.2应用Keil C51进行单片机软件开发调试的方法 259
10.2.3应用Keil C51调试C51应用程序举例 263
10.3 Proteus仿真软件及调试方法 266
10.3.1 Proteus仿真软件 266
10.3.2 Proteus进行单片机应用系统仿真调试的方法 267
10.3.3 Proteus进行单片机应用系统仿真调试举例 268
10.4单片机应用系统设计实例 273
10.4.1系统结构 273
10.4.2硬件设计 274
10.4.3软件设计 276
思考题与习题10 280
第11章 实验及课程设计 281
11.1概述 281
11.2实验 281
11.2.1实验1——BCD码/十六进制码转换 281
11.2.2实验2——排序程序 282
11.2.3实验3——定时/计数器 284
11.2.4实验4——基本输入/输出 288
11.2.5实验5——外部中断 290
11.2.6实验6——并行口扩展 292
11.2.7实验7——串行A/D转换 295
11.2.8实验8——串行D/A转换 296
11.3课程设计 296
11.3.1课程设计目的 296
11.3.2课程设计要求 296
11.3.3课程设计参考题目及要求 297
附录A MCS-51汇编指令-机器码对照表 301
附录B ASCII编码表 303
参考文献 304