在PROTEUS中画好能用于仿真的线路图,即所用的元件都应有仿真模型。
编制相应的单片机程序,可以在PROTEUS中编译,也可以在相应的单片机开发平台中编译(不同厂家的单片机的开发平台不同)。
如在PROTEUS中编译,要在《“源程序”》“定义生成代码工具”中设定,不同的单片机设定不同,然后可以调入源程序;编译,把编译编译后的代码插入单片机中(在单片机属性中设定),接着就可以仿真,如果仿真结果不对,修改程序,重新编译、运行,直到正确为止。
如在单片机平台下编译,则进入单片机开发平台,编译正确后(指语法没问题),再到PROTEUS平台中把生成的代码调入,仿真运行。如果仿真有问题,回到单片机开发平台,重新编译,再进到PROTEUS中仿真,直到正确为止。
有时在仿真时可能会发现PROTEUS图有问题,就直接改图,直到正确为止。
如果在Keil中编写的程序在Proteus上无法运行,可能有以下几个原因:
1 没有正确设置芯片型号:在Proteus中使用的芯片型号必须与Keil中编写程序使用的芯片型号匹配。请仔细检查芯片型号,并在Proteus中选择正确的芯片型号。
2 程序未下载到芯片中: 在 Proeus 跑程序需要让程序烧录到芯片中,如果程序未下载到芯片中,则无法运行。确认是否将程序下载到芯片中。
3 时钟配置不匹配: 在Proteus中必须正确配置外部时钟,以便芯片能够按预期运行。检查时钟源是否在程序中配置正确,并在Proteus中进行相应的配置。
4 引脚连接不正确: 在Proteus中必须正确连接芯片的引脚和外部电路,才能使程序正常运行。检查连接线的连通性,以及芯片引脚的连接是否正确。
如果以上方法均未解决问题,可以尝试添加调试功能,如printf()语句,以便更好地查找问题。还可以在Keil中使用仿真器进行仿真,以检查程序在真实硬件上的行为。
1 首先纠正一下,根据图纸。你的单片机是ATmega8的,不是ATmega16的。请在确认。
2 你用的C语言写的程序。所以要用GCCAVR(或者其他的编译器)编译好了以后才能使用。PROTEUS不支持AVR的C语言编译器的。只支持汇编编译器。特别是51的汇编编译器。
3 你的方向口选择错误。输出用的是PORTD,那为什么要写DDRB=0xff呢?
4 我帮你修改以后的程序如下,你再试试。
#include <iom8vh>
void main()
{
int i;
DDRD = 0xFF;
while (1)
{
PORTD=0x55;
for (i=0;i<10000;i++);
PORTD=0xaa;
for (i=0;i<10000;i++);
}
}
STC_ISP:用来将程序烧入单片机
keil:用来编译程序,生成可执行的hex文件,或者提供软件和硬件调试等功能
protues:是个仿真软件。就是把元件按原理图连起来,然后把keil生成的hex文件载入里面的单片机(这个单片机是软件仿真的),用以观察现象。
以上就是关于proteus仿真步骤是什么全部的内容,包括:proteus仿真步骤是什么、keil程序在proteus跑不起来、AVR的ATmega32驱动LCD显示,proteus仿真有显示,程序烧入单片机则无显示,接线没错误,请问是什么原因等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)