打印

不能用一个变量"n",来代表P1八位里的其中一位?

[复制链接]
1887|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wasay|  楼主 | 2011-4-5 20:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wasay 于 2011-4-5 20:37 编辑

“其中一位”是随机数,由变量n来表示。 用P1.n=1来把P1端口的第n位置1,始终提示错误(KEIL 4)。 这个怎么弄呢?

相关帖子

沙发
sdpz| | 2011-4-5 20:23 | 只看该作者
//置位
P1 |= (1<<n);

//清零
P1 &= ~(1<<n);

//取反
P1 ^= (1<<n);

使用特权

评论回复
板凳
coody| | 2011-4-5 21:25 | 只看该作者
当然可以,2楼的方法几可以,不过比较耗时间,我一般查表,8个字节的表

使用特权

评论回复
地板
aihe| | 2011-4-8 18:47 | 只看该作者
Keil里不是有位操作指令的嘛
再不会就嵌入汇编

使用特权

评论回复
5
ayb_ice| | 2011-4-9 08:29 | 只看该作者
LZ
的那种想法是不能直接实现的,必须间接实现
这和MCU的指令架构有关,
端口属于SFR,而SFR只能直接寻址,SFR的位寻址其实也是直接位寻址,而不存在间接位寻址,也就是没有位指针

使用特权

评论回复
6
刘前辈| | 2011-4-9 10:51 | 只看该作者
#include <reg52.h>

sbit P1_3=P1^3;

void main(void)
{
P1_3=1;

while(1);
}


/

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

27

帖子

1

粉丝