ringring99 发表于 2009-8-16 16:03:07

proteus中mega16的led仿真,总是出现引脚输出和程序不符合的问题。

程序1:
#include <mega16.h>
void main(void)
{
PORTC=0xFF;
DDRC=0xFF;
}

只是设置了数值,还未进行闪烁循环,PC0引脚状态正确。但是PC1-7却是从红变灰,从灰变红。这是为什么?

http://cache.amobbs.com/bbs_upload782111/files_17/ourdev_471483.jpg
(原文件名:状态1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_17/ourdev_471484.jpg
(原文件名:状态2.jpg)





程序2:
#include <mega16.h>
void main(void)
{
PORTC=0x00;
DDRC=0xFF;
}

只是设置了数值,还未进行闪烁循环,但是PC0引脚状态却是从红变蓝,从蓝变红的进行闪烁。其他c口引脚在蓝和灰之间闪烁。这是为什么?

http://cache.amobbs.com/bbs_upload782111/files_17/ourdev_471485.jpg
(原文件名:状态3.jpg)
http://cache.amobbs.com/bbs_upload782111/files_17/ourdev_471486.jpg
(原文件名:状态4.jpg)

naipeng 发表于 2009-8-16 16:07:28

LZ在程序后面加个while(1)死循环一下,不行的话,把程序和仿真上传上来,让人看看。为什么我帮助别人的同时,没有 人回答我的问题呢?

naipeng 发表于 2009-8-16 16:08:15

#include <mega16.h>
void main(void)
{
DDRC=0xFF;
PORTC=0x00;
while(1);
}
这样弄

52robot 发表于 2009-8-16 16:34:17

我还遇到变黄的呢,好像仿真是有些问题的。单步的 时候没问题

ringring99 发表于 2009-8-17 09:10:52

程序就是这样简单,没有再多的语句了。
之前加过while(1),如出现上述状况应是正确的。
但现在的问题是没有while(1),只是初始化,引脚也会出现高低电平的变化。应该赋值1,输出一直为高电平(红点)才对,不应该红蓝闪烁呀?
这是为什么?

armok 发表于 2010-2-14 21:11:04

页: [1]
查看完整版本: proteus中mega16的led仿真,总是出现引脚输出和程序不符合的问题。