C语言51单片机左移函数的问题
其中P0^1-P0^7控制二极管发光,0亮,1不亮我的程序想用函数实现左移,然后挨个返回值,实现LED灯从右向左依次亮!这个结果是右一先亮然后后面7个全亮了,为什么?#i...
其中P0^1-P0^7控制二极管发光,0亮,1不亮
我的程序 想用函数实现左移 ,然后挨个返回 值 ,实现LED灯 从右向左 依次亮!
这个结果是 右一先亮 然后后面7个全亮了,为什么?
#include<reg52.h>
int delay(int m)
{
int i,j;
for(i=0;i<m;i++)
for(j=0;j<2000;j++)
;
}
int zuoyi(void)
{
int i,m;
delay(20);
for(i=0,m==0xfe;i<7;i++)
{
m<<=1;
return(m);//m左移一位后返回m值
delay(20);//延时
}
}
main()
{
int i,a;
while(1)
{
P0=0xfe;
for(;;a++)
{
P0=zuoyi();//m返回值赋给P0,目的是让PO从右8向左依次亮 a=0;
}
}
} 展开
我的程序 想用函数实现左移 ,然后挨个返回 值 ,实现LED灯 从右向左 依次亮!
这个结果是 右一先亮 然后后面7个全亮了,为什么?
#include<reg52.h>
int delay(int m)
{
int i,j;
for(i=0;i<m;i++)
for(j=0;j<2000;j++)
;
}
int zuoyi(void)
{
int i,m;
delay(20);
for(i=0,m==0xfe;i<7;i++)
{
m<<=1;
return(m);//m左移一位后返回m值
delay(20);//延时
}
}
main()
{
int i,a;
while(1)
{
P0=0xfe;
for(;;a++)
{
P0=zuoyi();//m返回值赋给P0,目的是让PO从右8向左依次亮 a=0;
}
}
} 展开
3个回答
展开全部
m==0xfe你这个是什么意思,不对吧
m<<=1这个不对
m<<1左移不是循环移位,左移后最右边可能是补零的
m<<=1这个不对
m<<1左移不是循环移位,左移后最右边可能是补零的
追问
噢 对头 应该是m=0xfe
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(i=0,m==0xfe;i<7;i++)里面的m==0xfe对吗?还有<<=是左移吗?
追问
噢 应该是m=0xfe
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询