ccjlhw 发表于 2017-11-14 20:35:16

51单片机3个IO口查表输出怎样写

51单片机IO口查表输出,用C怎样写,
我的P1.0 ,P1.1, P1.2,三个口,每次都要输出如下不同高低,同时三个查表不会写,网上只看到同时1个位或一组查表,因为P0其它口在做其它动作不能改变,请朋友们指教。
第一次P1.0= ,P1.1=0, P1.2=0
第二次P1.0=0 ,P1.1=0, P1.2=1
第三次P1.0=0 ,P1.1=1, P1.2=0
第4次P1.0=1 ,P1.1=0, P1.2=0
第5次P1.0=1 ,P1.1=0, P1.2=1
第6次P1.0=1 ,P1.1=1, P1.2=0

shower.xu 发表于 2017-11-14 20:56:31

switch(P1&0x07){
case ....
case....
}

lxa0 发表于 2017-11-14 23:43:28

c的不会
要汇编的话可以帮你

ccjlhw 发表于 2017-11-15 09:03:55

谢谢各位的指教

modbus 发表于 2017-11-15 09:06:43

a=data
p1.0=a&0x1
p1.1=a&0x2
p1.2=a&0x4

xiaobendan 发表于 2017-11-15 09:15:53

=空格是啥意思?维持不变的意思?三个都是P1的,和P0有啥关系

xiaobendan 发表于 2017-11-15 09:20:42

本帖最后由 xiaobendan 于 2017-11-15 09:24 编辑

P1|=0x07;
P1&=a|0xf8;

mcu5i51 发表于 2017-11-15 10:16:54

P1 = n; (n=0-6)
只要P1 = (P1 & ~0x07) | (n & 0x07);就可以了吧;
分两步为
P1 &= ~0x07;
P1 |= n & 0x07;
页: [1]
查看完整版本: 51单片机3个IO口查表输出怎样写