找回密码
 立即注册

QQ登录

只需一步,快速开始

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

用PROTUES制作的16个LED闪灯(首次制作,勿喷)

[复制链接]
跳转到指定楼层
楼主
ID:311849 发表于 2018-4-19 18:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
主程序代码:
#include <reg52.h>  
#include <intrins.h>
void turn_on(int i);
void turn_off(int i);
void turn_on_Only(int i);

void main(void)
{  
int a,j,k;
while(1)  
  {
  for(a=1;a<=16;a++)
    {
    turn_on(a);
        delay_100ms();
   }
    delay_100ms();
     for(j=1;j<=16;j++)
     {
      turn_off(j);
          delay_100ms();
     }
        delay_100ms();
        for(k=1;k<=16;k++)
        {
        turn_on_Only(k);
         delay_100ms();
    }
   }
}


延时代码:
#include"delay.h"
void delay_100ms(void)
{
     unsigned char a,b,c;
   for(c=7;c>0;c--)
     for(b=74;b>0;b--)
           for(a=95;a>0;a--);
}



灯闪程序:

#include<reg52.h>
#include"led.h"
void turn_on(int i);
void turn_off(int i);
void turn_on_Only(int i);
char tmp1;
char tmp2;

void turn_on(int i)
{

  switch(i)
  {

   case 1:
      tmp1=0xFE;
          tmp2=0xFF;
          P1=tmp1;
          P2=tmp2;
      break;
   case 2:
      tmp1=0xFC;
          tmp2=0xFF;
          P1=tmp1;
          P2=tmp2;
      break;
   case 3:
      tmp1=0xF8;
          tmp2=0xFF;
          P1=tmp1;
          P2=tmp2;
      break;
   case 4:
      tmp1=0xF0;
          tmp2=0xFF;
          P1=tmp1;
          P2=tmp2;
      break;
   case 5:
      tmp1=0xE0;
          tmp2=0xFF;
          P1=tmp1;
          P2=tmp2;
      break;
   case 6:
      tmp1=0xC0;
          tmp2=0xFF;
          P1=tmp1;
          P2=tmp2;
      break;
   case 7:
      tmp1=0x80;
          tmp2=0xFF;
          P1=tmp1;
          P2=tmp2;
      break;
   case 8:
      tmp1=0x00;
          tmp2=0xFF;
          P1=tmp1;
          P2=tmp2;
      break;
   case 9:
      tmp1=0x00;
          tmp2=0xFE;
          P1=tmp1;
          P2=tmp2;
      break;
   case 10:
      tmp1=0x00;
          tmp2=0xFC;
          P1=tmp1;
          P2=tmp2;
      break;
   case 11:
      tmp1=0x00;
          tmp2=0xF8;
          P1=tmp1;
          P2=tmp2;
      break;
   case 12:
      tmp1=0x00;
          tmp2=0xF0;
          P1=tmp1;
          P2=tmp2;
      break;
   case 13:
      tmp1=0x00;
          tmp2=0xE0;
          P1=tmp1;
          P2=tmp2;
      break;
   case 14:
      tmp1=0x00;
          tmp2=0x0C0;
          P1=tmp1;
          P2=tmp2;
      break;
   case 15:
      tmp1=0x00;
          tmp2=0x80;
          P1=tmp1;
          P2=tmp2;
      break;
  case 16:
      tmp1=0x00;
          tmp2=0x00;
          P1=tmp1;
          P2=tmp2;
      break;
    default:
          break;
  }
}

void turn_off(int i)
{
  switch(i)
  {         
          case 1:
      tmp1=0x01;
          tmp2=0x00;
          P1=tmp1;
          P2=tmp2;
                break;
          case 2:
      tmp1=0x03;
          tmp2=0x00;
          P1=tmp1;
          P2=tmp2;
                break;
          case 3:
      tmp1=0x07;
          tmp2=0x00;
          P1=tmp1;
          P2=tmp2;
                break;
          case 4:
      tmp1=0x0F;
          tmp2=0x00;
          P1=tmp1;
          P2=tmp2;
                break;                 
           case 5:
      tmp1=0x1F;
          tmp2=0x00;
          P1=tmp1;
          P2=tmp2;
                break;
          case 6:
      tmp1=0x3F;
          tmp2=0x00;
          P1=tmp1;
          P2=tmp2;
                break;  
          case 7:
      tmp1=0x7F;
          tmp2=0x00;
          P1=tmp1;
          P2=tmp2;
                break;
          case 8:
      tmp1=0xFF;
          tmp2=0x00;
          P1=tmp1;
          P2=tmp2;
                break;               
          case 9:
      tmp1=0xFF;
          tmp2=0x01;
          P1=tmp1;
          P2=tmp2;
                break;               
          case 10:
      tmp1=0xFF;
          tmp2=0x03;
          P1=tmp1;
          P2=tmp2;
                break;               
          case 11:
      tmp1=0xFF;
          tmp2=0x07;
          P1=tmp1;
          P2=tmp2;
                break;               
          case 12:
      tmp1=0xFF;
          tmp2=0x0F;
          P1=tmp1;
          P2=tmp2;
                break;
          case 13:
      tmp1=0xFF;
          tmp2=0x1F;
          P1=tmp1;
          P2=tmp2;
                break;
          case 14:
      tmp1=0xFF;
          tmp2=0x3F;
          P1=tmp1;
          P2=tmp2;
                break;
          case 15:
      tmp1=0xFF;
          tmp2=0x7F;
          P1=tmp1;
          P2=tmp2;
                break;               
          case 16:
      tmp1=0xFF;
          tmp2=0xFF;
          P1=tmp1;
          P2=tmp2;
                break;
        default:
            break;                                                                  
  }
}


void turn_on_Only(int i)
{
switch (i)
{
         case 1:
           tmp1=0xFE;
           tmp2=0xFF;
           P1=tmp1;
           P2=tmp2;
                break;
         case 2:
           tmp1=0xFD;
           tmp2=0xFF;
           P1=tmp1;
           P2=tmp2;
                break;
         case 3:
           tmp1=0xFB;
           tmp2=0xFF;
           P1=tmp1;
           P2=tmp2;
                break;
         case 4:
           tmp1=0xF7;
           tmp2=0xFF;
           P1=tmp1;
           P2=tmp2;
                break;
         case 5:
           tmp1=0xEF;
           tmp2=0xFF;
           P1=tmp1;
           P2=tmp2;
                break;
         case 6:
           tmp1=0xDF;
           tmp2=0xFF;
           P1=tmp1;
           P2=tmp2;
                break;
         case 7:
           tmp1=0xBF;
           tmp2=0xFF;
           P1=tmp1;
           P2=tmp2;
                break;
         case 8:
           tmp1=0x7F;
           tmp2=0xFF;
           P1=tmp1;
           P2=tmp2;
                break;
         case 9:
           tmp1=0xFF;
           tmp2=0xFE;
           P1=tmp1;
           P2=tmp2;
                break;
         case 10:
           tmp1=0xFF;
           tmp2=0xFD;
           P1=tmp1;
           P2=tmp2;
                break;
         case 11:
           tmp1=0xFF;
           tmp2=0xFB;
           P1=tmp1;
           P2=tmp2;
                break;
         case 12:
           tmp1=0xFF;
           tmp2=0xF7;
           P1=tmp1;
           P2=tmp2;
                break;
         case 13:
           tmp1=0xFF;
           tmp2=0xEF;
           P1=tmp1;
           P2=tmp2;
                break;
         case 14:
           tmp1=0xFF;
           tmp2=0xDF;
           P1=tmp1;
           P2=tmp2;
                break;
         case 15:
           tmp1=0xFF;
           tmp2=0xBF;
           P1=tmp1;
           P2=tmp2;
                break;
         case 16:
           tmp1=0xFF;
           tmp2=0x7F;
           P1=tmp1;
           P2=tmp2;
                break;
         default:
            break;
}
}





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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