第一章 ATMEL单片机简介 1
1.1 ATMEL公司的产品特点 1
1.2 AT 89系列单片机简介 2
1.2.1 89系列单片机特点 2
1.2.2 89系列单片机分类 3
1.3 AT 90系列单片机简介 5
1.4 AT91M系列单片机 7
第二章 AVR单片机系统结构 8
2.1 AVR单片机总体结构 8
2.2.1 结构概述 10
2.2 AVR 单片机中央处理器CPU 10
2.2.2 通用寄存器文件 12
2.2.3 X、Y、Z寄存器 12
2.2.4 ALU运算逻辑单元 13
2.3 AVR单片机存储器组织 13
2.3.1 可下载的Flash程序存储器 13
2.3.2内部和外部的SRAM数据存储器 13
2.3.3 EEPROM数据存储器 14
2.3.4 存储器访问和指令执行时序 14
2.3.5 I/O存储器 16
2.4 AVR单片机系统复位 18
2.4.1 复位源 19
2.4.3 外部复位 20
2.4.2 加电复位 20
2.4.4 看门狗复位 22
2.5 AVR单片机中断系统 22
2.5.1 中断处理 22
2.5.2 外部中断 25
2.5.3 中断应答时间 25
2.5.4 MCU控制寄存器MCUCR 25
2.6 AVR单片机的节电方式 26
2.6.1 休眠状态 26
2.7 AVR单片机定时器/计数器 27
2.7.1 定时器/计数器预定比例器 27
2.6.2 闲置模式 27
2.6.3 掉电模式 27
2.7.2 8位定时器/计数器0 28
2.7.3 16位定时器/计数器1 29
2.7.4 看门狗定时器 35
2.8 AVR单片机EEPROM读/写访问 36
2.9 AVR单片机串行接口 37
2.9.1 同步串行接口SPI 37
2.9.2 通用串行接口UART 41
2.10.2 模拟比较器控制和状态寄存器ACSR 47
2.10 AVR单片机模拟比较器 47
2.10.1 模拟比较器 47
2.11 AVR单片机I/O端口 48
2.11.1 端口A 48
2.11.2 端口B 50
2.11.3 端口C 55
2.11.4 端口D 56
2.12 AVR单片机存储器编程 62
2.12.1 编程存储器锁定位 62
2.12.2 熔断位 62
2.12.5 并行编程 63
2.12.4 编程Fladh和EEPROM 63
2.12.3 芯片代码 63
2.12.6 串行下载 67
2.12.7 可编程特性 69
第三章 AVR单片机指令系统 70
3.1 指令格式 70
3.1.1 汇编指令 70
3.1.2 汇编器伪指令 74
3.1.3 表达式 77
3.2 寻址方式 79
3.3.3 指令集名词 82
3.3.2 指令类型 82
3.3.1 数据操作 82
3.3 数据操作和指令类型 82
3.4 算术和逻辑指令 83
3.4.1 加法指令 83
3.4.2 减法指令 85
3.4.3 乘法指令 88
3.4.4 取反码指令 89
3.4.5 取补指令 89
3.4.6比较指令 90
3.4.7 逻辑与指令 91
3.4.8 逻辑或指令 93
3.4.9逻辑异或指令 95
3.5 转移指令 96
3.5.1 无条件转移指令 96
3.5.2 条件转移指令 98
3.6 数据传送指令 114
3.6.1直接数据传送指令 115
3.6.2间接数据传送指令 116
3.6.3 从程序存储器直接取数据指令 122
3.6.4 I/O口数据传送 122
3.6.5 堆栈操作指令 123
3.7.1 带进位逻辑操作指令 124
3.7 位指令和位测试指令 124
3.7.2 位变量传送指令 128
3.7.3 位变量修改指令 128
3.7.4 其它指令 137
第四章 AVR单片机AT90系列介绍 139
4·1 AT90S1200单片机 139
4.1.1 引脚说明 140
4.1.2 片内RC晶振器 140
5.1.3 AVR RISC微控制器CPU 140
4.1.5 看门狗定时器 144
4.1.4 定时器/计数器 144
4.1.6 EEPROM读/写访问 145
4.1.7 模拟比较器 145
4.1.8 I/O口 145
4.2 AT90S2313单片机 146
4.2.1 引脚说明 147
4.2.2 AVR RISC微控制器CPU 147
4.2.3 定时器/计数器 151
4.2.4 看门狗定时器 152
4.2.5 EEPROM读/写访问 152
4.2.6 通用串行接口UART 152
4.2.8 I/O口 153
4.2.7 模拟比较器 153
4.3 AT90S4414单片机 154
4.3.1 引脚说明 155
4.3.2 AVR RISC微控制器CUP 156
4.3.3 定时器/计数器 160
4.3.4 看门狗定时器 161
4.3.5 EEPROM读/写访问 161
4.3.6 串行外设接口SPI 161
4.3.7 通用串行接口UART 161
4.3.8 模拟比较器 161
4.3.9 I/O口 161
4.4 AT90S2323单片机 163
4.4.1 引脚说明 164
4.4.2 AVR RISC微控制器CPU 164
4.4.3 定时器/计数器 167
4.4.4 看门狗定时器 167
4.4.5 EEPROM读/写访问 167
4.4.6 I/O口 167
4.5 AT90S8515单片机 168
4.5.1 概述 168
4.5.2 引脚说明 168
4.6 AT90SMEG103单片机 169
4.6.1 引脚说明 171
4.6.2 AVR RISC微控制器CPU 172
4.6.3 定时器/计数器 183
4.6.4 看门狗定时器 188
4.6.5 EEPROM读/写访问 188
4.6.6 串行外设接口SPI 189
4.6.7 通用串行接口UART 190
4.6.8 模拟比较器 191
4.6.9 I/O口 194
5.1.1 程序设计步骤 198
5.1.2 程序设计技术 198
5.1 程序设计方法 198
第五章 实用程序设计 198
5.2 应用程序举例 199
5.2.1 内部寄存器和位定义文件 199
5.2.2 访问内部EEPROM 206
5.2.3 数据块传送 209
5.2.4 乘法和除法运算应用一 211
5.2.5 乘法和除法运算应用二 218
5.2.6 16位运算 229
5.2.7 BCD运算 232
5.2.8 冒泡分类算法 238
5.2.9 设置和使用模拟比较器 240
5.2.10 8点平均滤波 242
5.2.11 半双工中断方式UART应用一 244
5.2.12 半双工中断方式UART应用二 249
5.2.13 8位精度A/D转换 251
第六章 AVR单片机的应用 257
6.1 廉价的A/D转换器 257
6.2 用AVR单片机控制FPGA配置 259
6.3 串行EPROM接口方法 263
6.4 电冰箱控制器 265
第七章 开发工具 268
7.1 AVR Studio调试工具 268
7.1.1 AVR Studio工具的安装 268
7.1.2 AVR Studio窗口 269
7.1.3 AVR Studio命令 275
7.1.4 执行对象 278
7.2 AVR汇编器 280
7.2.1 编译器快速启动家庭教师 281
7.2.2 Microsoft窗口特性 282
7.3 AVR串行下载板 286
附录A 指令集综合 288
附录B 寄存器综合 291
附录C 包装 297
参考文献 299
ATMEL公司的产品目录 300