第1章 单片机原理概述及C编程语言 1
1.1 AVR单片机概述 1
1.2 初步认识AVR单片机 3
1.3 ATmega16单片机最小系统 6
1.4 原理图和实物图 9
1.5 C语言概述 10
1.5.1 常量与变量 11
1.5.2 数据类型 13
1.5.3 C语言的数组、指针与结构 14
1.5.4 对绝对地址进行访问 16
1.6 C的运算符和表达式 16
1.7 常用的I/O相关寄存器及操作 20
1.7.1 常用的I/O相关寄存器 20
1.7.2 I/O端口常用操作 22
1.8 C语言的程序结构 22
1.8.1 顺序结构 23
1.8.2 选择结构 23
1.8.3 循环结构 24
1.9 C语言的函数 25
1.9.1 中断服务函数 26
1.9.2 AVR头文件与库函数 28
1.9.3 使用ICCAVR编译器的注意事项 28
1.10 AVR单片机常用C语句解析 29
1.11 把51单片机C语言转换成AVR的C语言 31
1.12 ICCAVR编译软件使用 34
1.13 自制头文件方法 38
1.14 AVR单片机熔丝位简介 41
第2章 单片机输出电路设计 47
2.1 单片机控制系统设计概述 47
2.2 数码管设计 48
2.3 液晶1602的显示 55
2.4 液晶12864的显示 70
2.4.1 液晶12864并行显示 70
2.4.2 液晶12864串行设计 76
2.5 LED点阵的显示 82
第3章 单片机输入电路设计 99
3.1 键盘的输入电路 99
3.2 基于单片机的简易计算器设计 100
3.3 带函数和小数点的计算器设计 107
3.4 基于单片机的电子密码锁设计 120
3.5 基于单片机的步进电机控制系统设计 129
3.6 基于单片机的温度检测控制系统设计 139
3.7 基于单片机的电子秤设计 150
第4章 定时/计数器和中断系统设计 163
4.1 定时/计数器概述 163
4.2 定时器计数器0的工作模式 166
4.3 外部中断的概述 171
4.4 基于单片机的秒表设计 175
4.5 基于单片机的红外遥控设计 183
4.6 超声波测距系统设计 190
4.7 定时器/计数器1 198
4.8 定时器计数器1的工作模式 206
4.9 基于单片机的直流电机控制系统设计 213
第5章 串行通信 222
5.1 串行通信概述 222
5.2 USART相关寄存器 226
5.3 串行通信协议 231
5.4 基于单片机的串行通信系统设计 233
第6章 TWI接口的应用 243
6.1 TWI通信协议概述 243
6.2 TWI模块综述 245
6.3 TWI寄存器说明 246
6.4 基于单片机的TWI控制——断电密码锁设计 256
6.4.1 AT24C02芯片简介 256
6.4.2 具有断电保护的电子密码锁设计 260
第7章 同步串行SPI接口 271
7.1 同步串行SPI接口概述 271
7.2 SPI相关寄存器 272
7.3 SPI通信设计举例——无线模块通信设计 275
第8章 AD转换器 291
8.1 概述 291
8.2 ADC相关寄存器设置 292
8.3 应用实例 296
第9章 单片机综合系统设计 302
9.1 两路温度检测系统设计 302
9.2 基于单片机的红外遥控直流电机调速系统设计 311
9.3 用VB语言编写串行助手进行电压监测及报警系统设计 320
9.4 基于单片机的门禁控制系统设计 331
9.5 基于单片机的闭环直流电机控制系统设计 336
参考文献 343