《51系列单片机应用软件编程技术》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:李强编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2009
  • ISBN:9787811246247
  • 页数:448 页
图书介绍:目前,嵌入式系统领域里,51系列单片机的应用历史较长,应用最为广泛。51系列单片机以其价格低廉、器件易于采购、开发工具完善,而得到众多的青睐。51系列单片机体系结构简单,其应用复杂度适中,入门容易。因此,在嵌入式二次开发市场占据很大的份额,也拥有众多的使用者。本书以51单片机为基本的嵌入式应用平台,全面研究嵌入式应用软件的编程技术,探讨嵌入式汇编语言编程、嵌入式C语言编程的特点,以众多的应用实例为背景,探究嵌入式编程过程中的技术细节。

第1篇 汇编语言程序设计 1

引言 1

第1章 深刻理解51单片机的指令系统 3

1.1 概述 3

1.2 单片机指令级逻辑结构 4

1.3 单片机的典型存储结构 8

1.4 指令系统分析 9

1.4.1 指令体系结构 9

1.4.2 指令级计算机的工作机理 10

1.4.3 指令级数据表示 14

1.5 指令编码 17

1.6 寻址方式 20

1.7 指令功能分析 22

1.7.1 数据传送类指令 22

1.7.2 算术运算类指令 25

1.7.3 逻辑运算类指令 26

1.7.4 控制转移类指令 28

1.7.5 位操作类指令 31

1.7.6 控制转移指令的复合应用 34

第2章 查表和散转程序设计技术 40

2.1 查表程序设计技术 40

2.1.1 查表编程概述 40

2.1.2 基本查表编程技术 41

2.1.3 扩展查表编程技术 42

2.1.4 扩展数据表查表编程技术 43

2.1.5 数据表元素扩展查表编程技术 44

2.2 散转程序设计技术 45

2.2.1 应用软件的整体构造 45

2.2.2 散转基本编程技术 47

2.2.3 散转程序的扩展编程技术 49

2.2.4 基本查表散转程序编程技术 50

2.2.5 标记查表法散转程序编程技术 51

2.3 AT24XX系列存储芯片编程 54

2.3.1 AT24系列存储芯片的特性 54

2.3.2 AT24系列芯片的读/写操作 55

第3章 中断程序和单片机软件抗干扰程序设计技术 59

3.1 中断概述 59

3.2 中断的基本编程技术 61

3.3 “定时查询”中断扩展编程技术 63

3.4 中断的“外部中断查询”扩展技术 65

3.5 中断编程实例 66

3.6 单片机软件抗干扰技术概述 70

3.7 抗系统“死循环”技术 71

3.7.1 基本软件看门狗技术 71

3.7.2 高级软件看门狗技术 72

3.8 抗系统“跑飞”干扰技术 75

3.8.1 指令冗余法 75

3.8.2 软件陷阱技术 76

第4章 定时/计数器编程技术 77

4.1 软件定时器设计技术 77

4.1.1 软件定时器的应用原理 77

4.1.2 软件定时器的设计 78

4.1.3 软件定时器的应用实例 80

4.2 硬件定时器设计技术 81

4.2.1 硬件定时/计数器的工作机理 81

4.2.2 实时定时/计数器的编程 83

4.3 超长时间实时定时器编程技术 87

4.4 单片机计时综合应用编程实例 88

4.5 软件运行时间分析 93

4.6 DS1302时钟芯片的应用 97

第5章 显示接口编程技术 105

5.1 LED的显示驱动 105

5.2 独立式LED显示器 106

5.2.1 程序逻辑控制法 107

5.2.2 查表逻辑控制法 107

5.3 LED矩阵显示器 109

5.3.1 程序逻辑控制法 110

5.3.2 查表逻辑控制法 111

5.4 数码管显示器 113

5.4.1 数码显示器静态工作编程模式 116

5.4.2 数码显示器动态工作编程模式 118

5.5 液晶显示器驱动编程 120

5.6 显示编程应用实例 127

第6章 键盘接口编程技术 134

6.1 常用键盘的结构 134

6.1.1 独立式键盘 134

6.1.2 行列式键盘 135

6.2 独立式键盘接口的通用编程模式 137

6.3 行列式键盘接口的通用编程模式 138

6.3.1 扫描法 139

6.3.2 反转法 141

6.4 键盘接口的工作方式 143

6.4.1 键盘完全监控工作方式 144

6.4.2 键盘中断工作方式 144

6.5 键盘编程实例 146

第7章 汇编语言编码风格 156

7.1 汇编伪指令 156

7.2 汇编编码风格 160

7.2.1 软件格式 160

7.2.2 符号约定 165

7.3 模块化程序设计 169

7.4 汇编程序设计范例 174

第2篇 C51程序设计 203

引言 203

第8章 C51语言基础 204

8.1 C语言概况 204

8.2 C51语言的特点 206

8.3 C51程序的组成 210

8.4 C51源程序的基本语法 218

8.5 Keil的基本使用 222

8.6 单片机程序设计方法 230

8.6.1 程序设计基本方法 230

8.6.2 结构化程序设计 231

第9章 C51程序设计基础 240

9.1 程序的输入/输出 240

9.2 C51数据类型 245

9.3 伪随机数发生器 249

9.4 C51运算符 257

9.5 ANSIC标准测试 260

9.6 C51程序的基本设计技巧 261

第10章 C51编码风格 266

10.1 编码风格概述 266

10.2 编码风格实例解释 266

10.2.1 源码组织实例 267

10.2.2 实例源码分析 269

10.3 标识符命名法 283

10.3.1 匈牙利法 283

10.3.2 骆驼法 284

10.3.3 下划线法 284

10.3.4 标识符缩写 285

10.3.5 变量命名原则 285

10.4 源代码的组织方式 287

10.4.1 基本方式 287

10.4.2 功能分组方式 288

10.4.3 人名分组方式 299

第11章 数组、结构与指针 300

11.1 概述 300

11.2 数组 301

11.2.1 一维数组 301

11.2.2 多维数组 308

11.2.3 数组作函数的参数 310

11.3 结构 311

11.3.1 结构定义 311

11.3.2 结构变量的声明 313

11.3.3 关键字typedef的用法 314

11.3.4 结构变量的引用 315

11.3.5 结构变量初始化 315

11.4 结构数组 316

11.4.1 结构数组的定义 316

11.4.2 结构数组的应用 318

11.4.3 结构数组的引用 319

11.4.4 结构作函数参数 319

11.5 指针 321

11.5.1 指针概念 321

11.5.2 指针的应用 322

11.6 指针应用 327

11.6.1 数组指针 327

11.6.2 结构指针 329

11.6.3 函数指针 332

11.6.4 指针型指针 336

第12章 C51编程模式及程序测试 338

12.1 增量式编程模式 338

12.1.1 选择排序模块的实现 339

12.1.2 希尔排序模块的实现 342

12.1.3 快速排序的实现 346

12.2 排序系统源码的组织方式 350

12.2.1 源代码的人名组织方法 350

12.2.2 头文件编制 351

12.3 C51程序调试 356

12.3.1 C51调试环境设置 356

12.3.2 基本调试功能(技术) 358

12.4 C51程序的排错 367

12.5 C51程序的测试 375

12.5.1 黑盒法 375

12.5.2 白盒法 383

第13章 C51混合编程技术 386

13.1 参数传递 386

13.2 C51中的“段” 388

13.3 应用实例 392

13.3.1 无参混合编程(精确延时) 393

13.3.2 有参混合编程(硬件驱动) 398

13.3.3 指针参数混合编程 412

第14章 程序切换技术 422

14.1 软件系统运行管理 422

14.1.1 程序切换 422

14.1.2 系统堆栈 423

14.2 子程序切换 424

14.2.1 子程序切换原理 424

14.2.2 子程序的应用 426

14.2.3 系统堆栈的讨论 427

14.2.4 堆栈的应用―现场切换 428

14.3 函数切换 429

14.3.1 C51函数工作原理 430

14.3.2 C51函数扩展 432

14.3.3 软件堆栈(模拟堆栈) 434

14.4 中断切换 437

14.4.1 中断工作机理 437

14.4.2 中断现场保护 439

14.4.3 C51中断编程 440

14.5 任务切换 442

14.5.1 任务的特点 442

14.5.2 任务的组成原理 443

14.5.3 任务的工作机制 444

参考文献 447

编后记 448