第1章 概述 1
1.1 采用C语言编程的意义 2
1.2 C语言具有的突出优点 2
1.3 AVR单片机的C编译器简介 4
第2章 AVR单片机的主要特性及开发工具 5
2.1 AVR单片机简介及主要特性 5
2.2 学习开发AVR单片机用到的实验工具及器材 6
第3章 AVR单片机开发软件的安装及初步使用 12
3.1 ICCAVR6.31AC语言编译器安装 12
3.2 AVR Studio集成开发环境安装 16
3.3 PonyProg2000下载软件安装 17
3.4 创建AVR入门程序 17
第4章 AVR DEMO单片机综合试验板原理介绍及使用 33
4.1 AVR.DEMO单片机综合试验板 33
4.2 ATmega16(L)单片机的主要特点与内部组成 35
4.3 使用JTAG ICE仿真器调试AVR DEMO单片机综合试验板 38
第5章 自制JTAG仿真器及并口下载器 41
5.1 JTAG的由来及简介 41
5.2 传统的在线仿真器与JTAG接口的片内调试系统的区别 42
5.3 AVR JTAG ICE仿真时的一些注意事项 43
5.4 AVR JTAG ICE的特点 44
5.5 自制AVR JTAGICE 44
5.6 自制并口下载器 54
第6章 ICC AVR使用的C语言基础知识 56
6.1 C语言的标识符与关键字 56
6.2 数据类型 58
6.3 AVR单片机的存储空间 59
6.4 常量、变量及存储方式 59
6.5 数组 59
6.6 C语言的运算 63
6.7 流程控制 67
6.8 函数 72
6.9 指针 75
6.10 结构体 79
6.11 共用体 84
6.12 中断函数 86
第7章 AVR单片机内部资源的C编程——ATmega16(L)的IO端口特点及使用 88
7.1 ATmega16(L)的IO端口 88
7.2 ATmega16(L)的I/O端口使用注意事项 90
7.3 ATmega16(L)的I/O端口编程实践 90
第8章 AVR单片机内部资源的C编程——ATmega16(L)的中断系统特点及使用 97
8.1 ATmega16(L)的中断系统 97
8.2 ATmega16(L)的外部中断编程实践 98
第9章 AVR单片机内部资源的C编程——ATmega16(L)的定时计数器 106
9.1 ATmega16(L)的定时/计数器 106
9.2 ATmega16(L)定时/计数器的时钟选择 106
9.3 计数器的事件 107
9.4 定时/计数器事件的处理 108
9.5 ATmega16(L)的定时/计数器编程实践 108
第10章 AVR单片机内部资源的C编程——ATmega16(L)的模数转换器 114
10.1 ATmega16(L)的模/数转换器 114
10.2 模/数转换器相关寄存器 114
10.3 模/数转换器的使用 116
10.4 ATmega16(L)的模/数转换器编程实践 116
第11章 AVR单片机内部资源的C编程——ATmega16(L)的内部E2PROM读写 123
11.1 ATmega16(L)的内部E2PROM 123
11.2 与E2PROM相关的寄存器 123
11.3 ATmega16(L)内部E2PROM编程实践 125
第12章 AVR单片机内部资源的C编程——利用ATmega16(L)的PWM功能实现数模输出 134
12.1 ATmega16(L)的定时/计数器的特性及数/模输出实现 134
12.2 ATmega16(L)的PWM编程实践 134
第13章 AVR单片机内部资源的C编程——ATmega16(L)与PC机的串行通信 139
13.1 通用串行接口USART的主要特征 139
13.2 USART的主要寄存器及设置 139
13.3 ATmega16(L)与PC机的串行通信编程实践 143
第14章 ATmega16(L)驱动16×2点阵字符液晶模块 151
14.1 16×2点阵字符液晶显示器概述 151
14.2 液晶显示器的突出优点 152
14.3 16×2字符型液晶显示模块(LCM)特性 152
14.4 16×2字符型液晶显示模块(LCM)引脚及功能 152
14.5 16×2字符型液晶显示模块(LCM)的内部结构 153
14.6 液晶显示控制驱动集成电路HD44780特点 153
14.7 HD44780工作原理 155
14.8 LCD控制器的指令 159
14.9 LCM工作时序 161
14.10 ATmega16(L)驱动16×2点阵字符液晶模块的子程序 162
14.11 在AVR单片机综合试验板上实现16×2LCM演示程序1 164
14.12 在AVR单片机综合试验板上实现16×2LCM演示程序2 168
第15章 ATmega16(L)驱动I2C串行接口器件24C01的编程 172
15.1 E2PROM AT24CXX的性能特点 172
15.2 AT24CXX引脚定义 172
15.3 AT24CXX系列存储器特点 173
15.4 AT24CXX系列E2PROM的内部结构 173
15.5 AT24CXX系列E2PROM芯片的寻址 174
15.6 写操作方式 176
15.7 读操作方式 177
15.8 读写AT24C01的相关功能子程序 178
15.9 在AVR单片机综合试验板上完成AT24C01A的读写实验 181
第16章 ATmega16(L)驱动128×64点阵图形液晶模块 214
16.1 128×64点阵图形液晶模块特性 214
16.2 128×64点阵图形液晶模块引脚及功能 215
16.3 128×64点阵图形液晶模块的内部结构 216
16.4 HD61203特点 218
16.5 HD61202特点 218
16.6 HD61202工作原理 219
16.7 HD61202的工作过程 223
16.8 点阵图形液晶模块的控制器指令 224
16.9 HD61202的操作时序图 225
16.10 ATmega16(L)驱动128×64点阵图形液晶模块的子程序 227
16.11 在AVR单片机综合试验板上实现128×64LCM演示程序 230
第17章 ATmega16(L)的系统控制、复位和看门狗定时器使用 239
17.1 ATmega16(L)的系统控制和复位 239
17.2 ATmega16(L)的复位源 240
17.3 看门狗定时器的使用 242
17.4 在AVRDEMO单片机综合试验板上,进行看门狗实验1(看门狗启动后在程序中定时清除它):D1~D8的8个LED(发光管)依次流水点亮,形成“流水灯”实验 242
17.5 在AVR DEMO单片机综合试验板上,进行看门狗实验2(看门狗启动后在程序中不再清除它,模拟程序失控的情况):D1~D8的8个LED(发光管)依次流水点亮,形成“流水灯”实验 244
第18章 ATmega16(L)应用实例1——风机测试仪 247
18.1 系统功能描述 247
18.2 系统方案及电路设计 247
18.3 测试类型、参数范围及测试过程 250
18.4 程序设计 251
18.5 调试及应用 266
第19章 ATmega16(L)应用实例2——红外线转速仪 267
19.1 转速仪表的分类 267
19.2 转速传感器 268
19.3 转速测量的方法 268
19.4 红外线转速仪系统功能描述 268
19.5 系统方案及电路设计 269
19.6 程序设计 271
19.7 调试及应用 278
第20章 ATmega16(L)应用实例3——红外线感应自动移门 279
20.1 红外线感应自动移门的组成及基本工作原理 279
20.2 系统方案设计 280
20.3 电路设计 280
20.4 程序设计详解 286
20.5 保养及维护 308
参考文献 309