本文将带你使用protues 7.10搭建一个Arduino UNO的实验板,方便之后在protues仿真软件上进行Arduino的实验。参考本文,你还能够本身动手构建出Arduino MEGA 2560等一系列Arduino开发平台。
Arduino UNO是Arduino USB接口系列的最新版本,是Arduino平台的参考标准模板。Arduino UNO的处理器核心是ATmega328,同时具备14路数字输入/输出口(其中6路可做为PWM输出),6路模拟输入,Flash Memory 32KB (其中0.5KB用于bootloader【注】)、SRAM 2KB、EEPROM 1KB,工做时钟 16 MHz【文献1】。
【注】:在仿真状况下,不须要bootloader去引导程序下载,只须要将Arduino IDE编译生成的HEX文件导入ATmega328P单片机便可。
以上对Arduino UNO的介绍摘自网上,经过这些介绍,咱们能够知道Arduino UNO的资源分配状况。图1为Arduino UNO的引脚图,从图中咱们能够清楚地看出ATmega328P的物理引脚与Arduino所定义的功能之间的关系,从而能够将功能引脚标注出来。

图1 Arduino UNO与ATmega328P引脚关系图【文献2】 php
Protues软件是英国Labcenter Electronics公司出版的EDA工具软件,不只具备其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具【文献3】。
下面咱们打开protues 7.10软件,进入元器件的选择,在元器件一栏中输入“ATmega328P”,并选取ATmega328P单片机,如图2所示。而后,在元器件一栏中输入“RES”,选取电阻,如图3所示。接着,在元器件一栏中输入“LED-GREEN”,选取绿色的LED灯(你也能够选择红色或者黄色的),如图4所示。最后,在元器件一栏中输入“COMPIM”,并添加到元器件域中,如图5所示。

图2 选取ATmega328P控制器 html
图3 选取RES(电阻) web

图4 选取LED-GREEN指示灯 编程

图5 选取“COMPIM”串口通信接口
将上述的元器件从选择框里放置到面板上,此处须要注意放置的位置须要合理,方便连线。能够双击元器件以后,选择将相应的元器件左旋、右旋、X对称或Y对称等。放置ATmega328P、RES、LED-GREEN、COMPIM并调整位置以后的布局如图6所示。 api
图6 元器件放置后的布局
元器件在合适的位置放置好了以后,须要将响应的管脚进行链接,链接以后的Arduino UNO实验板如图7所示。此时,已经初见UNO的样子了,而后还须要对其进行修饰,修饰以后的Arduino UNO实验板如图8所示。
图7 连线以后的Arduino UNO app

图8 通过修饰以后的Arduino UNO
上面的这些工做已经完成了硬件搭建,可是要能正常的进行仿真还须要对仿真环境进行一下设置。首先,更改ATmega328P的参数,单击ATmega328P单片机,会弹出如图9所示的设置选框,对标注的地方进行修改,改成如图10所示的参数。 ide
图9 ATmega328P初始设置 工具

图10 ATmega328P更改后的设置
设置好了ATmega328P的参数以后,基本就完成了仿真环境的设置。另外,还须要对串口通信接口进行设置,串口初始设置如图11所示,须要将波特率改成9600【注】。咱们在设置时,还将串口号改成了COM2,如图12所示。由于在使用串口助手进行程序调试的时候,串口助手的端口号都通常默认为COM1,这样设置以后就能够直接打开串口助手使用,能够很方便的进行串口通信与调试。其实,这也是在偷懒,不想每次都更改串口端口号。
【注】:9600为经常使用波特率,固然你也能够选择其余波特率,可是两个波特率必需要相同,不然不能通信。 布局
图11 COMPIM初始设置 ui

图12 COMPIM更改后的设置
到这里,protues仿真环境下的工做就所有完成了,固然要想在protues里面仿真Arduino UNO还须要完成如下几个步。
一、安装虚拟串口程序Virtual.Serial.Port.Driver
安装完成以后并新建两个虚拟串口,这两个串口是相通的,也就说他们链接在一块儿。通常状况下,生成串口都为COM1和COM2,若是不包含上面COMPIM设置的串口号,还须要将COMPIM中的串口号改成虚拟生成的串口号之一,另外一个做为串口助手使用的串口号。
二、更改Arduino IDE中的参数
Arduino编译以后,Hex文件会自动删除,而在Proteus仿真的Arduino单片机中,须要使用Arduino软件产生的Hex文件,但是,Arduino 1.0默认使用完Hex文件会自动删除的,因此取不到hex文件,为了取出hex文件,加载到Porteus中的单片机ATMEGA328P,须要修改以下:
图13 Arduino IDE的参数设置

图14 Arduino IDE的具体设置
首先要在D盘创建一个文件夹,用来专门放置Hex文件,文件名能够随便取名,我命名为Arduino_Hex,而后点击Arduino软件界面菜单栏的File->preferences,打开对话框,如图6,把Show verbose output during的两个参数项打勾,双击preferences.txt文件,找到文件所在位置,再双击,用记事本打开文件。这时要点击Arduino界面preferences对话框下方的OK按钮,接着关掉Arduino IDE编程界面。最后,在刚才打开的preferences文档的最后一行编辑加入build.path=d:\Arduino_Hex,保存文档。这样之后您再编译Arduino程序,就能够在d:\Arduino_Hex中,看到编译的Hex目标文件了。【文献4】(此部分摘自宜昌城老张的博客) 下面来一个点灯示例,验证咱们设计的实验板是否可以仿真Arduino UNO的实际运行。 参考文献: 文献1:http://kb.open.eefocus.com/index.php?title=Arduino_Uno 文献2:http://www.geek-workshop.com/forum.php?mod=viewthread&tid=3499 文献3:http://baike.baidu.com/view/1639293.htm 文献4:http://www.eefocus.com/zhang700309/blog/12-10/287570_57f22.html