标题：标准80C51单片机基础教程：原理篇
图书信息
出版社: 北京航空航天大学出版社; 第1版 (2006年8月1日)
丛书名: 51族系单片机丛书·高等院校通用教材
平装: 348页
开本: 16开
ISBN: 781077574X
条形码: 9787810775748
尺寸: 26 x 18.4 x 1.2 cm
重量: 499 g
作者简介
李学海，副教授，先后攻读过通信电源、电子工程和通信系统等专业。
从事教学20余年，教过：物理、电路分析、数字电路、模拟电路、程控交换原理、电信组织与管理、电信概要、电信终端设备、微机原理、微机接口技术、80X86汇编程序设计、电子测量、8051单片机、PIC单片机、EM78单片机等课程。
曾经参加过几次全国性的单片机应用开发大奖赛并均从中获奖，如“第二届力源杯单片机开发制作大奖赛”二等奖、“第三届MOTORO[一A杯单片机应用设计大奖赛”优秀奖；还曾获得过4项国家专利和发明成果展览会金奖。
自1983年以来，在《电子技术应用》、《电子产品世界》、《单片机与嵌入式系统应用》、《电子世界》、《无线电》、《现代通信》等30余种电子和通信类核心期刊、科普期刊上发表专业论文、译文、科普文章和科研成果共计290余篇，内容涉及电子、电信、电脑和电器等领域。
曾经应几家国际著名微电子公司之邀，配合其开展的“中国大学计划”，为几种
目录
第0章 背景知识和学科简介
0.1 学习单片机有什么必要1
0.2 单片机令人着迷的理由是什么3
0.3 学习单片机有什么意义5
0.4 单片机到底是什么7
0.5 单片机有什么用处9
0.6 单片机有什么特点10
0.7 51系列单片机的发展背景是什么11
0.7.1 MCS-48系列单片机简介11
0.7.2 MCS-51系列单片机简介11
0.7.3 51系列单片机简介14
0.7.4 51系列单片机常规命名规则16
0.7.5 51系列单片机烧写方式比较17
0.7.6 标准8051单片机的性能特点17
0.8 学习51系列单片机有什么优势18
0.8.1 技术方面的优势18
0.8.2 资料方面的优势19
0.8.3 硬件方面的优势19
0.8.4 软件方面的优势20
0.8.5 软件工具链方面的优势20
0.8.6 硬件工具链方面的优势21
0.9 专业名词和技术术语21
0.9.1 硬件方面的专业术语22
0.9.2 软件方面的专业术语25
0.10 本书的写作思路和写作目标26
思考与练习28
第1章 标准80C51硬件系统概况
1.1 芯片内部总体结构29
1.1.1 核心区单元电路及其功能32
1.1.2 中央处理单元32
1.1.3 功能部件及其功能36
1.1.4 外围模块及其功能36
1.2 芯片外部封装和引脚37
1.2.1 封装形式37
1.2.2 引脚功能39
1.2.3 引脚功能简化40
1.3 存储器组织方式42
1.4 程序存储器（ROM）43
1.5 数据存储器（RAM）45
1.5.1 外部数据存储器空间45
1.5.2 内部数据存储器空间46
1.5.3 堆栈48
1.5.3.1 堆栈的概念48
1.5.3.2 堆栈的用途48
1.5.3.3 堆栈的结构48
1.5.3.4 堆栈的操作49
1.5.3.5 注意事项50
1.6 特殊功能寄存器（SFR）空间50
1.6.1 SFR的布局和配置51
1.6.2 SFR的功能53
1.7 布尔处理器（位处理器）54
思考与练习55
第2章 80C51指令系统分类解析
2.1 80C51指令系统概述57
2.1.1 指令的描述方法58
2.1.2 指令的执行时序59
2.1.3 指令的编码格式61
2.2 寻址方式62
2.2.1 与字节数据相关的寻址方式63
2.2.1.1 立即寻址63
2.2.1.2 直接寻址63
2.2.1.3 隐含寻址64
2.2.1.4 寄存器寻址64
2.2.1.5 间接寻址65
2.2.1.6 变址寻址66
2.2.2 与跳转地址有关的寻址方式66
2.2.2.1 相对跳转寻址67
2.2.2.2 绝对跳转寻址67
2.2.2.3 变址跳转寻址68
2.2.3 与位数据有关的寻址方式68
2.2.3.1 隐含位寻址69
2.2.3.2 直接位寻址69
2.2.4 寻址方式与寻址空间的对应关系69
2.3 80C51指令的分类方法70
2.3.1 按实现功能分类71
2.3.2 按编码字节数分类71
2.3.3 按执行周期数分类71
2.3.4 按寻址方式分类71
2.3.5 按携带操作数分类71
2.3.6 按影响标志分类72
2.3.7 按使用频度分类72
2.4 80C51指令功能的分类解析73
2.4.1 数据传送类指令73
2.4.2 算术运算类指令78
2.4.3 逻辑运算类指令83
2.4.4 程序跳转类指令86
2.4.5 位操作类指令90
2.5 80C51指令系统的内在规律94
2.6 80C51指令的应用技巧95
2.6.1 位置1操作技巧95
2.6.2 位清0操作技巧95
2.6.3 位取反操作技巧96
2.6.4 位测试操作技巧97
2.7 “CPU—SFR—模块”的相互关系98
思考与练习99
第3章 汇编程序设计基础和汇编语言工具链
3.1 概述101
3.1.1 背景知识101
3.1.2 汇编语言的语句格式103
3.1.3 程序流程和整体结构107
3.1.4 源程序文件的书写格式107
3.2 常用伪指令110
3.2.1 符号名定义类伪指令110
3.2.2 存储器空间初始化类伪指令113
3.2.3 汇编状态控制类伪指令114
3.2.4 其他115
3.3 4种基本程序结构117
3.3.1 顺序程序结构117
【例程3.1】 字节拆分117
3.3.2 分支程序结构118
【例程3.2】 数值比较118
3.3.3 循环程序结构120
【例程3.3】 RAM区间填充120
3.3.4 子程序结构121
【例程3.4】 挑选极值122
3.4 5种个性化实用程序的设计方法123
3.4.1 初始化程序段设计124
3.4.2 延时程序设计124
【例程3.5】 软件延时125
3.4.3 查表程序设计126
【例程3.6】 阶乘函数127
3.4.4 散转程序设计129
【例程3.7】 跳转指令表法130
【例程3.8】 地址偏移量表法131
3.4.5 布尔程序设计132
【例程3.9】 组合逻辑软件模拟133
3.5 汇编语言工具链134
3.5.1 汇编语言工具链134
3.5.2 汇编语言工具链应用举例136
【例程3.10】 8位二进制计时器137
3.6 输出文件（LST和HEX）的解读141
3.6.1 解读列表文件（.LST）141
3.6.2 解读最终目标文件（.HEX）143
思考与练习144
第4章 通用并行输入/输出端口及其端口引脚
4.1 概述146
4.2 并行端口的内部结构147
4.3 并行端口的工作原理148
4.3.1 从端口引脚输出数据148
4.3.2 从端口引脚输入数据149
4.3.3 读取端口数据锁存器内容149
4.4 并行端口的操作指令149
4.5 各个并行端口的个性差异150
4.5.1 P0端口150
4.5.2 P1端口151
4.5.3 P2端口151
4.5.4 P3端口152
4.6 并行端口特性小结153
4.7 并行端口特性的应用技巧154
4.7.1 漏极开路结构的妙用154
4.7.2 弱上拉功能的妙用156
4.7.3 非对称输出级的用法157
思考与练习158
第5章 定时器/计数器
5.1 定时器/计数器模块的基本用途159
5.2 80C51中定时器/计数器T0和T1的特性160
5.3 定时器/计数器T0和T1相关的寄存器160
5.4 T0和T1模块的电路结构和工作原理162
5.4.1 循环累加计数寄存器163
5.4.2 脉源选择电路164
5.4.3 脉源控制电路164
5.5 定时器/计数器的4种工作方式165
5.5.1 方式1（16位计数寄存器）166
5.5.2 方式0（13位计数寄存器）166
5.5.3 方式2（自动重装载8位计数寄存器）167
5.5.4 方式3（2×8位计数寄存器）168
思考与练习169
第6章 中断概念和中断逻辑
6.1 中断的基本概念171
6.2 80C51的中断源和中断逻辑173
6.2.1 中断源173
6.2.2 中断逻辑173
6.2.3 中断优先级174
6.3 中断相关的寄存器175
6.4 中断处理177
6.4.1 中断功能的编程方法177
6.4.2 中断响应的延迟时间180
6.4.3 需要注意的一些问题180
思考与练习181
第7章 串行通信原理和串行通信接口
7.1 串行通信的基本概念183
7.1.1 串行通信的两种基本方式184
7.1.1.1 异步传送方式184
7.1.1.2 同步传送方式185
7.1.2 串行通信中数据传送方向185
7.1.2.1 单工传送方式185
7.1.2.2 半双工传送方式186
7.1.2.3 全双工传送方式186
7.1.3 串行通信中的控制方式186
7.1.3.1 主控器方式186
7.1.3.2 被控器方式186
7.1.4 串行通信中的码型、编码方式和帧结构187
7.1.5 串行通信中的检错和纠错方式188
7.1.5.1 奇偶校验188
7.1.5.2 累加和校验188
7.1.5.3 循环冗余校验CRC188
7.1.5.4 通信中的纠错188
7.1.6 串行通信组网方式190
7.1.6.1 双机通信方式190
7.1.6.2 多机通信方式191
7.1.6.3 多主机通信方式191
7.1.7 串行通信接口电路和参数192
7.1.8 串行通信的传输速率194
7.1.8.1 信息传输速率R194
7.1.8.2 符号传输速率N195
7.1.9 串行通信协议195
7.2 80C51中的通用同步/异步收/发器USART模块196
7.2.1 USART模块相关的寄存器198
7.2.2 USART模块的电路结构200
7.2.3 波特率发生器201
7.2.4 USART模块的工作原理204
7.2.4.1 方式1——异步/双工/10位帧结构——双机通信204
7.2.4.2 方式2和3——异步/双工/11位帧结构——多机通信205
7.2.4.3 方式0——同步/主控/半双工/8位数据——移位寄存器206
7.2.5 多机通信的实现原理208
7.2.5.1 多机通信的接线方式208
7.2.5.2 多机通信的实现方法209
7.2.5.3 多机通信的操作步骤210
7.2.5.4 多机通信的通信协议211
7.2.6 UART接口的扩充方法和设计技巧211
7.2.6.1 选择具有多个UART模块的单片机211
7.2.6.2 采用软件虚拟技术211
7.2.6.3 选用专用芯片212
思考与练习212
第8章 并行总线、并行总线接口和并行总线扩展
8.1 并行总线的概念214
8.1.1 数据总线（DB）215
8.1.2 地址总线（AB）215
8.1.3 控制总线（CB）215
8.2 并行总线接口216
8.3 并行总线扩展217
8.3.1 扩展程序存储器ROM217
8.3.1.1 不提倡外扩ROM的理由217
8.3.1.2 掌握扩展技术的必要性218
8.3.1.3 外扩ROM的接线图218
8.3.1.4 外扩ROM的信号时序219
8.3.1.5 外扩ROM的器件类型219
8.3.2 扩展数据存储器RAM221
8.3.2.1 外扩RAM的器件类型221
8.3.2.2 外扩RAM的接线图222
8.3.2.3 外扩RAM的信号时序222
8.3.3 扩展并行I/O端口223
8.3.3.1 利用并行总线扩展法实现224
8.3.3.2 利用通用器件扩展225
8.3.3.3 利用专用器件扩展228
8.3.4 补充几点说明228
思考与练习228
第9章 系统复位源设计和扩充技术
9.1 单片机的工作状态及其状态迁移230
9.2 复位源、复位操作和复位状态231
9.2.1 什么叫复位源231
9.2.2 复位操作有哪些具体内容232
9.2.3 复位状态有哪些具体表现232
9.2.4 几点补充说明232
9.3 上电复位（POR）和复位延时233
9.3.1 上电复位时序233
9.3.2 3种上电复位电路234
9.3.3 上电复位失败的2种案例分析235
9.4 人工复位（MRST）和复位电路237
9.4.1 3种人工复位电路237
9.4.2 人工复位时序237
9.5 欠压复位（LVR）、欠压检测(LVD)和欠压中断(LVI)238
9.5.1 什么叫电源电压跌落238
9.5.2 电源跌落会带来哪些具体危害239
9.5.3 欠压复位电路的分立件搭建方法239
9.5.4 欠压检测门限的选定方法240
9.5.5 欠压中断（LVI）功能的设计方法242
9.5.6 几点补充说明243
9.6 80C51外扩电压检测专用芯片244
9.6.1 外接电压检测器HT70xx244
9.6.2 外接带延时的电压检测器MAX810245
9.6.3 外接带人工复位的电压检测器MAX812245
9.6.4 外接带电源故障预警的电压检测器MAX707/708246
9.7 看门狗复位（WDR）和看门狗定时器（WDT）248
9.7.1 配备WDT有何必要248
9.7.2 程序失控的原因、后果和回复249
9.7.2.1 实际单片机系统中程序失控的原因249
9.7.2.2 实际单片机系统中程序失控的后果249
9.7.2.3 程序失控后的回复措施249
9.7.2.4 失控回复之后的后续处理250
9.7.3 WDT的电路结构和工作原理250
9.7.4 几点补充说明251
9.8 80C51如何增设看门狗功能252
9.8.1 内设软件看门狗252
9.8.1.1 软件看门狗的设计思想252
9.8.1.2 软件看门狗的编程方法252
9.8.1.3 软件看门狗的局限性253
9.8.2 外扩看门狗专用芯片DS1232254
9.8.3 外扩看门狗专用芯片MAX813255
9.9 3种非常规复位扩展方式256
9.9.1 什么叫软件陷阱257
9.9.2 什么叫软件复位（SWR）257
9.9.3 什么叫软硬件复位（SHR）259
9.9.4 什么叫非法地址复位（IAR）260
9.10 复位方式小结261
9.11 复位标志位的设置和应用262
9.11.1 复位标志位的设置方法262
9.11.2 复位标志位的应用方法265
思考与练习266
第10章 系统时钟源和电源设计及节电技术
10.1 系统时钟源设计267
10.1.1 自建时钟源267
10.1.2 外引时钟源268
10.1.3 时钟振荡器原理分析269
10.1.4 时钟电路的设计考虑273
10.2 系统电源设计274
10.2.1 电源的获取方式和统筹规划274
10.2.2 稳压电源的电路设计276
10.2.3 芯片电源引脚特点和抗干扰措施280
10.3 节电技术（睡眠与唤醒）281
10.3.1 节电技术背景和概念281
10.3.1.1 背景知识281
10.3.1.2 支持硬件282
10.3.1.3 节电模式相关的寄存器283
10.3.2 停机模式(PD)284
10.3.2.1 停机模式的进入284
10.3.2.2 停机模式的退出（3种方式）285
10.3.3 待机模式（IDL）286
10.3.3.1 待机模式的进入286
10.3.3.2 待机模式的退出（3种方式）287
10.3.4 节电模式下的引脚降耗安排288
思考与练习289
第11章 片载程序存储器编程技术和保护方法
11.1 传统的并行编程方法291
11.1.1 编程概念和编程工具291
11.1.2 芯片内部的编程逻辑292
11.1.3 80C51系列的程序保护机制293
11.1.3.1 封锁程序代码的锁定位（LB3~LB1）294
11.1.3.2 加密程序代码的密码阵列295
11.1.4 芯片标记字节296
11.1.5 并行编程的实现方法298
11.2 新兴的串行编程方法300
11.2.1 利用SPI接口的串行编程方法300
11.2.2 利用UART接口的串行编程方法303
11.2.3 SPI和UART串行编程的对比305
11.2.4 ISP和IAP编程技术简介306
思考与练习307
附录A ASCII码表308
附录B 英文指令一览表309
附录C 宏汇编器的系统保留字313
附录D 电压检测器HT70xx系列专用芯片
D.1 封装形式和引脚功能315
D.2 内部结构和工作原理315
D.3 选型参考316
D.4 电气参数317
D.5 应用举例319
附录E 带延时复位功能的电源监控器MAX809/810
E.1 概述321
E.2 内部结构和引脚功能321
E.3 功能说明322
E.4 特性参数和时序图323
E.5 应用举例325
附录F 带延时和人工复位的电源监控器MAX811/812
F.1 概述326
F.2 内部结构和引脚功能326
F.3 功能说明327
F.4 特性参数和时序图328
F.5 应用举例330
附录G 带延时、人工复位及电源故障检测的电压监控器MAX707/708
G.1 概述331
G.2 内部结构和引脚功能331
G.3 功能说明332
G.4 电气参数和时序图333
G.5 应用举例335
附录H 多功能系统监控器DS1232
H.1 概述336
H.2 内部结构和引脚功能336
H.3 工作原理338
H.4 电气参数和时序图338
H.5 应用举例339
附录I 多功能监控器MAX705/706/813
I.1 概述340
I.2 内部结构和引脚功能340
I.3 功能说明342
I.4 电气参数和时序图344
I.5 典型应用实例346
参考文献347