本书即是立足单片机的基本原理讲解,用简单的语言将单片机,电路,C语言编程等基础知识融合在项目中由浅到深逐步讲透。
封面图
目录
- 前言
- 第一篇片上功能和开发环境
- 第1章认识AVR 2
- 1.1AVR系列单片机 2
- 1.1.1系出名门的AVR 2
- 1.1.2AVR系列产品家族 3
- 1.1.3AVR的特色功能 3
- 1.1.4AVR的产品型号 5
- 1.2ATmega32单片机简介 6
- 1.2.1片内资源配置 6
- 1.2.2ATmega32的内部结构 7
- 1.2.3ATmega32的封装 8
- 1.2.4I/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.1AVR的硬件资源 34
- 3.1.1搭建AVR系统板 34
- 3.1.2AVR单片机的编程 35
- 3.1.3编程/仿真接口设计 37
- 3.2Atmel Studio 6集成开发环境 37
- 3.2.1Atmel Studio 6的功能 38
- 3.2.2Atmel 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.1AVR的位操作 59
- 4.1.1打开已有的项目 59
- 4.1.2位操作 61
- 4.2AVR 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.2E2PROM数据存储器 96
- 6.3.3E2PROM的读写实例 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.1T/C0的内部结构 112
- 8.1.2认识PWM 113
- 8.1.3T/C0的工作模式 114
- 8.2T/C0的控制 117
- 8.2.1T/C0的相关寄存器 117
- 8.2.2T/C0的预分频器 119
- 8.3T/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.1T/C1的内部结构 127
- 9.1.2T/C1的工作模式 129
- 9.1.3捕捉模式的应用 133
- 9.2T/C1的控制 134
- 9.2.1T/C1的16位读写方式 134
- 9.2.2T/C1的控制寄存器 134
- 9.3T/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.1T/C2的内部结构 150
- 10.1.2T/C2的工作模式 151
- 10.2T/C2的控制 154
- 10.2.1T/C2的相关寄存器 154
- 10.2.2T/C2的预分频器 157
- 10.3T/C2的编程应用 158
- 第11章ADC 模块 161
- 11.1ADC 模块的功能 161
- 11.1.1逐次逼近型A/D转换器 161
- 11.1.2ADC模块的内部结构 162
- 11.1.3ADC模块的基准电压 163
- 11.1.4ADC模块的转换结果 164
- 11.1.5模拟通道的等效电路 165
- 11.1.6A/D转换的时钟 165
- 11.2ADC 模块的控制 167
- 11.2.1ADC模块的工作方式 167
- 11.2.2ADC模块的控制寄存器 167
- 11.3ADC模块的编程应用 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.1SPI模块 179
- 13.1.1SPI总线接口 179
- 13.1.2SPI模块的功能 179
- 13.2SPI模块的设置 181
- 13.2.1SPI模块的引脚配置 181
- 13.2.2SPI模块的控制寄存器 181
- 13.2.3SPI的数据传输时序 183
- 13.2.4SPI模块设置向导 184
- 13.3存储器93C46 184
- 13.3.193C46的引脚功能 184
- 13.3.293C46的操作指令 185
- 13.3.393C46的数据传输时序 187
- 13.4SPI模块的编程应用 187
- 第14章TWI模块 191
- 14.1TWI模块介绍 191
- 14.1.1TWI总线 191
- 14.1.2TWI总线的数据传输格式 192
- 14.1.3TWI模块的内部结构 194
- 14.2TWI模块的应用 196
- 14.2.1TWI模块的控制寄存器 196
- 14.2.2TWI模块的编程向导 198
- 14.3DS1307实时时钟 200
- 14.3.1DS1307的功能 200
- 14.3.2DS1307的寄存器 201
- 14.3.3DS1307的数据格式 202
- 14.3.4TWI模块编程实例 203
- 第15章USART模块 209
- 15.1USART模块介绍 209
- 15.1.1串行通信方式 209
- 15.1.2USART模块的功能特点 210
- 15.1.3串行通信的数据帧格式 211
- 15.1.4接收器FIFO队列 211
- 15.2USART模块的控制 212
- 15.2.1波特率发生器 212
- 15.2.2USART模块的控制寄存器 213
- 15.3USART模块的应用 217
- 15.3.1USART模块的应用向导 217
- 15.3.2USART模块自收自发实验 218
- 15.3.3USART模块与PC的通信 221
- 第三篇扩展应用实例
- 第16章步进电机的驱动 228
- 16.1步进电机的特点 228
- 16.1.1步进电机的分类 228
- 16.1.2步进电机的工作原理 229
- 16.1.3步距角的计算方法 229
- 16.228BYJ48型步进电机 230
- 16.2.128BYJ48电机性能指标 230
- 16.2.228BYJ48电机绕组结构 230
- 16.3步进电机的驱动 231
- 16.3.1步进电机的励磁方式 231
- 16.3.2步进电机的驱动电路 231
- 16.3.3步进电机编程实例 232
- 第17章DS1302实时时钟 235
- 17.1DS1302的功能 235
- 17.1.1DS1302的引脚 235
- 17.1.2BCD码 236
- 17.1.3DS1302的内部结构 237
- 17.1.4DS1302的寄存器 238
- 17.1.5DS1302的控制指令 239
- 17.1.6DS1302数据传输格式 240
- 17.2DS1302的应用实例 240
- 17.2.1DS1302初始化 240
- 17.2.2DS1302数显时钟 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.1DS18B20的功能介绍 257
- 19.1.1DS18B20的特点 257
- 19.1.2DS18B20的引脚定义 258
- 19.1.3DS18B20的内部结构 258
- 19.1.4温度值的存储方式 260
- 19.2DS18B20的读写方式 260
- 19.2.1DS18B20的初始化时序 260
- 19.2.2DS18B20的写时序 261
- 19.2.3DS18B20的读时序 262
- 19.3DS18B20的通信协议 262
- 19.3.1ROM指令 262
- 19.3.2RAM指令 263
- 19.4DS18B20的应用 263
- 19.4.1DS18B20的供电方式 263
- 19.4.2DS18B20的编程向导 265
- 19.4.3DS18B20的使用要点 265
- 19.4.4DS18B20编程实例 266
- 第20章 DHT11数字温湿度传感器 271
- 20.1DHT11数字温湿度传感器的
- 功能 271
- 20.1.1DHT11的性能指标 271
- 20.1.2DHT11的典型应用 272
- 20.1.3DHT11的通信时序 272
- 20.2DHT11的编程应用 273
- 第21章1602字符型液晶显示器 277
- 21.11602液晶概述 277
- 21.1.11602液晶的特点 277
- 21.1.21602液晶的引脚功能 277
- 21.1.31602液晶与单片机的接口 278
- 21.21602液晶的功能 278
- 21.2.11602液晶的显示数据RAM 278
- 21.2.21602液晶的字符发生器 278
- 21.2.31602液晶的操作时序 280
- 21.2.41602液晶的操作指令 281
- 21.2.51602液晶的初始化 283
- 21.31602液晶编程实例 283
- 第22章12864点阵型液晶
- 显示器 287
- 22.112864点阵型液晶介绍 287
- 22.1.1JLX12864G-086液晶的特点 287
- 22.1.2JLX12864G-086液晶的引脚功能 288
- 22.212864点阵型液晶显示方式 289
- 22.2.1显示屏与显存的对应关系 289
- 22.2.2显存的组织结构 289
- 22.2.3读写时序 290
- 22.2.4UC1701X指令集 291
- 22.312864点阵型液晶应用实例 292
- 22.3.1液晶显示器的接口电路 292
- 22.3.2汉字的取模方法 292
- 22.3.3图像的取模方法 293
- 22.3.4汉字和图形显示 294
- 附录AATmega32单片机系统板原理图 303
- 附录B搭建系统板所需材料清单 304
- 附录C时钟源及启动时间选择 305
- 附录DAVR_bronco实验板 307