您现在的位置:首页 > 知识库 > 电子信息 >AVR单片机嵌入式系统原理与应用实践
AVR单片机嵌入式系统原理与应用实践

AVR单片机嵌入式系统原理与应用实践

资料大小: 7.75 MB
文档格式: PDF文档
资料语言: 简体中文
资料类别: 电子信息
更新日期: 2020-03-17
下载说明:
推荐信息: 原理   应用   实践   系统   单片机

本地下载(5点)  备用下载(5点)

内容简介
AVR单片机嵌入式系统原理与应用实践

作 者: 马潮 编著
出版时间: 2007

内容简介
  本书以ATMEL公司AVR单片机ATmegal6为蓝本,由浅人深,软硬结合,全面系统地介绍基于单片机的嵌入式系统的原理与结构,开发环境与工具,各种接口与功能单元应用的硬件设计思想和软件编写方法。 本书以夯实基础,面向应用,理论与实践、方法与实现紧密结合为主线展开,根据AVR的运行速度快,资源丰富,功能强大,以串行扩展为主等显著特点,采用C语言作为系统软件开发平台,以由简到繁、循序渐进、螺旋式上升的方式进行编排。在讲解原理和设计方法的同时,还穿插介绍相关的经验、技巧与注意事项,有很强的实用性和指导性。各章还配有问题思考、实践练习及相关参考文献和资料,供课后复习、实践、开拓知识面及进一步深入研究、提高用。 本书附带光盘收录了书中所有例程源代码、芯片技术资料、相关技术规范和协议,以及大量参考文献和应用设计参考。书中还介绍了适合初、中级水乎学习人员使用,具有模块独立化、简单、开放、灵活等特点的“AVR-51多功能实验开发板”,既配合本书的教学实践,又适用于产品的前期开发。 本书可作为高等院校电子、自动化、仪器仪表和计算机等相关专业基于单片机的嵌入式系统课程的教材,也可作为AVR单片机的培训教材,供相关技术人员学习和参考。

第1篇 基础与入门
第1章 单片机嵌入式系统概述
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单片机的基本结构
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 ATmage16的外部引脚与封装27
2.3 ATmega16单片机的内部结构29
2.3.1 中央处理器CPU29
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 Atm ega16单片机的工作状态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的指令与汇编系统
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 堆栈操作指令86
3.5 位操作和位测试指令87
3.5.1 带进位逻辑操作指令87
3.5.2 位变量传送指令88
3.5.3 位变量修改指令88
3.6 MCU控制指令91
3.7 AVR汇编语言系统92
3.7.1 汇编语言语句格式93
3.7.2 汇编器伪指令93
3.7.3 表达式98
3.7.4 器件定义头文件m16def.inc100
第4章 AVR单片机的系统设计与开发工具
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.3 自制ISP下载电缆124
4.4 AVR开发环境的建立127
4.4.1 AVR研发型开发环境127
4.4.2 AVR学习型实验开发环境127
思考与练习128
第5章 实战练习(一)
5.1 秒节拍显示器系统的设计129
5.1.1 秒节拍显示器硬件设计129
5.1.2 秒节拍显示器软件设计思路131
5.1.3 秒节拍显示器汇编源程序131
5.1.4 通用延时子程序分析132
5.2 AVR Studio汇编语言集成开发环境的使用133
5.2.1 AVR Studio和其他辅助工具的安装134
5.2.2 系统工程文件与AVR汇编源程序文件的建立、编译134
5.2.3 使用软件模拟仿真调试程序138
5.3 CVAVR+AVR Studio——高级语言集成开发环境的使用142
5.3.1 秒节拍显示器的高级C语言源程序142
5.3.2 系统工程文件与源程序文件的建立、编译143
5.3.3 在CVAVR中使用AVR Studio进行软件模拟仿真调试程序146
5.4 AVR熔丝位的设置和执行代码下载147
5.4.1 AVR51多功能板的硬件连接148
5.4.2 AVR熔丝位的配置148
5.4.3 执行代码文件的下载151
5.5 一个比较复杂的AVR汇编语言实例153
5.5.1 系统功能与硬件设计153
5.5.2 AVR汇编源代码154
思考与练习162
第2篇 基本功能单元的应用
第6章 通用I/O接口的基本结构与输出应用
6.1 通用I/O接口的基本结构与特性164
6.1.1 I/O接口的基本结构164
6.1.2 I/O接口寄存器167
6.1.3 通用数字I/O接口的设置与编程168
6.2 通用I/O接口的输出应用171
6.2.1 通用I/O接口的输出设计要点171
6.2.2 LED发光二极管的控制171
6.2.3 继电器控制174
6.2.4 步进电机控制175
6.3 LED数码显示器的应用177
6.3.1 单个LED数码管控制177
6.3.2 多位LED数码管显示180
6.3.3 点阵LED显示控制188
6.4 LCD液晶显示器的应用190
6.4.1 LCD的特点与分类191
6.4.2 通用点阵字符LCD显示器的应用191
思考与练习197
第7章 中断系统与基本应用
7.1 中断的基本概念198
7.1.1 中断处理过程198
7.1.2 中断源、中断信号和中断向量199
7.1.3 中断优先级和中断嵌套200
7.1.4 中断响应条件与中断控制201
7.2 Atmega16的中断系统203
7.2.1 ATmega16的中断源和中断向量203
7.2.2 ATmega16的中断控制205
7.2.3 AVR的中断响应过程207
7.3 中断服务程序的编写209
7.3.1 汇编语言AVR中断程序的编写209
7.3.2 CodeVision中断程序的编写214
7.4 ATmega16的外部中断217
7.4.1 外部中断的触发方式和特点217
7.4.2 与外部中断相关的寄存器和标志位218
7.5 外部中断应用实例221
思考与练习232
第8章 定时/计数器的结构与应用
8.1 定时/计数器的结构233
8.1.1 8位定时/计数器T/C0的结构234
8.1.2 8位T/C0的工作模式242
8.1.3 8位T/C0的计数工作时序246
8.2 8位定时/计数器T/C0的应用248
8.2.1 外部事件计数器248
8.2.2 定时器应用设计253
8.3 PWM脉宽调制波的产生和应用258
8.3.1 PWM脉宽调制波258
8.3.2 基于比较匹配输出的脉冲宽度调制PWM260
8.4 16位定时/计数器T/C1的应用263
8.4.1 16位T/C1增强功能介绍264
8.4.2 16位T/C1应用示例267
思考与练习272
第9章 键盘输入接口与状态机设计
9.1 通用I/O数字输入接口设计273
9.1.1 I/O输入接口硬件设计要点273
9.1.2 I/O输入接口软件设计要点275
9.2 基于状态机的按键输入接口设计276
9.2.1 简单的按键输入硬件接口与分析276
9.2.2 基于状态机的按键输入软件接口设计278
9.3 矩阵键盘输入接口设计291
9.3.1 矩阵键盘的工作原理和扫描确认方式292
9.3.2 定时扫描方式的键盘接口程序293
思考与练习301
第10章 模拟比较器和ADC接口
10.1 模拟比较器302
10.1.1 与模拟比较器相关的寄存器和标志位302
10.1.2 模拟比较器的应用设计305
10.2 模/数转换器ADC306
10.2.1 10位ADC结构307
10.2.2 与ADC相关的I/O寄存器309
10.2.3 ADC应用设计要点313
10.2.4 ADC的应用设计315
10.2.5 ADC应用设计的深入讨论318
思考与练习321
第11章 实践练习(二)
11.1 频率测量和简单频率计的设计与实现322
11.1.1 频率测量原理322
11.1.2 测频法测量频率323
11.1.3 测周法测量频率326
11.1.4 频率测量小结330
11.2 基于T/C1捕捉功能实现高精度的周期测量330
11.3 带校时和音乐报时功能时钟的设计与实现338
思考与练习344
第3篇 串行接口与通信
第12章 串行数据接口概述
12.1 串行接口与串行通信基础知识348
12.1.1 并行传输348
12.1.2 串行传输349
12.1.3 常见的串行传输和通信接口350
12.2 数字I/O口的串行扩展351
12.2.1 串行扩展并行输出口352
12.2.2 串行扩展并行输入口355
12.2.3 数字I/O口串行扩展设计要点357
思考与练习357
第13章 异步通信与USART接口基础
13.1 异步传输的基本概念359
13.1.1 异步传输的字符数据帧格式359
13.1.2 异步通信361
13.2 AVR的异步传输接口USART362
13.2.1 概述363
13.2.2 串行时钟发生器364
13.2.3 数据帧格式366
13.2.4 USART寄存器367
13.2.5 串行通信波特率的设置与偏差372
13.3 USART的基本操作375
13.3.1 USART的初始化375
13.3.2 数据发送376
13.3.3 数据接收379
13.4 基于USART接口基本通信的实现与测试382
13.4.1 USART的数据发送和接收382
13.4.2 RS232C总线标准介绍386
13.4.3 AVR系统的RS232C传输接口的实现与测试388
13.4.4 异步通信中易产生的问题与AVR系统时钟的选择394
13.5 AVR USART接口特性的进一步说明394
13.5.1 使用独立的高精度波特率发生器394
13.5.2 数据接收采用3级接收缓冲器结构395
13.5.3 硬件自动处理校验位及错误检测395
13.5.4 USART数据接收的硬件扫描检测和接收时序395
思考与练习397
第14章 USART实用设计基础
14.1 异步通信接口应用设计要点399
14.1.1 接口的硬件设计399
14.1.2 上层应用通信协议和规范的制定401
14.1.3 典型USART底层驱动+中间层软件结构示例402
14.2 一个USART应用的完整示例407
14.2.1 硬件系统构成407
14.2.2 通信协议的制定408
14.2.3 下位机系统程序409
14.2.4 测试和上位机程序413
14.3 基于异步通信接口实现多机通信414
14.3.1 多机通信实现原理414
14.3.2 多机通信实现方式一415
14.3.3 多机通信的通用实现方式417
思考与练习422
第15章 串行SPI接口应用
15.1 SPI串行总线介绍424
15.1.1 SPI总线的组成424
15.1.2 SPI通信的工作模式和时序425
15.1.3 多机SPI通信427
15.2 AVR的SPI接口原理与使用428
15.2.1 SPI接口的结构和功能428
15.2.2 与SPI相关的寄存器431
15.2.3 SPI接口的设计应用要点433
15.3 SPI接口应用实例435
15.3.1 SPI接口基本方式的应用435
15.3.2 典型SPI底层驱动+中间层软件结构示例443
思考与练习445
第16章 串行TWI(I2C)接口应用
16.1 I2C串行总线介绍447
16.1.1 I2C总线结构和基本特性447
16.1.2 I2C总线时序与数据传输448
16.1.3 I2C总线寻址与通信过程450
16.2 AVR的TWI(I2C)接口与使用452
16.2.1 TWI模块概述452
16.2.2 TWI寄存器454
16.2.3 使用TWI总线458
16.2.4 TWI(I2C)接口设计应用要点466
16.3 TWI接口应用实例467
16.3.1 24C256的结构特点468
16.3.2 AVR读/写24C256应用设计471
16.4 专用键盘/LED驱动器ZLG7290的应用485
16.4.1 ZLG7290简介485
16.4.2 AVR与ZLG7290的连接486
思考与练习488
第4篇 进入实战
第17章 AVR片内资源应用补遗
17.1 AVR熔丝位的功能与配置491
17.1.1 AVR熔丝位的正确配置492
17.1.2 ATmega16中重要熔丝位的配置493
17.1.3 JTAG口的使用与配置494
17.1.4 提高系统可靠性的熔丝位配置496
17.1.5 片内WDT的应用497
17.2 片内EEPROM的应用501
17.2.1 EEPROM的读/写访问操作501
17.2.2 寄存器描述502
17.2.3 简单的读/写EEPROM例程504
17.2.4 高级语言开发环境中使用EEPROM506
17.3 外部并行扩展接口507
17.3.1 关于单片机嵌入式系统的并行接口扩展问题的讨论507
17.3.2 AVR的并行接口扩展509
17.4 AVR中断应用设计要点511
17.4.1 AVR中断设计注意点511
17.4.2 AVR的中断优先级与中断嵌套处理512
17.4.3 高级语言开发环境中的中断服务程序的编写513
17.5 AVR实战应用要点513
第18章 迎奥运倒计时时钟设计实例
18.1 系统功能分析517
18.2 应用系统设计518
18.2.1 系统方案设计518
18.2.2 应用系统结构设计518
18.2.3 系统面板设计519
18.2.4 DS1302介绍520
18.3 控制系统的硬件设计523
18.4 控制系统软件设计要点524
附录A ATmega16熔丝位汇总528
附录B AVR51多功能实验开发板电原理图537
附录C 本书所附光盘内容简介540
附录D 自制USBISP下载线
D.1 问题的提出541
D.2 自制USB下载线542
参考文献544