最新消息:

用Proteus仿真Arduino

Arduino 少儿编程 4326浏览 0评论

在阅读Arduino相关的图书时,经常会看到很专业的电路图,看上去比Fritzing画出的更为简洁专业,一直很好奇这都是拿什么软件画的。最近读到《Arduino智能硬件开发入门》中《零硬件成本玩Arduino》一文中提到了Proteus,它不只可以画出漂亮专业的电路图,更可以模拟出运行编码的效果来。配合书里的这篇文章以及网上查阅的资料,我也试着用了下Proteus,在本文中记录下此次调试使用的过程,供同样是新手的朋友参阅。

 

我使用的是Proteus 8.0 Pro的版本,这里主要使用的是它的ISIS模块,在主界面中点击工具栏上蓝色ISIS图标即可进入ISIS工作环境。

 

用Proteus仿真Arduino

 

要想在Proteus里实现仿真Arduino,可以在网上查找到很多版本的Arduino库,一般压缩包中会有扩展名为lib和idx两个文件,解压后将这两个文件拷贝到Proteus库文件夹里即可,不同的操作系统,可能库所在目录路径会稍有不同,以我用的Win10为例,目录路径:C:ProgramDataLabcenter ElectronicsProteus 8 ProfessionalLIBRARY。拷贝之后,重新开启Proteus,可以在后面提到的”元件拾取”窗口中查询到添加的Arduino库。以下图片来自theengineeringprojects.com提供的一款来看,使用这类现成的库,会更方便些。

 

用Proteus仿真Arduino

 

而本文要介绍的是另一种不需要外部的库,直接通过Proteus本身提供的元件库实现的方法,即通过Proteus中提供的ATMega328P元件实现Arduino最小系统的模拟

 

本次实验需要在Proteus里载入arduino程序编译后生成的hex编码格式的文件,而Arduino默认是不保留这个文件的,所以需要对Arduino进行设置。打开Arduino开发环境(没有可去arduino.cc下载),在”文件”–>”首选项”中勾选”显示详细输出”里的”编译”、”上传”,点击配置文件地址,打开preferences.txt所在文件夹,因为此文件要在Arduino未运行时编辑,所以关闭Arduino后打开preferences.txt,添加一行build.path=自定义文件路径,此路径是你想让生成的hex存放的位置,最好路径指向一个单独文件夹,因为产生的文件多的有点乱。

 

用Proteus仿真Arduino

 

设置好后,打开”文件”–>”示例”中的”01.basics”中的”Blink”,另存到你的目录中,然后修改一下代码,将输出引脚设为13。

 

用Proteus仿真Arduino

 

编译后在之前配置文件中设置的目录下可以找到blink.ino.hex文件,之后会用到此文件。

 

在Proteus中需要做的是画电路图和配置的工作。下图为最终的成果图,在此忽略涉及的电子学知识,因为专业不对口,实怕误人子弟:(

 

用Proteus仿真Arduino

 

为了画出上面这幅图,对一个刚接触Proteus的人确是废了些周折。还好万能的互联网提供了搜索引擎,关键字:arduino proteus,可以找到很多相关文章,有电路图可参照画出,但遗憾的是好些都没说明Power和Ground这两个符号去哪里找,难为我半天,找到它们可以用踏破铁鞋无觅处和后面那句古话来形容。下图标出了本次实验主要用到的工具按钮,点击”终端模式”那图标,就能在里面找到Power和Ground符号。

 

用Proteus仿真Arduino

 

对于大部分元件的添加,则是通过点击”元件拾取”对应的P图标,点击后会弹出”元件拾取”的窗口,在关键字文本框中输入元件的关键字,即可找到对应的元件。

 

用Proteus仿真Arduino

 

双击元件名称后即加入了元件列表中,如下图展示了添加主要元件后形成的列表:

 

用Proteus仿真Arduino

 

在画出电路图后,可双击图中元件,对电阻电容晶体管啥的元件设置具体的值:

R1(RESISTOR): 220

C1, C2(CAP):22pF

X1(CRYSTAL): 16MHz
在编辑ATMEGA328P元件时,需要有以下4处的修改:

1. 在Program File项中打开文件夹选中那个生成的hex文件
2. CLKDIV8(Divide clock by8)改为选择(1)Unprogrammed
3. CKSEL Fuses参数改选为(1111)Ext. Crystal 8.0-MHz
4. Advanced Properties中Clock Frequency设为16MHz

 

用Proteus仿真Arduino

设置之后点击【OK】退出。

 

都设置好之后,点击”运行仿真”按钮,小黄灯一闪一闪,和预期一致。

 

用Proteus仿真Arduino

 

由于初学,本次实验还有些疑惑的地方,例如网上一些例子中并没有设置元件X1(CRYSTAL)的值为16MHz,按照默认值1MHz设置,小黄灯也可以正常闪烁。而实际电路中大都是选用的16MHz实现,若用的是1MHz的会怎样呢?今后还要继续储备电容、晶体管等各类电子元件的知识,要不瓶颈难破呀!

 

转自“极客DIY实验室”

您必须 登录 才能发表评论!