51单片机如何设置数组变量?
例如:a[x]={P1^0,P1^1,P1^2,P1^3};这应该是不对的,但我想弄成如下效果a是固定不变的,但x是可以变的数字,变成a1a2ae......等等,然后把...
例如: a[x ]={P1^0,P1^1,P1^2,P1^3}; 这应该是不对的,但我想弄成如下效果 a是固定不变的,但x是可以变的数字,变成a1 a2 ae......等等, 然后把IO脚定义 a1=P1^0; a2=P1^1; a3=P1^3; 请问有这样的用法吗?具体怎么用
展开
1个回答
展开全部
因为,51单片机的位地址,只能直接寻址,不能间接寻址。
所以,51单片机的位地址,就不能用数组来进行操作。
不过,可以利用逻辑运算,进行位操作。
先定义一个数组:a[8] = [128, 64,...8, 4, 2, 1];
然后:P1 |= a[3]; ,这就是令 P1.3 置一。
其实,采用数组的方法,并非是最简单的。
直接:P1 |= (1 << 3); ,就可以了。
所以,51单片机的位地址,就不能用数组来进行操作。
不过,可以利用逻辑运算,进行位操作。
先定义一个数组:a[8] = [128, 64,...8, 4, 2, 1];
然后:P1 |= a[3]; ,这就是令 P1.3 置一。
其实,采用数组的方法,并非是最简单的。
直接:P1 |= (1 << 3); ,就可以了。
追问
要控制的IO较多,有十个,然后不是很明白你的方法,因为刚学不久。
追答
51单片机的四个并行口,也是需要直接寻址的,不可用数组来操作。
数组,只是适用于内存变量。
IO,和数组无关。就不用讨论了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询