第1篇 AVR单片机基础知识 3
第1章 AVR单片机的硬件结构 3
1.1 AVR单片机简介 3
1.2 ATmega 16单片机的特点 4
1.3 ATmega 16单片机的引脚配置 5
1.4 ATmega 16单片机的中央处理器 7
1.5 ATmega 16单片机的存储器组织 9
1.6 ATmega 16单片机的系统控制 12
1.7 实例小结 17
第2章 ATmega 16单片机的工作原理 19
2.1 ATmega 16单片机的I/O端口 19
2.1.1 I/O端口的工作原理 19
2.1.2 I/O端口相关的寄存器 20
2.2 ATmega 16单片机的定时/计数器0 23
2.2.1 T/C0的工作原理 23
2.2.2 T/C0相关的寄存器 25
2.3 ATmega 16单片机的定时/计数器1 28
2.3.1 T/C1的工作原理 28
2.3.2 T/C1相关的寄存器 31
2.4 ATmega 16单片机的定时/计数器2 36
2.4.1 T/C2的工作原理 36
2.4.2 T/C2相关的寄存器 38
2.5 ATmega 16单片机的EEPROM存储器 41
2.5.1 EEPROM存储器概述 41
2.5.2 EEPROM存储器相关的寄存器 42
2.6 ATmega 16单片机的模拟比较器 43
2.6.1 模拟比较器的结构及工作原理 43
2.6.2 模拟比较器相关的寄存器 44
2.7 ATmega 16单片机的A/D转换器 45
2.7.1 A/D转换器的工作原理 45
2.7.2 A/D转换器相关的寄存器 47
2.8 ATmega 16单片机的TWI接口 51
2.8.1 TWI接口的工作原理 51
2.8.2 TWI接口相关的寄存器 53
2.9 ATmega 16单片机的看门狗定时器 56
2.9.1 看门狗工作原理 56
2.9.2 看门狗定时器相关的寄存器 56
2.10 ATmega 16单片机的中断系统 57
2.10.1 ATmega 16单片机的中断系统 57
2.10.2 中断相关寄存器 59
2.11 实例小结 61
第3章 集成开发环境ICC AVR 63
3.1 集成开发环境ICC AVR简介 63
3.2 ICC AVR的安装和注册 63
3.2.1 安装ICC AVR 64
3.2.2 注册ICC AVR 64
3.3 ICC AVR的IDE环境 65
3.3.1 菜单栏 66
3.3.2 工具栏 68
3.3.3 编辑区 69
3.3.4 编译区 69
3.3.5 工程区 70
3.4 ICC AVR的设置 70
3.5 创建一个工程项目 73
3.6 ICC AVR的库函数 76
3.6.1 寄存器说明头文件 76
3.6.2 宏定义头文件 76
3.6.3 库函数头文件 76
3.7 ICC AVR硬件访问的C编程 80
3.7.1 ICC AVR支持的数据类型 80
3.7.2 访问程序存储器和数据存储器 81
3.7.3 位操作 81
3.7.4 访问UART 82
3.7.5 访问EEPROM 82
3.7.6 中断操作 83
3.8 实例小结 83
第4章 AVR单片机系统开发流程 85
4.1 需求分析 85
4.2 系统总体设计 86
4.2.1 设计方案描述 86
4.2.2 绘制工作总框图 87
4.2.3 总体结构设计 87
4.2.4 设计工作的筹备 87
4.3 系统硬件设计 88
4.3.1 元器件选择 88
4.3.2 电路设计 89
4.3.3 硬件电路的计算机辅助设计 90
4.3.4 单片机应用技术 92
4.3.5 硬件可靠性设计 95
4.4 系统软件设计 97
4.4.1 软件总体设计 97
4.4.2 程序设计 99
4.4.3 软件可靠性设计 100
4.5 调试与系统仿真 102
4.5.1 软件调试 102
4.5.2 系统仿真 105
4.6 AVR单片机程序下载 110
4.7 实例小结 112
第2篇 人机接口系统 115
第5章 交通灯控制系统设计 115
5.1 实例说明 115
5.2 设计思路分析 115
5.3 硬件设计 117
5.3.1 ATmega 16资源分配 117
5.3.2 电路原理图 118
5.4 软件设计 118
5.4.1 状态转换 118
5.4.2 时间显示 119
5.4.3 中断 120
5.4.4 模式转换 121
5.5 程序源代码 122
5.5.1 程序结构 122
5.5.2 程序源代码 122
5.6 实例小结 133
第6章 大屏幕LED显示系统设计 135
6.1 实例说明 135
6.2 设计思路分析 135
6.3 硬件设计 136
6.3.1 ATmega 16资源分配 136
6.3.2 电路原理图 137
6.4 软件设计 137
6.4.1 显示字模 137
6.4.2 显示控制 138
6.4.3 中断 139
6.5 程序源代码 139
6.5.1 程序结构 139
6.5.2 程序源代码 140
6.6 实例小结 149
第7章 字符型LCD显示应用设计 151
7.1 实例说明 151
7.2 设计思路分析 151
7.3 硬件设计 151
7.3.1 ATmega 16资源分配 152
7.3.2 电路原理图 152
7.3.3 主要元器件工作原理 152
7.4 软件设计 155
7.4.1 显示控制 156
7.4.2 按键侦测 156
7.4.3 中断 157
7.5 程序源代码 157
7.5.1 程序结构 157
7.5.2 程序源代码 158
7.6 实例小结 173
第8章 点阵型LCD显示应用设计 175
8.1 实例说明 175
8.2 设计思路分析 175
8.3 硬件设计 175
8.3.1 ATmega 16资源分配 176
8.3.2 电路原理图 176
8.3.3 主要元器件工作原理 176
8.4 软件设计 179
8.4.1 点阵型LCD显示原理 179
8.4.2 软件设计思路 180
8.4.3 主要程序流程图 181
8.5 程序源代码 182
8.5.1 程序结构 182
8.5.2 程序源代码 182
8.6 实例小结 202
第3篇 接口扩展与网络通信 205
第9章 I2C总线接口扩展设计 205
9.1 实例说明 205
9.2 设计思路分析 205
9.3 硬件设计 205
9.3.1 ATmega 16资源分配 205
9.3.2 电路原理图 206
9.3.3 主要元器件工作原理 206
9.4 软件设计 208
9.4.1 软件设计思路 208
9.4.2 主要程序流程 208
9.5 程序源代码 209
9.5.1 程序结构 209
9.5.2 程序源代码 210
9.6 实例小结 227
第10章 RS232通信接口应用设计 229
10.1 实例说明 229
10.2 设计思路分析 229
10.3 硬件设计 231
10.3.1 ATmega 16资源分配 231
10.3.2 电路原理图 231
10.3.3 主要元器件工作原理 232
10.4 软件设计 232
10.4.1 RS232通信协议结构 232
10.4.2 协议解析 233
10.4.3 数据格式转换 234
10.5 程序源代码 234
10.5.1 程序结构 234
10.5.2 程序源代码 235
10.6 实例小结 258
第11章 SPI总线与TLC2543接口设计 259
11.1 实例说明 259
11.2 设计思路分析 259
11.3 硬件设计 265
11.4 软件设计 266
11.5 实例小结 271
第12章 I2C总线读写外部存储器 273
12.1 实例说明 273
12.2 设计思路分析 273
12.3 硬件电路设计 278
12.4 软件设计 280
12.5 实例小结 283
第4篇 数据采集与测量系统 287
第13章 基于USB传输的数据采集系统 287
13.1 实例说明 287
13.2 系统方案与设备选型 287
13.2.1 系统方案设计 287
13.2.2 应用系统结构设计 288
13.2.3 设备选型 288
13.3 硬件设计 288
13.4 软件设计 302
13.5 实例小结 324
第14章 市电电压频率测量设计 325
14.1 实例说明 325
14.2 设计思路分析 325
14.3 硬件设计 326
14.3.1 ATmega 16资源分配 326
14.3.2 电路原理图 326
14.3.3 主要电路单元 327
14.4 软件设计 327
14.4.1 采样参数计算 327
14.4.2 主要程序流程 328
14.5 程序源代码 329
14.5.1 程序结构 329
14.5.2 程序源代码 330
14.6 实例小结 337
第5篇 综合应用系统 341
第15章 多任务模拟系统设计 341
15.1 实例说明 341
15.2 设计思路分析 341
15.3 硬件设计 342
15.3.1 ATmega 16资源分配 342
15.3.2 电路原理图 342
15.4 软件设计 343
15.4.1 内核设计 343
15.4.2 内核主要函数 344
15.4.3 任务接口 347
15.4.4 主要程序流程 348
15.5 程序源代码 349
15.5.1 程序结构 349
15.5.2 程序源代码 350
15.6 实例小结 372
第16章 LCD菜单综合系统设计 375
16.1 实例说明 375
16.2 设计思路分析 375
16.3 硬件设计 376
16.3.1 ATmega 16资源分配 376
16.3.2 电路原理图 376
16.4 软件设计 377
16.4.1 LCD显示设计 377
16.4.2 程序流程图 379
16.5 程序源代码 384
16.5.1 程序结构 384
16.5.2 程序源代码 385
16.6 实例小结 411
第17章 无线步测仪系统设计 413
17.1 实例说明 413
17.2 设计方案与设备选型 413
17.2.1 系统方案设计 413
17.2.2 应用系统结构设计 414
17.2.3 设备选型 414
17.3 硬件电路设计 415
17.3.1 加速度计电路设计 417
17.3.2 无线收发电路设计 420
17.3.3 基站电路设计 429
17.4 软件设计 430
17.4.1 软件结构设计 430
17.4.2 系统程序 432
17.5 系统集成 457
17.6 实例小结 457