希望高手们能看看这是怎么回事呀。。
#include <reg52.h>
typedef unsigned char uchar;
sbit K1=P0^0;
sbit K2=P0^1;
sbit K3=P0^2;
sbit K4=P0^4;
sbit K5=P0^5;
uchar j_saomiao()
{
uchar jian;
jian=0x00;
jian|=K1;
jian<<=1;
jian|=K2;
jian<<=1;
jian|=K3;
jian<<=1;
jian|=K4;
return jian;
}
main()
{
uchar a;
P0=0x0f;
a=j_saomiao();
}
最近写了个键扫描接口,编译成功后进入单步调试时,当编译器读到jian<<=1; jian|=K4;这两句时却没有作任何动作(读了指令,却不执行),这到底是怎么一回事啊???急急急。。。求大虾们说说吧。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
你这个jian能读出k1=1,读不出k1=0,除非在读之前对jian清零。
感觉这样设计很糟糕,为什么不直接K1=jian,
一周热门 更多>