标题: 单片机按键控制流水灯程序(proteus+keil) [打印本页]

作者: hahaqinyou    时间: 2020-1-30 19:39
标题: 单片机按键控制流水灯程序(proteus+keil)
#include "reg52.h"
#include "intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;

sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit key1=P3^0;
sbit key2=P3^2;
sbit key3=P3^4;
sbit key4=P3^6;

void delay(u16 i)
{
    while(i--)
          ;
}

void keypros()
{  
  u8 i;
        delay(1000);
  if(key1==0)
        {
        P1=0xfe;    //1111 1110                D0亮 其他不亮
  delay(50000);
   while (1)
   {
     for(i=0;i<7;i++)
           {
                  P1=_crol_(P1,1);        // 左移 0xfe 1111 1011     1110 1111   1011 1111
                  delay(50000);
           }
           //0111 1111
           for(i=0;i<7;i++)
           {
                  P1=_cror_(P1,1);   //右移
                  delay(50000);
           }
   }
  }while(!key1);
        
        delay(1000);
        if(key3==0)
        {
                P1=0xfe;    //1111 1110                D0亮 其他不亮
    delay(50000);
    while (1)
    {
     for(i=0;i<7;i++)
           {
                  P1=_crol_(P1,1);        // 左移 0xfe 1111 1011     1110 1111   1011 1111
                  delay(50000);
           }
          }while(!key3);
        }
        
        delay(1000);
        if(key4==0)
        {
                P1=0x7f;
                delay(50000);
                while(1)
                {
                         for(i=0;i<7;i++)
             {
                     P1=_cror_(P1,1);   //右移
                     delay(50000);
             }
                }
        }while(!key4);
               
        
}

            
void main()
{
        P1=0xff;
  while(1)
  {
    keypros();
  }
}


仿真图如下:




全部资料51hei下载地址:
按键控制LED灯.rar (55.05 KB, 下载次数: 118)


作者: 刘新语    时间: 2021-6-2 19:03
为啥复位不好使
作者: 12347UU    时间: 2021-12-9 10:21
刘新语 发表于 2021-6-2 19:03
为啥复位不好使

应该接到p3.1




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1