前言

单片机又称为单片微型控制器,其实质是将一个计算机系统集成到一个芯片上。它具有体积小、质量轻、价格便宜、控制功能强等特点。现在单片机已经在很多领域中得到了广泛应用,但随着技术的进步和应用需求的不断发展,人们对控制器的综合性能要求也越来越高,也希望产品的性价比越来越高,特别是在一些中、低端应用领域,更期望通过集成度比较高,而且价格便宜的单片机来解决问题,主要体现在外设丰富、功能强大、运用灵活、速度快、功耗低、产品开发方便、容易升级等方面。

1997年,由Atmel公司挪威设计中心的A先生与V先生利用Atmel公司的Flash新技术,共同研发出RISC精简指令集的高速8位AVR系列单片机。相对于出现较早也较为成熟的51系列单片机,AVR系列单片机在功能、速度、功耗等方面具有独特的优势。

本书以AVR系列典型的ATmega16单片机为蓝本,结合Proteus仿真软件,以项目为载体,采用任务驱动方式的教学方法,通过丰富的C语言程序实例,由浅入深地介绍了ATmega16单片机的基础知识及各种应用开发技术。在编写过程中,编者注重题材的取舍,使本书具有以下4个特点。

项目为载体,任务带动教学】本书以“项目为载体,采用任务驱动方式”编写,强调“教、学、做”一体,坚持理论知识够用的原则,并将知识点分散到多个任务中,使读者能够边学边做,轻松迈入单片机学习之旅。

软件结合,虚拟仿真】沿用传统单片机学习与开发经验,通过相关编译软件(如CVAVR)编写程序并生成*.Hex与*.cof文件,然后在Proteus中绘制好硬件电路图(这一过程相当于硬件电路的焊接),调用*.cof(或*.Hex)文件进行虚拟仿真(这一过程相当于硬件调试)。对于单片机初学者来讲,这样可以节约学习成本,提高学习积极性;对于单片机系统开发人员来讲,这样可以缩短开发时间,提高设计效率,降低开发成本。

C语言编程,增强可读性】C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。用C语言来编写程序会大大缩短开发周期,且明显地增加程序的可读性,便于改进和扩充。采用C语言进行单片机程序设计是单片机开发与应用的必然趋势。在传统的单片机技术学习方法中,均先学习汇编语言,然后再学习用C语言编写单片机程序代码,经过这种学习历程的工程技术人员深深地感悟到汇编指令太枯燥,学习起来费时费力,用汇编语言编写或读懂一个程序不是一件容易的事情。在现代教学过程中,使用C语言进行编程,不必对单片机的硬件结构有很深入的了解,编写程序相对简单,且程序的可读性和可移植性均很强。

【兼顾原理,注重实用】基本原理、基本实例一直是学习和掌握单片机应用技术的基本要求。本书侧重于实际应用,因此很少讲解相关的理论知识,这样就避免了知识的重复性。为紧随技术的发展,在编写过程中还注重知识的新颖性和实用性,因此本书中在讲解SPI总线、TWI总线时均讲解了相应的外扩芯片技术,使读者学习的知识能够紧随时代的发展。

参加本书编写工作的有湖南工程职业技术学院陈忠平、徐刚强、李锐敏、周少华、龙晓庆、龚亮,湖南涉外经济学院侯玉宝、高金定,衡阳技师学院胡彦伦,湖南航天诚远精密机械有限公司刘琼,湖南科技职业技术学院高见芳,湖南三一重工集团王汉其等。全书由湖南工程职业技术学院陈建忠教授主审。由于编著者知识水平和经验的局限性,书中难免有错漏之处,敬请广大读者批评指正。编著者E-mail:czpmcu@126.com

编著者