第1章 AVR单片机系统 1.1 概述 1.1.1 低开发成本 1.1.2 安全、高速、低功耗的性能 1.1.3 A/D转换功能 1.1.4 具有较强驱动能力的I/O口 1.1.5 精简指令集 1.1.6 其他功能 1.2 AVR系列单片机的选型 1.2.1 ATtiny系列单片机特点 1.2.2 AT90S系列单片机特点 1.2.3 ATmega系列单片机特点 1.3 AVR系列单片机的开发步骤 1.3.1 设计硬件电路 1.3.2 用C语言编写程序 1.3.3 程序调试 1.3.4 搭建实验电路板 1.3.5 程序下载 第2章 AVR单片机系统结构 2.1 AVR单片机结构 2.2 AVR存储器 2.2.1 系统内可编程的Flash程序存储器 2.2.2 SRAM数据存储器 2.2.3 E2PROM数据存储器 2.2.4 I/O存储器 2.2.5 外部存储器接口 2.3 时钟管理 2.3.1 时钟系统及其分布 2.3.2 时钟源 2.3.3 默认时钟源 2.3.4 晶体振荡器 2.3.5 外部RC振荡器 2.3.6 标定的片内RC振荡器 2.3.7 外部时钟 2.4 电源管理及睡眠模式 2.4.1 MCU控制寄存器(MCUCR) 2.4.2 空闲模式 2.4.3 ADC噪声抑制模式 2.4.4 掉电模式 2.4.5 省电模式 2.4.6 Standby模式 2.4.7 扩展Standby模式 2.4.8 最小化功耗 2.5 系统控制和复位 2.5.1 复位AVR 2.5.2 复位源 2.5.3 上电复位 2.5.4 外部复位 2.5.5 掉电检测复位 2.5.6 看门狗复位 2.5.7 MCU控制和状态寄存器 2.5.8 片内基准电压 2.5.9 看门狗定时器 2.5.10 改变看门狗定时器配置的时间序列 第3章 AVR单片机指令系统 3.1 指令格式 3.1.1 汇编指令 3.1.2 汇编器伪指令 3.1.3 表达式 3.2 寻址方式 3.3 数据操作和指令类型 3.3.1 数据操作 3.3.2 指令类型 3.3.3 指令集名词 3.4 算术和逻辑指令 3.4.1 加法指令 3.4.2 减法指令 3.4.3 乘法指令 3.4.4 取反码指令 3.4.5 取补指令 3.4.6 比较指令 3.4.7 逻辑与指令 3.4.8 逻辑或指令 3.4.9 逻辑异或指令 3.5 转移指令 3.5.1 无条件转移指令 3.5.2 条件转移指令 3.6 数据传送指令 3.6.1 直接数据传送指令 3.6.2 间接数据传送指令 3.6.3 从程序存储器直接取数据指令 3.6.4 I/O口数据传送 3.6.5 堆栈操作指令 3.7 位指令和位测试指令 3.7.1 带进位逻辑操作指令 3.7.2 位变量传送指令 3.7.3 位变量修改指令 3.7.4 其他指令 3.8 新增指令 3.8.1 EICALL——延长间接调用子程序 3.8.2 EIJMP——扩展间接跳转 3.8.3 ELPM——扩展装载程序存储器 3.8.4 ESPM——扩展存储程序存储器 3.8.5 FMUL——小数乘法 3.8.6 FMULS——有符号数乘法 3.8.7 FMULSU——有符号小数和无符号小数乘法 3.8.8 MOVW——拷贝寄存器字 3.8.9 MULS——有符号数乘法 3.8.10 MULSU——有符号数与无符号数乘法 3.8.11 SPM——存储程序存储器 3.9 指令使用实例 第4章 ICCAVR语法基础 4.1 ICCAVR标识符 4.1.1 ICCAVR标识符的构成规则 4.1.2 ICCAVR的关键字 4.2 数据类型 4.2.1 变量与常量 4.2.2 整型(int)数据 4.2.3 浮点型(float)数据 4.2.4 字符型(char)数据 4.2.5 指针型(*)数据 4.2.6 无值型(void)数据 4.3 变量的作用域 4.3.1 块结构 4.3.2 自动型变量 4.3.3 外部型变量 4.3.4 静态型变量 4.3.5 寄存器型变量 4.4 const修饰符 4.5 ICCAVR的分隔符 4.6 运算符 4.6.1 运算符的分类 4.6.2 运算符的优先级 4.7 表达式 4.7.1 算术表达式 4.7.2 赋值表达式 4.7.3 逗号运算符与逗号表达式 4.7.4 关系表达式 4.7.5 逻辑表达式 4.8 访问寄存器 4.9 语句 4.9.1 说明语句 4.9.2 表达式语句 4.9.3 复合语句 4.9.4 条件语句 4.9.5 开关与跳转语句 4.9.6 循环语句 4.9.7 函数调用语句 4.9.8 空语句 4.9.9 ICCAVR语句的流程与控制 4.9.10 逐步求精的设计方法 4.10 函数 4.10.1 函数的调用和返回 4.10.2 函数的作用域 4.10.3 函数的变量作用域 4.10.4 main函数 4.10.5 ICCAVR中断函数 4.11 ICCAVR库函数 第5章 复位系统及睡眠模式 5.1 系统控制和复位 5.1.1 复位AVR 5.1.2 复位源 5.1.3 上电复位 5.1.4 外部复位 5.1.5 掉电检测复位 5.1.6 看门狗复位 5.1.7 MCU控制和状态寄存器MCUCSR 5.1.8 片内基准电压 5.1.9 看门狗定时器 5.1.10 改变看门狗定时器配置的时间序列 5.2 睡眠模式 5.2.1 MCU控制寄存器包含了电源管理的控制位 5.2.2 空闲模式 5.2.3 ADC噪声抑制模式 5.2.4 掉电模式 5.2.5 省电模式 5.2.6 Standby模式 5.2.7 扩展Standby模式 5.2.8 最小化功耗 第6章 AVR中断系统 6.1 复位与中断处理 6.1.1 中断类型 6.1.2 中断处理 6.1.3 中断响应时间 6.2 中断向量 6.3 外部中断 6.3.1 外部中断控制寄存器A(EICRA) 6.3.2 外部中断控制寄存器B(EICRB) 6.3.3 外部中断屏蔽寄存器(EIMSK) 6.3.4 外部中断标志寄存器(EIFR) 第7章 调试工具 7.1 AVR单片机的编译 7.1.1 AVR Assembler编译文件的安装与打开 7.1.2 AVR单片机汇编语言源程序实例 7.1.3 源文件说明 7.1.4 AVR汇编器 7.2 模拟调试窗口 7.2.1 安装AVR Studio调试工具 7.2.2 设置器件配置文件 7.2.3 AVR Studio调试窗口下拉菜单 7.2.4 AVR Studio窗口 7.2.5 AVR Studio命令 第8章 接口技术 8.1 JTAG接口和片上调试系统OCD 8.1.1 测试访问端口TAP 8.1.2 TAP控制器 8.1.3 使用片上调试系统 8.1.4 片上调试专用的JTAG指令 8.1.5 I/O存储器里与片上调试相关的寄存器 8.1.6 利用JTAG的可编程能力 8.2 使用边界扫描链 8.2.1 数据寄存器 8.2.2 用于边界扫描的JTAG指令 8.3 AVR单片机串行接口 8.3.1 同步串行接口SPI 8.3.2 通用串行接口UART 8.4&nb