《标准80C51单片机基础教程 原理篇》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:李学海著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2006
  • ISBN:781077574X
  • 页数:348 页
图书介绍:本书内容主要包括:硬件架构、ROM、RAM、指令系统、汇编程序基础和汇编语言工具链、并行端口、定时器、中断逻辑、复位逻辑、时钟电路、电源电路等功能电路的结构和工作原理,以及片内程序存储器编程原理。

第0章 背景知识和学科简介 1

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硬件系统概况 29

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.6 特殊功能寄存器(SFR)空间 50

1.5.3.5 注意事项 50

1.6.1 SFR的布局和配置 51

1.6.2 SFR的功能 53

1.7 布尔处理器(位处理器) 54

思考与练习 55

第2章 80C51指令系统分类解析 57

2.1 80C51指令系统概述 57

2.1.1 指令的描述方法 58

2.1.2 指令的执行时序 59

2.1.3 指令的编码格式 61

2.2 寻址方式 62

2.2.1.2 直接寻址 63

2.2.1.1 立即寻址 63

2.2.1 与字节数据相关的寻址方式 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.4 寻址方式与寻址空间的对应关系 69

2.2.3.1 隐含位寻址 69

2.2.3.2 直接位寻址 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.1 数据传送类指令 73

2.4 80C51指令功能的分类解析 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章 汇编程序设计基础和汇编语言工具链 101

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.2 延时程序设计 124

3.4.1 初始化程序段设计 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章 通用并行输入/输出端口及其端口引脚 146

4.1 概述 146

4.2 并行端口的内部结构 147

4.3 并行端口的工作原理 148

4.3.1 从端口引脚输出数据 148

4.4 并行端口的操作指令 149

4.3.3 读取端口数据锁存器内容 149

4.3.2 从端口引脚输入数据 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章 定时器/计数器 159

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章 中断概念和中断逻辑 171

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.3 需要注意的一些问题 180

6.4.2 中断响应的延迟时间 180

思考与练习 181

第7章 串行通信原理和串行通信接口 183

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.3.2 被控器方式 186

7.1.3.1 主控器方式 186

7.1.3 串行通信中的控制方式 186

7.1.2.3 全双工传送方式 186

7.1.2.2 半双工传送方式 186

7.1.4 串行通信中的码型、编码方式和帧结构 187

7.1.5 串行通信中的检错和纠错方式 188

7.1.5.1 奇偶校验 188

7.1.5.2 累加和校验 188

7.1.5.3 循环冗余校验CRC 188

7.1.5.4 通信中的纠错 188

7.1.6 串行通信组网方式 190

7.1.6.1 双机通信方式 190

7.1.6.3 多主机通信方式 191

7.1.6.2 多机通信方式 191

7.1.7 串行通信接口电路和参数 192

7.1.8 串行通信的传输速率 194

7.1.8.1 信息传输速率R 194

7.1.8.2 符号传输速率N 195

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.1 并行总线的概念 214

第8章 并行总线、并行总线接口和并行总线扩展 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 扩展程序存储器ROM 217

8.3.1.1 不提倡外扩ROM的理由 217

8.3.1.2 掌握扩展技术的必要性 218

8.3.1.3 外扩ROM的接线图 218

8.3.1.5 外扩ROM的器件类型 219

8.3.1.4 外扩ROM的信号时序 219

8.3.2.1 外扩RAM的器件类型 221

8.3.2 扩展数据存储器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.1 单片机的工作状态及其状态迁移 230

第9章 系统复位源设计和扩充技术 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.2 人工复位时序 237

9.4.1 3种人工复位电路 237

9.4 人工复位(MRST)和复位电路 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 外接电压检测器HT70xx 244

9.6.3 外接带人工复位的电压检测器MAX812 245

9.6.2 外接带延时的电压检测器MAX810 245

9.6.4 外接带电源故障预警的电压检测器MAX707/708 246

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.1.2 软件看门狗的编程方法 252

9.8.1.1 软件看门狗的设计思想 252

9.8 80C51如何增设看门狗功能 252

9.8.1 内设软件看门狗 252

9.8.1.3 软件看门狗的局限性 253

9.8.2 外扩看门狗专用芯片DS1232 254

9.8.3 外扩看门狗专用芯片MAX813 255

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.1 复位标志位的设置方法 262

9.11 复位标志位的设置和应用 262

9.11.2 复位标志位的应用方法 265

思考与练习 266

第10章 系统时钟源和电源设计及节电技术 267

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.1 待机模式的进入 286

10.3.3 待机模式(IDL) 286

10.3.3.2 待机模式的退出(3种方式) 287

10.3.4 节电模式下的引脚降耗安排 288

思考与练习 289

第11章 片载程序存储器编程技术和保护方法 291

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.2 内部结构和工作原理 315

D.1 封装形式和引脚功能 315

附录D 电压检测器HT70xx系列专用芯片 315

D.3 选型参考 316

D.4 电气参数 317

D.5 应用举例 319

E.1 概述 321

E.2 内部结构和引脚功能 321

E.3 功能说明 322

E.4 特性参数和时序图 323

E.5 应用举例 325

F.2 内部结构和引脚功能 326

F.1 概述 326

F.3 功能说明 327

F.4 特性参数和时序图 328

F.5 应用举例 330

G.1 概述 331

G.2 内部结构和引脚功能 331

G.3 功能说明 332

G.4 电气参数和时序图 333

G.5 应用举例 335

H.1 概述 336

H.2 内部结构和引脚功能 336

H.4 电气参数和时序图 338

H.3 工作原理 338

H.5 应用举例 339

I.2 内部结构和引脚功能 340

I.1 概述 340

I.3 功能说明 342

I.4 电气参数和时序图 344

I.5 典型应用实例 346

参考文献 347

附录G 带延时、人工复位及电源故障检测的电压监控器MAX707/ 708

附录E 带延时复位功能的电源监控器MAX809/ 810

附录F 带延时和人工复位的电源监控器MAX811/ 812

附录I 多功能监控器MAX705/706/ 813

附录H 多功能系统监控器DS 1232