零点起步 AVR单片机开发入门与典型实例
作者:张华宇 等编著
出版时间:2011
内容简介
张华宇、谢凤芹、王立滨等编著的《零点起步——AVR单片机开发入门与典型实例》以常用的ATmega16单片机为主线,主要讲解ATmega16单片机的硬件结构和采用的编程语言;ATmega16单片机的各个功能模块的应用;单片机与温度传感器、时钟芯片和点阵屏等进行连接控制的实例。在讲解每个实例时,都对相应的外围器件进行了详细介绍,方便读者应用该类传感器,起到触类旁通的效果。《零点起步——AVR单片机开发入门与典型实例》可作为大中专院校自动化、计算机、电子等学科的专业教材及培训教材,也
目录
前言
第1章 绪论
1.1 AVR与MCS51单片机
1.2 通用计算机系统与嵌入式计算机系统
1.3 单片机嵌入式系统
1.3.1 单片机及其发展
1.3.2 单片机的发展趋势
1.3.3 单片机嵌入式系统结构
1.3.4 单片机嵌入式系统的应用领域
1.4 AVR 系列单片机
1.4.1 AVR单片机的发展及开发产品的优势
1.4.2 AVR 单片机的主要特点
1.5 ATmega16单片机
1.5.1 ATmega16单片机的结构和主要特点
1.5.2 ATmega16单片机的封装与引脚
1.6 AVR教学实验板的总体结构和实验项目
1.7 思考与练习
第2章 ATmega16单片机硬件结构
2.1 ATmega16单片机的内核
2.1.1 ATmega16单片机的中央处理器概述
2.1.2 算术逻辑单元(ALU)
2.1.3 状态寄存器和堆栈指针寄存器
2.1.4 通用工作寄存器组
2.1.5 I/O寄存器
2.1.6 堆栈指针寄存器(SP)
2.2 CPU的工作时序
2.3 ATmega16单片机存储器
2.3.1 系统内可编程的Flash 程序存储器
2.3.2 SRAM 数据存储器
2.3.3 EEPROM 数据存储器
2.4 ATmega16的系统时钟及电源管理
2.4.1 晶体振荡器
2.4.2 低频晶体振荡器
2.4.3 外部RC振荡器
2.4.4 标定的片内RC振荡器
2.4.5 外部时钟
2.5 电源管理及睡眠模式
2.5.1 空闲模式
2.5.2 ADC噪声抑制模式
2.5.3 掉电模式
2.5.4 省电模式
2.5.5 Standby模式
2.5.6 最小化功耗
2.6 ATmega16单片机系统的控制和复位
2.6.1 复位源
2.6.2 MCU控制和状态寄存器(MCUCSR)
2.6.3 片内基准电压
2.6.4 看门狗定时器
2.7 思考与练习
第3章 ATmega16单片机最小系统
3.1 ATmega16单片机最小系统设计
3.2 AVR的程序下载
3.3 ATmega16的熔丝位配置概述
3.4 AVR单片机的工作状态
3.5 支持ISP编程的最小系统设计
3.6 AVR单片机程序下载实例
3.7 思考与练习
第4章 AVR单片机的开发环境
4.1 ICCAVR集成开发环境
4.1.1 ICCAVR编译器的安装
4.1.2 对安装完成的软件进行注册
4.1.3 ICCAVR 功能介绍
4.1.4 ICCAVR 的IDE 环境
4.1.5 菜单解释
4.2 ICCAVR中的C启动文件与库函数
4.2.1 启动文件
4.2.2 ICCAVR中常用库函数介绍
4.2.3 字符类型库
4.2.4 浮点运算库
4.2.5 标准输入输出库
4.2.6 标准库和内存分配函数
4.2.7 字符串函数
4.2.8 变量参数函数
4.2.9 堆栈检查函数
4.3 AVR访问硬件编程
4.3.1 AVR硬件操作
4.3.2 位操作
4.3.3 程序存储器和常量数据
4.3.4 堆栈
4.3.5 在线汇编
4.3.6 I/O寄存器
4.3.7 C 任务Tasks
4.3.8 中断操作
4.3.9 访问UART
4.3.1 0访问EEPROM
4.3.1 1相对转移/调用的地址范围
4.4 思考与练习
第5章 C语言编程基础
5.1 C语言的组成及特点
5.2 运算符和表达式
5.2.1 算术运算符
5.2.2 赋值运算符
5.2.3 关系运算符和关系表达式
5.2.4 逻辑运算符和逻辑表达式
5.3 C程序语句及程序结构
5.3.1 顺序结构程序设计
5.3.2 选择结构的基本形式
5.3.3 简单分支结构
5.3.4 双分支结构
5.3.5 多分支结构
5.3.6 switch case分支结构
5.3.7 循环结构的基本形式
5.3.8 if goto 构成的循环
5.3.9 while循环
5.3.1 0do while循环
5.3.1 1for循环
5.3.1 2循环控制语句
5.4 数组
5.4.1 一维数组
5.4.2 数组的定义
5.4.3 数组元素的引用
5.4.4 数组的初始化
5.5 指针变量和指针运算符
5.5.1 指针变量定义及指针运算
5.5.2 指针变量的引用
5.6 函数与参数传递
5.6.1 函数定义的一般形式
5.6.2 形式参数与实际参数
5.6.3 函数的返回值
5.6.4 函数的调用
5.6.5 函数的声明
5.7 编译预处理
5.7.1 宏定义
5.7.2 无参宏定义
5.7.3 带参宏定义
5.7.4 文件包含
5.7.5 条件编译
5.8 结构体与链表
5.8.1 结构体的定义和引用
5.8.2 结构体类型定义
5.8.3 结构体类型变量的定义
5.8.4 结构体变量的初始化和成员引用
5.9 位运算符
5.1 0思考与练习
第6章 I/O口的应用
6.1 通用I/O口的基本结构与特性
6.1.1 I/O端口概述
6.1.2 I/O口的基本结构
6.1.3 I/O端口寄存器
6.1.4 通用数字I/O口的设置与编程
6.2 I/O口控制流水灯实例
6.2.1 典型器件介绍
6.2.2 硬件设计
6.2.3 程序设计及详解
6.3 I/O口控制数码管显示实例
6.3.1 数码管介绍
6.3.2 硬件设计
6.3.3 程序设计及详解
6.4 I/O口控制诺基亚5510液晶显示屏实例
6.4.1 诺基亚5510液晶屏控制器PCD8544介绍
6.4.2 硬件设计
6.5 I/O口控制1602液晶显示实例
6.5.1 1602字符型LCD
6.5.2 LCD的基本参数及引脚功能
6.5.3 1602LCD的指令说明及时序
6.5.4 1602LCD的RAM地址映射及标准字库表
6.5.5 1602LCD的一般初始化(复位)过程
6.5.6 硬件设计
6.5.7 程序详解
6.6 I/O口 控制12864中文液晶显示实例
6.6.1 概述
6.6.2 模块引脚说明
6.6.3 接口时序
6.6.4 用户指令集
6.6.5 显示坐标
6.6.6 显示RAM
6.6.7 汉字取模
6.6.8 硬件设计
6.6.9 程序设计详解
6.7 8×8点阵LED显示控制实例
6.7.1 8×8点阵LED工作原理说明
6.7.2 硬件设计
6.7.3 程序设计详解
6.8 思考与练习
第7章 定时计数器的结构与应用
7.1 定时/计数器T/C0
7.1.1 T/C0的组成结构
7.1.2 与T/C0相关的寄存器
7.1.3 8位T/C0的工作模式
7.1.4 8位T/C0的计数工作时序
7.2 16位定时计数器T/C1的应用
7.2.1 16位定时器计数器功能介绍
7.2.2 T/C1的控制寄存器说明
7.3 利用定时器实现发光管闪烁的实例
7.3.1 硬件连接
7.3.2 程序设计详解
7.4 利用定时器0实现PWM输出实例
7.4.1 硬件连接
7.4.2 程序设计详解
7.5 思考与练习
第8章 中断系统的基本应用
8.1 为什么要用中断
8.2 中断相关概念
8.3 ATmega16的中断系统
8.4 ATmega16 典型的复位和中断设置
8.5 ATmega16的外部中断
8.6 外部中断应用实例
8.6.1 硬件连接
8.6.2 程序设计详解
8.7 思考与练习
第9章 模拟比较器和ADC接口
9.1 模拟比较器简介
9.1.1 与模拟比较器相关的寄存器和标志位
9.1.2 模拟比较器的应用设计
9.2 模数转换器ADC概述
9.2.1 10位ADC结构
9.2.2 ADC相关的I/O寄存器
9.2.3 ADC应用预分频与转换时间
9.2.4 ADC输入通道和参考电源的选择
9.2.5 ADC转换结果
9.3 ADC的应用实例
9.3.1 实例功能
9.3.2 硬件电路
9.3.3 程序设计详解
9.4 ADC的应用实例2
9.4.1 硬件电路
9.4.2 程序设计详解
9.5 思考与练习
第10章 串行接口及应用接口
10.1 同步串行接口SPI
10.1.1 SPI简介
10.1.2 ATmega16 的SPI接口的特点
10.1.3 SS引脚的功能
10.1.4 与SPI 相关的寄存器
10.1.5 数据模式
10.1.6 SPI应用实例
10.2 异步传输接口USART
10.2.1 时钟产生
10.2.2 USART 的初始化
10.2.3 数据发送——USART 发送器
10.2.4 数据接收——USART 接收器
10.2.5 异步数据接收
10.2.6 访问UBRRH/UCSRC 寄存器
10.2.7 USART 寄存器描述
10.3 串口通信应用实例
10.3.1 器件介绍
10.3.2 硬件设计
10.3.3 程序设计详解
10.4 两线串行接口TWI
10.4.1 两线串行接口总线定义
10.4.2 电气连接
10.4.3 数据传输和帧格式
10.4.4 TWI模块综述
10.4.5 TWI 寄存器说明
10.4.6 使用TWI
10.4.7 数据传输模式
10.5 TWI应用实例
10.5.1 器件介绍
10.5.2 硬件设计
10.5.3 程序设计详解
10.6 思考与练习
第11章 电机、继电器和键盘输入的控制
11.1 直流电机简介
11.2 直流电机常用驱动方案
11.3 直流电机控制实例
11.4 步进电机控制实例
11.5 继电器控制
11.6 PS/2键盘控制
11.7 独立按键和矩阵键盘的识别
11.7.1 按键的分类
11.7.2 矩阵式键盘的结构与工作原理
11.7.3 矩阵式键盘的按键识别方法
11.7.4 独立式按键的结构和工作原理
11.7.5 键盘的扫描工作方式
11.7.6 独立按键和矩阵按键识别应用实例
11.8 思考与练习
第12章 点阵LED屏的控制
12.1 LED点阵屏驱动电路
12.2 字模数据
12.3 点阵字库
12.4 在计算机中显示一个字符
12.5 几种常用的字符动态编码显示方案
12.6 点阵屏控制实例
12.6.1 硬件设计
12.6.2 程序设计及详解
12.7 思考与练习
第13章 红外遥控器的解码
13.1 红外遥控简介
13.1.1 红外光的利用
13.1.2 红外光的调制
13.1.3 发射器
13.1.4 接收器
13.1.5 常用的HT6221遥控器芯片简介
13.1.6 HT6221编码特征
13.1.7 遥控器解码方法及软件说明
13.2 红外遥控解码实例
13.2.1 硬件设计
13.2.2 软件设计及详解
13.3 红外遥控解码液晶(LCD1602)显示
13.4 思考与练习
第14章 DS18B20温度传感器的应用
14.1 DS18B20温度传感器概述
14.2 DS18B20芯片封装结构及引脚功能
14.3 DS18B20工作原理及应用
14.4 DS18B20芯片与单片机的接口
14.5 DS28B20芯片ROM指令和存储器操作指令
14.6 DS18B20复位及应答关系
14.7 DS18B20温度传感器应用实例1
14.7.1 硬件设计
14.7.2 程序设计及详解
14.8 DS18B20温度传感器应用实例2
14.8.1 硬件设计
14.8.2 程序设计及详解
14.9 思考与练习
第15章 时钟芯片DS1302的应用
15.1 DS1302使用介绍
15.1.1 概述
15.1.2 DS1302的结构及性能
15.1.3 DS1302管脚描述
15.1.4 DS1302 内部寄存器
15.1.5 DS1302 与微控制器的接口软件及功能应用
15.2 时钟芯片DS1302应用实例1
15.3 时钟芯片DS1302应用实例2
15.4 思考与练习
附录
附录A C语言运算符的优先级
附录B 常用字符与ASCII代码对照表
参考文献