第1章 绪论 1
1.1计算机的诞生、发展及基本结构 1
1.2计算机类型划分 2
1.2.1通用计算机 2
1.2.2嵌入式计算机 2
1.3嵌入式计算机的类别及应用特点 3
1.3.1嵌入式计算机的类别 3
1.3.2嵌入式计算机系统的应用特点 3
1.4单片微型计算机应用系统举例 3
练习与思考题1 5
第2章 微型计算机基础 6
2.1计算机中的数、编码和运算 6
2.1.1计算机中常用的数制及相互转换 6
2.1.2微型计算机中常用的编码 7
2.1.3微型计算机的运算基础 8
2.2微型计算机的基本结构 11
2.2.1存储器的组成及功能 12
2.2.2微处理器的结构及工作原理 14
2.2.3输入输出设备及其接口电路 19
2.2.4微型计算机的总线连接结构 20
2.3微型计算机的指令执行过程 22
2.4微型计算机系统 24
2.4.1微型计算机系统的组成 24
2.4.2微型计算机系统的性能指标 25
2.4.3微型计算机的分类 26
2.5单片微型计算机概述 26
2.5.1什么是单片微型计算机 26
2.5.2单片机的发展历史 27
2.5.3单片机的特点 27
2.5.4单片机的应用 27
2.5.5单片机的发展趋势 28
2.5.6单片机的主要制造厂商和机型 29
2.5.7 51系列单片机简介 29
练习与思考题2 31
第3章 AT89S51单片机的硬件结构与时序 33
3.1AT89S51单片机的结构概述 33
3.2AT89S51单片机的外部引脚 34
3.2.1电源及时钟引脚 34
3.2.2控制引脚 35
3.2.3并行I/O口引脚 35
3.3AT89S51单片机的CPU 36
3.3.1运算器 36
3.3.2控制器 38
3.4 AT89S51单片机存储器的结构 38
3.4.1程序存储器空间 39
3.4.2数据存储器空间 39
3.4.3特殊功能寄存器 41
3.4.4位地址空间 44
3.5AT89S51单片机的并行输入/输出接口 45
3.5.1 P0口 45
3.5.2 P2口 46
3.5.3 P1口 47
3.5.4 P3口 48
3.6AT89S51单片机的时钟电路与时序 48
3.6.1 AT89S51单片机的时钟电路 48
3.6.2时序与时序定时单位 50
3.6.3 AT89S51 指令的取指/执行时序 51
3.6.4 AT89S51对片外存储器的操作时序 52
3.7复位操作与复位电路 54
3.8AT89S51单片机的低功耗节电 55
模式与看门狗定时器 55
3.8.1空闲模式 56
3.8.2掉电运行模式 57
3.8.3掉电和空闲模式下的看门狗定时器WDT 57
练习与思考题3 57
第4章 51系列单片机的指令系统 59
4.1指令及其格式 59
4.1.1指令系统概述 59
4.1.2指令描述符号的约定 60
4.1.3机器指令的字节编码格式 60
4.1.4符号指令的书写格式 61
4.2 51系列单片机的寻址方式 61
4.2.1立即寻址 61
4.2.2直接寻址 62
4.2.3寄存器寻址 62
4.2.4寄存器间接寻址 63
4.2.5变址寻址(基址寄存器加变址寄存器间址寻址) 63
4.2.6相对寻址方式 64
4.2.7位寻址方式 64
4.3 51系列单片机指令系统分类介绍 65
4.3.1数据传送类指令 65
4.3.2算术运算类指令 70
4.3.3逻辑运算与移位指令 75
4.3.4控制转移类指令 78
4.3.5位操作类指令 83
4.3.6 51系列单片机指令汇总 85
练习与思考题4 87
第5章 51系列单片机汇编语言程序设计及仿真调试 90
5.1汇编语言程序设计基础 90
5.1.1机器语言、汇编语言与高级语言 90
5.1.2汇编语言的语句和格式 91
5.1.3伪指令 92
5.1.4汇编语言源程序的汇编 94
5.1.5汇编语言程序设计的一般步骤 95
5.2汇编语言源程序的基本结构 95
5.2.1顺序结构 95
5.2.2分支结构 96
5.2.3循环结构 97
5.2.4子程序 101
5.3 51系列单片机汇编语言实用程序设计举例 104
5.3.1查表程序设计 104
5.3.2散转程序设计 106
5.3.3码制转换程序设计 107
5.3.4运算程序设计 108
5.4程序调试与集成开发环境软件Keil μ Vision 109
5.4.1程序调试概述 109
5.4.2 Keil μVision软件简介 109
5.4.3 Keil μVision集成开发环境中调试单片机汇编语言源程序的方法 110
练习与思考题5 115
第6章 单片机的C语言程序设计 116
6.1单片机C语言概述 116
6.1.1采用C51的优点 116
6.1.2 C51的程序框架 116
6.1.3 C51的程序开发过程 117
6.2C51的数据与运算 118
6.2.1 C51的数据类型 118
6.2.2 C51的数据存储类型 119
6.2.3 C51数据的存储器模式 119
6.2.4 C51的指针变量 119
6.2.5 C51对SFR、可寻址位、存储器和I/O口的定义 122
6.3C51的运算符和表达式 124
6.4C51的基本语句 127
6.4.1表达式语句 127
6.4.2复合语句 127
6.4.3选择语句 127
6.4.4循环语句 128
6.5C51的函数 129
6.5.1函数的分类 129
6.5.2 C51函数的定义 129
6.5.3 C51函数的调用 130
6.5.4对被调函数的说明 131
6.5.5 C51的库函数 131
6.6C51编程实例 131
6.6.1 C语言程序与汇编语言源程序的关系 131
6.6.2顺序程序的设计 132
6.6.3循环程序的设计 133
6.6.4分支程序的设计 134
6.7汇编语言和C语言的混合编程 135
练习与思考题6 136
第7章 AT89S51单片机I/O口应用与软/硬件系统模拟调试 138
7.1AT89S51单片机I/O接口的应用 138
7.1.1 AT89S51单片机I/O接口的操作方式 138
7.1.2 I/O接口的应用实例:发光二极管的控制 139
7.2软/硬件系统的模拟调试与Proteus软件 140
7.2.1 Proteus软件的特点 141
7.2.2 Proteus软件对于单片机教学的重要意义 141
7.3Proteus软件快速入门 141
7.3.1 Proteus工作界面 141
7.3.2使用Proteus进行单片机系统仿真设计的步骤 144
7.4应用实例 144
7.4.1原理图设计 144
7.4.2 Proteus仿真 147
练习与思考题7 148
第8章 AT89S51单片机的中断系统 149
8.1中断技术概述 149
8.1.1中断的定义和作用 149
8.1.2中断源 150
8.1.3中断分类 151
8.1.4中断系统的功能 151
8.1.5中断处理过程 153
8.2AT89S51单片机的中断系统 155
8.2.1 AT89S51的中断请求源和中断标志 156
8.2.2 AT89S51对中断请求的控制 158
8.2.3 AT89S51中断处理的过程 160
8.3中断系统的程序设计及实例 163
8.3.1中断系统的程序设计 163
8.3.2中断系统程序设计举例 165
8.4 AT89S51对外部中断源的扩展 169
8.4.1借用定时器溢出中断扩展外部中断源 169
8.4.2采用中断加查询法扩展外部中断源 170
练习与思考题8 173
第9章 AT89S51单片机的定时器/计数器 174
9.1定时器/计数器概述 174
9.2 AT89S51单片机定时器/计数器的结构 174
9.2.1工作方式控制寄存器TMOD 175
9.2.2定时器/计数器控制寄存器TCON 176
9.3定时器/计数器的4种工作方式 176
9.3.1方式0 176
9.3.2方式1 177
9.3.3方式2 178
9.3.4方式3 178
9.4对外部输入信号的要求 180
9.5定时器/计数器的编程和应用 180
9.5.1定时器/计数器的编程 180
9.5.2定时器/计数器的应用举例 181
练习与思考题9 193
第10章 51系列单片机的串行通信 195
10.1计算机串行通信基础 195
10.1.1串行通信的分类 195
10.1.2串行通信的制式 197
10.1.3串行通信中的调制与解调 197
10.1.4串行通信的校验 198
10.1.5串行通信中串行I/O数据的实现 198
10.2 AT89S51单片机串行口的结构及工作原理 200
10.2.1串行口的结构 200
10.2.2串行口的工作方式 202
10.3 AT89S51单片机串行口的应用 207
10.3.1串行通信的编程要点 207
10.3.2串行口在方式0下的应用 207
10.3.3串行口在其他方式下的应用 211
10.4单片机的主从式多机通信 219
10.5单片机与PC间的串行通信 220
10.5.1单片机与PC串行通信的硬件连接 220
10.5.2通信协议与通信程序 223
练习与思考题10 223
第11章 51系列单片机的存储器扩展 225
11.1单片机系统扩展概述 225
11.2 51系列单片机系统总线的构造 225
11.3地址空间分配和外部地址锁存器 226
11.3.1存储器地址空间分配 226
11.3.2外部地址锁存器 230
11.4程序存储器的扩展 231
11.4.1程序存储器芯片类型的选择 231
11.4.2常用EPROM芯片的简介 231
11.4.3访问程序存储器的控制信号 233
11.4.4 AT89S51单片机与EPROM的接口电路设计 233
11.4.5单片机外扩程序存储器的时序分析与使用 235
11.5数据存储器扩展 236
11.5.1数据存储器芯片类型的选择 236
11.5.2常用静态数据存储器RAM芯片简介 236
11.5.3 AT89S51单片机与外部RAM的接口电路设计 237
11.5.4单片机外扩数据存储器的时序分析与使用 238
11.6程序存储器和数据存储器的综合扩展 240
11.7 E2PROM的扩展简介 242
11.7.1并行E2 PROM芯片简介 242
11.7.2 E2PROM的工作方式 242
11.7.3并行E2 PROM与单片机的接口设计 243
11.8 AT89S51单片机片内Flash存储器的编程 243
11.8.1 AT89S51单片机片内Flash存储器概况 243
11.8.2 AT89S51单片机片内Flash存储器的编程 244
练习与思考题11 245
第12章 51系列单片机的并行I/O接口扩展 247
12.1 I/O接口扩展概述 247
12.1.1 I/O接口的功能 247
12.1.2 I/O端口的编址 248
12.1.3单片机与I/O设备的数据传送方式 249
12.1.4单片机并行I/O接口的扩展方法概述 250
12.2简单I/O接口的扩展 250
12.3利用可编程接口芯片82C55扩展并行口 251
12.3.1 82C55芯片简介 251
12.3.2工作方式选择控制字及端口C按位置位/复位控制字 253
12.3.3 82C55的3种工作方式 255
12.3.4 AT89S51单片机与82C55的接口设计 258
12.4利用可编程接口芯片81C55扩展并行口 259
12.4.1 81C55的内部结构和外部引脚 259
12.4.2单片机对81C55端口的控制 260
12.4.3 81C55的工作方式 262
12.4.4 AT89S51单片机与81C55的接口设计及软件编程 264
12.5利用单片机的串行口扩展并行I/O口 266
12.5.1用74LS165扩展并行输入口 266
12.5.2用74LS164扩展并行输出口 267
练习与思考题12 267
第13章 51系列单片机与常用外设的接口设计 269
13.1 AT89S51单片机与LED数码管显示器的接口 269
13.1.1 LED数码管的结构与工作原理 269
13.1.2 LED数码管显示器的工作原理 270
13.1.3 LED数码管显示器应用举例 272
13.2AT89S51单片机键盘接口技术 274
13.2.1键盘的任务和分类 274
13.2.2按键输入信号的特点和处理 275
13.2.3非编码键盘的工作原理 275
13.2.4单片机对键盘的监控方式 281
13.3键盘/显示器接口设计举例 282
13.4 AT89S51单片机与液晶显示器的接口 286
13.4.1 LCD 1602模块的外形与引脚 287
13.4.2 LCD1602模块的组成 287
13.4.3 LCD1602模块的命令及初始化 289
13.4.4 AT89S51单片机与LCD1602模块的接口示例 290
13.5 AT89S51单片机与微型打印机TPμP-40A/16A的接口 293
练习与思考题13 298
第14章 51系列单片机模拟量接口技术 299
14.1 51系列单片机与D/A转换器的接口 299
14.1.1器件选型 299
14.1.2 AT89S51与8位D/A转换器DAC0832的接口设计 300
14.1.3 AT89S51与12位D/A转换器DAC1210的接口设计 305
14.1.4 AT89S51与串行输入的12位D/A转换器AD7543的接口设计 307
14.2 51系列单片机与A/D转换器的接口 308
14.2.1 A/D转换器简介 308
14.2.2 AT89S51与逐次比较型8位A/D转换器ADC0809的接口 310
练习与思考题14 316
第15章 51系列单片机的串行扩展技术 317
15.1I2C总线接口及其扩展 317
15.1.1 I2C串行总线概述 317
15.1.2 I2C总线的数据传送 318
15.1.3应用举例:AT89S51与AT24C02的接口 320
15.2SPI串行总线接口及其扩展 325
15.2.1单片机扩展SPI总线的系统结构 325
15.2.2单片机的SPI总线读写时序模拟 325
15.2.3应用举例 326
练习与思考题15 326
第16章 单片机应用系统的设计与调试 327
16.1单片机应用系统的设计过程 327
16.1.1单片机应用系统的基本要求 327
16.1.2单片机应用系统设计的步骤 328
16.2单片机应用系统设计 330
16.2.1硬件设计应考虑的问题 330
16.2.2典型的单片机应用系统 330
16.2.3单片机应用系统软件的总体框架 331
16.3单片机应用系统的仿真与调试 332
16.4单片机应用系统设计举例——基于AT89S51和模糊控制算法的温控仪的设计 333
16.4.1设计任务及要求 334
16.4.2总体方案设计 334
16.4.3硬件设计 335
16.4.4系统控制算法的实现 338
16.4.5系统软件的实现 339
16.4.6软件调试与系统仿真 340
练习与思考题16 340
附录A ASCII码表 341
附录B 常用逻辑门电路图形符号对照表 342
附录C 按字母顺序排列的指令表 343
参考文献 346