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 @   磕伴  阅读(199)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示