在51中,用p1口加16位控制和用sbit命令控制的区别
时间:10-02
整理:3721RD
点击:
我刚接触单片机,在写呼吸灯的程序时遇到了问题。当我用
sbit led1=P1^0;
uint i,j;
void main()
{
while(1)
{
led1=0;
for(i=500;i>0;i--)
for(j=110;j>0;j--);
led1=1;
for (i=500;i>0;i--)
for(j=110;j>0;j--);
}
的时候就可以正确控制单片机,但当我用P1=0xfe;
for(i=500;i>0;i--)
for(j=110;j>0;j--);
P1=0xfe;
for (i=500;i>0;i--)
for(j=110;j>0;j--);
的时候的得到的却是一个常亮的灯,这是为什么呢?
sbit led1=P1^0;
uint i,j;
void main()
{
while(1)
{
led1=0;
for(i=500;i>0;i--)
for(j=110;j>0;j--);
led1=1;
for (i=500;i>0;i--)
for(j=110;j>0;j--);
}
的时候就可以正确控制单片机,但当我用P1=0xfe;
for(i=500;i>0;i--)
for(j=110;j>0;j--);
P1=0xfe;
for (i=500;i>0;i--)
for(j=110;j>0;j--);
的时候的得到的却是一个常亮的灯,这是为什么呢?
led1=0;对应P1=0xfe;,led1=1;对应P1=0xff;,而不是P1=0xfe;,你的程序里用P1口是数值没变化。
嗯嗯,谢谢大佬