上篇 AVR单片机原理 3
第1章 AVR单片机及IAR环境简介 3
1.1 AVR单片机简介 3
1.2 IAR开发环境简介 5
1.3 IAR开发环境的安装与配置 5
1.4 习题 13
第2章 ATMega16的I/O端口及应用 14
2.1 ATMega16单片机实例引入 14
2.1.1 引入实例一 14
2.1.2 I/O端口描述 18
2.1.3 引入实例二 21
2.2 ATMega16中I/O端口的内部结构及其配置 23
2.2.1 I/O端口内部结构 23
2.2.2 I/O端口配置及复用功能 24
2.3 ATMega16的I/O端口编程实践 27
2.3.1 键控LED闪烁 27
2.3.2 电路原理图 27
2.3.3 实例分析 27
2.3.4 参考程序代码 27
2.3.5 实例演示 28
2.4 习题 28
第3章 ATMega16的中断系统及应用 29
3.1 ATMega16的外部中断 29
3.1.1 外部中断的原理 29
3.1.2 外部中断服务程序 31
3.1.3 外部中断寄存器配置 31
3.2 ATMega16的中断系统 34
3.2.1 中断的概念 34
3.2.2 中断响应过程 35
3.2.3 多中断响应 37
3.3 ATMega16的中断编程实践 39
3.3.1 彩灯模型 39
3.3.2 电路原理图 39
3.3.3 实例分析 39
3.3.4 参考程序代码 40
3.3.5 实例演示 41
3.4 习题 44
第4章 ATMega16的定时/计数器及应用 45
4.1 ATMega16的定时/计数器 45
4.1.1 定时/计数器模块简介 45
4.1.2 普通定时器模式 45
4.1.3 普通PWM模式 49
4.1.4 快速PWM模式 52
4.1.5 相位修正PWM模式 56
4.1.6 异步时钟模式 59
4.1.7 输入捕获模式 60
4.2 ATMega16的定时/计数器编程实践一 62
4.2.1 秒闪LED 62
4.2.2 电路原理图 62
4.2.3 实例分析 62
4.2.4 参考程序代码 62
4.2.5 实例演示 63
4.3 ATMega16的定时/计数器编程实践二 63
4.3.1 键控方波输出 63
4.3.2 电路原理图 63
4.3.3 实例分析 63
4.3.4 参考程序代码 64
4.3.5 实例演示 64
4.4 ATMega16的定时/计数器编程实践三 65
4.4.1 键控PWM输出 65
4.4.2 电路原理图 65
4.4.3 实例分析 65
4.4.4 参考程序代码 65
4.4.5 实例演示 66
4.5 ATMega16的定时/计数器编程实践四 67
4.5.1 两路PWM输出 67
4.5.2 电路原理图 67
4.5.3 实例分析 67
4.5.4 参考程序代码 67
4.5.5 实例演示 68
4.6 ATMega16的定时/计数器编程实践五 68
4.6.1 舵机控制 68
4.6.2 电路原理图 68
4.6.3 实例分析 68
4.6.4 参考程序代码 69
4.6.5 实例演示 70
4.7 ATMega16的定时/计数器编程实践六 70
4.7.1 异步秒闪信号 70
4.7.2 电路原理图 70
4.7.3 实例分析 70
4.7.4 参考程序代码 71
4.7.5 实例演示 71
4.8 ATMega16的定时/计数器编程实践七 71
4.8.1 音频频率计 71
4.8.2 电路原理图 72
4.8.3 实例分析 72
4.8.4 参考程序代码 73
4.8.5 实例演示 76
4.9 习题 76
第5章 ATMega16的串口及应用 77
5.1 ATMega16的串口 77
5.1.1 USART串口模块简介 77
5.1.2 寄存器配置 78
5.2 ATMega16的串口编程实践一 83
5.2.1 串口发送字符 83
5.2.2 电路原理图 83
5.2.3 实例分析 84
5.2.4 参考程序代码 84
5.2.5 实例演示 85
5.3 ATMega16的串口编程实践二 86
5.3.1 串口接收字符并显示 86
5.3.2 电路原理图 86
5.3.3 实例分析 86
5.3.4 参考程序代码 87
5.3.5 实例演示 89
5.4 习题 89
第6章 ATMega16的片内EEPROM及应用 90
6.1 ATMega16的片内EEPROM 90
6.1.1 片内EEPROM模块简介 90
6.1.2 寄存器配置 90
6.2 ATMega16的片内EEPROM编程实践 92
6.2.1 键控读写片内EEPROM 92
6.2.2 电路原理图 92
6.2.3 实例分析 92
6.2.4 参考程序代码 93
6.2.5 实例演示 96
6.3 习题 96
第7章 ATMega16的A/D转换及应用 97
7.1 ATMega16的A/D转换器 97
7.1.1 模/数转换器模块简介 97
7.1.2 寄存器配置 97
7.2 ATMega16的A/D转换编程实践 103
7.2.1 电压测量 103
7.2.2 电路原理图 103
7.2.3 实例分析 104
7.2.4 参考程序代码 105
7.2.5 实例演示 107
7.3 习题 107
第8章 ATMega16的模拟比较器及应用 108
8.1 ATMega16的模拟比较器 108
8.1.1 模拟比较器模块简介 108
8.1.2 寄存器配置 109
8.2 ATMega16的模拟比较器编程实践 110
8.2.1 电压跌落指示器 110
8.2.2 电路原理图 110
8.2.3 实例分析 111
8.2.4 参考程序代码 111
8.2.5 实例演示 112
8.3 习题 112
第9章 ATMega16的TWI接口及应用 113
9.1 ATMega16的TWI接口 113
9.1.1 TWI总线简介 113
9.1.2 ATMega16的TWI模块 116
9.1.3 寄存器配置 119
9.2 ATMega16的TWI接口编程实践 123
9.2.1 键控读写AT24C02 123
9.2.2 电路原理图 123
9.2.3 实例分析 123
9.2.4 参考程序代码 124
9.2.5 实例演示 128
9.3 习题 128
第10章 ATMega16的SPI接口及应用 129
10.1 ATMega16的SPI接口 129
10.1.1 SPI接口模块简介 129
10.1.2 寄存器配置 131
10.1.3 操作函数 133
10.2 ATMega16的SPI接口编程实践 133
10.2.1 SPI双机通信 133
10.2.2 电路原理图 134
10.2.3 实例分析 134
10.2.4 参考程序代码 134
10.2.5 实例演示 139
10.3 习题 139
第11章 ATMega16的复位源与看门狗 140
11.1 ATMega16的复位源 140
11.2 ATMega16的看门狗 142
11.3 ATMega16的看门狗编程实践 143
11.3.1 启用看门狗的流水灯 143
11.3.2 电路原理图 143
11.3.3 实例分析 143
11.3.4 参考程序代码 143
11.3.5 实例演示 145
11.4 习题 145
第12章 ATMega16的时钟源与熔丝设置 146
12.1 ATMega16的时钟源 146
12.2 ATMega16的熔丝设置 147
12.3 ATMega16的熔丝设置实践 151
12.3.1 配置ATMega16 151
12.3.2 设置方法 151
12.3.3 补救方法 151
12.4 习题 152
下篇 常用传感器模块设计实例 155
第13章 LCD1602液晶屏设计实例 155
13.1 LCD1602简介 155
13.2 LCD1602的寄存器配置及模块操作 156
13.3 实例描述及实现一 160
13.4 实例描述及实现二 164
第14章 LCD12864液晶屏设计实例 172
14.1 LCD12864简介 172
14.2 LCD12864的寄存器配置及模块操作 174
14.3 实例描述及实现一 177
14.4 实例描述及实现二 181
14.5 实例描述及实现三 187
14.6 实例描述及实现四 192
第15章 矩阵键盘设计实例 204
15.1 矩阵键盘简介 204
15.2 实例描述及实现 205
第16章 温度传感器DS18B20设计实例 208
16.1 DS18B20简介 208
16.2 实例描述及实现 209
第17章 温湿度传感器DHT21设计实例 217
17.1 DHT21简介 217
17.2 实例描述及实现 218
第18章 日历芯片DS1307设计实例 225
18.1 DS1307简介 225
18.2 DS1307的寄存器配置及操作 225
18.3 实例描述及实现 227
第19章 红外遥控解码设计实例 236
19.1 红外解码简介 236
19.2 红外接收管1838简介 237
19.3 实例描述及实现 237
第20章 16×16 LED点阵显示设计实例 244
20.1 LED点阵显示简介 244
20.2 16×16 LED点阵的驱动及字模提取 245
20.3 实例描述及实现 246
第21章 超声波探头测距实例 250
21.1 超声波探头简介 250
21.2 实例描述及实现 251
第22章 步进电机驱动实例 256
22.1 步进电机简介 256
22.2 步进电机的驱动方式 256
22.3 实例描述及实现 258
第23章 三轴加速度传感器MMA7260设计实例 261
23.1 MMA7260简介 261
23.2 实例描述及实现 262
第24章 地磁传感器HMC5883设计实例 269
24.1 HMC5883简介 269
24.2 HMC5883的寄存器配置及模块操作 271
24.3 实例描述及实现 272
第25章 气压传感器BMP085设计实例 279
25.1 BMP085简介 279
25.2 BMP085的寄存器配置及模块操作 280
25.3 实例描述及实现 282
第26章 颜色传感器TCS230设计实例 291
26.1 TCS230简介 291
26.2 实例描述及实现 292
第27章 光照度传感器BH1750设计实例 300
27.1 BH1750简介 300
27.2 BH1750指令集 300
27.3 实例描述及实现 302
第28章 GPS模块VK-162设计实例 311
28.1 GPS及VK-162模块简介 311
28.2 数据帧 312
28.3 实例描述及实现 313
第29章 GSM模块TC35设计实例 322
29.1 GSM及TC35模块简介 322
29.2 AT指令 323
29.3 实例描述及实现一 325
29.4 实例描述及实现二 327
第30章 旋转编码开关设计实例 334
30.1 旋转编码开关简介 334
30.2 实例描述及实现 335
第31章 可控硅设计实例 339
31.1 可控硅简介 339
31.2 可控硅的控制方法 339
31.3 实例描述及实现 342
第32章 射频通信模块NRF24L01设计实例 345
32.1 NRF24L01简介 345
32.2 NRF24L01的寄存器配置及模块操作 346
32.3 实例描述及实现 358
第33章 语音芯片ISD4004设计实例 375
33.1 ISD4004简介 375
33.2 ISD4004的操作方法 376
33.3 实例描述及实现 378
第34章 诺基亚5110液晶屏设计实例 385
34.1 诺基亚5110液晶屏简介 385
34.2 诺基亚5110的寄存器配置及模块操作 386
34.3 实例描述及实现一 390
34.4 实例描述及实现二 398
34.5 实例描述及实现三 406
第35章 DDS芯片AD9854设计实例 408
35.1 AD9854简介 408
35.2 AD9854的寄存器配置及模块操作 410
35.3 实例描述及实现 416
参考文献 423