⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mov_right.c

📁 中文广告牌,这是我上大学时的毕业论文
💻 C
字号:
/*******************************
;          点阵显示
;
;P2.5--P2.0口是行驱动,选择任一行亮,P2.4控制前16行的开关允许,P2.5控制后16行的开关允许;
;P1.4--P1.0口是列驱动,锁存任一点阵数据,P1.4是锁存的开关允许,0开,1关.
;P0作为数据输出口;
;P3.3,P3.4分别是E2PROM的SDA和SCL口.
;*********************************/

#include<reg52.h>
#define  uchar unsigned char

sbit  e_U_ROW=0xA4;
sbit  e_D_ROW=0xA5;
sbit  e_LIND=0x94;
unsigned char data  mark1,b;
unsigned char idata dis[128];

void delay(unsigned int);
void clear();
void main(void)
{

      uchar code BMP2[][128]=
      {{
 0x20,0x01,0x70,0x05,0x1E,0x09,0x10,0x09,0x10,0x21,0xFF,0x7F,0x10,0x01,0x10,0x09,
      0x50,0x09,0x30,0x06,0x18,0x02,0x16,0x05,0x90,0x04,0x50,0x28,0x14,0x28,0x08,0x30,
0x08,0x02,0x08,0x02,0x44,0x22,0xFE,0x7E,0x42,0x21,0xC2,0x20,0x42,0x20,0x42,0x21,
      0x7E,0x26,0x42,0x24,0x42,0x20,0x42,0x20,0x42,0x20,0x7E,0x20,0x42,0x14,0x00,0x08,
 0x00,0x02,0x04,0x02,0x44,0x02,0x44,0x02,0x44,0x12,0x44,0x3E,0xDF,0x13,0x64,0x12,
      0x44,0x12,0x44,0x12,0x44,0x16,0x44,0x0A,0x5C,0x42,0x47,0x40,0x82,0x7F,0x00,0x00,
 //0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,
   //  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff},
 0x40,0x08,0xF8,0x1F,0x08,0x08,0x48,0x08,0x88,0x28,0xFF,0x7F,0x08,0x08,0x48,0x08,
     0x84,0x0A,0x02,0x04,0xFC,0x1F,0x24,0x12,0x24,0x12,0x24,0x12,0xFF,0x7F,0x00,0x00},

 {0x20,0x01,0x70,0x05,0x1E,0x09,0x10,0x09,0x10,0x21,0xFF,0x7F,0x10,0x01,0x10,0x09,
      0x50,0x09,0x30,0x06,0x18,0x02,0x16,0x05,0x90,0x04,0x50,0x28,0x14,0x28,0x08,0x30,
 0x00,0x00,0x44,0x10,0x88,0x08,0x08,0x05,0xC0,0x1F,0x40,0x10,0x4F,0x10,0x48,0x10,
      0xC8,0x1F,0x48,0x15,0x08,0x05,0x08,0x05,0xA8,0x44,0x98,0x44,0x48,0x78,0x20,0x00,
 0x00,0x00,0xFE,0x1F,0x00,0x08,0x00,0x04,0x00,0x02,0x80,0x01,0x80,0x00,0x80,0x00,
      0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xA0,0x00,0x40,0x00,
 0x04,0x01,0x7C,0x3F,0x92,0x04,0xF9,0x0F,0x08,0x08,0xF8,0x0F,0x08,0x08,0xF8,0x0F,
      0x08,0x08,0xF8,0x0F,0x10,0x24,0xFF,0x7F,0x10,0x04,0x10,0x04,0x08,0x04,0x04,0x04}};

// 汉字表:
// 我的地盘我说了算
       register uchar data i,j,k,l,flat;


        TH0=0xF9;
        TL0=0x80;
        TMOD=0x01;
 while(1)
 {

        IE=0xff;
        //e_LIND=1;
        mark1=0;
        clear();
        P2=0xff;
        P1=0xff;
        for(l=0;l<2;l++)
        {
          for(j=0;j<16;j++)
          {
             for(k=0;k<4;k++)
             {
                 dis[flat++]=BMP2[l][j*2+k*32];
                 dis[flat++]=BMP2[l][j*2+k*32+1];
             }
          }
          flat=0;
          TR0=1;
          delay(3000);
          //mark1=0;
       	  for(i=0;i<63;i++)
       	  {
          	for(j=0;j<16;j++)
           	{
             	  for(k=0;k<3;k++)
             	  {
                     dis[8*j+2*k]=dis[8*j+2*k]>>1|dis[8*j+2*k+1]<<7;
                     dis[8*j+2*k+1]=dis[8*j+2*k+1]>>1|dis[8*j+2*k+2]<<7;
             	  }
             	  dis[8*j+6]=dis[8*j+6]>>1|dis[8*j+7]<<7;
             	  dis[8*j+7]=(dis[8*j+7]>>1);
          	}

                delay(2000);
          }
          TR0=0;
        }

 }

}




void display(void) interrupt 1 using 1
{
      register uchar j,a,p;
      TH0=0xF9;
      TL0=0x30;

      e_U_ROW=1;
      e_D_ROW=1;            //关显示
      a=P2;
      a++;
	  P1=0x1f;
      if(mark1==128)
      {
          mark1=0;
          b=0;
      }
      else ;
      for(j=0;j<8;j++)
      {
         P0=dis[mark1];
         mark1=mark1+1;
         p=P1;
         P1=++p;
      }
      e_LIND=1;
      if(b==8)
      {
          a=a|0x10;
          a=a&0x1F;            //确保开后8行开关允许
          P2=a;
      }
      else
      {
          a=a|0x28;
          a=a&0x2F;            //确保开前8行开关允许,其保持后数位不变
          P2=a;
          b++;

      }

}




void clear()
{
   register uchar data i,a;
   P0=0;
   P1=0xFF;
   for(i=0;i<16;i++)
   {    a=P1;
        a++;
        P1=a;

   }
   e_LIND=1;
}


void delay(unsigned int t)
{
   register unsigned char d;
   for(;t>0;t--)
   {
        for(d=0;d<250;d++)
		;
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -