出版社:机械工业出版社
年代:2014
定价:59.0
本书是介绍AVR单片机C语言开发的入门书。全书共三篇,计22章。所有章节都配有实践环节,每一个模块都给出了相应的实验电路和C语言代码。第一篇(1-6章),主要是介绍的是AVR单片机的片内资源配置及开发AVR单片机所需的软硬件环境;第二篇(7-15章),从介绍AVR单片机的单元模块入手,详细介绍了AVR单片机的中断、定时器、ADC模块、模拟比较器及USART模块的内容,同时介绍了如何使用AVR单片机面向字节的高速硬件串行接口TWI、SPI实现与DS1307实时时钟和存储器93C46的通信;第三篇(16-22章),主要介绍了AVR单片机的扩展应用,主要包括如何使用AVR单片机驱动步进电机、实现红处线的解码和发射、与单一总线的数字温度传感器DS18B20和湿度传感器DHT11的通信,以及如何使用AVR单片机驱动1602液晶显示器和基于COG技术的新型12864点阵型液晶显示器。
前言第一篇片上功能和开发环境 第1章认识AVR 1.1AVR系列单片机 1.1.1系出名门的AVR 1.1.2AVR系列产品家族 1.1.3AVR的特色功能 1.1.4AVR的产品型号 1.2ATmega32单片机简介 1.2.1片内资源配置 1.2.2ATmega32的内部结构 1.2.3ATmega32的封装 1.2.4I/O端口的构成 第2章C语言入门 2.1数据和运算 2.1.1数的进制 2.1.2码制 2.1.3数据类型 2.1.4常量 2.1.5变量 2.1.6运算符 2.1.7复合赋值运算符 2.2语句 2.2.1控制语句 2.2.2其他语句 2.3函数 2.3.1自定义函数 2.3.2函数的声明和调用 2.4程序 2.4.1程序的构成 2.4.2程序的注释 2.4.3局部变量和全局变量 2.4.4变量修饰关键词 2.5预处理命令 2.5.1宏定义 2.5.2文件包含 2.6构造类型数据 2.6.1数组 2.6.2结构体 2.6.3共用体 第3章AVR的开发环境 3.1AVR的硬件资源 3.1.1搭建AVR系统板 3.1.2AVR单片机的编程 3.1.3编程/仿真接口设计 3.2AtmelStudio6集成开发环境 3.2.1AtmelStudio6的功能 3.2.2AtmelStudio6的安装 3.3第一个AVR程序 3.3.1新建AVR项目 3.3.2程序的编辑和编译 3.3.3连接编程器和系统板 3.3.4编程目标单片机 第4章AVR的仿真 4.1AVR的位操作 4.1.1打开已有的项目 4.1.2位操作 4.2AVRCPU模拟器 4.2.1程序的调试 4.2.2设立观察窗口 4.2.3添加断点 4.2.4更改模拟CPU的时钟频率 第5章系统控制与复位 5.1熔丝位 5.1.1熔丝位的功能 5.1.2熔丝位的设定 5.1.3熔丝位的错误设置 5.2锁定位 5.2.1锁定位的功能 5.2.2锁定位的应用 5.3复位 5.3.1复位源 5.3.2复位的相关寄存器 5.4看门狗定时器 5.4.1看门狗定时器的结构 5.4.2看门狗定时器的控制 第6章时钟和电源管理 6.1时钟源 6.1.1时钟的来源 6.1.2时钟的分布 6.1.3时钟的设置 6.2睡眠模式 6.2.1睡眠模式的分类 6.2.2睡眠模式的应用 6.3片内存储器 6.3.1存储器的结构 6.3.2E2PROM数据存储器 6.3.3E2PROM的读写实例第二篇单元模块 第7章外部中断 7.1中断系统 7.1.1中断的类型 7.1.2中断的控制 7.1.3中断的处理 7.2外部中断 7.2.1外部中断的控制寄存器 7.2.2外部中断的编程应用 第8章定时/计数器 8.1认识T/C 8.1.1T/C0的内部结构 8.1.2认识PWM 8.1.3T/C0的工作模式 8.2T/C0的控制 8.2.1T/C0的相关寄存器 8.2.2T/C0的预分频器 8.3T/C0的编程应用 8.3.1基于T/C0的时钟 8.3.2基于T/C0的PWM调光灯 第9章定时/计数器 9.1认识T/C 9.1.1T/C1的内部结构 9.1.2T/C1的工作模式 9.1.3捕捉模式的应用 9.2T/C1的控制 9.2.1T/C1的16位读写方式 9.2.2T/C1的控制寄存器 9.3T/C1的编程应用 9.3.1基于T/C1的秒计时器 9.3.2基于T/C1的2路快速PWM调光 9.3.3基于T/C1的频率计 第10章定时/计数器 10.1认识T/C 10.1.1T/C2的内部结构 10.1.2T/C2的工作模式 10.2T/C2的控制 10.2.1T/C2的相关寄存器 10.2.2T/C2的预分频器 10.3T/C2的编程应用 第11章ADC模块 11.1ADC模块的功能 11.1.1逐次逼近型A/D转换器 11.1.2ADC模块的内部结构 11.1.3ADC模块的基准电压 11.1.4ADC模块的转换结果 11.1.5模拟通道的等效电路 11.1.6A/D转换的时钟 11.2ADC模块的控制 11.2.1ADC模块的工作方式 11.2.2ADC模块的控制寄存器 11.3ADC模块的编程应用 第12章模拟比较器 12.1模拟比较器 12.1.1比较器的功能 12.1.2比较器模块的工作原理 12.1.3比较器模块的相关寄存器 12.1.4配置比较器输入引脚 12.2比较器模块的编程应用 第13章SPI模块 13.1SPI模块 13.1.1SPI总线接口 13.1.2SPI模块的功能 13.2SPI模块的设置 13.2.1SPI模块的引脚配置 13.2.2SPI模块的控制寄存器 13.2.3SPI的数据传输时序 13.2.4SPI模块设置向导 13.3存储器93C 13.3.193C46的引脚功能 13.3.293C46的操作指令 13.3.393C46的数据传输时序 13.4SPI模块的编程应用 第14章TWI模块 14.1TWI模块介绍 14.1.1TWI总线 14.1.2TWI总线的数据传输格式 14.1.3TWI模块的内部结构 14.2TWI模块的应用 14.2.1TWI模块的控制寄存器 14.2.2TWI模块的编程向导 14.3DS1307实时时钟 14.3.1DS1307的功能 14.3.2DS1307的寄存器 14.3.3DS1307的数据格式 14.3.4TWI模块编程实例 第15章USART模块 15.1USART模块介绍 15.1.1串行通信方式 15.1.2USART模块的功能特点 15.1.3串行通信的数据帧格式 15.1.4接收器FIFO队列 15.2USART模块的控制 15.2.1波特率发生器 15.2.2USART模块的控制寄存器 15.3USART模块的应用 15.3.1USART模块的应用向导 15.3.2USART模块自收自发实验 15.3.3USART模块与PC的通信第三篇扩展应用实例 第16章步进电机的驱动 16.1步进电机的特点 16.1.1步进电机的分类 16.1.2步进电机的工作原理 16.1.3步距角的计算方法 16.228BYJ48型步进电机 16.2.128BYJ48电机性能指标 16.2.228BYJ48电机绕组结构 16.3步进电机的驱动 16.3.1步进电机的励磁方式 16.3.2步进电机的驱动电路 16.3.3步进电机编程实例 第17章DS1302实时时钟 17.1DS1302的功能 17.1.1DS1302的引脚 17.1.2BCD码 17.1.3DS1302的内部结构 17.1.4DS1302的寄存器 17.1.5DS1302的控制指令 17.1.6DS1302数据传输格式 17.2DS1302的应用实例 17.2.1DS1302初始化 17.2.2DS1302数显时钟 第18章红外线解码及发射 18.1红外线遥控的编码方式 18.1.1编码的帧结构 18.1.2编码的方式 18.1.3编码的调制与解调 18.2红外线解码与发射 18.2.1红外线解码的方法 18.2.2红外线发射的方法 18.3红外线遥控编程实例 18.3.1红外线解码器 18.3.2红外线发射器 第19章DS18B20数字温度传感器 19.1DS18B20的功能介绍 19.1.1DS18B20的特点 19.1.2DS18B20的引脚定义 19.1.3DS18B20的内部结构 19.1.4温度值的存储方式 19.2DS18B20的读写方式 19.2.1DS18B20的初始化时序 19.2.2DS18B20的写时序 19.2.3DS18B20的读时序 19.3DS18B20的通信协议 19.3.1ROM指令 19.3.2RAM指令 19.4DS18B20的应用 19.4.1DS18B20的供电方式 19.4.2DS18B20的编程向导 19.4.3DS18B20的使用要点 19.4.4DS18B20编程实例 第20章DHT11数字温湿度传感器 20.1DHT11数字温湿度传感器的功能 20.1.1DHT11的性能指标 20.1.2DHT11的典型应用 20.1.3DHT11的通信时序 20.2DHT11的编程应用 第21章1602字符型液晶显示器 21.11602液晶概述 21.1.11602液晶的特点 21.1.21602液晶的引脚功能 21.1.31602液晶与单片机的接口 21.21602液晶的功能 21.2.11602液晶的显示数据RAM 21.2.21602液晶的字符发生器 21.2.31602液晶的操作时序 21.2.41602液晶的操作指令 21.2.51602液晶的初始化 21.31602液晶编程实例 第22章12864点阵型液晶显示器 22.112864点阵型液晶介绍 22.1.1JLX12864G-086液晶的特点 22.1.2JLX12864G-086液晶的引脚功能 22.212864点阵型液晶显示方式 22.2.1显示屏与显存的对应关系 22.2.2显存的组织结构 22.2.3读写时序 22.2.4UC1701X指令集 22.312864点阵型液晶应用实例 22.3.1液晶显示器的接口电路 22.3.2汉字的取模方法 22.3.3图像的取模方法 22.3.4汉字和图形显示 附录AATmega32单片机系统板原理图 附录B搭建系统板所需材料清单 附录C时钟源及启动时间选择 附录DAVR_bronco实验板
本书通过对一个目标芯片的系统学习,DIY一个最小系统版,并结合一些常见模块开发一些扩展应用,把一个单片机零死角学通透是贯穿全书的核心理念。实践是任何工程技术学习的关键所在,对于初学者,通过DIY最小系统板既能节省成本,又能锻炼读者动手能力。在后续的实践中使用这个最小系统,既缩短了读者对于开发板的熟悉时间,还能让读者把更多的精力放在具体应用的实现上。这正是作者对于整个单片机开发学习过程和本书内容的精妙安排。