proteuswilliam hill官网 |仿真william hill官网
直播中

Ria

11年用户 188经验值
擅长:EDA/IC设计 控制/MCU
私信 关注
[问答]

初学求助!Proteus仿真8051单片机8个LED左移右移问题

`我的proteus是8.0版本,keil是Keil 4 版本,在Proteus里面选择8051的单片机,导入程序后,如果不连接任何LED,进行仿真,P1.0-P1.7接口电平循环变化,但是一旦接上8个LED,总是只有连接在P1.0上的LED闪烁,且闪烁周期为8个LED都一次闪烁情况下的周期,其他LED均不亮,IO口也没有电平变化,如果只接一两个LED,也只是前端的一个LED可以闪烁,另一个不亮,而且只有从P1.0到发光的LED所接IO口有电平变化,其他IO口均显示为高电平。
经检查,Keil程序、Proteus里面元器件的选择、导入.hex程序的过程等各项操作均无误,求助为什么总是出现这种情况啊!!!!
下面附图和程序.....
求助!!!!!!!!!!!!!

Keil 4 中程序代码


#include

void Delay(unsigned int t)
{
        while(--t);
}
void main()
{
        unsigned int i;       
        Delay(5000);
        P1=0Xfe;
        while(1)
        {
                for(i=0;i<8;i++)
                {
                        Delay(5000);
                        P1<<= 1;
                        P1=P1|0x01;
                }
                P1=0xFE;
        }  
}





` 不连接LED时IO口均有电平变化.jpg 连接上8个LED只有第一个闪烁.jpg 只连接两三个LED仍然只有一个亮.jpg

回帖(3)

Luyisiana

2013-10-2 10:38:56
原理上面基本没什么问题,proteus软件看现象有时候也不一定很可靠,但有时候必要的完善一下威廉希尔官方网站 和程序也许现象就正常了。首先延时时间有点短,需要加长点。其次威廉希尔官方网站 里面加下限流电阻。
举报

Ria

2013-10-2 11:16:57
引用: Luyisiana 发表于 2013-10-2 10:38
原理上面基本没什么问题,proteus软件看现象有时候也不一定很可靠,但有时候必要的完善一下威廉希尔官方网站 和程序也许 ...

谢谢哦~我之前加过限流电阻的,结果加上电阻即使阻值只有1欧,LED都不亮.....不加电阻LED才能亮........然后也改过延时时间,改成60000也还是行不通T_T
现在只有用下面的数组可以实现循环闪烁...........
unsigned char code table[]={0x7f,0xbf,0xdf,0xef,
                                            0xf7,0xfb,0xfd,0xfe,
                                            0x00,0x00,0x55,0x55,
                                            0xaa,0xaa
                                            };

举报

风中倩影

2016-8-4 22:57:50
路过学习。。。。。。。。。。。。。。。。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分