16*64点阵几种显字效果源码

2020-02-05 08:56发布

               
#include<reg52.h>
#define uchar unsigned char
uchar hang[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xfc,0x0d,0xfe,0x0f};
sbit R=P1^0;
sbit CLK=P1^3;
sbit STB=P1^2;
sbit OE=P1^4;
char code HZ[];
char HC[8];
uchar zhuwei[8]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};

void delay(int z) //延时函数
{
int x,y;
for(x=0;x<z;x++)
for(y=0;y<110;y++);
}

void WriteByte(char dat)//写一个字节数据
{
char i;
for(i=0;i<8;i++)
{
dat=dat>>1;
R=CY;
CLK=0;
CLK=1;
}
}


void main()//主函数
{
  int num;
   uchar a,b,c,d;

   OE=0;
    while(1)
      {
        uchar zi;
        int xh;
        
                for(zi=0;zi<3;zi++)
         {
           for(xh=0;xh<200;xh++)
            {
              for(num=0;num<16;num++)
               {
                                 for(b=0;b<4;b++)
                                  {
                                   HC[2*b]=(HZ[2*num+128*zi+32*b]);
                                   HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
                                  }
                          for(a=0;a<8;a++)
                                   {
                                      WriteByte(HC[a]);
                                   }
                 P0=hang[num];
                 STB=1;
                                 STB=0;
                       
               }
            }
         }

                                for(zi=0;zi<3;zi++)
         {
           for(xh=0;xh<200;xh++)
            {
              for(num=0;num<16;num++)
               {
                                 for(b=0;b<4;b++)
                                  {
                                   HC[2*b]=(HZ[2*num+128*zi+32*b]);
                                   HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
                                  }
                          for(a=0;a<8;a++)
                                   {
                                      WriteByte(HC[a]);
                                   }
                 P0=hang[num];
                 STB=1;
                                 STB=0;
                       
               }
            }
                     OE=1;
                         delay(500);
                         OE=0;
                  for(xh=0;xh<200;xh++)
            {
              for(num=0;num<16;num++)
               {
                                 for(b=0;b<4;b++)
                                  {
                                   HC[2*b]=(HZ[2*num+128*zi+32*b]);
                                   HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
                                  }
                          for(a=0;a<8;a++)
                                   {
                                      WriteByte(HC[a]);
                                   }
                 P0=hang[num];
                 STB=1;
                                 STB=0;
                       
               }
            }
         }

        for(zi=0;zi<3;zi++)
         {
                 for(d=0;d<16;d++)
                 {
          
           for(xh=0;xh<10;xh++)
            {
              for(num=0;num<16;num++)
               {
                                 for(b=0;b<4;b++)
                                  {
                                   HC[2*b]=(HZ[2*num+128*zi+32*b]);
                                   HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
                                  }
                          if(num<=d)
                                   for(a=0;a<8;a++)
                                   {
                                      WriteByte(HC[a]);
                                   }
                                   else
                                        for(a=0;a<8;a++)
                                   {
                                      WriteByte(0xff);
                                   }
                 P0=hang[num];
                 STB=1;
                                 STB=0;
                       
               }
            }
         }
                   for(xh=0;xh<100;xh++)
            {
              for(num=0;num<16;num++)
               {
                                 for(b=0;b<4;b++)
                                  {
                                   HC[2*b]=(HZ[2*num+128*zi+32*b]);
                                   HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
                                  }
                          for(a=0;a<8;a++)
                                   {
                                      WriteByte(HC[a]);
                                   }
                 P0=hang[num];
                 STB=1;
                                 STB=0;
                       
               }
            }

                 }

                         for(zi=0;zi<3;zi++)
         {
                 for(d=0;d<16;d++)
                 {
          
           for(xh=0;xh<10;xh++)
            {
              for(num=0;num<16;num++)
               {
                                 for(b=0;b<4;b++)
                                  {
                                   HC[2*b]=(HZ[2*num+128*zi+32*b]);
                                   HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
                                  }
                          if(num<=d)
                                   for(a=0;a<8;a++)
                                   {
                                      WriteByte(HC[a]);
                                   }
                                   else        if(num==d+1)
                                        for(a=0;a<8;a++)
                                   {
                                      WriteByte(0x00);
                                   }
                                   else
                                        for(a=0;a<8;a++)
                                   {
                                      WriteByte(0xff);
                                   }
                 P0=hang[num];
                 STB=1;
                                 STB=0;
                       
               }
            }
         }
         for(xh=0;xh<100;xh++)
            {
              for(num=0;num<16;num++)
               {
                                 for(b=0;b<4;b++)
                                  {
                                   HC[2*b]=(HZ[2*num+128*zi+32*b]);
                                   HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
                                  }
                          for(a=0;a<8;a++)
                                   {
                                      WriteByte(HC[a]);
                                   }
                 P0=hang[num];
                 STB=1;
                                 STB=0;
                       
               }
            }

                 }

        for(zi=0;zi<3;zi++)
         {
                   for (c=0;c<8;c++)
                   {
            for(xh=0;xh<10;xh++)
            {
              for(num=0;num<16;num++)
               {
                 
                                 for(b=0;b<4;b++)
                                  {
                                   HC[2*b]=(HZ[2*num+128*zi+32*b]);
                                   HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
                                  }
                               
                                 for(a=0;a<8;a++)
                                   {
                                     
                                          WriteByte(HC[a]|zhuwei[c]);
                                         

                                   }
                 P0=hang[num];
                 STB=1;
                                 STB=0;
                                 

               }
            }
                        }         

                   for(xh=0;xh<200;xh++)
            {
              for(num=0;num<16;num++)
               {
                 
                                 for(b=0;b<4;b++)
                                  {
                                   HC[2*b]=(HZ[2*num+128*zi+32*b]);
                                   HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
                                  }
                               
                                 for(a=0;a<8;a++)
                                   {
                                      WriteByte(HC[a]);
                                   }
                 P0=hang[num];
                 STB=1;
                                 STB=0;
                                 

               }
            }
         }


                 
     }
}

char code HZ[]=
{
0x7F,0xFF,0x7F,0xE0,0x7F,0xFF,0x03,0xC0,0x7B,0xDF,0x7B,0xF9,0x0B,0xEE,0x7B,0xEF,
0xFB,0xE0,0xFB,0xFF,0x3B,0xF8,0xBB,0xFB,0xBB,0xFB,0xDD,0xDB,0xED,0xDB,0xF6,0xC7,/*"虎",0*/
0xF7,0xFF,0x7B,0x80,0x41,0xFF,0x5D,0xDF,0x41,0xDD,0x5D,0xEB,0x41,0xEB,0x5D,0xF7,
0x5D,0xF7,0x40,0xEB,0x4F,0xEB,0x57,0xDD,0x5B,0xDE,0x5D,0xFF,0x56,0x80,0xEF,0xFF,/*"躯",1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x80,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"一",2*/
0x03,0xE0,0x7F,0xFF,0x01,0x80,0x7D,0xBF,0x46,0xD1,0x7F,0xFF,0x47,0xF1,0xFF,0xFF,
0x03,0xC0,0xFB,0xFF,0x0B,0xE0,0xFB,0xFF,0x03,0xC0,0xDB,0xED,0xDD,0xF3,0x9E,0x8F,/*"震",3*/
0xFF,0xFF,0x01,0xC0,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x03,0xE0,
0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x00,0x80,0xFF,0xFF,/*"王",4*/
0x03,0xE0,0x7F,0xFF,0x01,0x80,0x7D,0xBF,0x46,0xD1,0xBB,0xFF,0x01,0xC1,0xBB,0xDD,
0x83,0xDD,0xEF,0xC1,0x01,0xDD,0x6D,0xDD,0x01,0xC1,0xEF,0xDD,0x00,0xD5,0xEF,0xEE,/*"霸",5*/
0xBF,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,0x01,0xE0,0xFF,0xF7,0xFF,0xFB,0xFF,0xFD,
0xFF,0xFE,0x7F,0xFF,0xBF,0xFF,0xDF,0xFF,0xE7,0xFF,0xDB,0xFF,0x3D,0x80,0xFF,0xFF,/*"之",6*/
0xF7,0xFF,0xF7,0xFF,0x03,0xC0,0xFB,0xFF,0x0D,0xF0,0xFE,0xFF,0x03,0xF0,0xFF,0xF7,
0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xAF,0xFF,0xAF,0xFF,0x9F,0xFF,0xBF,/*"气",7*/
0xFF,0xFF,0x07,0xE0,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0x07,0xE0,0xF7,0xED,0xF7,0xFD,
0xF7,0xFB,0x3B,0xF7,0xFB,0xEE,0xFD,0x9F,0xCE,0xFF,0x3F,0xFF,0xFF,0xFE,0xFF,0xFD,/*"尽",8*/
0xFF,0xFF,0x07,0xF0,0xF7,0xF7,0xF7,0xF7,0x07,0xF0,0xF7,0xF7,0xF7,0xF7,0x07,0xF0,
0xDF,0xFD,0xDD,0xDD,0xDB,0xDD,0xD7,0xED,0xD7,0xF5,0xDF,0xFD,0x00,0x80,0xFF,0xFF,/*"显",9*/
0xFF,0xFF,0x03,0xF0,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0x01,0xC0,0xDF,0xFE,
0xDF,0xFE,0xDF,0xFE,0xEF,0xFE,0xEF,0xFE,0xF7,0xDE,0xFB,0xDE,0xFD,0xC1,0xFE,0xFF,/*"无",10*/
0xFF,0xFD,0x3B,0xE0,0xB7,0xED,0x37,0xE0,0xFF,0xFD,0x0F,0x80,0xF0,0xFF,0x37,0xE0,
0xB7,0xEF,0xB7,0xED,0xB7,0xED,0xF7,0xFA,0x77,0xF7,0xAB,0xEF,0x1D,0x80,0xFF,0xFF,/*"遗",11*/
};
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。