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; 请问有这样的用法吗?具体怎么用 展开
 我来答
做而论道
高能答主

2015-02-13 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
因为,51单片机的位地址,只能直接寻址,不能间接寻址。
所以,51单片机的位地址,就不能用数组来进行操作。

不过,可以利用逻辑运算,进行位操作。

先定义一个数组:a[8] = [128, 64,...8, 4, 2, 1];
然后:P1 |= a[3]; ,这就是令 P1.3 置一。

其实,采用数组的方法,并非是最简单的。
直接:P1 |= (1 << 3); ,就可以了。
追问
要控制的IO较多,有十个,然后不是很明白你的方法,因为刚学不久。
追答
51单片机的四个并行口,也是需要直接寻址的,不可用数组来操作。

数组,只是适用于内存变量。

IO,和数组无关。就不用讨论了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式