第1章AVR单片机系统的设计与开发环境 1
1.1 ATMEL单片机简介 8
1.2 AVR单片机与C语言的关系 8
1.3 CodeVisionAVR的C语言编译器的使用 10
1.4 AVR Studio集成开发软件的使用 28
1.5 PonyProg2000下载软件的使用 33
1.6自制ISP下载线 35
第2章Proteus7.5入门 37
2.1 ProteusISIS的操作及电路原理图的设计 37
2.2 Proteus VSM虚拟系统模型 56
2.3 Proteus ARES的PCB设计 68
第3章CodeVisionAVR的C语言基础知识 77
3.1数据运算 77
3.2流程控制 92
3.3数组 103
3.4指针 107
3.5 结构体 109
3.6共用体 115
3.7函数 117
3.8编译预处理 122
第4章ATmega 16通用I/O控制 125
4.1 ATmega16的基本结构 125
4.2 ATmega16通用数字I/O端口的介绍 140
4.3 PA端口的应用 144
4.4 PB端口的应用 147
4.5闪烁灯 151
4.6 流水灯 156
4.7带按键选择的花样灯 160
4.8 控制16个发光二极管的花样灯 165
第5章ATmega16中断控制与LED数码管显示 172
5.1 ATmega16中断系统 172
5.2 LED数码管的基础知识 180
5.3 INT0的应用 182
5.4 INT1的应用 186
5.5 INT2的应用 190
5.6 INT0和INT 1中断嵌套的应用 195
5.7 INT0和INT 1控制的加减计数 199
第6章ATmega16的定时/计数控制 204
6.1 ATmega16定时/计数系统 204
6.2定时/计数器0用于定时的应用 229
6.3定时/计数器0用于计数的应用 235
6.4定时/计数器0的CTC模式应用 240
6.5定时/计数器0的快速PWM模式应用 243
6.6定时/计数器0的相位修正PWM模式应用 248
6.7定时/计数器1用于定时的应用 251
6.8定时/计数器1用于计数的应用 255
6.9定时/计数器1的CTC模式应用 260
6.10定时/计数器1的快速PWM模式应用 264
6.11定时/计数器1的相位修正PWM模式应用 269
6.12定时/计数器1的输入捕捉模式应用 274
6.13定时/计数器2用于定时的应用 278
6.14定时/计数器2用于异步计数的应用 284
6.15 定时/计数器2的CTC模式应用 289
第7章 通用串行接口 294
7.1 ATmega16通用串行接口USART 294
7.2单片机自发自收数据 306
7.3两个单片机通信(一) 311
7.4两个单片机通信(二) 316
第8章 键盘的应用 326
8.1键盘的工作原理 326
8.2查询式键盘的设计 327
8.3矩阵式键盘的设计(一) 331
8.4矩阵式键盘的设计(二) 338
8.5简单拨号键盘的设计 345
第9章ATmega16的模拟比较器和模/数转换器 355
9.1 ATmega16的模拟比较器 355
9.2 ATmega16的模/数转换器 357
9.3模拟比较器的应用 364
9.4模/数转换器的应用 368
9.5电源电压指示灯的设计 373
第10章 显示器的应用 379
10.1 LED点阵显示器的应用 379
10.2 LCD液晶显示器的应用 421
第11章 串行总线的应用 465
11.1 SPI总线的应用 465
11.2 TWI总线的应用 481
第12章 电动机控制 496
12.1步进电动机控制 496
12.2直流电动机控制 511
12.3伺服电动机控制 5528
附录A Proteus常用快捷键 543
附录B CodeVisionAVR编译器常用库函数简介 543
参考文献 544