与单片机打交道已有多年,记得刚接触单片机的时候觉得它很神奇,只需通过修改相关代码就能进行相应控制。但是,在初学的时候感觉很难,也曾有过放弃学习它的念头,这主要是苦于条件较差,没有资金配备专门的开发工具,好不容易学习了一些理论知识,也只能在纸上编写程序(当时计算机还没现在这样普及),不能与被控制对象很好地联系起来。
随着时间的推移,单片机的应用与普及是我们始料未及的。现在,许多单片机初学者都是先学习单片机相关基础知识,然后使用计算机在一些编译软件上编写程序,通过分析寄存器的内容以检验程序设计是否符合要求,或者自己焊接硬件电路将源程序代码下载到单片机中,观察运行效果。这种学习方法很好,但是如果所设计系统较复杂,难以分析相关寄存器内容,或者由于硬件成本过高,难以制作硬件电路时,这种学习方法就有所欠缺,尤其是对于在校学生而言。
一次偶然的机会接触了Proteus,使用之后,感觉很好,它对于单片机学习或者系统开发都能提供有力帮助。Proteus是多功能的EDA软件,真正实现了虚拟物理原型功能,在目标板还没投产前,就可以对所设计的硬件系统的功能、合理性和性能指标进行充分调整,并可以在没有硬件电路的情况下,进行相应的程序设计与调试,可由仿真原理图直接导出绘制成印制电路板(PCB)。虚拟物理原型,对于单片机初学者来讲可节约学习成本,提高学习积极性;对于单片机系统开发人员来讲,可缩短开发时间,提高设计效率,降低开发成本。
为使初学者能迅速入门,提高对单片机的兴趣与爱好,并能在短期内掌握单片机的应用开发要领,特编写此书。在编写过程中,编者注重题材的取舍,使本书具有以下四个特点。
1.由浅入深,循序渐进
本书在内容编排上采用由浅入深、由易到难的原则,从*初的51单片机开发环境、Proteus软件的使用,到单片机内部单元的实现,再到单片机外围扩展,直至单片机的工业控制应用。这样的编排可让读者根据自己的情况选择阅读起点。
2.软硬结合,虚拟仿真
沿用传统单片机学习与开发经验,通过相关编译软件(如Keil)编写程序并生成.HEX文件,然后在Proteus中画好硬件电路图(这一过程相当于硬件电路的焊接),调用HEX文件进行虚拟仿真(这一过程相当于硬件调试)。这样,可节约学习成本,提高读者的学习积极性。
3.C语言与汇编语言并存
为增加单片机应用系统程序的可读性和可移植性,单片机编程也从传统的汇编语言编程转向C语言编程。为适应这一形势的需要,本书第3章和第5章的例子全部采用汇编语言编程,第4章和第6章采用汇编语言和C语言两种方式编写程序,第7章至第9章主要采用C语言编写程序。
4.淡化原理,注重实用
基本原理、基本实例一直是学习和掌握单片机应用技术的基本要求,本书侧重于实际应用,因此很少讲解相关理论知识,这样避免了知识重复性。为紧随技术的发展,在编写过程中还注重知识的新颖、实用性,因此本书中讲解了SPI总线、I2C总线、1-Wire总线及RS-485总线芯片的使用方法,使读者学习的知识能够紧随时代的发展。
由于Proteus软件的操作方式与一般的应用软件不同,菜单栏与工具条也不完全对应,因此本书只列出了与菜单栏相对应的一些工具条,对于与菜单栏不对应的工具条,请读者参考相关资料。为了便于读者学习和使用实际的Proteus软件,本书对电路图中不符合**标准的图形及符号等未做改动(例如,在Proteus软件中,电容单位?F使用uF进行标记)。
参加本书编写的有侯玉宝、陈忠平、李成群、高见芳、龚亮、龙晓庆等。全书由周少华教授主审,在编写过程中还得到了李锐敏、陈建忠等众位高工、老师的大力支持及帮助,在此向他们表示衷心的感谢。由于编者知识水平和经验的局限性,书中难免存在缺点和错误,敬请广大读者给予批评指正。编者E-mail:czpmcu@126.com