基于Proteus的AVR单片机C语言程序设计与仿真
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

单片机又称单片微控制器,其实质是将一个计算机系统集成到一个芯片上。它具有体积小、质量轻、价格便宜、控制功能强等特点,在工业控制、智能仪表、家用电器及军事装置等方面都得到了广泛的应用。

国内高等院校的单片机教学与研究已经有了近30年的历程,但目前大部分院校开设的单片机课程还是以20世纪80年代开始流行的MCS-51系列(包括增强型51系列)单片机为蓝本,以汇编语言或C语言为编程工具,以并行扩展为核心来讲述单片机的相关知识的。尽管MCS-51系列单片机在实际应用中还占据一定的市场,但由于该系列的单片机采用普林斯顿体系结构,使得指令周期长、执行速度慢、功能单一、访问外部数据有瓶颈。随着微电子技术的迅猛发展,在20世纪90年代末,市场上已经开始出现了AVR系列单片机。AVR系列单片机采用的是哈佛结构。与MCS-51系列单片机相比,它在运行速度、内存容量、内部功能模块的集成化等方面均有很大的改善。AVR单片机于1997年推出后,很快得到了市场的认可,并迅速推广开来,成为MCS-51系列单片机的强力竞争者。

许多单片机初学者都是首先学习单片机的相关基础知识,然后使用计算机在一些编译软件上编写程序,最后通过分析寄存器的内容以检验程序设计是否符合要求,或者自己焊接硬件电路将源程序代码下载到单片机中来观察运行效果。这种学习方法很好,但是如果所设计系统较复杂,则难以分析相关寄存器的内容,或者由于硬件成本过高,难以制作硬件电路,此时这种学习方法就有所欠缺,尤其是对于在校学生而言。

Proteus软件强势推出后,改变了单片机的传统学习方法,对于单片机学习或者系统开发都能提供有力的帮助。Proteus是多功能的EDA软件,真正实现了虚拟物理原型功能,在目标板还没投产前,它就可以对所设计的硬件系统的功能、合理性和性能指标进行充分调整,并可以在没有硬件电路的情况下,进行相应的程序设计与调试,可由仿真原理图直接导出绘制成印制电路板(PCB)。对于单片机初学者而言,虚拟物理原型可节约学习成本,提高学习积极性;对于单片机系统开发人员而言,它可缩短开发时间,提高设计效率,降低开发成本。

为使初学者能迅速入门,提高对AVR单片机的兴趣与爱好,并能在短期内掌握AVR单片机的应用开发要领,编者特编写了此书。在编写过程中,编者十分注重题材的取舍,使得本书具有以下四个特点。

1.由浅入深,循序渐进

本书在内容编排上采用由浅入深、由易到难的原则,从最初的AVR单片机开发环境、Proteus软件的使用,讲到单片机内部单元的实现,再到单片机外围扩展,直至单片机的电动机控制应用,这样的编排可让读者根据自己的情况选择阅读起点。

2.软硬结合,虚拟仿真

沿用传统单片机学习与开发经验,先通过相关编译软件(如CodeVisionAVR)编写程序并生成.HEX(或.COFF)文件,然后在Proteus中画好硬件电路图(这一过程相当于硬件电路的焊接),最后调用HEX文件进行虚拟仿真(这一过程相当于硬件调试)。这样可节约学习成本,提高读者的学习积极性。

3. C语言编程,增强可读性

C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。用C语言来编写程序会大大缩短开发周期,并且明显地增加程序的可读性,便于改进和扩充。采用C语言进行单片机程序设计是单片机开发与应用的必然趋势。许多人员在学习MCS-51单片机时,均先学习了汇编语言,然后再学习用C语言编写MCS-51程序代码,通过这种历程使他们深深地感悟到:汇编指令太枯燥,学习起来费时费力,而且用汇编语言编写一个程序或读懂程序不是一件容易的事情;而使用C语言进行编程时,不必对单片机的硬件结构有很深入的了解,编写程序相对简单,且程序的可读性和可移植性均很强。对于以前学过了MCS-51单片机的人员或从未学过单片机的人员来说,学习AVR单片机时是否也要先从汇编入手呢?答案是否定的。

考虑有些单片机初学者以前从未使用C语言编写单片机程序,因此本书在第3章介绍了C语言的相关知识,这样可使他们在很短时间内掌握C语言的相关语法。全书所有实例均采用C语言编写,这样对已学过MCS-51单片机或从未学过单片机的读者来说,可以使他们很容易看懂程序或进行程序的移植,也就是快速进入AVR的学习之门。

4.兼顾原理,注重实用

基本原理、基本实例一直是学习和掌握单片机应用技术的基本要求,由于许多AVR单片机初学者在学习AVR单片机时对相关原理不是很清楚,所以本书从第4章至第12章在讲解AVR单片机的部分功能应用时,首先讲解了相关原理,然后通过一些实例讲解其应用。在讲讲解实例时,先进行设计分析,然后给出源程序代码。这样的编写安排,使初学者可以不借助其他的AVR单片机原理方面的书籍,直接通过本书的学习就掌握AVR单片机的应用。

由于Proteus软件的操作方式与一般的应用软件不同,菜单栏与工具条也不完全对应,所以本书只列出了与菜单栏相对应的一些工具条,对于与菜单栏不对应的工具条,请读者参考相关资料。为了便于读者学习和使用实际的Proteus软件,本书对软件电路图中不符合国家标准的图形及符号等未做改动(如在Proteus软件中,电容单位μF使用uF进行标记)。

为便于读者阅读、学习,特提供本书所讲实例下载资源。请访问yydz.phei.com.cn网站,到“资源下载”栏目下载。

参加本书编写的有湖南工程职业技术学院陈忠平、湖南航天局7801研究所刘琼、湖南涉外经济学院侯玉宝、湖南科技职业技术学院高见芳、湖南工程职业技术学院龙晓庆、李锐敏、湖南三一重工集团王汉其等。全书由湖南工程职业技术学院陈建忠教授主审。在编写过程中还得到了湖南工程职业技术学院龚亮、彭芳等众位高工、老师的大力支持及帮助,在此向他们表示衷心的感谢。同时对在编写过程中参考的多部AVR单片机原理及相关著作的作者表示深深的谢意!

由于编著者知识水平和经验的局限性,书中难免存在缺点和错误,敬请广大读者给予批评指正,编者E-mail:czpmcu@126.com。

编著者

2011年1月