我的板子用P2.2\P2.3\P2.4接了74LS138来控制数码管的位选,同时P2.5\P2.6\P2.7又接了按键。
想通过控制P2口整体来扫描数码管,同时又不影响到按键的扫描:
程序:
================================================
sbit KEY_1=P2^7;//独立按键K1
sbit KEY_2=P2^6;//独立按键K2
sbit KEY_3=P2^5;//独立按键K3,用于LED检测
uchar code LED_WEI[]={0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1C};//74LS138的3个输入端接在了P2.2-P2.4,此处用作8个数码管的位选
P2=LED_WEI[5];//百位
P3=LED_CODE[LED_num/100];
P2=LED_WEI[6];//十位
P3=LED_CODE[LED_num%100/10];
P2=LED_WEI[7];//个位
P3=LED_CODE[LED_num%100%10];
================================================
以上是错误的写法,这样会影响到按键的扫描,应该怎么写呢?
我想要类似这种写法:P2=LED_WEI[5]|0xe3;//百位(这样显然也是不对的)
还是应该先读取P2口当前的状态,再和LED_WEI[i]相或?
例如:
uchar P2_status;
P2_status=P2;
P2=P2_status|LED_WEI[5]
。。。
|