当前位置:首页 > 工业技术
AVR单片机嵌入式系统原理与应用实践
AVR单片机嵌入式系统原理与应用实践

AVR单片机嵌入式系统原理与应用实践PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:马潮编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2011
  • ISBN:9787512404342
  • 页数:578 页
图书介绍:本书以ATMEL公司AVR单片机ATmegal6为蓝本,由浅入深,软硬结合,全面系统地介绍基于单片机的嵌入式系统的原理与结构,开发环境与工具,各种接口与功能单元应用的硬件设计思想和软件编写方法。本书以夯实基础,面向应用,理论与实践、方法与实现紧密结合为主线展开,根据AVR的运行速度快,资源丰富,功能强大,以串行扩展为主等显著特点,采用C语言作为系统软件开发平台,以由简到繁、循序渐进、螺旋式上升的方式进行编排。在讲解原理和设计方法的同时,还穿插介绍相关的经验、技巧与注意事项,有很强的实用性和指导性。各章还配有问题思考、实践练习及相关参考文献和资料,供课后复习、实践、开拓知识面及进一步深入研究、提高用。
《AVR单片机嵌入式系统原理与应用实践》目录

第1篇 基础与入门 2

第1章 单片机嵌入式系统概述 2

1.1嵌入式系统简介 2

1.1.1嵌入式计算机系统 2

1.1.2单片机嵌入式系统 4

1.1.3单片机的发展历史 5

1.1.4单片机的发展趋势 6

1.2单片机嵌入式系统的结构与应用领域 9

1.2.1单片机嵌入式系统的结构 9

1.2.2单片机嵌入式系统的应用领域 10

1.3 AVR单片机简介 11

1.3.1 ATMEL公司的单片机简介 11

1.3.2 AVR单片机的主要特点 13

1.3.3 AVR系列单片机简介 14

1.3.4 AVR与51单片机 18

思考与练习 19

第2章 AVR单片机的基本结构 20

2.1单片机的基本组成 20

2.1.1单片机的基本组成结构 20

2.1.2单片机的基本单元与作用 21

2.2 ATmega16单片机的组成 24

2.2.1 AVR单片机的内核结构 24

2.2.2 ATmega16的特点 26

2.2.3 ATmega16的外部引脚与封装 27

2.3 ATmega16单片机的内部结构 29

2.3.1中央处理器CPU 29

2.3.2系统时钟部件 32

2.3.3 CPU的工作时序 33

2.3.4存储器 35

2.3.5 I/O端口 35

2.4存储器结构和地址空间 35

2.4.1支持ISP的Flash程序存储器 35

2.4.2数据存储器SRAM空间 36

2.4.3内部EEPROM存储器 36

2.5通用寄存器组与I/O寄存器 37

2.5.1通用寄存器组 37

2.5.2 I/O寄存器 38

2.5.3状态寄存器和堆栈指针寄存器 41

2.6 ATmega16单片机的工作状态 43

2.6.1 AVR单片机最小系统 44

2.6.2 AVR的复位源和复位方式 45

2.6.3对AVR的编程下载 49

2.6.4 ATmega16的熔丝位 50

2.6.5 AVR单片机的工作状态 52

2.6.6支持ISP编程的最小系统设计 53

2.7 AVR单片机内部资源的扩展和剪裁 55

思考与练习 55

第3章 AVR的指令与汇编系统 57

3.1 ATmega16指令综述 57

3.1.1指令格式及3种表示方式 58

3.1.2 AVR指令系统中使用的符号 59

3.1.3 AVR指令的寻址方式和寻址空间 60

3.1.4 AVR指令操作结果对标志位的影响 66

3.2算术和逻辑指令 66

3.2.1加法指令 66

3.2.2减法指令 67

3.2.3取反码指令 68

3.2.4取补码指令 68

3.2.5比较指令 69

3.2.6逻辑“与”指令 69

3.2.7逻辑“或”指令 70

3.2.8逻辑“异或”指令 71

3.2.9乘法指令 71

3.3跳转指令 73

3.3.1无条件跳转指令 73

3.3.2条件跳转指令 74

3.3.3子程序调用和返回指令 80

3.4数据传送指令 81

3.4.1直接寻址数据传送指令 81

3.4.2间接寻址数据传送指令 82

3.4.3从程序存储器中取数装入寄存器指令 84

3.4.4写程序存储器指令 86

3.4.5 I/O口数据传送指令 86

3.4.6堆栈操作指令 87

3.5位操作和位测试指令 87

3.5.1带进位逻辑操作指令 87

3.5.2位变量传送指令 88

3.5.3位变量修改指令 89

3.6 MCU控制指令 92

3.7 AVR汇编语言系统 92

3.7.1汇编语言语句格式 93

3.7.2汇编器伪指令 94

3.7.3表达式 98

3.7.4器件定义头文件m16def.inc 100

第4章 AVR单片机的系统设计与开发工具 103

4.1单片机嵌入式应用系统设计 103

4.1.1单片机嵌入式系统开发所需的基础知识和技能 103

4.1.2单片机嵌入式系统开发过程 105

4.2单片机嵌入式系统的开发工具与环境 108

4.2.1单片机嵌入式系统的程序设计语言 108

4.2.2单片机嵌入式系统的开发软件平台 109

4.2.3单片机嵌入式系统的硬件开发工具 110

4.2.4 AVR单片机嵌入式系统的软件开发平台 113

4.2.5 AVR实验开发板 118

4.2.6 AVR编程调试工具 124

4.3自制ISP下载电缆 127

4.3.1 STK200/300并口ISP下载电缆 128

4.3.2 USB-ISP下载电缆 129

4.4 AVR开发环境的建立 131

4.4.1 AVR研发型开发环境 132

4.4.2 AVR学习型实验开发环境 132

思考与练习 133

第5章 实战练习(一) 134

5.1秒节拍显示器系统的设计 134

5.1.1秒节拍显示器硬件设计 134

5.1.2秒节拍显示器软件设计思路 136

5.1.3秒节拍显示器汇编源程序 136

5.1.4通用延时子程序分析 137

5.2 AVR Studio汇编语言集成开发环境的使用 138

5.2.1 AVR Studio的安装和其他辅助工具的安装 139

5.2.2系统工程文件与AVR汇编源程序文件的建立、编译 139

5.2.3使用软件模拟仿真调试程序 143

5.2.4下载执行代码实际运行 147

5.3 CVAVR+AVR Studio——高级语言集成开发环境的使用 147

5.3.1秒节拍显示器的高级C语言源程序代码 148

5.3.2系统工程文件与源程序文件的建立、编译 149

5.3.3在CVAVR中使用AVR Studio进行软件仿真调试程序 152

5.4 AVR熔丝位的设置和执行代码下载 156

5.4.1 AVR-51多功能板的硬件连接 156

5.4.2 AVR熔丝位的配置 157

5.4.3执行代码文件的下载 161

5.5一个比较复杂的AVR汇编语言实例 162

5.5.1系统功能与硬件设计 162

5.5.2 AVR汇编源代码 163

思考与练习 171

第2篇 基本功能单元的应用 173

第6章 通用I/O接口的基本结构与输出应用 173

6.1通用I/O接口的基本结构与特性 173

6.1.1 I/O接口的基本结构 173

6.1.2 I/O接口寄存器 176

6.1.3通用数字I/O接口的设置与编程 177

6.2通用I/O接口的输出应用 180

6.2.1通用I/O接口的输出设计要点 180

6.2.2 LED发光二极管的控制 180

6.2.3继电器控制 183

6.2.4步进电机控制 184

6.3 LED数码显示器的应用 186

6.3.1单个LED数码管控制 186

6.3.2多位LED数码管显示 189

6.3.3点阵LED显示控制 197

6.4 LCD液晶显示器的应用 199

6.4.1 LCD的特点与分类 200

6.4.2通用点阵字符LCD显示器的应用 200

思考与练习 206

第7章 中断系统与基本应用 207

7.1中断的基本概念 207

7.1.1中断处理过程 207

7.1.2中断源、中断信号和中断向量 208

7.1.3中断优先级和中断嵌套 209

7.1.4中断响应条件与中断控制 210

7.2 ATmega16的中断系统 212

7.2.1 ATmega16的中断源和中断向量 212

7.2.2 ATmega16的中断控制 214

7.2.3 AVR的中断响应过程 216

7.3中断服务程序的编写 218

7.3.1汇编语言AVR中断程序的编写 218

7.3.2 CodeVision中断程序的编写 223

7.4 ATmega16的外部中断 226

7.4.1外部中断的触发方式和特点 226

7.4.2与外部中断相关的寄存器和标志位 227

7.5外部中断应用实例 230

思考与练习 241

第8章 定时/计数器的结构与应用 242

8.1定时/计数器的结构 242

8.1.1 8位定时/计数器T/C0的结构 243

8.1.2 8位T/C0的工作模式 251

8.1.3 8位T/C0的计数工作时序 255

8.2 8位定时/计数器T/C0的应用 257

8.2.1外部事件计数器 257

8.2.2定时器应用设计 262

8.3 PWM脉宽调制波的产生和应用 267

8.3.1 PWM脉宽调制波 267

8.3.2基于比较匹配输出的脉冲宽度调制PWM 269

8.4 16位定时/计数器T/C1的应用 272

8.4.1 16位T/C1增强功能介绍 273

8.4.2 16位T/C1应用示例 276

思考与练习 281

第9章 键盘输入接口与状态机设计 282

9.1通用I/O数字输入接口设计 282

9.1.1 I/O输入接口硬件设计要点 282

9.1.2 I/O输入接口软件设计要点 284

9.2基于状态机的按键输入接口设计 285

9.2.1简单的按键输入硬件接口与分析 285

9.2.2基于状态机的按键输入软件接口设计 287

9.3矩阵键盘输入接口设计 300

9.3.1矩阵键盘的工作原理和扫描确认方式 301

9.3.2定时扫描方式的键盘接口程序 302

思考与练习 310

第10章 模拟比较器和ADC接口 311

10.1模拟比较器 311

10.1.1与模拟比较器相关的寄存器和标志位 311

10.1.2模拟比较器的应用设计 314

10.2模/数转换器ADC 315

10.2.1 10位ADC结构 316

10.2.2与ADC相关的I/O寄存器 318

10.2.3 ADC应用设计要点 322

10.2.4 ADC的应用设计 324

10.2.5 ADC应用设计的深入讨论 327

思考与练习 330

第11章 实战练习(二) 331

11.1频率测量和简单频率计的设计与实现 331

11.1.1频率测量原理 331

11.1.2测频法测量频率 332

11.1.3测周法测量频率 335

11.1.4频率测量小结 339

11.2基于T/C1捕捉功能实现高精度的周期测量 339

11.3带校时和音乐报时功能时钟的设计与实现 346

思考与练习 353

第3篇 串行接口与通信 355

第12章 串行数据接口概述 355

12.1串行接口与串行通信基础知识 356

12.1.1并行传输 356

12.1.2串行传输 357

12.1.3常见的串行传输和通信接口 358

12.2数字I/O口的串行扩展 359

12.2.1串行扩展并行输出口 360

12.2.2串行扩展并行输入口 363

12.2.3数字1/O口串行扩展设计要点 365

思考与练习 365

第13章 异步通信与USART接口基础 367

13.1异步传输的基本概念 367

13.1.1异步传输的字符数据帧格式 367

13.1.2异步通信 369

13.2 AVR的异步传输接口USART 370

13.2.1概述 371

13.2.2串行时钟发生器 372

13.2.3数据帧格式 374

13.2.4 USART寄存器 375

13.2.5串行通信波特率的设置与偏差 380

13.3 USART的基本操作 383

13.3.1 USART的初始化 383

13.3.2数据发送 384

13.3.3数据接收 387

13.4基于USART接口基本通信的实现与测试 390

13.4.1 USART的数据发送和接收 390

13.4.2 RS-232C总线标准介绍 394

13.4.3 AVR系统的RS-232C传输接口的实现与测试 396

13.4.4异步通信中易产生的问题与AVR系统时钟的选择 401

13.5 AVR USART接口特性的进一步说明 402

13.5.1使用独立的高精度波特率发生器 402

13.5.2数据接收采用3级接收缓冲器结构 402

13.5.3硬件自动处理校验位及错误检测 403

13.5.4 USART数据接收的硬件扫描检测和接收时序 403

思考与练习 405

第14章 USART实用设计基础 406

14.1异步通信接口应用设计要点 406

14.1.1接口的硬件设计 406

14.1.2上层应用通信协议和规范的制定 408

14.1.3典型USART底层驱动+中间层软件结构示例 409

14.2一个USART应用的完整示例 414

14.2.1硬件系统构成 415

14.2.2通信协议的制定 415

14.2.3下位机系统程序 417

14.2.4测试和上位机程序 420

14.3基于异步通信接口实现多机通信 422

14.3.1多机通信实现原理 422

14.3.2多机通信实现方式一 423

14.3.3多机通信的通用实现方式 425

思考与练习 430

第15章 串行SPI接口应用 432

15.1 SPI串行总线介绍 432

15.1.1 SPI总线的组成 432

15.1.2 SPI通信的工作模式和时序 433

15.1.3多机SPI通信 435

15.2 AVR的SPI接口原理与使用 436

15.2.1 SPI接口的结构和功能 436

15.2.2与SPI相关的寄存器 439

15.2.3 SPI接口的设计应用要点 441

15.3 SPI接口应用实例 443

15.3.1 SPI接口基本方式的应用 443

15.3.2典型SPI底层驱动+中间层软件结构示例 451

思考与练习 453

第16章 串行TWI(I2C)接口应用 455

16.1 I2C串行总线介绍 455

16.1.1 I2C总线结构和基本特性 455

16.1.2 I2C总线时序与数据传输 456

16.1.3 I2C总线寻址与通信过程 458

16.2 AVR的TWI(I2C)接口与使用 460

16.2.1 TWI模块概述 460

16.2.2 TWI寄存器 462

16.2.3使用TWI总线 466

16.2.4 TWI(I2C)接口设计应用要点 474

16.3 TWI接口应用实例 475

16.3.1 24C256的结构特点 476

16.3.2 AVR读/写24C256应用设计 479

16.4专用键盘/LED驱动器ZLG7290的应用 493

16.4.1 ZLG7290简介 493

16.4.2 AVR与ZLG7290的连接 494

思考与练习 496

第4篇 进入实战 499

第17章 AVR片内资源应用补遗 499

17.1 AVR熔丝位的功能与配置 499

17.1.1 AVR熔丝位的正确配置 500

17.1.2 ATmega16中重要熔丝位的配置 501

17.1.3 JTAG口的使用与配置 502

17.1.4提高系统可靠性的熔丝位配置 504

17.1.5片内WDT的应用 505

17.2片内EEPROM的应用 509

17.2.1 EEPROM的读/写访问操作 509

17.2.2寄存器描述 510

17.2.3简单的读/写EEPROM例程 512

17.2.4高级语言开发环境中使用EEPROM 514

17.3外部并行扩展接口 515

17.3.1关于单片机嵌入式系统的并行接口扩展问题的讨论 515

17.3.2 AVR的并行接口扩展 517

17.4 AVR中断应用设计要点 519

17.4.1 AVR中断设计注意点 519

17.4.2 AVR的中断优先级与中断嵌套处理 520

17.4.3高级语言开发环境中的中断服务程序的编写 521

17.5 AVR实战应用要点 521

第18章 迎奥运倒计时时钟设计实例 525

18.1系统功能分析 525

18.2应用系统设计 526

18.2.1系统方案设计 526

18.2.2应用系统结构设计 526

18.2.3系统面板设计 527

18.2.4 DS1302介绍 528

18.3控制系统的硬件设计 531

18.4控制系统软件设计要点 532

第19章 实用公交车语音报站器——WAVE播放器 536

19.1用单片机实现WAVE数字音频播放 536

19.1.1数字音频基础知识介绍 536

19.1.2 WAVE数字音频文件格式 537

19.1.3从wav文件中获取PCM音频数据 539

19.1.4简易WAVE播放器的设计与实现 541

19.2实用公交车语音报站器 545

19.2.1系统方案设计 546

19.2.2系统硬件电路 546

19.2.3 SD卡和SD卡接口 548

19.2.4 SD卡物理接口层 550

19.2.5 SD卡操作命令层 552

19.2.6文件系统层 556

19.2.7实用公交车语音报站器系统实现 559

附录A ATmega16熔丝位汇总 562

附录B AVR-51多功能实验开发板电原理图 571

附录C 本书共享资料内容简介 574

附录D 自制USBISP下载线 575

D.1问题的提出 575

D.2自制USB下载线 576

参考文献 578

相关图书
作者其它书籍
返回顶部