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) LZ在程序后面加个while(1)死循环一下,不行的话,把程序和仿真上传上来,让人看看。为什么我帮助别人的同时,没有 人回答我的问题呢? #include <mega16.h>
void main(void)
{
DDRC=0xFF;
PORTC=0x00;
while(1);
}
这样弄 我还遇到变黄的呢,好像仿真是有些问题的。单步的 时候没问题 程序就是这样简单,没有再多的语句了。
之前加过while(1),如出现上述状况应是正确的。
但现在的问题是没有while(1),只是初始化,引脚也会出现高低电平的变化。应该赋值1,输出一直为高电平(红点)才对,不应该红蓝闪烁呀?
这是为什么?
页:
[1]