io不连续这样定义为什么不行?

2020-01-27 11:20发布

本帖最后由 cafppla1 于 2013-9-9 12:52 编辑

unsigned char bdata         da;
sbit da0=da^0;
sbit da1=da^1;
sbit da2=da^2;
sbit da3=da^3;
sbit da4=da^4;
sbit da5=da^5;
sbit da6=da^6;

#define da0 P3^4
#define da1 P3^3
#define da2 P3^7
#define da3 P3^0
#define da4 P1^5
#define da5 P1^6
#define da6 P3^1

测试让da=0,可是那几个脚还是输出1,不知道问题在哪?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
cn_badboy
1楼-- · 2020-01-29 09:36
我晕,不是一组,根本不能这么用啊,P1=XX,P3=XX
cafppla1
2楼-- · 2020-01-29 11:41
cn_badboy 发表于 2013-9-9 19:21
我晕,不是一组,根本不能这么用啊,P1=XX,P3=XX

问题就是不是一组凑几个用来组成一组,用bdata位寻址
cn_badboy
3楼-- · 2020-01-29 17:05
当然不行,BDATA只能位寻址区域,也P3,P1一样的区域,没法操作,你钻这牛角尖,有意义吗,去看看程序的反汇编就明白了
jswd0810
4楼-- · 2020-01-29 21:22
我是直接赋值的
uchar bdata other_in;//此处other_in必须为bdata类型,否则编译出错
sbit mybit0=other_in^0;
sbit mybit1=other_in^1;
sbit mybit2=other_in^2;
sbit mybit3=other_in^3;
sbit mybit4=other_in^4;
sbit mybit5=other_in^5;
sbit mybit6=other_in^6;
sbit mybit7=other_in^7;

        mybit0=P1^0;
        mybit1=P3^3;
        mybit3=P2^4;
        mybit7=P3^5;

mybit7=!mybit7;
cafppla1
5楼-- · 2020-01-30 02:57
 精彩回答 2  元偷偷看……
liumaojun_cn
6楼-- · 2020-01-30 07:31
好好看看书,这样的例子很多.

一周热门 更多>