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--;
    }
}
View Code

按出二进制

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
        }
    }
}
View Code

移位操作

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位
        }

    }
}
View Code

 

posted @ 2022-08-03 21:31  磕伴  阅读(203)  评论(0)    收藏  举报