51单片机 独立按键控制LED灯移动

这篇文章详细描述了一个使用8位微控制器的C语言程序,通过`voidDelay`函数实现延时,控制P2端口的LED灯状态。程序逻辑涉及P3_1和P3_0引脚的输入,控制LED灯的亮灭和切换顺序。
摘要由CSDN通过智能技术生成

#include <REGX52.H>

void Delay(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;
   P2=~0x01;      
   while(1)
   {
      if(P3_1==0)
      {
        Delay(20);
        while(P3_1==0);
        Delay(20);

        LEDNum++;
        if(    LEDNum>=8)
        {
              LEDNum=0;
        } 
            P2=~(0x01<<LEDNum);
      }
       if(P3_0==0)
      {
        Delay(20);
        while(P3_0==0);
        Delay(20);

        if(LEDNum==0)
           LEDNum=7;
        else
           LEDNum--;
           P2=~(0x01<<LEDNum);
      }     
   }
}

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值