利用Proteus虚拟开发技术进行Arduino单片机系统开发

发布者:码字奇才最新更新时间:2018-03-18 来源: eefocus关键字: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的积极性与主动性,对提高他们的自主学习能力与科研创新能力起到有力的促进作用。


关键字:Proteus  虚拟开发技术  Arduino  单片机  系统开发 引用地址:利用Proteus虚拟开发技术进行Arduino单片机系统开发

上一篇:基于STC单片机的ISP下载线设计
下一篇:基于MSP430单片机的彩色TFT液晶显示模块的应用

推荐阅读最新更新时间:2024-03-16 15:57

单片机在语音存储与回放中的应用
一、引言 目 前,随着数字化信号处理技术的不断提高,单片机,数字信号处理器以及语音处理大规模集成电路的进步,语音合成,语音识别,语音存储和回放技术的应用越来越 广泛,尽管现在各种语言合成芯片,语音处理应用电路有许多,但都需要增加硬件投资,在一些由单片机构成的测控系统中,由于单片机接口有限,还需要扩宽硬件 接口线路,本文介绍的语音存储与回放系统中,没有使用专用的语音处理芯片,不需扩宽接口电路,只利用一般的单片机测控系统中都有的硬件电路(如A/D、 D/A、,存储器等)就能完成语音信号的数字化处理,即能完成语音的存储与回放,实现单片机测控系统的语音提示报警及语音提示操作。因此特别适用于单片机 测控系统,为单片机测控系统的语音报警及语
[单片机]
<font color='red'>单片机</font>在语音存储与回放中的应用
恩智浦携手NTRU提升微控制器安全性
恩智浦半导体 与领先的嵌入式安全软件解决方案供应商 NTRU ,共同发布了首款用于通用型 ARM7 微控制器的基于软件的加密解决方案。软件加密微控制器可用于多种应用,包括信用卡读卡器、门禁系统、 ATM 和机顶盒。通过这种基于软件加密的技术,用户能够升级已安装使用了微控制器的应用的安全性能,从而抵御可能的攻击。 NTRU 业务发展副总裁 Sheila Walker 表示:“在一个日益互联的世界中,各种业务都需要验证并保护其信息安全,加密和安全解决方案就显得尤为重要。即使对于可能携带或传输敏感信息的低成本应用,嵌入式产品设计师们都迫切需要采用复杂的加密技术。” 恩智浦基于 ARM 的微控制器采用了应用中编程(
[新品]
解析单片机的应用范围
单片机的应用领域: 目前单片机渗透到我们生活的各个领域,几 乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿 车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用 与智能化控制的科学家、工程师。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: 1.在智能仪器仪表上的应用 单片机具有
[单片机]
基于单片机的按键消抖
按键电路:常用的非编码键盘,每个键都是一个常开开关电路。 按键消抖 : 通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号小型如下图。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,如下图。抖动时间的长短由按键的机械特性决定, 一般为5ms~10ms 。这是一个很重要的时间参数,在很多场合都要用到。 按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳
[单片机]
基于<font color='red'>单片机</font>的按键消抖
51单片机OLED12864 I2C接口使用教程
现在能买到的OLED12864显示屏大多为SPI和I2C接口的,I2C通信协议只需要两条总线就可以进行通信,下面介绍一下如何用51单片机使用I2C接口的OLED12864。 首先介绍一下I2C通信协议,I2C(Inter-Integrated Circuit)字面上的意思是集成电路之间,它其实是I2CBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。I2C的正确读法为“I平方C”( I-squared-C )。 I2C只使用两条双向漏极开路(Open Drain)(串行数据(SDA)及串行时钟频率(
[单片机]
51<font color='red'>单片机</font>OLED12864 I2C接口使用教程
Atmega16单片机实验:DS18B20和ad采集显示程序
rem Main.bas file generated by New Project wizard rem rem Created: 周日 9月 16 2018 rem Processor: ATmega16 rem Compiler: BASCOM-AVR rem Write your code here $regfile = m16def.dat $crystal = 2000000 Config 1wire = Portb.0 '定义BS18B20接在PB0上 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Por
[单片机]
Atmega16<font color='red'>单片机</font>实验:DS18B20和ad采集显示程序
[单片机框架] [kv_sys] 实现一个简易KV键值系统
Env 小型KV数据库,支持 写平衡(磨损平衡) 及掉电保护模式 让Flash变为NoSQL(非关系型数据库)模型的小型键值(Key-Value)存储数据库。在产品上,能够更加简捷的实现 设定参数 或掉电保存的功能。 功能: 简易设置KEY和VAL,自动垃圾回收。至少需要占用两页FLASH空间。 平衡flash读写,提高flash擦写寿命 介绍 资源占用 RAM 16 字节 ROM 约500字节 支持平台 各类单片机 函数简洁 void *kv_get_env(uint8_t key_id); bool kv_del_env(uint8_t key_id); bool kv_set_env(uint8_t ke
[单片机]
[<font color='red'>单片机</font>框架] [kv_sys] 实现一个简易KV键值系统
MCP2510 CAN通信程序(pic单片机)
// ========CAN通信程序======= #include PIC.h #include PIC16f87x.h #include mcp2510.h // MCP2510寄存器定义 // =========常数和变量定义========= #define READ 0x03 // 读MCP2510指令代码 #define WRITE 0x02 // 写MCP2510指令代码 #define RESET 0xC0 // 复位MCP2510指令代码 #define RTS 0x80 // MCP2510请求发送指令代码
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved