小白求助,刚学习单片机,跟着视频写了个动态数码管的程序但是,P2^2,P2^3,P2^4这几个管脚既是38译码器的,也是LED模块的,所以编出来结果就是LED灯亮了,动态数码管没反应,到底是代码错了还是哪里没对啊,求助。下面是代码 #include "reg52.h" typedef unsigned int u16; typedef unsigned char u8; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(u16 i) { while (i--); } void display () { u16 i; for (i=7;i>=0;i--) { switch(i) { case(0):LSA=0;LSB=0;LSC=0;break; case(1):LSA=1;LSB=0;LSC=0;break; case(2):LSA=0;LSB=1;LSC=0;break; case(3):LSA=1;LSB=1;LSC=0;break; case(4):LSA=0;LSB=0;LSC=1;break; case(5):LSA=1;LSB=0;LSC=1;break; case(6):LSA=0;LSB=1;LSC=1;break; case(7):LSA=1;LSB=1;LSC=1;break; } } P0=smgduan[i]; delay(10); P0=0x00; } void main() { P0=!smgduan[0]; while (1) { display(); } }