基于Protues的Arduino学习笔记01-Arduino UNO实验板设计

纵然是瞬间 提交于 2020-04-20 06:54:37
本文将带你使用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】

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


图2 选取ATmega328P控制器


图3 选取RES(电阻)


图4 选取LED-GREEN指示灯


图5 选取“COMPIM”串口通讯接口

将上述的元器件从选择框里放置到面板上,此处需要注意放置的位置需要合理,方便连线。可以双击元器件之后,选择将相应的元器件左旋、右旋、X对称或Y对称等。放置ATmega328P、RES、LED-GREEN、COMPIM并调整位置之后的布局如图6所示。

图6 元器件放置后的布局
元器件在合适的位置放置好了之后,需要将响应的管脚进行连接,连接之后的Arduino UNO实验板如图7所示。此时,已经初见UNO的样子了,然后还需要对其进行修饰,修饰之后的Arduino UNO实验板如图8所示。

图7 连线之后的Arduino UNO


图8 经过修饰之后的Arduino UNO

上面的这些工作已经完成了硬件搭建,但是要能正常的进行仿真还需要对仿真环境进行一下设置。首先,更改ATmega328P的参数,单击ATmega328P单片机,会弹出如图9所示的设置选框,对标注的地方进行修改,改为如图10所示的参数。

图9 ATmega328P初始设置


图10 ATmega328P更改后的设置
设置好了ATmega328P的参数之后,基本就完成了仿真环境的设置。另外,还需要对串口通讯接口进行设置,串口初始设置如图11所示,需要将波特率改为9600【注】。我们在设置时,还将串口号改为了COM2,如图12所示。因为在使用串口助手进行程序调试的时候,串口助手的端口号都一般默认为COM1,这样设置之后就可以直接打开串口助手使用,可以很方便的进行串口通讯与调试。其实,这也是在偷懒,不想每次都更改串口端口号。

【注】:9600为常用波特率,当然你也可以选择其他波特率,但是两个波特率必须要相同,否则不能通讯。

图11 COMPIM初始设置


图12 COMPIM更改后的设置
到这里,protues仿真环境下的工作就全部完成了,当然要想在protues里面仿真Arduino UNO还需要完成以下几个步。
1、安装虚拟串口程序Virtual.Serial.Port.Driver
安装完成之后并新建两个虚拟串口,这两个串口是相通的,也就说他们连接在一起。一般情况下,生成串口都为COM1和COM2,如果不包含上面COMPIM设置的串口号,还需要将COMPIM中的串口号改为虚拟生成的串口号之一,另一个作为串口助手使用的串口号。
2、更改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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!