利用Proteus虚拟开发技术进行Arduino单片机系统开发
扫描二维码
随时随地手机看文章
1.前言
Arduino是一款便捷灵活、方便上手的开源电子原型平台,具有接口丰富、编程环境简便、自由度大与可拓展性强等优点.它基于AVR平台,对AVR库进行了二次编译封装,将复杂的单片机底层代码封装成简单实用的函数,使使用者不用关心单片机编程繁琐的细节,如寄存器、地址指针等基本不用管,从而大大降低了单片机系统开发难度,特别适合老师、学生和一些业余爱好者使用。
由于Arduino使用者一般都是那些对电路知识、电子技术及单片机技术等了解不深入的初学者,如何在Arduino开发过程中快速有效的提高他们的单片机系统开发能力及电子电路设计能力是一个需要迫切解决的问题。
Proteus的引入较好的解决了存在的问题。
Proteus是一款电路分析与实物仿真软件,它除了能进行基本电子电路仿真外,还能直接在单片机虚拟系统上对MCU编程。Proteus虚拟开发技术的应用,形成了一种全新的Arduino系统开发理念,其系统开发流程为:电路设计与仿真-电路修改与完善-绘制PCB与生成PCB三维效果图-硬件组装与调试,打破了传统的系统设计模式,使Arduino使用者将系统设计缺陷暴露在设计初期,克服了因设计中不断修改焊接电路带来的弊端,此外PCB的三维效果图使元件符号与实际封装进行形象的对接,给初学者带来强烈的感官认识,从而加深他们对单片机系统设计的感悟。
2.Arduino虚拟系统设计
下面以四个按键分别控制四个不同颜色发光二极管的状态为例子,介绍应用Proteus进行Arduino虚拟系统设计的方法。
2.1 Proteus仿真电路绘制
在Proteus ISIS中绘制原理图主要分如下三步:
(1)新建设计:在Proteus ISIS开发环境中,点击“文件-新建设计”,在打开的对话框中选中其中一个设计模板,本文选中LandscapeA4模板,确定后即打开一个Proteus工作区,保存该设计。
(2)元器件选取及放置:首先选取元件,点击窗口左侧的按钮,在弹出的PICk Devices界面左上角的文本栏输入要查找的元器件名称,如ATMEGA328P,选中搜索到的元件,重复操作,把系统所需的所有元器件添加到元器件列表区中;其次放置元件,依次选中元器件列表区的元器件,单击鼠标左键将该器件放置到绘图区,并进行参数设置。
(3)布局与布线:对所有元器件进行合理布局后,点击按钮进行连线;连线时,当鼠标指针靠近一个对象的引脚时,鼠标可自动捕获该节点,并且出现一个以该节点为中心的红色正方形,单击鼠标左键进行连线,单击鼠标右键取消操作。
根据以上步骤,应用Proteus ISIS绘制的硬件原理图如图1所示。
2.2 Arduino程序设计与。hex文件获取
Arduino是以单片机ATMEGA328P为核心的控制板,在进行Proteus仿真时,只需将Arduino控制板的接口与ATMEGA328P的端口进行一一对应即可,其中,Arduino端口与ATMEGA328P单片机的引脚对应关系如图2所示。
根据图2所示Arduino端口与单片机ATMEGA328P引脚的对应关系,应用Arduino软件开发环境对图1所示的硬件电路进行程序设计,其中按键K1控制发光二极管LED1点亮及熄灭的程序代码如下所示,同样地,可通过修改Arduino端口来实现按键K2~K4分别控制发光二极管LED2~LED4状态的功能。
由于Arduino软件在编译、链接、下载之后。hex文件会自动删除,而没有。hex文件就无法实现Proteus仿真,通过实践,通过进行以下设置可获取Arduino编译后的。hex文件。
(1)新建一个文件夹用于存放。hex文件:
在某逻辑盘,如D盘,建立一个文件夹,文件名可任意,如为arduinohex,则该文件夹路径为:d:arduinohex.
(2)Arduino编程环境设置:点击Arduino软件界面菜单栏的“File->preferences”菜单,在弹出对话框中,首先选中“compilation”
和“upload”两个参数项;其次双击“C:Documents and Settings…preferences.txt”
这一项,找到“preferences.txt”文件的位置并打开该文件,同时关掉Arduino编程环境所有窗口;最后在“preferences.txt”文档中加入“build.path=d:arduinohex”这行文字,并保存文档。
完成以上设置后,通过在Arduino进行编译,即可在d:arduinohex这个文件夹中找到当前程序的。hex文件。
2.3 基于Proteus的arduino仿真实现
在完成Proteus仿真电路设计及Arduino的。hex文件获取后,通过在ATMEGA328P上加载。hex文件即可实现arduino虚拟系统的仿真[4].
在图1中,双击ATMEGA328P芯片,在弹出的对话框中,点击“Program File”参数项的“文件夹”按钮,在打开对话框中到d:arduinohex文件夹找到当前程序的。 h e x文件。同时将“CLKDIV8(Divide cLOCk by 8)”参数项修改为“Unprogrammed”、“CKSEL Fuses”
参数项修改为“(1111)Ext.Crystal 8.0-MHz”、“Advanced Properties”的“ClockFrequency”参数项设为“16Mhz”.
.hex文件加载成功及其他参数设置完成后,在Proteus中运行程序,其中,分别按下K1、K4按键,所对应的LED1、LED4亮,其他两个LED灭,仿真效果图如图3所示。
2.4 PCB绘制及三维仿真实现
在绘制PCB之前,要先检查Proteus ISIS中的每个元器件是否已经存在封装,如果没有指定的封装,则需自行查找、添加封装。在确保每个元件已添加好封装后,通过在ProteusISIS中导出网络表到ARES,从而进入到ProteusARES软件环境进行PCB设计,其中,图1对应的PCB图如图4所示。
为了使Arduino使用者更直观形象的了解电路原理图中各个元器件的符号与实物对应的关系,给他们带来感官的认识,从而加深对所用元件的理解与应用,如图4所示的PCB图对应的3D效果图如图5所示,其中,Proteus给出的PCB三维预览图可360度旋转,使设计者能从各个角度预览PCB的实物效果图。
3.结论
利用Proteus虚拟开发技术进行Arduino单片机系统开发,使Arduino使用者在制作外围接口板之前能利用Proteus实现电路仿真、电路调试与完善、PCB三维效果预览等功能,从而减少了他们在系统开发初期因频繁修改硬件电路而带来电路焊接工艺较差、性能不稳、甚至无法实现预期功能等的弊端,使他们快速、牢固地掌握单片机系统开发的整个流程,同时对该开发流程有直观形象的认识,从而有效调动他们学习Arduino的积极性与主动性,对提高他们的自主学习能力与科研创新能力起到有力的促进作用。