迅维网

查看: 1937|回复: 2
打印 上一主题 下一主题

自己制作的点阵屏加流水灯!水平不高……

  [复制链接]
跳转到指定楼层
1#
发表于 2016-2-16 16:41:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 山东 来自 山东

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x


                               
登录/注册后看高清大图



                               
登录/注册后看高清大图





                               
登录/注册后看高清大图







源码预览:
  • //P0和P3控制LED灯显示
  • //P2和P1控制led点阵显示
  • #include<reg52.h>
  • sbit VD00 = P0^0;
  • sbit VD01 = P0^1;
  • sbit VD02 = P0^2;
  • sbit VD03 = P0^3;
  • sbit VD04 = P0^4;
  • sbit VD05 = P0^5;
  • sbit VD06 = P0^6;
  • sbit VD07 = P0^7;
  • sbit VD30 = P3^0;
  • sbit VD31 = P3^1;
  • sbit VD32 = P3^2;
  • sbit VD33 = P3^3;
  • sbit VD34 = P3^4;
  • sbit VD35 = P3^5;
  • sbit VD36 = P3^6;
  • sbit VD37 = P3^7;
  • unsigned  char code image1[ ] = {0xFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F};//低到高,1.7~1.0 1111 1110,0XFE
  • unsigned  char code image01[] =        {0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0x7F};
  • unsigned  char code image2[ ] = {0X7F,0XBF,0XDF,0XEF,0XF7,0XFB,0XFD,0XFE};//高到低
  • unsigned  char code image02[] =        {0XBF,0XDF,0XEF,0XF7,0XFB,0XFD};
  • unsigned  char code image3[ ] = {0xEE,0XCC,0X88,0X00};//低到高
  • unsigned  char code image4[ ] = {0X00,0X88,0XCC,0XEE};//高到
  • unsigned  char code image04[] =        {0X88,0XCC,0XEE };
  • unsigned  char code image5[ ] = {0xFE,0XFC,0XF8,0XF0,0XE0,0XC0,0X80,0X00};
  • unsigned  char code image05[] = {0X7F,0X3F,0X1F,0X0F,0X07,0X03,0X01,0X00};
  • unsigned  char code image55[] = {0XFC,0XF8,0XF0,0XE0,0XC0,0X80,0X00};
  • unsigned  char code image055[] ={0X3F,0X1F,0X0F,0X07,0X03,0X01,0X00};
  • unsigned  char code image6[ ] = {0X7F,0X3F,0X1F,0X0F};
  • unsigned  char code image06[] = {0XF7,0XF3,0XF1,0XF0};
  • unsigned  char code image7[ ] = {0X7E,0XBD,0XDB,0XE7};
  • unsigned  char code image07[] = {0xE7,0XDB,0XBD,0X7E};
  • unsigned  char code image9[ ] = {0xFE,0XFC,0XF8,0XF0};
  • unsigned  char code image09[] = {0XEF,0XCF,0X8F,0X0F};
  • unsigned  char code image8[29][8] = {
  •                 {0xFF,0x7F,0x7F,0xFF,0xFF,0x7F,0xFF,0x7F},
  •                 {0xFF,0x3F,0x3F,0x7F,0x7F,0x3F,0x7F,0x3F},
  •                 {0xFF,0x1F,0x1F,0x3F,0x3F,0x1F,0x3F,0x1F},
  •                 {0xFF,0x0F,0x0F,0x9F,0x9F,0x0F,0x9F,0x0F},
  •                 {0xFF,0x87,0x87,0xCF,0xCF,0x87,0xCF,0x87},
  •                 {0xFF,0xC3,0xC3,0xE7,0xE7,0xC3,0xE7,0xC3},
  •                 {0xFF,0x61,0xE1,0x73,0x73,0xE1,0xF3,0xE1},
  •                 {0xFF,0x30,0x70,0x39,0x39,0xF0,0x79,0xF0},
  •                 {0xFF,0x18,0x38,0x1C,0x1C,0x78,0x3C,0xF8},
  •                 {0xFF,0x0C,0x9C,0x0E,0x0E,0x3C,0x1E,0x7C},
  •                 {0xFF,0x06,0xCE,0x07,0x07,0x1E,0x0F,0x3E},
  •                 {0xFF,0x03,0x67,0x03,0x03,0x0F,0x07,0x9F},
  •                 {0xFF,0x01,0x33,0x01,0x01,0x87,0x03,0xCF},
  •                 {0xFF,0x00,0x99,0x00,0x00,0xC3,0x81,0xE7},
  •                 {0xFF,0x80,0xCC,0x80,0x80,0xE1,0xC0,0xF3},
  •                 {0xFF,0x40,0x66,0x40,0x40,0x70,0x60,0xF9},
  •                 {0xFF,0x20,0x33,0x20,0x20,0x38,0x30,0x7C},
  •                 {0xFF,0x90,0x99,0x90,0x90,0x1C,0x98,0x3E},
  •                 {0xFF,0xC8,0xCC,0xC8,0xC8,0x0E,0xCC,0x1F},
  •                 {0xFF,0x64,0x66,0x64,0x64,0x07,0x66,0x0F},
  •                 {0xFF,0x32,0x33,0x32,0x32,0x03,0x33,0x87},
  •                 {0xFF,0x99,0x99,0x99,0x99,0x81,0x99,0xC3},
  •                 {0xFF,0xCC,0xCC,0xCC,0xCC,0xC0,0xCC,0xE1},
  •                 {0xFF,0xE6,0xE6,0xE6,0xE6,0xE0,0xE6,0xF0},
  •                 {0xFF,0xF3,0xF3,0xF3,0xF3,0xF0,0xF3,0xF8},
  •                 {0xFF,0xF9,0xF9,0xF9,0xF9,0xF8,0xF9,0xFC},
  •                 {0xFF,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE},
  •                 {0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF},
  •                 {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
  • };
  • #define unint unsigned  int
  • unint i;
  • unint j;
  • void delay (unint c);
  • void  delay(unint c)
  • {
  •                    unint a,b;
  •                 for ( a=c; a > 0;a--)
  •                   for( b = 100; b> 0;b--);
  • }
  • void  display1()  //p0和p3亮灭3次
  • {
  •          for(i = 0;i < 3;i ++ )
  •              {
  •                     P0 = 0X003 = 0X00;
  •                     delay(620);        //延时1S ,1230为1S
  •                     P0 = 0XFF3 = 0XFF;
  •                         delay(620);
  •           }
  • }
  • void  display2() //p3和p1高位依次点亮。
  • {
  •     for(i = 0;i < 1;i++)
  •            {
  •              VD00 = 0;VD30 = 0;
  •                  delay(255);        //延时50MS ,delay255为20MS
  •                  VD01 = 0;VD31 = 0;
  •                  delay(255);
  •                  VD02 = 0;VD32 = 0;
  •                  delay(255);
  •                  VD03 = 0;VD33 = 0;
  •                  delay(255);
  •                  VD04 = 0;VD34 = 0;
  •                  delay(255);
  •                  VD05 = 0;VD35 = 0;
  •                  delay(255);
  •                  VD06 = 0;VD36 = 0;
  •                  delay(255);
  •                  VD07 = 0;VD37 = 0;
  •                  delay(255);
  •                  P0 = 0XFF3 = 0XFF;
  •                  VD07 = 0;VD37 = 0;        //p3和p1低位依次点亮。
  •                  delay(255);
  •                  VD06 = 0;VD36 = 0;
  •                  delay(255);
  •                  VD05 = 0;VD35 = 0;
  •                  delay(255);
  •                  VD04 = 0;VD34 = 0;
  •                  delay(255);
  •                  VD03 = 0;VD33 = 0;
  •                  delay(255);
  •                  VD02 = 0;VD32 = 0;
  •                  delay(255);
  •                  VD01 = 0;VD31 = 0;
  •                  delay(255);
  •                  VD00 = 0;VD30 = 0;
  •                  P0 = 0XFF;P3 = 0XFF;
  •            }
  • }
  • void  display02() //p3和p1高位依次点亮。
  • {
  •     for(i = 0;i < 1;i++)
  •            {
  •              VD00 = 0;VD30 = 0;
  •                  delay(125);        //延时50MS ,delay255为20MS
  •                  VD01 = 0;VD31 = 0;
  •                  delay(125);
  •                  VD02 = 0;VD32 = 0;
  •                  delay(125);
  •                  VD03 = 0;VD33 = 0;
  •                  delay(125);
  •                  VD04 = 0;VD34 = 0;
  •                  delay(125);
  •                  VD05 = 0;VD35 = 0;
  •                  delay(125);
  •                  VD06 = 0;VD36 = 0;
  •                  delay(125);
  •                  VD07 = 0;VD37 = 0;
  •                  delay(125);
  •                  P0 = 0XFF;P3 = 0XFF;
  •                  VD07 = 0;VD37 = 0;        //p3和p1低位依次点亮。
  •                  delay(125);
  •                  VD06 = 0;VD36 = 0;
  •                  delay(125);
  •                  VD05 = 0;VD35 = 0;
  •                  delay(125);
  •                  VD04 = 0;VD34 = 0;
  •                  delay(125);
  •                  VD03 = 0;VD33 = 0;
  •                  delay(125);
  •                  VD02 = 0;VD32 = 0;
  •                  delay(125);
  •                  VD01 = 0;VD31 = 0;
  •                  delay(125);
  •                  VD00 = 0;VD30 = 0;
  •                  P0 = 0XFF;P3 = 0XFF;
  •     }
  • }
  • void display3()         /* p0和p3逐个点亮,正反各一次*/
  • {
  •            for( i = 0;i < 8;i ++)
  •            {
  •               P0 = image1;
  •                   delay(210);
  •            }
  •             P0 = 0XFF;
  •            for( i = 0;i < 8;i++)
  •           {
  •                      P3 = image2;
  •                         delay(210);
  •           }
  •                   P3 = 0XFF;
  •           for(i = 0;i < 7;i++)
  •           {
  •                    P3 = image01;
  •                    delay(210);
  •           }
  •           P3 = 0XFF;
  •           for(i = 0;i <8;i++)
  •          {
  •                         P0 = image2;
  •                         delay(210);
  •          }
  •          P0 = 0XFF;
  • }
  • void display4()
  • {
  •      for( j = 0;j < 4;j++)
  •           for( i = 0;i < 4;i++)
  •           {
  •                     P0 = image3;
  •                         P3 = image3;
  •                         delay(210);
  •           }
  •                   P0 = 0XFF;P3 = 0XFF;
  •         for(j = 0;j < 1;j++)
  •           for( i= 0;i < 3;i++)
  •           {
  •               P0 = image04;
  •               P3 = image04;
  •                   delay(210);
  •           }
  •           P0 = 0XFF;P3 = 0XFF;
  •                   for(j = 0;j < 1;j++)
  •           for( i= 0;i < 4;i++)
  •           {
  •               P0 = image4;
  •               P3 = image4;
  •                   delay(210);
  •           }
  •           P0 = 0XFF;P3 = 0XFF;
  • }
  • void display5()
  • {
  •           for(i = 0;i <2;i++)
  •           {
  •                    P0 = 0XF0;
  •                 delay(620);         //370为30MS        delay125为10MS
  •                 P0 = 0x0F;
  •                 delay(620);
  •                 P0 = 0XFF;
  •                 P3 = 0X0F;
  •                 delay(620);
  •                 P3 = 0xF0;
  •                 delay(620);
  •                 P3 = 0XFF;
  •           }
  •           P0 = 0XFF;P3 = 0XFF;
  • }
  • void display6()
  • {
  •            for(i = 0;i < 2;i++)
  •            {
  •              P0 =0X00;
  •                  delay(620);
  •                  P0 = 0XFF;
  •                  delay(620);
  •                  P3 =0X00;
  •                  delay(620);
  •                  P3 = 0XFF;
  •                  delay(620);
  •            }
  •            P0 = 0XFF;P3 = 0XFF;
  • }
  • void display7()
  • {
  •          for(i = 0;i < 3;i++)
  •            {
  •                  P0 = 0XF0;
  •                  P3 = 0XF0;
  •                  delay(620);
  •                  P0 = 0X0F;
  •                  P3 = 0X0F;
  •                  delay(620);
  •            }
  •         P0 = 0XFF;P3 = 0XFF;
  • }
  • void display8()
  • {
  •          for(i = 0;i < 2;i++)
  •           {
  •             P0 = 0XF0;
  •                 delay(620);
  •                 P3 = 0X0F;
  •                 P0 = 0XFF;
  •                 delay(620);
  •                 P0 = 0X0F;
  •                 P3 = 0XFF;
  •                 delay(620);
  •                 P3 = 0XF0;
  •                 P0 = 0XFF;
  •                 delay(620);
  •                 P0 = 0XFF;
  •                 P3 = 0XFF;
  •           }
  • }
  • void display9()
  • {
  •            for(i = 0;i < 4;i++)
  •            {
  •                P0 = image9;
  •                    delay(255);
  •            }
  •            P0 = 0XFF;
  •            for(i = 0;i < 4;i++)
  •                 {
  •                          P0 = image09;
  •                          delay(255);
  •                 }
  •                  P0 = 0XFF;
  •            for( i = 0;i < 4;i++)
  •              {
  •                      P3 = image6;
  •                          delay(255);
  •                 }
  •                 P3 = 0XFF;
  •                 for(i = 0;i < 4;i++)
  •                 {
  •                     P3 = image06;
  •                     delay(255);
  •                 }
  •                    P3 = 0XFF;
  • }
  • void display10()
  • {
  •   for( j = 0; 1 < 1; j++)
  •    for(i = 0; i < 4;i++)
  •           {
  •              P0 = image7;
  •                  P3 = image7;
  •                  delay(345);         //此处循环三次依次比一次快,
  •           }
  •           P0 = 0XFF;P3 = 0XFF;
  •           for( i = 0;i < 4;i++)
  •           {
  •             P0 = image7;
  •                 P3 = image7;
  •                 delay(345);
  •           }
  •           P0 = 0XFF;P3 = 0XFF;
  •          for( i = 0;i < 4;i++)
  •          {
  •              P0        = image07;
  •                  P3        = image07;
  •                  delay(345);
  •          }
  •          P0 =0XFF;P3 = 0XFF;
  •          for( i = 0;i < 4;i++)
  •          {
  •              P0        = image07;
  •                  P3        = image07;
  •                  delay(345);
  •          }
  •          P0 =0XFF;P3 = 0XFF;
  • }
  • void display11()
  • {
  •   for(j = 0;j < 1;j++)
  •    for(i = 0; i < 4;i++)
  •           {
  •              P0 = image7;
  •                  P3 = image7;
  •                  delay(255);         //此处循环三次依次比一次快,
  •           }
  •           P0 = 0XFF;P3 = 0XFF;
  •           for( i = 0;i < 4;i++)
  •           {
  •             P0 = image7;
  •                 P3 = image7;
  •                 delay(255);
  •           }
  •           P0 = 0XFF;P3 = 0XFF;
  •          for( i = 0;i < 4;i++)
  •          {
  •              P0        = image07;
  •                  P3        = image07;
  •                  delay(255);
  •          }
  •          P0 =0XFF;P3 = 0XFF;
  •          for( i = 0;i < 4;i++)
  •          {
  •              P0        = image07;
  •                  P3        = image07;
  •                  delay(255);
  •          }
  •          P0 =0XFF;P3 = 0XFF;
  • }
  • void display12()
  • {
  •   for(j = 0;j < 1;j++)
  •    for(i = 0; i < 4;i++)
  •           {
  •              P0 = image7;
  •                  P3 = image7;
  •                  delay(125);         //此处循环三次依次比一次快,
  •           }
  •           P0 = 0XFF;P3 = 0XFF;
  •           for( i = 0;i < 4;i++)
  •           {
  •             P0 = image7;
  •                 P3 = image7;
  •                 delay(125);
  •           }
  •           P0 = 0XFF;P3 = 0XFF;
  •          for( i = 0;i < 4;i++)
  •          {
  •              P0        = image07;
  •                  P3        = image07;
  •                  delay(125);
  •          }
  •          P0 =0XFF;P3 = 0XFF;
  •          for( i = 0;i < 4;i++)
  •          {
  •              P0        = image07;
  •                  P3        = image07;
  •                  delay(125);
  •          }
  •          P0 =0XFF;P3 = 0XFF;
  • }
  • void display13()
  • {
  •    for(i= 0;i < 1;i++)
  •    {
  •      P0 =0X00;P3 = 0X00;
  •          delay(620);
  •         P0 =0XFF;P3 = 0XFF;
  •    }
  • }
  • void display14()
  • {
  •   for(j = 0;j<2;j++)
  •    for(i = 0;i < 8;i++)
  •            {
  •              P0 = image5;
  •                  P3 = image05;
  •                  delay(255);
  •                 }
  •             P0 = 0XFF;P3 = 0XFF;
  •                 for(i = 0;i < 7;i++)
  •              {
  •              P0 = image055;
  •                  P3 = image55;
  •                  delay(255);
  •                  }
  •             P0 = 0XFF;P3 = 0XFF;
  •                 for(i = 0;i < 8;i++)
  •              {
  •              P0 = image05;
  •                  P3 = image5;
  •                  delay(125);
  •                  }
  •             P0 = 0XFF;P3 = 0XFF;
  •                 for(i = 0;i < 7;i++)
  •             {
  •              P0 = image55;
  •                  P3 = image055;
  •                  delay(125);
  •             }
  •             P0 = 0XFF;P3 = 0XFF;
  •             delay(1000);
  • }
  • void interrupttime0()  interrupt  1
  • {
  •     static unsigned char k = 0;
  •         static unsigned char tmr = 0 ;
  •         static unsigned char index = 0;
  •     TH0 = 0XFC;
  •         TL0 = 0X18;
  •         P2 = 0XFF;
  •         switch(k)
  •         {
  •            case 0: P1 = 0xFE;k ++; P2 = image8[index][0];break;
  •            case 1: P1 = 0XFB;k ++; P2 = image8[index][1];break;
  •            case 2: P1 = 0XFD;k ++; P2 = image8[index][2];break;
  •            case 3: P1 = 0XF7;k ++; P2 = image8[index][3];break;
  •            case 4: P1 = 0XEF;k ++; P2 = image8[index][4];break;
  •            case 5: P1 = 0XBF;k ++; P2 = image8[index][5];break;
  •            case 6: P1 = 0XDF;k ++; P2 = image8[index][6];break;
  •            case 7: P1 = 0X7F;k = 0;P2 = image8[index][7];break;
  •            default:break;
  •         }
  •    tmr ++;
  •    if(tmr >= 250)
  •    {
  •       tmr = 0;
  •           index ++;
  •           if( index >= 29)
  •           {
  •             index = 0;
  •           }
  •    }
  • }
  • void main( )
  • {
  •            EA = 1;
  •            TMOD  = 0X01;
  •            TH0 = 0XFC; //x*12/11.0592*10^6=0.001,x=921.6取整为921,65536-921=64615
  •            TL0 = 0X18;//64615换成16进制,TH0=0XFC,TL0=0X67,晶振为12MHZ就是FC18
  •            ET0 = 1;        // 开启中断
  •            TR0 = 1;//开定时器
  •    while(1)
  •    {
  •              display1 ();
  •                  display2 ();
  •                  display02();
  •                  display3 ();
  •                  display4 ();
  •                  display5 ();
  •                  display9 ();
  •                  display6 ();
  •                  display7 ();
  •                  display8 ();
  •                  display10();
  •                  display13();
  •                  display11();
  •                  display13();
  •                  display12();
  •                  display13();
  •                  display14();
  •    }
  • }


复制代码



来源:网络转载

2#
发表于 2016-8-8 13:18:28 | 只看该作者 来自: 黑龙江佳木斯 来自 黑龙江佳木斯
{:4_129:}{:4_129:}{:4_129:}{:4_129:}{:4_129:}

回复 支持 反对

使用道具 举报

3#
发表于 2016-8-15 22:38:36 | 只看该作者 来自: 湖南 来自 湖南
你才是高手啊

回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索

快速回复