前言
第一篇 片上功能和开发环境
第1章 认识AVR 2
1.1 AVR系列单片机 2
1.1.1 系出名门的AVR 2
1.1.2 AVR系列产品家族 3
1.1.3 AVR的特色功能 3
1.1.4 AVR的产品型号 5
1.2 ATmega32单片机简介 6
1.2.1 片内资源配置 6
1.2.2 ATmega32的内部结构 7
1.2.3 ATmega32的封装 8
1.2.4 I/O端口的构成 11
第2章 C语言入门 13
2.1 数据和运算 13
2.1.1 数的进制 13
2.1.2 码制 14
2.1.3 数据类型 14
2.1.4 常量 15
2.1.5 变量 15
2.1.6 运算符 16
2.1.7 复合赋值运算符 18
2.2 语句 19
2.2.1 控制语句 19
2.2.2 其他语句 24
2.3 函数 24
2.3.1 自定义函数 25
2.3.2 函数的声明和调用 26
2.4 程序 26
2.4.1 程序的构成 26
2.4.2 程序的注释 27
2.4.3 局部变量和全局变量 28
2.4.4 变量修饰关键词 29
2.5 预处理命令 30
2.5.1 宏定义 30
2.5.2 文件包含 30
2.6 构造类型数据 31
2.6.1 数组 31
2.6.2 结构体 32
2.6.3 共用体 32
第3章 AVR的开发环境 34
3.1 AVR的硬件资源 34
3.1.1 搭建AVR系统板 34
3.1.2 AVR单片机的编程 35
3.1.3 编程/仿真接口设计 37
3.2 Atmel Studio 6集成开发环境 37
3.2.1 Atmel Studio 6的功能 38
3.2.2 Atmel Studio 6的安装 38
3.3 第一个AVR程序 45
3.3.1 新建AVR项目 45
3.3.2 程序的编辑和编译 49
3.3.3 连接编程器和系统板 51
3.3.4 编程目标单片机 52
第4章 AVR 的仿真 59
4.1 AVR的位操作 59
4.1.1 打开已有的项目 59
4.1.2 位操作 61
4.2 AVR CPU模拟器 65
4.2.1 程序的调试 66
4.2.2 设立观察窗口 69
4.2.3 添加断点 71
4.2.4 更改模拟CPU的时钟频率 72
第5章 系统控制与复位 74
5.1 熔丝位 74
5.1.1 熔丝位的功能 74
5.1.2 熔丝位的设定 76
5.1.3 熔丝位的错误设置 78
5.2 锁定位 80
5.2.1 锁定位的功能 80
5.2.2 锁定位的应用 81
5.3 复位 83
5.3.1 复位源 83
5.3.2 复位的相关寄存器 86
5.4 看门狗定时器 87
5.4.1 看门狗定时器的结构 87
5.4.2 看门狗定时器的控制 88
第6章 时钟和电源管理 89
6.1 时钟源 89
6.1.1 时钟的来源 89
6.1.2 时钟的分布 90
6.1.3 时钟的设置 91
6.2 睡眠模式 93
6.2.1 睡眠模式的分类 93
6.2.2 睡眠模式的应用 94
6.3 片内存储器 95
6.3.1 存储器的结构 95
6.3.2 E2PROM数据存储器 96
6.3.3 E2PROM的读写实例 98
第二篇 单元模块
第7章 外部中断 102
7.1 中断系统 102
7.1.1 中断的类型 102
7.1.2 中断的控制 103
7.1.3 中断的处理 103
7.2 外部中断 104
7.2.1 外部中断的控制寄存器 105
7.2.2 外部中断的编程应用 107
第8章 定时/计数器0 112
8.1 认识T/C0 112
8.1.1 T/C0的内部结构 112
8.1.2 认识PWM 113
8.1.3 T/C0的工作模式 114
8.2 T/C0的控制 117
8.2.1 T/C0的相关寄存器 117
8.2.2 T/C0的预分频器 119
8.3 T/C0的编程应用 120
8.3.1 基于T/C0的时钟 120
8.3.2 基于T/C0的PWM调光灯 123
第9章 定时/计数器1 127
9.1 认识T/C1 127
9.1.1 T/C1的内部结构 127
9.1.2 T/C1的工作模式 129
9.1.3 捕捉模式的应用 133
9.2 T/C1的控制 134
9.2.1 T/C1的16位读写方式 134
9.2.2 T/C1的控制寄存器 134
9.3 T/C1的编程应用 139
9.3.1 基于T/C1的秒计时器 139
9.3.2 基于T/C1的2路快速PWM调光 143
9.3.3 基于T/C1的频率计 146
第10章 定时/计数器2 150
10.1 认识T/C2 150
10.1.1 T/C2的内部结构 150
10.1.2 T/C2的工作模式 151
10.2 T/C2的控制 154
10.2.1 T/C2的相关寄存器 154
10.2.2 T/C2的预分频器 157
10.3 T/C2的编程应用 158
第11章 ADC 模块 161
11.1 ADC 模块的功能 161
11.1.1 逐次逼近型A/D转换器 161
11.1.2 ADC模块的内部结构 162
11.1.3 ADC模块的基准电压 163
11.1.4 ADC模块的转换结果 164
11.1.5 模拟通道的等效电路 165
11.1.6 A/D转换的时钟 165
11.2 ADC 模块的控制 167
11.2.1 ADC模块的工作方式 167
11.2.2 ADC模块的控制寄存器 167
11.3 ADC模块的编程应用 170
第12章 模拟比较器 174
12.1 模拟比较器 174
12.1.1 比较器的功能 174
12.1.2 比较器模块的工作原理 174
12.1.3 比较器模块的相关寄存器 175
12.1.4 配置比较器输入引脚 176
12.2 比较器模块的编程应用 177
第13章 SPI模块 179
13.1 SPI模块 179
13.1.1 SPI总线接口 179
13.1.2 SPI模块的功能 179
13.2 SPI模块的设置 181
13.2.1 SPI模块的引脚配置 181
13.2.2 SPI模块的控制寄存器 181
13.2.3 SPI的数据传输时序 183
13.2.4 SPI模块设置向导 184
13.3 存储器93C46 184
13.3.1 93C46的引脚功能 184
13.3.2 93C46的操作指令 185
13.3.3 93C46的数据传输时序 187
13.4 SPI模块的编程应用 187
第14章 TWI模块 191
14.1 TWI模块介绍 191
14.1.1 TWI总线 191
14.1.2 TWI总线的数据传输格式 192
14.1.3 TWI模块的内部结构 194
14.2 TWI模块的应用 196
14.2.1 TWI模块的控制寄存器 196
14.2.2 TWI模块的编程向导 198
14.3 DS1307实时时钟 200
14.3.1 DS1307的功能 200
14.3.2 DS1307的寄存器 201
14.3.3 DS1307的数据格式 202
14.3.4 TWI模块编程实例 203
第15章 USART模块 209
15.1 USART模块介绍 209
15.1.1 串行通信方式 209
15.1.2 USART模块的功能特点 210
15.1.3 串行通信的数据帧格式 211
15.1.4 接收器FIFO队列 211
15.2 USART模块的控制 212
15.2.1 波特率发生器 212
15.2.2 USART模块的控制寄存器 213
15.3 USART模块的应用 217
15.3.1 USART模块的应用向导 217
15.3.2 USART模块自收自发实验 218
15.3.3 USART模块与PC的通信 221
第三篇 扩展应用实例
第16章 步进电机的驱动 228
16.1 步进电机的特点 228
16.1.1 步进电机的分类 228
16.1.2 步进电机的工作原理 229
16.1.3 步距角的计算方法 229
16.2 28BYJ48型步进电机 230
16.2.1 28BYJ48电机性能指标 230
16.2.2 28BYJ48电机绕组结构 230
16.3 步进电机的驱动 231
16.3.1 步进电机的励磁方式 231
16.3.2 步进电机的驱动电路 231
16.3.3 步进电机编程实例 232
第17章 DS1302实时时钟 235
17.1 DS1302的功能 235
17.1.1 DS1302的引脚 235
17.1.2 BCD码 236
17.1.3 DS1302的内部结构 237
17.1.4 DS1302的寄存器 238
17.1.5 DS1302的控制指令 239
17.1.6 DS1302数据传输格式 240
17.2 DS1302的应用实例 240
17.2.1 DS1302初始化 240
17.2.2 DS1302数显时钟 241
第18章 红外线解码及发射 246
18.1 红外线遥控的编码方式 246
18.1.1 编码的帧结构 246
18.1.2 编码的方式 246
18.1.3 编码的调制与解调 247
18.2 红外线解码与发射 248
18.2.1 红外线解码的方法 248
18.2.2 红外线发射的方法 249
18.3 红外线遥控编程实例 249
18.3.1 红外线解码器 249
18.3.2 红外线发射器 253
第19章 DS18B20数字温度传感器 257
19.1 DS18B20的功能介绍 257
19.1.1 DS18B20的特点 257
19.1.2 DS18B20的引脚定义 258
19.1.3 DS18B20的内部结构 258
19.1.4 温度值的存储方式 260
19.2 DS18B20的读写方式 260
19.2.1 DS18B20的初始化时序 260
19.2.2 DS18B20的写时序 261
19.2.3 DS18B20的读时序 262
19.3 DS18B20的通信协议 262
19.3.1 ROM指令 262
19.3.2 RAM指令 263
19.4 DS18B20的应用 263
19.4.1 DS18B20的供电方式 263
19.4.2 DS18B20的编程向导 265
19.4.3 DS18B20的使用要点 265
19.4.4 DS18B20编程实例 266
第20章 DHT11数字温湿度传感器 271
20.1 DHT11数字温湿度传感器的功能 271
20.1.1 DHT11的性能指标 271
20.1.2 DHT11的典型应用 272
20.1.3 DHT11的通信时序 272
20.2 DHT11的编程应用 273
第21章 1602字符型液晶显示器 277
21.1 1602液晶概述 277
21.1.1 1602液晶的特点 277
21.1.2 1602液晶的引脚功能 277
21.1.3 1602液晶与单片机的接口 278
21.2 1602液晶的功能 278
21.2.1 1602液晶的显示数据RAM 278
21.2.2 1602液晶的字符发生器 278
21.2.3 1602液晶的操作时序 280
21.2.4 1602液晶的操作指令 281
21.2.5 1602液晶的初始化 283
21.3 1602液晶编程实例 283
第22章 12864点阵型液晶显示器 287
22.1 12864点阵型液晶介绍 287
22.1.1 JLX12864G-086液晶的特点 287
22.1.2 JLX12864G-086液晶的引脚功能 288
22.2 12864点阵型液晶显示方式 289
22.2.1 显示屏与显存的对应关系 289
22.2.2 显存的组织结构 289
22.2.3 读写时序 290
22.2.4 UC1701X指令集 291
22.3 12864点阵型液晶应用实例 292
22.3.1 液晶显示器的接口电路 292
22.3.2 汉字的取模方法 292
22.3.3 图像的取模方法 293
22.3.4 汉字和图形显示 294
附录A ATmega32单片机系统板原理图 303
附录B 搭建系统板所需材料清单 304
附录C 时钟源及启动时间选择 305
附录D AVR_bronco实验板 307
展开