标题: 单片机按钮控制灯亮程序 [打印本页]

作者: 佛系751    时间: 2020-12-22 22:37
标题: 单片机按钮控制灯亮程序
使用AT89C51单片机控制灯亮,要求按一下亮一个灯,但是因为是个小白,做不到按一下灯亮再按一下灯灭,仅供参考
原理图如图

代码如下
#include<reg51.h>
unsigned char s[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
unsigned char num=-1;

void delay(unsigned int n)
{
         unsigned int i=0,j=0;
         for(i;i<n;i++)
        {
        for(j;j<120;j++);
        }         
}

void  scan()
{        
    unsigned char temp0=0,temp1=0,temp=0;
        P2=0xf0;
    delay(100);
    if(P2!=0xf0)
    {
       delay(20);
             temp0=P2;
           P2=0x0f;
             if(P2!=0x0f)
           {
                    temp1=P2;
           }
        }
        temp=temp0+temp1;
        if(temp==0xee)
    {
             num=0;
    }
    if(temp==0xed)
    {
             num=1;
    }
    if(temp==0xeb)
    {
             num=2;
    }
    if(temp==0xe7)
    {
             num=3;
    }
        if(temp==0xde)
    {
             num=4;
    }
        if(temp==0xdd)
    {
             num=5;
    }
        if(temp==0xdb)
    {
             num=6;
    }
        if(temp==0xd7)
    {
             num=7;
    }
}

void display()
{
   P1=s[num];
}

void main()
{
   while(1)
   {
             scan();
          display();
   }
}


51hei图片20201222223043.png (42.32 KB, 下载次数: 39)

51hei图片20201222223043.png





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