找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4224|回复: 0
收起左侧

单片机按钮控制灯亮程序

[复制链接]
ID:865578 发表于 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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表