这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 为什么keil不能对51的端口进行位操作

共15条 2/2 1 2 跳转至
高工
2014-01-11 11:24:44     打赏
11楼
在keil C51中,^是按位异或运算符,这个可能是造成直接对I/O端口赋值错误的原因。所以必须转一个弯,定义一个位变量。

工程师
2014-01-12 21:34:41     打赏
12楼
不要加#define,#define sbit weixuan = P3^0 只是定义了一个宏sbit等价于weixuan = P3^0 ,这样sbit的位寻址操作根本没有实现;P3是一个8位寄存器,P3^0只是其中的一位,要想操作这一个位的值必须先寻到该位的地址,然后对该地址写值,0或1,实现位操作,sbit weixuan = P3^0就是这样的一个操作

菜鸟
2014-01-19 21:53:45     打赏
13楼
原因就是这个了。。加宏定义干嘛??

院士
2014-01-20 10:27:45     打赏
14楼

楼主这个解决了吗?

感觉楼主这个问题没有找到基本点


工程师
2014-02-10 10:03:40     打赏
15楼
啊,问题解决了,现在可以了,就是采用上面的加了一个定义。以前用的时候没有这样的问题啊,为什么这个就需要加定义了,还是不是很懂。确实,我们又找到根本的原因,望大侠们继续指导

共15条 2/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]