找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3990|回复: 0
打印 上一主题 下一主题
收起左侧

单片机按钮控制灯亮程序

[复制链接]
跳转到指定楼层
楼主
使用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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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