久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1665|回復: 0
打印 上一主題 下一主題
收起左側

彩燈控制器源碼分享

[復制鏈接]
跳轉到指定樓層
樓主
ID:343382 發表于 2018-6-2 11:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>  
#define uint unsigned int
#define uchar unsigned char   
const tab1[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};  
const tab2[]={0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00};
const tab3[]={0xFF,0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00};
const tab4[]={0xFF,0xFE,0xFA,0xEA,0xAA,0x2A,0x0A,0x02,0x00};           //1,3,5,7
const tab5[]={0xFF,0x7F,0x5F,0x57,0x55,0x54,0x50,0x40,0x00};      //2,4,6,8   
uchar key=0;
uchar state=0;  
uchar stateTemp=0;
uchar flag=0;
  
void delay(uint n)//延時
{  uint i;
        for(i=0;i<n;i++)
                ;
}   
void fun1(void)
{  
        P0=0x00;  
        P2=0x00;
        delay(30000); //        fun1全亮
        P0=0xff;
        P2=0xff;
        delay(30000);
}  
  void fun2(void)
{
        uchar i;     
          for(i=0;i<8;i++)  //向上逐次單個點亮   
        {   
        P2=tab1[7-i];
        P2=tab1[7-i];  
        delay(10000);  
        if(state!=2)   
                {   
                P0=0xFF;   
                P2=0xFF;   
                return;
                }
        }
        P2=0xFF;   
        for(i=0;i<8;i++)
         {   
        P0=tab1[7-i];   
        delay(10000);  
         if(state!=2)   
                {   
                P0=0xFF;
                P2=0xFF;  
                return;   
                }
        }  
        P0=0xFF;   
        for(i=0;i<8;i++)   //向下逐次單個點亮   
          {  
         P0=tab1[i];
         delay(10000);  
         if(state!=2)
                {     
                P0=0xFF;   
                P2=0xFF;  
                return;  
                }
        }  
        P0=0xFF;  
        for(i=0;i<8;i++)
        {  
          P2=tab1[i];
          delay(10000);
           if(state!=2)
                {   
                        P0=0xFF;
                           P2=0xFF;
                           return;  
                }
        }  
        P2=0xFF;
}  
void fun3(void)
{  
        uchar i;
          for(i=0;i<9;i++)
        {  
        P0=tab4[i];
        P2=tab5[i];  
        delay(25000);  
        if(state!=3)
                  {   
                P0=0xFF;
                   P2=0xFF;
                   return;  
                }
          }
        for(i=0;i<3;i++)  
        {  
        P0=0xAA;
        P2=0xAA;   
        delay(20000);
          P0=0x55;  
        P2=0x55;  
        delay(20000);  
        if(state!=3)  
                {   
                P0=0xFF;  
                  P2=0xFF;  
                  return;   
                }  
        }  
        for(i=0;i<9;i++)
        {   
        P0=tab4[8-i];  
        P2=tab5[8-i];  
        delay(25000);
    if(state!=3)
                  {   
                P0=0xFF;  
                  P2=0xFF;  
                  return;
                }
        }
}

void fun4(void)
{  
        uchar i;   
           for(i=0;i<9;i++) //向上逐個點亮
          {  
        P2=tab3[i];
          delay(10000);  
        if(state!=4)  
                {  
                  P0=0xFF;   
                P2=0xFF;  
                  return;   
                }
        }
        for(i=0;i<9;i++)
        {  
        P0=tab3[i];
          delay(10000);  
        if(state!=4)  
                {   
                P0=0xFF;
                   P2=0xFF;  
                  return;
                  }
        }  
        for(i=0;i<9;i++) //向下逐個熄滅  
        {  
        P0=tab3[8-i];   
        delay(10000);  
        if(state!=4)
                  {   
                P0=0xFF;  
                  P2=0xFF;
                return;  
                }
        }
          P0=0xFF;
          for(i=0;i<9;i++)
        {  
          P2=tab3[8-i];
          delay(10000);  
        if(state!=4)  
                {   
                P0=0xFF;   
                P2=0xFF;   
                return;
                }
          }
          P2=0xFF;  
        for(i=0;i<9;i++)   //向下逐個點亮  
        {    P0=tab2[i];
          delay(10000);  
        if(state!=4)
                  {   
                  P0=0xFF;  
                  P2=0xFF;  
                  return;   
                }  
        }  
        for(i=0;i<9;i++)
        {   
        P2=tab2[i];
        delay(10000);  
        if(state!=4)  
                {     
                P0=0xFF;   
                P2=0xFF;   
                return;   
                }
        }   
        for(i=0;i<9;i++)   //向上逐個熄滅
          {    P2=tab2[8-i];   delay(10000);   
        if(state!=4)
                {   
                P0=0xFF;    P2=0xFF;    return;   
                }
        }
        P2=0xFF;
        for(i=0;i<9;i++)
        {   P0=tab2[8-i];   delay(10000);  
        if(state!=4)  
                {    P0=0xFF;    P2=0xFF;    return;   
                }
        }  
        P0=0xFF;
}   

void timer0(void)interrupt 1 using 1
{         TL0 = 0x00;   //重置初值  
        TH0 = 0xBE;
        TL0 = 0xE5;
        key=P1;  
        switch(key)  
        {  
        case 0xF6:state=1;stateTemp=1;break;  
        case 0xFD:state=2;stateTemp=2;break;
        case 0xFB:state=3;stateTemp=3;break;   
        //case 0xF7:state=4;stateTemp=4;break;  
        default:break;  
        }
}  

void _int()interrupt 2 using 2
{      
          if(flag==0)        
        {state=5;   flag|=1;  }

        else      
  {   state=stateTemp;       flag&=0;    }
}  
void main()
{   
        IT1=1;
        IE|=0x86;
        TMOD= 0x21;
        TH0 = 0xBE;  
        TL0 = 0xE5;  
        ES  = 0;       //禁止串口中斷
        TR0 = 1;       //開啟定時器0,開始定時  
        while(1)  
        {  
                switch(state)   
                {   
                case 1:fun1();break;   
                case 2:fun2();break;   
                case 3:fun3();break;   
                case 4:fun4();break;   
                case 5:P0=0x00;P2=0x00;break;//中斷全亮
                default:  break;//fun1();fun2();fun3();fun4();break;
                }
        }
}







分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久成人人人人精品欧 | 亚洲综合婷婷 | 免费黄色大片 | 日韩视频专区 | 亚洲美女在线一区 | 久久亚洲一区二区 | 日韩av中文 | 一区二区三区四区免费在线观看 | 久久精品在线 | 91精品国产综合久久精品图片 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 久久精品二区 | 日韩精品一区二区三区免费观看 | 亚洲一区二区网站 | 日本精品一区二区在线观看 | 国产精品久久久久久亚洲调教 | 亚洲第一中文字幕 | 日韩在线免费 | 成人免费网站 | 91色在线 | 欧美日韩网站 | 五月天天丁香婷婷在线中 | 激情国产视频 | 操久久| 国产一级毛片视频 | 国产一区二区黑人欧美xxxx | 天天看天天操 | 亚洲综合精品 | 亚洲成人蜜桃 | 国家一级黄色片 | 成人av网站在线观看 | 国产在线精品免费 | 男女精品网站 | 成人三级视频在线观看 | 欧美日韩国产三级 | 日本精品一区二区三区视频 | 欧美精品久久久 | 日韩中文字幕视频在线观看 | 日韩欧美福利视频 | 国产综合精品一区二区三区 | 1区2区3区视频 |