《经典80C51单片机轻松入门与上手》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:李学海著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2009
  • ISBN:9787302189473
  • 页数:359 页
图书介绍:本书将以经典的“标准80C51”作为讲解单片机的样板和模型。本书在内容安排上充分注意了层次性、可读性、系统性和完整性,力求覆盖开发和应用单片机所有必要的硬件和软件知识、开发环境和开发工具的使用方法等内容。

第1章 学习和应用单片机的背景知识 1

1.1 单片机概览 1

1.1.1 为什么单片机能够引人入胜 1

1.1.2 学习和应用单片机有什么必要 3

1.1.3 学习和应用单片机有什么现实意义 7

1.1.4 究竟什么是单片机 9

1.1.5 哪些地方会用到单片机 11

1.1.6 单片机有什么特点 13

1.2 51系列单片机的演进历程 14

1.2.1 MCS-48系列单片机简介 14

1.2.2 MCS-51系列单片机简介 14

1.2.3 80C51系列单片机简介 17

1.2.4 80C51系列单片机常规命名规则 19

1.2.5 80C51系列单片机程序固化方式对比 20

1.2.6 基准80C51单片机的性能特点 21

1.3 学习80C51系列单片机有什么优势 21

1.3.1 技术方面的优势 21

1.3.2 资料方面的优势 22

1.3.3 硬件方面的优势 22

1.3.4 软件方面的优势 23

1.3.5 软件工具链方面的优势 24

1.3.6 硬件工具链方面的优势 24

1.4 本书的写作思路和目标 25

1.5 *基本概念和名词术语 27

1.5.1 硬件方面 27

1.5.2 软件方面 31

第2章 经典80C51的片内架构和片外封装 33

2.1 经典80C51芯片的内部架构 33

2.1.1 核心区单元电路及其功能 36

2.1.2 中央处理单元 37

2.1.3 功能部件及其功能 41

2.1.4 外围模块及其功能 42

2.2 经典80C51芯片的外部封装 43

2.2.1 封装形式 43

2.2.2 引脚功能 44

2.2.3 引脚简化 46

2.2.4 引脚保护 47

2.3 经典80C51的存储器组织方式 48

2.4 程序存储器ROM 49

2.4.1 片载程序存储器 49

2.4.2 片1外程序存储器 50

2.5 数据存储器RAM 52

2.5.1 片外数据存储器空间 53

2.5.2 片载数据存储器空间 53

2.5.3 堆栈存储区间 55

2.5.3.1 堆栈概念 55

2.5.3.2 堆栈用途 56

2.5.3.3 堆栈结构 56

2.5.3.4 堆栈操作 57

2.5.3.5 注意事项 57

2.6 特殊功能寄存器(SFR)空间 57

2.6.1 SFR的空间布局 58

2.6.2 SFR的功能分配 61

2.7 *比特处理器 61

第3章 经典80C51的寻址方式和指令系统 64

3.1 80C51指令系统概述 64

3.1.1 指令的描述方法 65

3.1.2 指令的执行时序 66

3.1.3 指令的编码格式 68

3.2 80C51的寻址方式 70

3.2.1 与字节数据相关的寻址方式 71

3.2.1.1 立即寻址 71

3.2.1.2 直接寻址 71

3.2.1.3 隐含寻址 72

3.2.1.4 寄存器寻址 73

3.2.1.5 间接8位寻址 74

3.2.1.6 间接16位寻址 74

3.2.1.7 变址寻址 75

3.2.2 与跳转地址有关的寻址方式 76

3.2.2.1 相对跳转寻址 76

3.2.2.2 绝对跳转寻址 77

3.2.2.3 变址跳转寻址 77

3.2.3 与位数据有关的寻址方式 78

3.2.3.1 隐含位寻址 78

3.2.3.2 直接位寻址 79

3.2.4 寻址方式与寻址空间的对应关系 79

3.3 80C51指令的分类方法 80

3.3.1 按实现功能分类 80

3.3.2 按编码字节分类 81

3.3.3 按执行周期分类 81

3.3.4 按寻址方式分类 81

3.3.5 按携带操作数分类 81

3.3.6 按影响标志分类 82

3.3.7 按使用频度分类 82

3.4 80C51指令功能的分类解析 83

3.4.1 数据传送类指令 83

3.4.2 算术运算类指令 89

3.4.3 逻辑运算类指令 94

3.4.4 程序跳转类指令 98

3.4.5 位操作类指令 102

3.5 80C51指令系统的内在规律 106

3.6 80C51指令的应用技巧 107

3.6.1 位置1操作技巧 107

3.6.2 位清0操作技巧 108

3.6.3 位取反操作技巧 109

3.6.4 位测试操作技巧 110

3.7 *“内核CPU一中间SFR-外外围模块”关系 111

第4章 通用并行端口、端口引脚及其应用技巧 113

4.1 概述 113

4.2 并行端口的内部结构 114

4.3 并行端口的工作原理 115

4.3.1 经端口引脚输出数据 115

4.3.2 从端口引脚输入数据 116

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

4.4 并行端口的操作指令 116

4.5 各个并行端口的个性差异 117

4.5.1 PO端口 117

4.5.2 P1端口 119

4.5.3 P2端口 119

4.5.4 P3端口 120

4.6 并行端口特性小结 121

4.7 *并行端口的应用技巧 122

4.7.1 漏极开路结构的妙用 122

4.7.2 弱上拉功能的妙用 124

4.7.3 非对称输出级的用法 125

第5章 汇编语言、汇编语言程序和汇编语言工具链 127

5.1 概述 127

5.1.1 汇编语言的产生背景 127

5.1.2 汇编语言的语句格式 129

5.1.3 程序流程与程序结构 133

5.1.4 源程序文件的书写格式 134

5.2 常用伪指令 136

5.2.1 符号名定义类伪指令 137

5.2.2 存储器空间初始化类伪指令 139

5.2.3 汇编状态控制类伪指令 141

5.2.4 其他 141

5.3 4种基本程序结构 143

5.3.1 顺序程序结构 144

【例程5.1】字节拆分 144

5.3.2 分支程序结构 145

【例程5.2】数值比较 146

5.3.3 循环程序结构 147

【例程5.3】RAM块填充 148

5.3.4 子程序结构 149

【例程5.4】极值挑选 150

5.4 5种个性化实用程序段的设计方法 151

5.4.1 初始化程序段设计 152

5.4.2 延时程序设计 152

【例程5.5】软件延时 153

5.4.3 查表程序设计 154

【例程5.6】阶乘函数 155

5.4.4 散转程序设计 158

【例程5.7】跳转指令表法 158

【例程5.8】地址偏移量表法 160

5.4.5 布尔程序设计 161

【例程5.9】组合逻辑软件模拟 161

5.5 汇编语言工具链 163

5.5.1 汇编语言工具链的构成 163

5.5.2 汇编语言工具链应用举例 166

【例程5.10】8位二进制计时器 167

5.6 输出文件的解读 170

5.6.1 解读列表文件(.LST) 170

5.6.2 解读最终目标文件(.HEX) 172

第6章 *汇编语言模块化编程技术 174

6.1 高级汇编技术 174

6.1.1 条件汇编 174

6.1.2 宏汇编 176

6.1.3 重复汇编 183

6.2 模块化编程手段 186

【例程6.1】路标导向灯控制器 187

6.2.1 包含文件方式 190

6.2.2 宏库文件方式 193

6.2.3 子程序方式 197

6.2.4 非重定位型ASM模块方式 200

6.2.5 可重定位型ASM模块方式及其专用伪指令 204

6.2.6 模块库文件方式及其库管理器LIB51 211

6.2.7 综合应用方式举例 216

6.3 KEIL软件中现有示范程序的挖掘和利用 221

6.3.1 模板程序的示范 222

6.3.2 样例程序的参照 225

第7章 软件集成开发环境(μVISION2)及其软件模拟调试技术 229

7.1概述 229

7.1.1 KEIL软件包功能简介 229

7.1.2 KEIL软件如何安装、升级或拆除 232

7.2 μ VisioN2如何开启和关闭 235

7.2.1 μVision2的开启 235

7.2.2 μVision2工作环境简介 236

7.2.3 KEIL软件包各组件的版本查看 238

7.2.4 μVision2所能模拟的片内资源 238

7.2.5 μVision2的关闭 239

7.3 如何创建和编辑文件和项目 239

7.3.1 如何创建和编辑一个源文件(.ASM) 240

【实验范例7.1】8位二进制循环累加计数器 242

7.3.2 如何拆分编辑窗口 243

7.3.3 如何创建一个新项目(.uv2) 243

7.3.4 如何在项目中添加或删除文件 245

7.3.5 如何在项目中建立和添加说明文件 246

7.3.6 如何在项目中添加或删除文件组 247

7.3.7 如何制作调试目标文件(OMF51) 249

7.4 如何调试项目 252

7.4.1 切换到调试环境 253

7.4.2 开启虚拟端口模块及其功能解析 254

7.4.3 连续运行 256

7.4.4 复位操作 257

7.4.5 单步运行 257

7.4.5.1 单步进入运行方式—步入 257

7.4.5.2 单步跳出运行方式—步出 258

7.4.5.3 单步跨越运行方式—步越 258

7.4.6 连续单步运行 258

7.4.7 设置断点运行 259

7.4.8 运行到光标处 260

7.4.9 从指定行开始运行 261

7.4.10 查看反汇编窗口 262

7.4.11 跟踪运行和查看轨迹 263

7.4.12 开启和设置存储器观察窗 264

7.4.13 开启和设置变量观察窗 266

7.4.14 开启和设置输出观察窗 268

7.4.15 修改寄存器和存储器单元 270

7.4.15.1 修改CPU寄存器 271

7.4.15.2 修改SFR寄存器 271

7.4.15.3 修改位单元 272

7.4.15.4 修改普通存储单元或存储区间 272

7.5 如何应用μVISION2制作HEX和LIB文件 272

7.5.1 如何制作最终目标文件(.HEX) 272

7.5.2 如何制作模块库文件(.LIB) 274

7.6 *KEIL软件包获取方法 274

第8章 硬件综合开发工具(DH2004A)及其硬件仿真开发技术 278

8.1 硬件工具链及其重要性 278

8.1.1 实时在线仿真器 279

8.1.2 程序烧写器 280

8.1.3 单片机目标板 281

8.1.4 单片机综合学习应用开发实验仪 281

8.2 单片机实验仪的电路特点 283

8.2.1 实验仪能帮我们做什么 283

8.2.2 实验仪的电路布局 283

8.2.3 实验仪的两种典型用法 283

8.3 仿真调试实验仪安装方法 284

8.3.1 软件安装方法 285

8.3.2 硬件安装方法 285

8.4 仿真调试实验仪调试方法 287

8.4.1 μVision2环境的选项设置 288

8.4.2 如何建立μVision2与实验仪的通信 290

8.4.3 如何在实验仪上实时运行用户程序 291

8.4.4 硬件仿真模式与软件模拟模式的差异 292

8.4.5 项目调试过程中的注意事项 293

8.4.6 局限性 293

8.5 仿真调试实验仪如何用于项目开发 294

8.5.1 仿真法单片机应用项目开发流程 294

8.5.2 项目原型机开发示范 297

【实验示范8.1】8点式霹雳灯控制器 297

第9章 *下载编程实验仪用法及其烧试简易开发技术 302

9.1 F载编程实验仪安装方法 302

9.1.1 软件获取方法 302

9.1.2 软件安装方法 303

9.1.3 硬件安装方法 306

9.2 下载编程实验仪烧写方法 308

9.2.1 Flash Magic如何启动 308

9.2.2 Flash Magic如何关闭 309

9.2.3 Flash Magic界面分布和功能 309

9.2.4 Flash Magic快速上手—组合命令流程操作法 310

9.2.5 Flash Magic菜单命令—单项命令独立操作法 313

9.2.5.1 文件类菜单命令 313

9.2.5.2 ISP类菜单命令 314

9.2.5.3 选项类菜单命令 318

9.2.5.4 工具类菜单命令 318

9.2.5.5 帮助类菜单命令 319

9.3 下载编程实验仪如何用于项目开发 319

9.3.1 模拟法单片机应用项目的开发流程 319

9.3.2 烧试法单片机应用项目的开发思路 321

附录A ASCII码表 323

附录B 英文指令一览表 324

附录C 标准包含文件(Reg51.inc) 328

附录D 宏汇编器的系统保留字 331

附录E μVision2集成开发环境所支持的8051兼容单片机厂家和器件型号 333

附录F μVision2菜单命令和工具按钮中文说明 339

F.1 菜单栏 339

F.2 工具栏 341

附录G KEIL软件默认安装文件夹组织结构 343

附录H DH2004A实验仪的电路布局和功能电路 344

H.1 电路规划特色 344

H.2 电路布局 344

H.3 硬件功能电路 345

H.3.1 LM7805/LM317直流稳压电源电路 345

H.3.2 MAX232电平转换串行通信接口电路 346

H.3.3 CD4040脉冲频率源供应电路 346

H.3.4 LM324通用四运算放大器 346

H.3.5 LM339通用四电压比较器 347

H.3.6 CD4013双D触发器 348

H.3.7 CD40106六施密特触发器 348

H.3.8 NE567音频译码器 349

H.3.9 PC817光/电耦合器 349

H.3.10 光阻+热阻 349

H.3.11 TL431+电位器 350

H.3.12 NE555模拟定时器 350

H.3.13 MIC+喇叭+蜂鸣器 351

H.3.14 红外发射/接受二极管 351

H.3.15 简易R-2R型DAC 351

H.3.16 8LED输出显示+8KEY开关输入 352

H.3.17 91410键盘编码+多功能信号发生器 352

H.3.18 两组RC滤波器电路 353

H.3.19 DS1232复位电路+看门狗电路 353

H.3.20 74HC575八位三态同相锁存器 353

H.3.21 仿真目标单片机模块(包含硬件+固件) 354

H.3.22 串行扩展接口 355

H.3.23 PO口上拉电路兼模式设置 355

H.3.24 并行扩展口 355

H.3.25 单片机引脚信号引出插接口 356

参考文献 357