一. Proteus仿真平台简介

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。现已受到电子类特别是单片机爱好者、从事单片机教学的教师、致力于单片机开发应用等的科技工作者的青睐。以前的如EWB等软件只能仿真数字电路和模拟电路,不能仿真CPU和程序。

当前网上Proteus有7.8 SP2,7.10 SP0,8.0等几个版本,这几个JM的版本都比较稳定。这些版本的元件模型格式是兼容的,DSN仿真原理文件是一样的。8.0版本只是把DSN原理图、软件编辑环境和编译器集成为一个工程文件,成为一个象“傻瓜相机”一样的东西,但对初学Proteus者比较方便,因为内部已经集成了程序编辑器和可下载不同的编译器。

7.xx版本,DSN仿真原理、编辑器和编译器三者是独立的。而8.0版本是集成的。8.0版本在多CPU仿真时,设置不太容易;集成后软件有点大,不如7.xx版本简洁。

二. 开发三步曲

  • 编辑器
    用户选择用自己的喜欢的编辑器(如Notepad++,Utraedit,Source Insight,vim,slickedit,notepad等),用此写源程序。

  • C/C++编译器
    用户按CPU型号选择自己喜欢的C/C++编译器(如Winavr,CodeSourcery,Keil,IAR,WinARM,Watcom等等),一般的编译器都可以生成标准的.hex,和.elf格式的可执行目标文件。 Arduino IDE实际使用的是Winavr中的gcc。用此把第一步写的源程序编译成.hex和.elf文件。

  • 硬件仿真图
    Proteus中的Model下有元件仿真库,用户使用这些仿真元件,设计出自己的硬件仿真原理图,也叫.dsn文件。在Proteus环境下,用自己设计的.dsn文件,在CPU中加载第二步生成的.hex或.elf文件,就可以仿真运行了。.elf文件内部包含调试信息,可以单步、设置断点调试程序。

三. Arduino UNO硬件仿真原理图

本仿真电路图(HW目录下Arduino UNO.dsn文件)可以仿真Arduino Diecimila,或Arduino UNO板。前者采用FT232芯片做为串行通信模块,后都采用ATMEGA16U2微处理器代替了FT232,它们都是在USB上实现一个异步串行通信的功能。我们在仿真中,采用了Proteus中的串行口物理接口模型COMPIM,COMPIM完全可以代替串行通信的功能,它实现了与实际PC机物理串行接口RS232的连接,使仿真的虚拟世界与真实的世界连接。


图1-Arduino UNO硬件仿真原理图

图中左下角增加了两个串行通信虚拟终端VT1和VT2,用于调试串行通信接收数据或发送数据使用。其它为Arduino Diecimila或UNO的仿真电路,详细标注了引脚名称,与实现电路板一样。用Proteus仿真工具可以双击Arduino UNO.dsn打开Arduino仿真电路图。

四. Arduino开发软件下载及设置

1.下载并安装Arduino集成开发环境(Arduino IDE)
    到官网上下载并安装Arduino IDE,当前最新稳定版本为1.0.6版本。
http://arduino.cc
http://arduino.cc/en/Main/Software

2.选择Arduino板类型及串行口
    如图2,仿真时,选择前两个板都可以,在与实际Arduino板连接时,选择相对应的板,并选择相对应的串行口。
***因本文使用Arduino仿真开发方法,在仿真电路图中,只要选择目标执行文件.hex或.elf文件就相当于加载程序,所以不用串行口加载程序。


图2-选择板子型号


图3-选择串行口

3.设置Arduino IDE个人偏好(重要)

  • 选择File->Preferences


图4-选择preferences

  • 找到设置偏好文件preferences.txt

图5-选择preferences.txt

  • 用编辑器打开偏好设置文件preferences.txt

    【1】.在arduino工具的File->preferences中找到preferences.txt文件,用记事本打开。
    【2】.在preferences.txt文件的最后加一行,编辑加入 build.path=d:\MyHexDir,目录名自己定。为了观察方便,(本人设置是build.path=d:###ArduinoDbgDir )。
    【3】先关闭Arduino IDE;
    【4】之后保存preferences.txt;
    以上顺序不要变。这样就可以在Arduino编译时,看到d:\MyHexDir目标下的目标文件,而不会自动删除。

4. 编译
(1)双击SW\Blink目录下的源文件Blink.ino,自动打开Arduino IDE。
(2)点击Sketch->Verify/Compile编译生成目标文件,目标文件在d:\MyHexDir下(本人的在d:###ArduinoDbgDir目录下 )。
(3)点击CP.bat,会把.hex和.elf文件复制更新到当前.ino所在目录下。可以自己编辑CP.bat文件,改变目录。
(4)在Proteus中设置好一次.hex或.elf文件的位置就可以,以后更新.hex或.elf文件时,自动认为已经加载最新的。

五. 第一个Hello World程序仿真运行

Hello World程序就是在计算机屏幕上显示“Hello,World!”的一个程序,在嵌入式系统开发中,LED的闪烁程序就是Hello World程序,Hello World程序很简约,一般它是程序员在新的开发环境中第一个要运行的程序,但是简约并不简单。

虽然Hello World程序很简约,但是,为了这个简约的程序能够运行,需要进行开发工具链的选择、配置开发工具链,这需要大量繁琐的工作要做。Hello World程序能否运行,可以验证你的编译、开发环境、运行环境是否正确。

第一个程序Blink.ino如下:

///0. 引脚定义
#define LED_PIN 13 //定义LED引脚为13号数据引脚(DIG13) ///1. 初始化
void setup() {
pinMode(LED_PIN,OUTPUT); // 初始化DIG13为输出
} ///2. 循环
void loop() {
digitalWrite(LED_PIN,HIGH); //DIG13输出高电平
delay(1000); //延时1秒
digitalWrite(LED_PIN,LOW); //DIG13输出低电平
delay(1000); //延时1秒
}

(1)用Arduino IDE打开Blink.ino,编译之;
(2)在d:\MyHexDir目录下会生成.hex和.elf文件等;
(3)点击.ino所在目录下的CP.bat, 本目录多了两个文件.hex和.elf;
(4)用Proteus打开HW\Arduino UNO.dsn,双击Atmga 328P微处理器,在Program file项中选择上边SW\Blink\Blink.hex文件,或Blink.elf文件,若加载Blink.elf文件,则可以单步或设置断点调试;
(5)在Proteus中点击左下角运行仿真,如果图1中的LED小灯闪烁,则你的仿真运行环境设置正确。

参考:

【1】Arduino官网

【2】嵌入式系统工匠坊---ESCW

Arduino UNO仿真开发环境设置和仿真运行的更多相关文章

  1. Hadoop集群(第7期)_Eclipse开发环境设置

    1.Hadoop开发环境简介 1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0 ...

  2. Cocos开发中Visual Studio下HttpClient开发环境设置

    Cocos2d-x 3.x将与网络通信相关的类集成到libNetwork类库工程中,这其中包括了HttpClient类.我们需要在Visual Studio解决方案中添加libNetwork类库工程. ...

  3. Cocos开发中Visual Studio下libcurl库开发环境设置

    我们介绍一下win32中Visual Studio下libcurl库开发环境设置.Cocos2d-x引擎其实已经带有为Win32下访问libcurl库,Cocos2d-x 3.x中libcurl库文件 ...

  4. Visual Studio下SQLite数据库开发环境设置

    由于我们介绍的内容都是基于微软的Visual Studio下开发的Win32平台,所以下边我们介绍Visual Studio下SQLite数据库开发环境设置.具体而言我们有两种方式可以在Visual ...

  5. Visual Studio 2012下Box2D开发环境设置

    Cocos2d-x 3.x默认情况下采用的物理引擎是Chipmunk,如果我们要使用Box2D引擎,需要进行一些设置和调整,而且不同的开发平台下这些设置也有所不同.由于本书在此之前介绍的都是基于微软的 ...

  6. Cocos发育Visual Studio下一个HttpClient开发环境设置

    Cocos2d-x 3.x相关类集成到网络通信libNetwork图书馆project于.这其中包括:HttpClient分类. 我们需要在Visual Studio溶液中加入libNetwork图书 ...

  7. Hadoop集群 -Eclipse开发环境设置

    1.Hadoop开发环境简介 1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0 ...

  8. 2-5 Flutter开发环境与Android开发环境设置详解(Windows)

    第二个是国内服务器的网址 andoid stuido的一些使用的说明文档 https://developer.android.google.cn/studio/intro 安装Flutter Dart ...

  9. python开发环境设置(windows)

    python开发环境设置(windows) 1)  python2.7.3安装 在www.python.org上下载python-2.7.6.amd64.msi软件.安装完毕后设置path路径.控制面 ...

随机推荐

  1. LeetCode-Maximal Rectangle[code]

    code: #include <iostream> #include <vector> #include <stack> #include <algorith ...

  2. SQL Server 没有足够的内存继续执行程序 (mscorlib)的解决办法

    问题: SQL Server 执行大脚本时,出现如下提示信息: 解决方法: 使用 sqlcmd.exe 导入 1.win + r,输入 cmd 进入 C:\Program Files\Microsof ...

  3. js 浅拷贝有大用

    如题 像浅拷贝.深拷贝这类的知识点我们应该都明白是怎么回事,大部分都是在面试的时候会被问到.大多让你实现一个深拷贝.现实中我们都用比较暴力直接的手段 JSON stringify. 一句话就搞定,管他 ...

  4. 这么多小程序,会微信小程序就够了

    随着小程序的普及以及小程序体验的逐步升级,现在小程序的地位已经凸现出来.各大平台纷纷推出自己的小程序平台. 最早的是微信小程序,支付宝小程序,快应用,百度小程序去年上来,18年底头条程序也发布. 那么 ...

  5. 网络分析 ANP

    在许多实际问题中,各层次内部元素往往是依赖的. 低层元素对高层元素亦有支配作用,即存在反馈. 此时系统的结构更类似于网络结构.网络分析法正是适应这种需要,由AHP延伸发展得到的系统决策方法.   AN ...

  6. JavaScrip File类拓展

    ##今天在做jsp的文件上传功能,想着上传文件后在当前页面把选取的文件信息展现出来,查来查去,发现了js中的file类,之前在w3c和runboob盯了好久找找不到....不过终于还是在网上查到了这个 ...

  7. 如何给SAP C4C的产品主数据division配置出新的下拉选项

    如图:C4C产品主数据division字段默认的下拉菜单选项: 切换成调试模式,找到UI这个字段绑定的模型字段名称:/Root/MaterialDivision: 再找到这个UI模型字段绑定到的cor ...

  8. 搞定INTEL快速存储技术(用SSD硬盘做缓存加速)

    给朋友买了个联想 ideapad s400超级本,还真是锻炼我的idea啊,原机不带WIN7系统,所以只好自己动手装WIN7,并打开24G SSD硬盘做缓存. 一.用常规方法GHOST了一个WIN7系 ...

  9. 026json和pickle,xml模块

    ###json和pickle ##json#dumps()data = #源数据data = json.dumps(data)这时候的data可以写入到文件了#loads()data = f.read ...

  10. C#图解教程读书笔记(第7章 类和继承)

    1.所有的类都继承自object 2.如何隐藏基类的成员 要隐藏一个继承的数据成员,需要声明一个新的相同类型的成员,并使用相同的名称. 通过在派生类中声明新的带有相同签名的函数成员,可以隐藏或掩盖继承 ...