LED
采用低电平点亮,因为高电平驱动能力弱
点亮LED的方法 操作8个引脚, 操作一个引脚
P2=0xFE; //1111 1110 P2_0=0; //LED1输出0,点亮
软件延时
void Delay1ms(unsigned int xms) //@12.000MHz { unsigned char i, j; while(xms) { i = 2; j = 239; do { while (--j); } while (--i); xms--; } }
按出二进制
void main() { unsigned char LEDNum=0; //char 1个字节=8位(对应8位的寄存器) 0-255 while(1) { if(P3_1==0) //如果K1按键按下 { Delay(20); //延时消抖 while(P3_1==0); //松手检测 Delay(20); //延时消抖 LEDNum++; //变量自增 P2=~LEDNum; //变量取反输出给LED } } }
移位操作
void main() { P2=~0x01; //上电默认LED1点亮 while(1) { if(P3_1==0) //如果K1按键按下 { Delay(20); while(P3_1==0); Delay(20); LEDNum++; //LEDNum自增 if(LEDNum>=8) //限制LEDNum自增范围 LEDNum=0; P2=~(0x01<<LEDNum); //LED的第LEDNum位点亮0x01也就是0000 0001按位,向左移动LEDNum位 } } }

浙公网安备 33010602011771号