51单片机 类似数组调用的方法控制一组IO口 for循环语句控制多个IO口 30
51单片机类似数组调用的方法控制一组IO口for循环语句控制多个IO口如何才能使用for循环语句控制多个IO;达到类似数组的效果,比如就像这样:intnum[4]={1,...
51单片机 类似数组调用的方法控制一组IO口 for循环语句控制多个IO口
如何才能使用for循环语句控制多个IO;达到类似数组的效果,比如就像这样:
int num[4]={1,0,1,1}
for(i=0;i++;i<4)
{
IO[i]=num[i];
}
做完后让四个IO分别为高、低、高、高 电平。
其中IO[0]、IO[1]、IO[2]、IO[3] 分别表示一个IO口
例如:IO[0]代表P2^0、IO[1]代表P2^1、IO[2]代表P2^2、IO[3]代表P2^3。
求高人指教!!!
如果谁能写一小段可执行的代码,那悬赏就归谁了。 展开
如何才能使用for循环语句控制多个IO;达到类似数组的效果,比如就像这样:
int num[4]={1,0,1,1}
for(i=0;i++;i<4)
{
IO[i]=num[i];
}
做完后让四个IO分别为高、低、高、高 电平。
其中IO[0]、IO[1]、IO[2]、IO[3] 分别表示一个IO口
例如:IO[0]代表P2^0、IO[1]代表P2^1、IO[2]代表P2^2、IO[3]代表P2^3。
求高人指教!!!
如果谁能写一小段可执行的代码,那悬赏就归谁了。 展开
5个回答
展开全部
标准端口位操作,读-操作-写的方式。
int num[4]={1,0,1,1}
char tmp
for(i=0;i++;i<4)
{
tmp=P1;
tmp&=~(1<<i);
tmp|=num[i]<<i;
P1=tmp;
}
int num[4]={1,0,1,1}
char tmp
for(i=0;i++;i<4)
{
tmp=P1;
tmp&=~(1<<i);
tmp|=num[i]<<i;
P1=tmp;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以这样写P2=num[i],你把数组都定义成十六进制,就OK了,比如你定义数组num[4]={0xfe,0xfd,0xfb,0xf7}
for(i=0;i++;i<4)
{
P2=num[i];
}这样输出就分别为i=0,代表P2^0=0,i=1,代表P2^1=0,i=2,代表P2^2=0,以此内推
for(i=0;i++;i<4)
{
P2=num[i];
}这样输出就分别为i=0,代表P2^0=0,i=1,代表P2^1=0,i=2,代表P2^2=0,以此内推
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很庆幸,在51里面按位操作的寄存器每一位都有个内存地址。比如P2口的端口寄存器地址是0xA0。其中每一位的地址依次为0xA0、0xA1、0xA2...所以,只要将按位操作的地址指向0xA0就可以,这个可以使用指针。
bool (*IO)[4] = P2;
int num[4]={1,0,1,1};
for(i=0;i++;i<4)
{
IO[i]=num[i]; // 这里编译器既知道是位操作,同时也知道位地址。
}
bool (*IO)[4] = P2;
int num[4]={1,0,1,1};
for(i=0;i++;i<4)
{
IO[i]=num[i]; // 这里编译器既知道是位操作,同时也知道位地址。
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询