keil 51单片机 怎么把a1=0,a2=1,a3=1,a4=0合并成a=0110.
a1a2a3……都是sbita1=P1^1的写到这里想把a1到a8合并成一个数a,然后下面写成switch(a),请问要怎么定义a?恳求说详细点,因为我很新手的。swit...
a1 a2 a3……都是sbit a1=P1^1的
写到这里想把a1到a8合并成一个数a,然后下面写成switch(a),请问要怎么定义a?恳求说详细点,因为我很新手的。
switch(a1a2a3a4a5a6a7a8)
{
case(00001110): n=0;break;
case(00001101): n=4;break;
case(00001011): n=8;break;
case(00000111): n=12;break;
} 展开
写到这里想把a1到a8合并成一个数a,然后下面写成switch(a),请问要怎么定义a?恳求说详细点,因为我很新手的。
switch(a1a2a3a4a5a6a7a8)
{
case(00001110): n=0;break;
case(00001101): n=4;break;
case(00001011): n=8;break;
case(00000111): n=12;break;
} 展开
14个回答
展开全部
我在另一个问题里回复了,用union,难道行不通吗?
http://zhidao.baidu.com/question/303525150813108844.html?oldq=1
http://zhidao.baidu.com/question/303525150813108844.html?oldq=1
更多追问追答
追问
嗯,那些a1a2a3a4都是单片机IO口的位变量,好像不能那样算。
不过非常感谢你啦。真的非常感谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-22
展开全部
//C语言基础:
a=P1;//顺序改改
switch(a)
{
case(0x0e): n=0;break;case(0x0c): n=4;break;case(0x0b): n=8;break;case(0x07): n=12;break;
}
a=P1;//顺序改改
switch(a)
{
case(0x0e): n=0;break;case(0x0c): n=4;break;case(0x0b): n=8;break;case(0x07): n=12;break;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试试这个:A = ((a1<<4) | (a2<<3) | (a3 <<2) |( a3<<1) | a4);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法已经很全了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询