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

📄 河工科技欢迎你程序.txt

📁 基于51单片机的16*16点阵
💻 TXT
字号:
 #include <reg52.h>
#define BLKN 2
#define uchar unsigned char
#define uint  unsigned int
uchar i,j,k,l;
 //uint i;
 uchar  data dispram[32];                                                                                                                                                                                                                                                                                                                             
 sbit G  =P2^7;
 sbit RCK=P2^6;
 sbit SCLR=P2^5;
 void delay(uchar x)
 {
     uchar a,b;
 	 for(a=x;a>0;a--)
	    for(b=110;b>0;b--);
 
 }
 uchar code bmp[][32]=
 {
    
	{
	0xF9,0xCF,0xF1,0x8F,0xF1,0x8F,0xF3,0x9F,0xE3,0x1F,0xE3,0x1F,0xE7,0x3F,0xC0,0x3F,
    0xC0,0x33,0xCE,0x39,0x8E,0x38,0x9E,0x38,0x1C,0x38,0x18,0x00,0x18,0x00,0x1F,0xFF
	
	}, //河工科技图标  0
    {
	0xBF,0xFB,0xC0,0x01,0xEF,0xF7,0xFF,0xF7,0x7F,0xB7,0x98,0x17,0xDB,0xB7,0xF3,0xB7,
    0xEB,0xB7,0xDB,0xB7,0x18,0x37,0xDB,0xB7,0xDF,0xF7,0xDF,0xF7,0xDF,0xD7,0xDF,0xEF
	},//河			   1
	{
	0xFF,0xFF,0xFF,0xF7,0x80,0x03,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,
    0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,0x00,0x01,0xFF,0xFF,0xFF,0xFF
	
	},//工			   2

	{
	 0xFB,0xEF,0xF1,0xEF,0x07,0x6F,0xF7,0xAF,0xF7,0xEF,0x01,0x6F,0xF7,0xAF,0xE3,0xEB,
     0xE5,0xE1,0xD6,0x0F,0xD7,0xEF,0xB7,0xEF,0x77,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF
	
	},//科			  3
	{
	 0xEF,0xBF,0xEF,0xBF,0xEF,0xB7,0xEC,0x03,0x03,0xBF,0xEF,0xBF,0xEF,0xBF,0xEC,0x07,
    0xE5,0xF7,0xCE,0xEF,0x2E,0xEF,0xEF,0x5F,0xEF,0xBF,0xEF,0x4F,0xAE,0xF1,0xD9,0xFB
	
	},//技			   4
	{
	0xFF,0xFF,0xFF,0xF7,0x80,0x03,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,
    0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,0x00,0x01,0xFF,0xFF,0xFF,0xFF
	
	},//工			   5
	{
	0xF6,0xFF,0xF6,0xFF,0xF6,0xFB,0xEE,0x01,0xED,0x7F,0xCD,0x7F,0xAB,0x6F,0x67,0x07,
    0xEF,0x7F,0xEF,0x7F,0xEF,0x77,0xEF,0x03,0xEF,0x7F,0xEF,0x7F,0xEF,0x7F,0xEF,0x7F
	},//作			   6
	{
	0xFD,0xFF,0xFE,0xFF,0x80,0x01,0xBF,0xFD,0x7F,0xEB,0xC0,0x07,0xFB,0xFF,0xF7,0xDF,
    0xE0,0x0F,0xFE,0xEF,0xFE,0xFF,0xE0,0x0F,0xFE,0xFF,0xFE,0xF7,0x80,0x03,0xFF,0xFF
	},//室			  7
	
	{
	0xFF,0xFF,0xFF,0xFF,0xF0,0x0F,0xEF,0xF7,0xDF,0xFB,0xBF,0xFD,0xA3,0xC5,0x9D,0xB9,
    0xBF,0xFD,0xBF,0xFD,0xBF,0xFD,0xB7,0xED,0xD8,0x1B,0xEF,0xF7,0xF0,0x0F,0xFF,0xFF
	
	},//笑脸  		   8
	{ 
	0xFF,0x7F,0xFF,0x7F,0x03,0x7F,0xFB,0x03,0xBA,0xFB,0xB9,0xB7,0xD7,0xBF,0xD7,0xBF,
    0xEF,0xBF,0xD7,0xBF,0xDB,0x5F,0xBB,0x5F,0x7E,0xEF,0xFE,0xF7,0xFD,0xF1,0xF3,0xFB
	
	},//欢			   9
	{
	0xFF,0xFF,0xBE,0x7B,0xD9,0x81,0xEB,0xBB,0xFB,0xBB,0xFB,0xBB,0x0B,0xBB,0xEB,0x3B,
    0xEA,0xBB,0xE9,0xAB,0xEB,0xB7,0xEF,0xBF,0xEF,0xBF,0xD7,0xB9,0xB8,0x03,0xFF,0xFF
	
	},//迎				10
	{
	
	0xF6,0xFF,0xF6,0xFF,0xEC,0x03,0xED,0xFB,0xCB,0xB7,0xA6,0xBF,0x6E,0xAF,0xED,0xB3,
    0xEB,0xBB,0xEE,0xBF,0xEF,0x7F,0xFD,0xFF,0xAE,0x7B,0xAF,0x6D,0x6F,0xED,0xF0,0x0F
	} //你			   11
 };
uchar data dispram[32];
 void main()
 {
    SCON=0x00;             //串口工作模式0;移位寄存器方式
	TMOD=0x01;			   //定时器T0工作方式1:16位方式
	TR0=1;                 //启动定时器t0
	P1=0x3f;               //P1端口初值:允许接收、锁定、显示
    IE=0x82;
	for(i=0;i<32;i++)
	{
	 dispram[i]=0xff;
	
	}
	while(1)
	  {
	   delay(2000);
	   for(i=0;i<8;i++)
	   {
	   	 for(j=0;j<16;j++)
		 {
		  for(k=0;k<15;k++)
		  {
		   dispram[k*BLKN]=dispram[(k+1)*BLKN];
		   dispram[k*BLKN+1]=dispram[(k+1)*BLKN+1];
		  }
		  dispram[30]=bmp[i][j*BLKN];
		  dispram[31]=bmp[i][j*BLKN+1];
	   	  delay(100);
		 }
	   } 
	   delay(2000);
	 	for(i=8;i<12;i++) 
	    {
		  for(j=0;j<2;j++)
		   for(k=1;k<9;k++)
		   {
		     for(l=0;l<16;l++)
			   {
		       dispram[l*BLKN]=dispram[l*BLKN]<<1|dispram[l*BLKN+1]>>7;
		       dispram[l*BLKN+1]=dispram[l*BLKN+1]<<1|bmp[i][l*BLKN+j]>>(8-k);
		       }
			   delay(100);
		   }
        }			                                                                                                                                                                                                                                                                                                                                                                                                                                      
	  }

 }
 void leddisplay(void)  interrupt 1 using 1
 {
   uchar i,j=BLKN;			 //设定显示屏刷新率62.5帧/s
   TH0=0xfd;
   TL0=0xf0;
   i=P1;					 //读取当前显示的行列
   i=++i&0x0f;				 /*行数自动加一,屏蔽高4位 ,注意P1.0,P1.1,P1.2,P1,3控制行的显示,
                               通过4线16线译码器,对16行进行控制*/
   do
     {										                
	   j--;		 
	   SBUF=dispram[i*BLKN+j];	  //送显示数据,SBUF串行数据缓冲寄存器
	   while(!TI);				   /*串行发送停止位的开始时,由内部硬件使T11,向CPU发出中断请求
	                                ,在中断服务程序中,必须用软件使其清0*/
	   TI=0;
	 }
   while(j);					  //完成一行数据的发送
   G=1;							  //消隐(关闭显示)
   P1&=0xf0;					  //行号端口清0
   RCK=1;						   //显示数据打入输出锁存器
   P1|=i;						   //写入行号
   RCK=0;						   //锁存显示数据
   G=0;							   //打开显示
}

⌨️ 快捷键说明

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