本书分为ATmega16单片机基础知识、ATmga16单片机模块应用以及ATmega16单片机的应用系统三大部分。本书具有基础内容丰富、循序渐进、由浅入深的特点,涉及了ATmega16单片机从硬件模块基础到软件设计各个方面的知识的特点,并且基于Proteus硬件仿真环境提供了大量的仿真实例,还提供了17个详细讲解的视频供读者深入理解ATmega16单片机的使用。
第1章ATmega16单片机基础
1.1AVR系列单片机
1.2ATmega16单片机的特点、硬件结构和封装
1.3ATmega16单片机的内核
1.3.1算术逻辑单元ALU
1.3.2状态寄存器SREG
1.3.3通用寄存器
1.3.4堆栈
1.3.5中断和复位处理模块
1.4ATmega16单片机的存储器体系
1.4.1程序存储器
1.4.2数据存储器
1.4.3E2PROM存储器
1.5ATmega16单片机的系统时钟
1.5.1ATmega16的系统时钟组成
1.5.2ATmega16的时钟源选择
1.5.3晶体振荡器
1.5.4低频晶体振荡器
1.5.5外部RC振荡器
1.5.6片内RC振荡器
1.5.7外部时钟源
1.6ATmega16单片机的电源管理
1.7ATmega16单片机的复位
1.7.1ATmega16的复位源
1.7.2上电复位
1.7.3外部复位
1.7.4掉电检测复位
1.7.5看门狗复位
1.7.6ATmega16的复位控制寄存器
1.7.7片内基准电压
1.8ATmega16单片机的中断系统
第2章ATmega16单片机的指令和C语言
2.1ATmega16单片机的指令系统
2.1.1ATmega16单片机的指令集
2.1.2ATmega16单片机的寻址方式
2.2ATmega16单片机C语言的数据类型、运算符号和表达式
2.2.1常量和变量
2.2.2算术运算、赋值、逻辑运算以及关系运算
2.2.3自增减、复合和逗号运算
2.2.4位运算
2.2.5运算的优先级
2.3ATmega16单片机C语言的结构
2.4ATmega16单片机C语言的函数
2.4.1函数的定义、参数和返回值
2.4.2函数的调用
2.4.3局部变量和全局变量
2.5ATmega16单片机C语言的数组和指针
2.6ATmega16单片机C语言的自构造类型
2.6.1结构体
2.6.2联合体
2.6.3枚举
第3章ATmega16单片机的ICC AVR软件开发环境
3.1ATmega16单片机的软件开发环境
3.2安装ICC AVR
3.3ICC AVR的工作界面
3.4ICC AVR的菜单栏和快捷工具栏
3.4.1ICC AVR的菜单栏
3.4.2ICC AVR的快捷工具栏
3.5ICC AVR的扩展关键字
3.5.1中断关键字
3.5.2非挥发寄存器关键字
3.5.3数据段关键字
3.6ICC AVR的文件
3.6.1ICC AVR的常用文件类型
3.6.2ICC AVR的库函数文件
3.6.3ICC AVR的启动文件
3.7“Hello World!”——ICC AVR的应用实例
第4章ATmega16单片机的硬件开发和Proteus硬件仿真环境
4.1ATmega16单片机的硬件系统开发流程和开发工具
4.1.1ATmega16单片机的硬件系统开发流程
4.1.2ATmega16单片机的硬件开发工具
4.2Proteus应用基础
4.2.1Proteus的界面和支持的文件
4.2.2Proteus的菜单
4.2.3Proteus的快捷工具栏和工具箱
4.3Proteus的使用流程
4.4Proteus中的ATmega16及其使用
4.5Proteus和ICC AVR联合使用
第5章ATmega16单片机的I/O引脚和外部中断
5.1ATmega16外部引脚基础使用方法
5.1.1ATmega16的I/O引脚的结构
5.1.2ATmega16的I/O引脚配置
5.1.3ATmega16的I/O引脚电平读取
5.1.4ATmega16的I/O引脚低功耗处理
5.2ATmega16外部引脚的第二功能
5.3ATmega16的外部中断
5.3.1MCU控制寄存器(MCUCR)
5.3.2MCU控制与状态寄存器(MCUCSR)
5.3.3通用中断控制寄存器(GICR)
5.3.4通用中断标志寄存器(GIFR)
5.4ATmega16的I/O引脚和中断的应用实例
5.4.1I/O引脚输出高低脉冲电平实例
5.4.2I/O引脚驱动发光二极管(LED)实例
5.4.3I/O引脚驱动单位数码管实例
5.4.4I/O引脚驱动独立按键实例
5.4.5I/O引脚驱动行列键盘实例
5.4.6外部中断控制I/O引脚输出实例
第6章ATmega16单片机的定时计数器
6.1定时计数器T/C0
6.1.1T/C0的相关寄存器
6.1.2T/C0的工作模式
6.2定时计数器T/C1
6.2.1T/C1的相关寄存器
6.2.2T/C1的工作模式
6.3定时计数器T/C2
6.3.1T/C2的相关寄存器
6.3.2T/C2的工作模式
6.4ATmega16的定时计数器的应用实例
6.4.1T/C0控制I/O引脚输出方波
6.4.2T/C1控制I/O引脚输出PWM
6.4.3外部晶体秒定时
第7章ATmega16单片机的串口
7.1ATmega16串口的结构
7.2ATmega16串口的寄存器
7.2.1串口数据寄存器(UDR)
7.2.2串口控制和状态寄存器A(UCSRA)
7.2.3串口控制和状态寄存器B(UCSRB)
7.2.4串口控制和状态寄存器C(UCSRC)
7.2.5串口波特率寄存器(UBRRL和UBRRH)
7.3ATmega16串口的使用方法
7.3.1选择ATmega16串口的时钟源
7.3.2选择ATmega16串口的数据帧格式
7.3.3ATmega16串口的数据收发
7.3.4ATmega16串口的多机通信
7.4ATmega16串口的应用实例
7.4.1ATmega16串口数据发送
7.4.2和PC进行串行通信
第8章ATmega16单片机的TWI和SPI总线接口
8.1TWI总线基础
8.1.1TWI总线的数据交互过程
8.1.2TWI总线的地址
8.2TWI总线模块相关寄存器
8.2.1比特率控制寄存器(TWBR)
8.2.2TWI控制寄存器(TWCR)
8.2.3TWI状态寄存器(TWSR)
8.2.4TWI数据寄存器(TWDR)
8.2.5TWI从机地址寄存器(TWAR)
8.3TWI总线模块的使用
8.4TWI总线模块的数据传输方式
8.4.1主机发送模式(MT)
8.4.2主机接收模式(MR)
8.4.3从机发送模式(ST)
8.4.4从机接收模式(SR)
8.5TWI总线的仲裁
8.6SPI总线基础
8.7SPI总线模块相关寄存器
8.7.1SPI控制寄存器SPCR
8.7.2SPI状态寄存器SPSR
8.7.3SPI数据寄存器SPDR
8.8SPI总线接口的工作模式
8.9TWI和SPI总线模块应用实例
8.9.1ATmega16双机使用TWI总线模块进行通信
8.9.2ATmega16双机使用SPI总线模块进行通信
第9章ATmega16单片机的比较器和ADC模块
9.1ATmega16单片机的比较器
9.1.1模拟比较器基础
9.1.2模拟比较器的寄存器
9.1.3模拟比较器的输入通道
9.2ATmega16单片机的ADC模块
9.2.1ADC模块基础
9.2.2ADC模块的寄存器
9.2.3ADC模块的转换过程
9.2.4ADC模块的输入通道和参考电源
9.2.5ADC模块的转换结果和精度定义
9.3ATmega16比较器的应用实例
9.3.1双通道模拟信号比较应用实例
9.3.2多通道模拟信号比较应用实例
9.4ATmega16 ADC模块的应用实例
9.4.1单通道模拟信号采集实例
9.4.2多通道模拟信号采集实例
9.4.3增益放大模拟信号采集实例
9.4.4差分模拟信号比较采集实例
第10章ATmega16的其他内部资源
10.1看门狗(WDT)
10.1.1看门狗基础
10.1.2看门狗的寄存器
10.1.3看门狗的启动和关闭
10.2内部E2PROM
10.2.1E2PROM的操作
10.2.2E2PROM的寄存器
10.2.3E2PROM的操作函数
10.3内置看门狗和E2PROM应用实例
10.3.1内置看门狗模块测试应用实例
10.3.2E2PROM读写应用实例
第11章ATmega16的应用系统
11.1单I/O引脚扩展多按键
11.1.1应用系统背景
11.1.2设计思路
11.1.3硬件系统设计
11.1.4软件系统设计
11.1.5应用系统的仿真和总结
11.2简易电子琴
11.2.1应用系统背景
11.2.2设计思路
11.2.3硬件系统设计
11.2.4软件系统设计
11.2.5应用系统的仿真和总结
11.3商场灯光控制
11.3.1应用系统背景
11.3.2设计思路
11.3.3硬件系统设计
11.3.4软件系统设计
11.3.5应用系统的仿真和总结