AVR单片机原理及测控工程应用——基于ATmega48/ATmega16(第2版)以AVR系列中极具优势的ATmega48和ATmega16单片机为对象,在详细讲述AVR单片机应用原理的基础上构建时域测量、频域测量、单片机控制系统设计和分布式测控系统四大测控工程应用板块,深入剖析和融合相关知识,梳理知识脉络,抓住共性问题。通过详述大量应用实例的设计思路、原理、方法和步骤,将AVR单片机资源和应用技巧与具体工程实践有机结合,力求典型、实用,讲明嵌入式系统中的模拟电路设计要点,使读者建立起嵌入式系统设计的概念。全书以C语言(GCCAVR)作为编程设计语言展开AVR单片机应用原理的讲述,深入浅出,高度概括GCCAVR的应用特点和技巧,以增强读者嵌入式系统应用的软件设计能力,改变以汇编语言讲述单片机原理的现状。
《AVR单片机原理及测控工程应用:基于ATmega48/ATmega16(第2版)》可以作为电气、信息和仪表类专业单片机及仪器仪表类课程的本科或硕士研究生的教材和参考书,也可供工程技术人员参考。
单片机作为计算机的一个重要分支,随着信息技术的发展,其应用需求日益增多,应用范围越来越广,促使其新的架构不断出现,性能不断改进.AVR单片机采用哈佛结构,废除了机器周期,抛弃了复杂指令计算机(CISC)追求指令完备的做法,采用精简指令集(RISC),以字作为指令长度单位,将内容丰富的操作数与操作码安排在一字之中(指令集中占大多数的单周期指令均如此),取指周期短,又可预取指令,实现了流水作业,可高速执行指令.另外,AVR 系列单片机片上都集成了丰富且性能优异的外围电路元件,使得低价位的AVR系列单片机赢得了更多的市场.
本书重点介绍AVR系列中的ATmega48/ATmega16单片机,同时介绍具有同样结构存储器且容量稍大的ATmega88、ATmega168/ATmega32,以测控工程应用为背景深入细致讲解.全书的编写主要基于以下几点考虑:(1)AVR 系列单片机是8位机中的佼佼者.作为高端产品,其中ATmega48/ATmega16单片机资源丰富,性能优异,具有良好的抗干扰特性,价格低廉,吸引了很多用户,广泛应用于工业现场、家电和消费电子等领域,然而专门讲述ATmega48/88/168单片机及ATmega16/32单片机的书籍很少.基于ATmega48/ATmega16物美价廉的特点,在介绍极具性价比且已被工程界广泛应用的ATmega48的同时,讲解具有JTAG调试接口的高性能、廉价的ATmega16,既考虑了工程师的需求,又满足了AVR初学者的愿望.
(2)虽然单片机相关课程一直作为电气、信息及仪器仪表类专业的重点课程,是电子系统综合应用的平台课程,然而很多教材往往注重的是CPU 本身结构的分析讲解,侧重汇编指令的分析和记忆,却很少提及单片机系统的开发过程和开发方法;通常只是说明针对某一工程应用该如何分析,以及给出硬件电路和程序流程,而没有具体讲述到底如何动手编写程序,怎样把程序下载进行软硬件联合调试等,使学生一直停留在理论设计水平.尤其是实验环节,多为以汇编编程的验证性实验,且大都是片断代码的验证,然而目前所面对的多为复杂的嵌入式系统工程设计,代码庞大,综合性强.另外,C程序设计早已成为主流,C程序的简单应用系统设计实验将成为实验环节的发展趋向.本书在强化单片机工作原理讲述的同时,以C语言(GCCAVR)作为编程设计语言,并将嵌入式C程序设计的技巧贯穿进去,增强读者嵌入式系统应用的软件设计能力,改变以汇编语言讲述单片机原理的现状.
(3)目前,很多单片机书籍缺乏工程应用背景,内容组织上对嵌入式计算机的系统资源调配及各种接口技术的应用讲述较少,更没有站在工程实践角度构建单片机应用系统的设计思想和方法.学生没有形成学好一种机型是为了方便学习和应用其他机型的意识,致使很多学生面对实际应用无从下手,甚至产生不知道为什么要学,学了又能用来干什么的疑问,学生学习该课程的兴致不高.另外一些书籍所讲述的内容,尤其是接口器件,既陈旧,又不切合实际,不但增加了学生负担,而且使学生接触到的并非新知识和新器件,不能跟踪主流技术.一些应用实例的书籍跳跃性大,实例起点不一,不适于自学提高.本书在符合认知规律的前提下,优化教材结构,与主流技术接轨,结合工程背景,从具体设计实例中进行循序渐进的总结性学习,使读者获得事半功倍的效果.
(4)目前,很多课程和技术较混乱,比如“单片机接口技术”、“计算机控制系统”、“传感器与检测技术”、“智能化测控仪表”等相关课程,都是以单片机为系统核心,进行信号检测采集处理、显示、传输和控制,包括器件接口技术和人机接口等,大量内容重复且缺乏系统性.其实,这些课程存在一些共性的技术问题,深入研究和系统介绍这些共性技术,无疑将对设计、研制和使用自动检测系统起到重要的作用,也可为打算进入该领域的读者寻找到一条捷径.目前,国内测控仪表方面的教科书不少,但是,大多数是一般性原理、方法和装置简介,较为系统地论述测控仪表中共性技术的书籍很少,尤其多以MCS 51为蓝本,设计方法落后且器件陈旧.本书在详细讲述AVR单片机应用原理的基础上,构建时域测量、频域测量、单片机控制系统设计和分布式测控系统四大应用板块,详述设计思路、原理、方法和步骤,给出常用传感器及仪器仪表设计实例和典型控制系统设计实例,将课程体系深度融合,抓住共性问题,力图在讲述ATmega48/ATmega16单片机原理的同时,通过单片机的应用来讲述单片机的相关应用技术及应用领域,使读者建立起嵌入式的概念,从而架起电气、信息和仪器仪表类工程领域与计算机应用的桥梁.
全书由刘海成主持编写统稿,许亮、刘柏森、高旭东、杨春光、李艳苹任副主编.刘海成编写第1、5、7章,许亮编写第4章,刘柏森编写第2章,高旭东编写第8章,杨春光编写第6章和附录,李艳苹编写第3章.秦进平教授、叶树江教授和韩喜春教授审阅了全稿并提出了很多宝贵意见,在此对他们表示由衷的感谢.书中参考和应用了许多学者和专家的著作和研究成果,还有一些网友的作品,在此也向他们表示诚挚的敬意和感谢.北京航空航天大学出版社的胡晓柏主任一直关心本书的出版,在此表示深深的谢意.最后,感谢我的妻子和女儿对我的支持和鼓励!
该书叙述简洁,涵盖内容广,知识容量大,涉及的应用实例多,适于高等院校电子、电气、通信及自动化等专业学生单片机及接口类、计算机控制及智能测控仪表类等课程使用,也适合作为电子设计竞赛自学或培训的教材,同时,也可以作为工程技术人员的参考书.
本书虽然力求完美,但是水平有限,错误之处在所难免.敬请读者不吝指正和赐教,不胜感激!
作者
2015年6月
第1章 ATmega48/ATmega16单片机概述
1.1 AVR系列单片机概述
1.1.1 单片机与嵌入式系统知识问答
1.1.2 当代单片机内核结构的发展趋势
1.1.3 AVR单片机概述
1.1.4 AVR系列单片机选型
1.2 ATmega48/ATmega16单片机及其存储器结构
1.2.1 ATmega48/88/168与ATmega16/32单片机性能概述
1.2.2 ATmega48/ATmega16存储器结构
1.3 ATmega48/ATmega16最小系统与系统初始配置
1.3.1 ATmega48/ATmega16的引脚排列
1.3.2 ATmega48和ATmega16最小系统设计
1.3.3 ATmega48/ATmega16的系统时钟源及单片机熔丝配置
1.3.4 AVR单片机ISP全攻略及熔丝补救方法
1.3.5 ATmega48/ATmega16的掉电检测电路(BOD)
1.4 嵌入式C编程与AVR
1.4.1 AVR的C语言开发环境
1.4.2 C语言环境访问MCU 寄存器
1.4.3 GCC编译器下E2PROM 和Flash存储器的访问
1.4.4 C语言下E2PROM 存储器的通用访问方法
1.4.5 AVRC编译器的在线汇编
1.4.6 标准C下位操作实现综述
1.4.7 GCCAVR的delay.h文件与延时
1.4.8 如何优化单片机系统设计的C代码
1.4.9 C语言宏定义技巧及常用宏定义总结
1.4.10 从C51到AVR的C编程
1.4.11 前后台式嵌入式软件结构
1.4.12 基于时间触发模式的软件系统设计简介
1.5 AVR的开发工具与开发技巧
1.5.1 AVR单片机嵌入式系统的软件开发平台———AVRStudio
1.5.2 AVR的JTAG仿真调试与ISP
1.5.3 基于AVRStudio和GCCAVR的AVR单片机仿真调试
1.5.4 只具备ISP调试条件下的AVR单片机的调试技巧
1.5.5 单片机系统开发流程及要点
第2章 ATmega48/ATmega16单片机I/O 接口、中断系统与人机接口技术
2.1 AVR单片机的GPIO
2.1.1 AVR的GPIO概述
2.1.2 AVR的GPIO应用技术要点
2.1.3 GPIO上下拉电阻的应用总结
2.2 人机接口———按键及其识别技术
2.2.1 机械触点按键常识
2.2.2 矩阵式键盘接口技术及编程
2.2.3 智能查询键盘程序设计与单片机测控系统的人机操作界面
2.3 LED显示技术原理与实现
2.3.1 数码管的译码显示
2.3.2 LED数码管驱动之静态显示和动态(扫描)显示及实例
2.3.3 LED点阵屏技术
2.4 ATmega48/ATmega16的中断系统
2.4.1 中断与中断系统
2.4.2 ATmega48/ATmega16中断源和中断向量
2.4.3 AVR单片机中断响应过程
2.4.4 AVR单片机中断优先级
2.4.5 AVR中断响应的时间
2.4.6 高级语言开发环境中中断服务程序的编写
2.5 ATmega48/ATmega16外中断及应用实例
2.5.1 INT0、INT1和INT2中断控制相关寄存器
2.5.2 ATmega48引脚电平变化中断寄存器
2.5.3 外中断实例
2.6 AVR的SPI通信接口及其应用
2.6.1 SPI串行总线接口
2.6.2 AVR单片机的硬件SPI通信接口
2.6.3 AVR单片机SPI通信相关寄存器结构
2.6.4 AVR单片机SPI通信驱动程序设计
2.6.5 基于SPI总线实现74HC595驱动多共阳数码管
静态显示实例
2.6.6 AVR实现硬件SPI从机器件驱动8个数码管
2.7 AVR两线串行通信接口TWI(兼容I2C)及其应用
2.7.1 I2C总线概述
2.7.2 AVR兼容I2C的两线通信接口TWI及其相关寄存器
2.7.3 TWI的使用方法
2.7.4 通过TWI(I2C)主机接口操作AT24C02
2.7.5 软件模拟I2C主机读写AT24C02
2.7.6 ATmega48通过I2C从机模式模拟AT24C02
2.8 1602字符液晶显示器及其接口技术
2.8.1 1602总线方式驱动接口及读/写时序
2.8.2 操作1602的11条指令详解
2.8.3 1602液晶驱动程序设计
2.9 ST7920(128×64点)图形液晶显示器及其接口技术
2.9.1 ST7920引脚及接口时序
2.9.2 ST7920显示RAM 及坐标关系
2.9.3 ST7920指令集
2.9.4 ST7920的C例程
2.10 128×64点阵SPLC501液晶控制器及应用
2.10.1 128×64点阵图形液晶驱动芯片SPLC501
2.10.2 SPLC501程序设计举例
第3章 ATmega48/ATmega16单片机的定时器及相关技术应用
3.1 ATmega48/ATmega16的定时/计数器概述
3.2 ATmega48/ATmega16的定时/计数器0———T/C0
3.2.1 T/C0概述
3.2.2 ATmega48/ATmega16的T/C0相关寄存器
3.2.3 ATmega48/ATmega16的T/C0的定时应用举例
3.3 ATmega48/ATmega16的定时/计数器1———T/C1
3.3.1 T/C1概述
3.3.2 T/C1的输入捕捉单元
3.3.3 ATmega48/ATmega16的T/C1相关寄存器
3.3.4 利用ICP测量方波的周期
3.4 ATmega48/ATmega16的定时器/计数器2———T/C2
3.4.1 T/C2概述
3.4.2 ATmega48/ATmega16的T/C2相关寄存器
3.4.3 基于T/C2的RTC系统设计
3.5 频率测量及应用
3.5.1 频率的直接测量方法———定时计数
3.5.2 通过测量周期测量频率
3.5.3 等精度测频法
3.5.4 频率/电压(F/V)转换法测量频率
3.6 PWM 技术及应用系统设计
3.6.1 PWM 技术概述
3.6.2 PWM 的频率控制应用
3.6.3 PWM 的功率控制应用
3.6.4 基于PWM 实现D/A
3.7 超声波测距仪的设计
3.7.1 超声波测距原理
3.7.2 基于单片机的超声波测距仪的设计
3.8 正交编码器的原理及设计
3.8.1 光电编码器
3.8.2 正交编码器
第4章 单片机测控系统与智能仪器
4.1 单片机测控系统与智能仪器概述
4.1.1 单片机测控系统及构成
4.1.2 传感器、检测技术、电子测量与智能化测量仪表
4.1.3 智能化测量仪表的自检功能及实现
4.2 信号调理与量程自动转换技术
4.2.1 信号调理技术
4.2.2 量程自动转换技术
4.3 智能多路数据采集系统
4.3.1 多路数据采集系统的基本构成
4.3.2 智能化多路数据采集系统原理
4.3.3 模拟开关、参考源与多路输入程控增益放大电路
4.4 ATmega48/ATmega16片上A/D转换器及其应用
4.4.1 A/D噪声抑制
4.4.2 片内基准电压
4.4.3 ATmega48/ATmega16与A/D转换器有关的寄存器详述
4.4.4 AVR的A/D转换应用举例
4.4.5 A/D键盘
4.5 高性能外围A/D器件———TLC2543、ICL7135和AD7705
4.5.1 具有11通道的12位串行模拟输入A/D转换器———TLC2543
4.5.2 高精度4???位CMOS双积分型A/D转换器———ICL7135
4.5.3 内置PGA 的16位Σ ΔA/D转换器———AD7705
4.6 单片机外围D/A 器件———DAC0832和TLV5618
4.6.1 T型电阻网络与DAC0832
4.6.2 12位双路D/A———TLV5618
4.7 ATmega48/ATmega16片上模拟比较器与综合应用
4.7.1 片上模拟比较器的相关寄存器
4.7.2 片上模拟比较器软件设计
4.7.3 模拟比较器应用———超限监测
4.7.4 模拟比较器及ICP1综合应用———正弦波周期测量
4.8 单片机测控系统的抗干扰设计
4.8.1 单片机应用系统抗干扰设计的基本原则
4.8.2 单片机应用系统PCB布线的基本原则
4.8.3 单片机软件抗干扰技术———看门狗技术
4.8.4 单片机睡眠工作方式在抗干扰中的应用
4.8.5 软件抗干扰的健壮性设计
4.9 便携式设备的低功耗设计
4.9.1 延长单片机系统电池供电时间的几项措施
4.9.2 利用单片机的休眠与唤醒功能降低单片机系统功耗
4.10 智能测控系统的典型数据处理技术
4.10.1 概 述
4.10.2 测量数据的标度变换
4.10.3 数字滤波技术
4.10.4 系统误差校正技术
4.10.5 测量结果的非数值处理方法———查表法
第5章 智能传感器与智能仪器设计———时域测量技术及应用
5.1 电阻电桥基础
5.1.1 基本直流电阻电桥配置
5.1.2 电阻电桥应用电路的几个关键技术
5.1.3 高精度Σ ΔA/D转换器与直流电桥
5.1.4 双电源供电电阻电桥实际应用技巧
5.1.5 硅应变计
5.1.6 电压驱动硅应变计
5.1.7 电流驱动硅应变计
5.2 基于恒流源的铂电阻智能测温仪表的设计
5.2.1 铂电阻温度传感器
5.2.2 铂电阻测温的基本电路
5.2.3 Pt100恒压分压式三线制测温电路
5.2.4 基于双恒流源的三线式铂电阻测温探头设计
5.2.5 基于ICL7135和双恒流源的铂电阻智能测温仪表的设计
5.3 精密数控电源的设计
5.3.1 精密数控对称双极性输出直流稳压电源的设计
5.3.2 精密数控恒流源技术
5.4 晶体三极管参数测试仪的设计
5.4.1 三极管β 参数的测试
5.4.2 三极管输入、输出特性曲线的测量
第6章 智能传感器与智能仪器设计———频域测量相关技术及应用
第7章 基于模糊PID 控制的计算机控制系统设计与应用
第8章 分布式智能测控系统及其应用
附录 ASCII表
参考文献