第1章 AVR单片机C语言程序设计概述 1
1.1 AVR单片机简介 1
1.2 AVR Studio+WinAVR开发环境安装及应用 4
1.3 AVR-GCC程序设计基础 7
1.4 程序与数据内存访问 14
1.5 I/O端口编程 14
1.6 外设相关寄存器及应用 16
1.7 中断服务程序 31
1.8 GCC在AVR单片机应用系统开发中的优势 33
第2章 Proteus操作基础 35
2.1 Proteus操作界面简介 35
2.2 仿真电路原理图设计 37
2.3 元件选择 39
2.4 仿真运行 44
2.5 Proteus与AVR Studio的联合调试 45
2.6 Proteus在AVR单片机应用系统开发中的优势 46
第3章 基础程序设计 48
3.1 闪烁的LED 48
3.2 左右来回的流水灯 50
3.3 花样流水灯 52
3.4 LED模拟交通灯 54
3.5 单只数码管循环显示0~9 57
3.6 8只数码管滚动显示单个数字 59
3.7 8只数码管扫描显示多个不同字符 61
3.8 K1~K4控制LED移位 62
3.9 数码管显示4×4键盘矩阵按键 65
3.10 数码管显示拨码开关编码 68
3.11 继电器控制照明设备 70
3.12 开关控制报警器 72
3.13 按键发音 74
3.14 INT0中断计数 76
3.15 INT0与INT1中断计数 79
3.16 TIMER0控制单只LED闪烁 83
3.17 TIMER0控制流水灯 85
3.18 TIMER0控制数码管扫描显示 87
3.19 TIMER1控制交通指示灯 90
3.20 TIMER1与TIMER2控制十字路口秒计时显示屏 94
3.21 用工作于计数方式的T/C0实现100以内的脉冲或按键计数 98
3.22 用定时器设计的门铃 100
3.23 报警器与旋转灯 103
3.24 100000s以内的计时程序 106
3.25 用TIMER1输入捕获功能设计的频率计 109
3.26 用工作于异步模式的T/C2控制的可调式数码管电子钟 113
3.27 TIMER1定时器比较匹配中断控制音阶播放 117
3.28 用TIMER1输出比较功能调节频率输出 120
3.29 TIMER1控制的PWM脉宽调制器 123
3.30 数码管显示两路A/D转换结果 126
3.31 模拟比较器测试 128
3.32 EEPROM读/写与数码管显示 130
3.33 Flash程序空间中的数据访问 136
3.34 单片机与PC机双向串口通信仿真 141
3.35 看门狗应用 147
第4章 硬件应用 150
4.1 74HC138与74HC154译码器应用 150
4.2 74HC595串入并出芯片应用 153
4.3 用74LS148与74LS21扩展中断 157
4.4 62256扩展内存实验 160
4.5 用8255实现接口扩展 163
4.6 可编程接口芯片8155应用 168
4.7 可编程外围定时/计数器8253应用 173
4.8 数码管BCD解码驱动器7447与4511应用 178
4.9 8×8 LED点阵屏显示数字 181
4.10 8位数码管段位复用串行驱动芯片MAX6951应用 183
4.11 串行共阴显示驱动器MAX7219与7221应用 188
4.12 16段数码管演示 193
4.13 16键解码芯片74C922应用 196
4.14 1602 LCD字符液晶测试程序 199
4.15 1602液晶显示DS1302实时时钟 205
4.16 1602液晶工作于4位模式实时显示当前时间 211
4.17 2×20串行字符液晶演示 214
4.18 LGM12864液晶显示程序 217
4.19 PG160128A液晶图文演示 226
4.20 TG126410液晶串行模式显示 247
4.21 用带SPI接口的MCP23S17扩展16位通用I/O端口 257
4.22 用TWI接口控制MAX6953驱动4片5×7点阵显示器 262
4.23 用TWI接口控制MAX6955驱动16段数码管显示 266
4.24 用DAC0832生成多种波形 270
4.25 用带SPI接口的数/模转换芯片MAX515调节LED亮度 273
4.26 正反转可控的直流电机 276
4.27 正反转可控的步进电机 279
4.28 DS18B20温度传感器测试 282
4.29 SPI接口温度传感器TC72应用测试 293
4.30 SHT75温、湿度传感器测试 299
4.31 用SPI接口读/写AT25F1024 309
4.32 用TWI接口读/写24C04 318
4.33 MPX4250压力传感器测试 326
4.34 MMC存储卡测试 329
4.35 红外遥控发射与解码仿真 340
第5章 综合设计 348
5.1 多首电子音乐的选播 348
5.2 电子琴仿真 353
5.3 普通电话机拨号键盘应用 357
5.4 1602 LCD显示仿手机键盘按键字符 363
5.5 数码管模拟显示乘法口诀 369
5.6 用DS1302与数码管设计的可调电子钟 372
5.7 用DS1302与LGM12864设计的可调式中文电子日历 380
5.8 用PG12864LCD设计的指针式电子钟 393
5.9 高仿真数码管电子钟 401
5.10 1602 LCD显示的秒表 409
5.11 用DS18B20与MAX6951驱动数码管设计的温度报警器 413
5.12 用1602 LCD与DS18B20设计的温度报警器 421
5.13 温控电机在L298驱动下改变速度与方向运行 431
5.14 PG160128中文显示日期时间及带刻度显示当前温度 439
5.15 液晶屏曲线显示两路A/D转换结果 447
5.16 用74LS595与74LS154设计的16×16点阵屏 452
5.17 用8255与74LS154设计的16×16点阵屏 457
5.18 8×8 LED点阵屏仿电梯数字滚动显示 461
5.19 用内置EEPROM与1602液晶设计的带MD5加密的电子密码锁 466
5.20 12864LCD显示24C08保存的开机画面 480
5.21 12864LCD显示EPROM27C256保存的开机画面 488
5.22 I2C-AT24C1024×2硬字库应用 491
5.23 SPI—AT25F2048硬件字库应用 498
5.24 带液晶显示的红外遥控调速仿真 505
5.25 能接收串口信息的带中英文硬字库的80×16点阵显示屏 511
5.26 用AVR与1601 LCD设计的计算器 523
5.27 电子秤仿真设计 531
5.28 模拟射击训练游戏 537
5.29 PC机通过485远程控制单片机 546
5.30 用IE访问AVR+RTL8019设计的以太网应用系统 550
参考文献 568