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”、
- 基于PROTEUS技术的ARM7显示系统设计与仿真实现(11-22)
- 单片机虚拟试验箱设计与研究(03-08)
- 基于PROTEUS软件的数字电压表印刷电路板设计(05-01)
- 基于51单片机的数字电压表仿真设计(05-29)
- Proteus在单片机教学和科技制作中的应用与实践(03-02)
- Proteus软件仿真与Keil的单片机系统设计(09-08)