POV系列之平面64灯单色旋转LED

上一个版本做的立体平面旋转LED平面只有32灯,这次做一个多一倍灯的64灯,单色的相对简单,好控制,为以后制作彩色旋转LED做一下铺垫!考虑到要显示动画flash,加了一个W25Q64 Flash,把图片动画存在flash中,单片机采用STM8S105K4T6 LQFP32脚封装的,原理图设计如下
在这里插入图片描述
无线供电还是采用XKT510方案芯片,输入12V,输出有5V600MA ,驱动64灯单色LED是够的,LED驱动芯片采用MBI5020芯片,时钟芯片DS1302 带掉电保护,红外一体化接收头接收遥控器信号,红外接收头作为起点判断,旋转直径30CM。
制作好的是这样子,板子比较长,考虑到旋转的板子尽量轻,板厚是0.8MM,有点单薄,旋转要注意平衡的配重。
在这里插入图片描述
样子不好看,但是效果很好看,64灯半径旋转起来就是128灯的直径。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
动画放了一个bad apple 大概图片 6000多张 可以播放3分钟左右的视频,单色的动画,需要在电脑里制作好,比较麻烦,导入到改字软件中生成也要几分钟,数据量大了用串口发 就显得慢了。
部分程序如下:STM8开发软件用的是STVP,分享的资料有安装包!

_Bool   SDA  @PC_ODR:3; //位定义PD2 数据口
_Bool   STR  @PC_ODR:2; //位定义STR 锁存
_Bool   SCK  @PC_ODR:1; //位定义SCK 时钟
_Bool   OE  @PD_ODR:2; //位定义OE 使能
_Bool   Led  @PE_ODR:5; //位定义OE 使能

uchar k,id=0,m=0;
uchar i=0;
uintDISP_LINE=0;
uchar Overtime=0;
uchar Offset=0;
//uchar state=0x55;
_Bool BIT_timeout=0;
uint ucNumRows=180; //定义一周显示字个数
_Bool StopCount=0;
uchar Dat[8];
uchar Count=0;
uchar ucAdder=0;
uint Time=500;
uchar OfTurns=0;
uint PicAddress=0;
uint DISP_LINE=0;
uchar PicNum=0;
uchar Pic=0;
uint PicCount=0;
const uchar zimo[];
const uchar TAB_12369[]=
{

	
  0x00,0x7E,0x00,0x64,0x52,0x52,0x4C,0x00,//12		
	0x38,0x44,0x04,0x38,0x04,0x44,0x38,0x00,//3
	0x00,0x00,0x0C,0x92,0x92,0x52,0x3C,0x00,//6	
	0x0C,0x10,0x20,0x3C,0x22,0x22,0x1C,0x00,///9


};
void Send_data(uchar temp,uchar temp2,uchar temp3,uchar temp4,uchar temp5,uchar temp6,uchar temp7,uchar temp8)	  /*发送数据*/
{
	uchar k; 
	for(k=0;k<8;k++)//一个字节8位 发送给595
   {
       SCK=0; //上升沿移位595			   
	    SDA=(_Bool)(temp&0x01);//通过IO口送一个位给 595
       temp=temp>>1;  //字节移位 准备送下一位			   
       SCK=1;
   } 
   	for(k=0;k<8;k++)//一个字节8位 发送给595
   {
       SCK=0; //上升沿移位595			   
	    SDA=(_Bool)(temp2&0x01);//通过IO口送一个位给 595
       temp2=temp2>>1;  //字节移位 准备送下一位			   
       SCK=1;
   }   
   	for(k=0;k<8;k++)//一个字节8位 发送给595
   {
       SCK=0; //上升沿移位595			   
	    SDA=(_Bool)(temp3&0x01);//通过IO口送一个位给 595
       temp3=temp3>>1;  //字节移位 准备送下一位			   
       SCK=1;
   }   
   	for(k=0;k<8;k++)//一个字节8位 发送给595
   {
       SCK=0; //上升沿移位595			   
	    SDA=(_Bool)(temp4&0x01);//通过IO口送一个位给 595
       temp4=temp4>>1;  //字节移位 准备送下一位			   
       SCK=1;
   }  
/******************************************************/
	for(k=0;k<8;k++)//一个字节8位 发送给595
   {
       SCK=0; //上升沿移位595			   
	    SDA=(_Bool)(temp5&0x01);//通过IO口送一个位给 595
       temp5=temp5>>1;  //字节移位 准备送下一位			   
       SCK=1;
   } 
   	for(k=0;k<8;k++)//一个字节8位 发送给595
   {
       SCK=0; //上升沿移位595			   
	     SDA=(_Bool)(temp6&0x01);//通过IO口送一个位给 595
       temp6=temp6>>1;  //字节移位 准备送下一位			   
       SCK=1;
   }   
   	for(k=0;k<8;k++)//一个字节8位 发送给595
   {
       SCK=0; //上升沿移位595			   
	    SDA=(_Bool)(temp7&0x01);//通过IO口送一个位给 595
       temp7=temp7>>1;  //字节移位 准备送下一位			   
       SCK=1;
   }   
   	for(k=0;k<8;k++)//一个字节8位 发送给595
   {
       SCK=0; //上升沿移位595			   
	     SDA=(_Bool)(temp8&0x01);//通过IO口送一个位给 595
       temp8=temp8>>1;  //字节移位 准备送下一位			   
       SCK=1;
   } 
   
}
/***********************************************************/
void Show_R(uchar a,uchar b)//调整时间用函数
{		
			Send_data(a,b,0x00,0x00,0x00,0X00,0X00,0X00);// 发送数据
			  STR=1;
				STR=0;//锁存
				OE=0;	//打开显示		
}
/*********************每列显示的时间************************************/
/*****n(us)延时子程序*****/
void Delay1us(uint time)		//@16MHz
{
    uint b;
    for(b=time;b>0;b--);
      // for(a=1;a>0;a--);
}
void Delay10us(void)		//@16MHz
{
    unsigned char a,b;
    for(b=40;b>0;b--)
        for(a=5;a>0;a--);
}
/************************************************/
void Clear(void)
{
  for(i=0;i<8;i++)
	{	
		Dat[i]=0x00;
	}	 
}
/*************************************************/
void Show_line_time(void)//立体显示时间
{
			 OfTurns++;//圈数
			PicCount=PicAddress;
			 for(DISP_LINE=0;DISP_LINE<180;DISP_LINE++)  //显示180
			 {                               
					 Clear();
					 	if(BIT_timeout==1)//这里如果没有显示完一圈的数据 回到起点了 
		                  //直接跳出 就不会出现头吃尾的现象 而且盲点很小
						 {
								Time=Time-1;
								return;
						 }
						 
				Send_data(zimo[PicCount],zimo[PicCount+1],zimo[PicCount+2],zimo[PicCount+3],zimo[PicCount+4],zimo[PicCount+5],zimo[PicCount+6],zimo[PicCount+7]);
				PicCount=PicCount+8;
				STR=1;
				STR=0;//锁存
				OE=0;	//打开显示		
				Delay1us(Time);//延时一段时间
				//PicCount=PicCount+8;
				//OE=1;	//关闭显示									
		  }
			if(OfTurns>1)
			{
					OfTurns=0;
					PicAddress=PicAddress+0x5A0;
					Pic++;
					if(Pic>5)
					{
					   Pic=0;
						 PicAddress=0;						 
					}
					
					
			}
/****************************************************************/
	  /***********************************************************/
	
}
//PC2002字幕软件  配置 (逐列 阴码 逆向) 字大小16X16
const uchar zimo[]={
0x00,0x00,0x00,0x00,0x70,0x60,0xFC,0x18,0x00,0x00,0x00,0x00,0x30,0xC0,0xFC,0x18,0x00,0x00,0x00,0x00,
0x18,0xC3,0xFC,0x18,0x00,0x00,0x00,0x00,0xC0,0xC7,0xFD,0x19,0x00,0x00,0x00,0x00,0xE4,0xC7,0xF9,0x11,
0x00,0x00,0x00,0x00,0xE6,0x87,0xF9,0x01,0x00,0x00,0x00,0xA0,0xE1,0xA7,0xFB,0x01,0x00,0x00,0x00,0x20,
0xE0,0x07,0xFA,0x01,0x00,0x00,0x00,0x30,0xE0,0x63,0xF8,0x03,0x00,0x00,0x00,0x20,0xC0,0x43,0xF8,0x07,
0x00,0x00,0x00,0x78,0xE0,0x43,0xF8,0x07,0x00,0x00,0x00,0xFC,0xE1,0xD1,0xF9,0x07,0x00,0x00,0x00,0xF8,
0xE1,0x1F,0xF9,0x0F,0x00,0x00,0x00,0xFC,0xF7,0x9F,0xF9,0x0F,0x00,0x00,0x00,0x0C,0xFF,0x1F,0xFD,0x0F,
0x00,0x00,0x00,0x06,0x7E,0x3E,0xFC,0x1F,0x00,0x00,0x00,0x00,0x1F,0x3C,0xFC,0x1F,0x00,0x00,0x00,0x03,
0x0F,0x7C,0xFC,0x1F,0x00,0x00,0x00,0x00,0xCF,0x7D,0xFE,0x1F,0x00,0x00,0x00,0x80,0xE7,0xFB,0xFC,0x1F,
0x00,0x00,0x00,0xC0,0xE7,0xF3,0xFC,0x1F,0x00,0x00,0x00,0xE0,0xF7,0xF1,0xF8,0x1F,0x00,0x00,0x00,0xF0,
0xFB,0xF1,0xFC,0x1F,0x00,0x00,0x00,0xF8,0xF9,0xF0,0xFD,0x1F,0x00,0x00,0x00,0xFF,0x7D,0xF0,0xFF,0x1F,
0x00,0x00,0xC0,0xFF,0x3E,0xE0,0xFF,0x3F,0x00,0x00,0xC0,0x7F,0x1E,0xE0,0xFF,0x3F,0x00,0x00,0xC0,0x3F,
0x0F,0xF0,0xFF,0x3F,0x00,0x00,0xE0,0x3F,0x0F,0xE0,0xFF,0x3F,0x00,0x00,0xE0,0xDF,0x07,0xF0,0xFF,0x3F,
0x00,0x00,0xE0,0x9F,0x07,0xF0,0xFF,0x7F,0x00,0x00,0xEF,0xCF,0x07,0xF8,0xFF,0x7F,0x00,0x80,0xCF,0xC7,
0x03,0xF8,0xFF,0x7F,0x00,0x00,0xC0,0xCF,0x01,0xF8,0xFF,0x7F,0x00,0x00,0x94,0x0F,0x01,0xFE,0xFF,0x7F,
0x00,0x00,0x00,0x7E,0x80,0xFF,0xFF,0x7F,0x00,0x00,0x00,0xFE,0xF6,0xFF,0xFF,0x7F,0x00,0x00,0x40,0xF8,
0xFF,0xFF,0xFF,0x7F,0x00,0x00,0xFF,0xF9,0xFF,0xFF,0xFF,0x7F,0x00,0xE0,0xFF,0xE3,0xFF,0xFF,0xFF,0x7F,
0x00,0x40,0xFF,0x0F,0xFE,0xFF,0xFF,0x7F,0x00,0x00,0xF0,0x3F,0xF8,0xFF,0xFF,0x7F,0x00,0x00,0x10,0x38,
0xF8,0xFF,0xFF,0x7F,0x00,0x00,0xE0,0xF0,0xFF,0xFF,0xFF,0x7F,0x00,0x00,0x00,0xFC,0xFF,0xFF,0xFF,0x7F,
0x00,0x00,0x00,0xC0,0xFF,0xFB,0xFF,0x7F,0x00,0x00,0x00,0x00,0xF0,0xF3,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0x00,0xE0,0x60,0xFE,0x7F,0x00,0x00,0x00,0x00,0xE0,0x4F,0xFE,0x7F,
0x00,0x00,0x00,0x00,0xE0,0x0F,0xBE,0x7F,0x00,0x00,0x00,0x00,0xF0,0x3F,0x38,0x7F,0x00,0x00,0x00,0x00,
0xF0,0x1F,0x30,0x7F,0x00,0x00,0x00,0x00,0xF0,0x7F,0x31,0x7F,0x00,0x00,0x00,0x00,0xE0,0xFF,0x31,0x7F,
0x00,0x00,0x00,0x00,0xF0,0xFF,0x03,0x7F,0x00,0x00,0x00,0x00,0xF0,0xFF,0x07,0x7E,0x00,0x00,0x00,0x00,
0xF0,0xFF,0x0F,0x76,0x00,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x70,0x00,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x70,
0x00,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x60,0x00,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x60,0x00,0x00,0x00,0x00,
0xF0,0xFF,0x3F,0x60,0x00,0x00,0x00,0x00,0xF0,0xFF,0xBF,0x62,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x62,
0x00,0xA0,0x03,0x00,0xF8,0xFF,0xFF,0x63,0x00,0xF0,0x1F,0x00,0xF0,0xFF,0xFF,0x63,0x00,0xC0,0x3F,0x00,
0xF8,0xFF,0xFF,0x63,0x00,0x00,0xF0,0x00,0xF8,0xFF,0xFF,0x67,0x00,0x00,0xC0,0x01,0xF8,0xFF,0xFF,0x67,
0x00,0x00,0x00,0x03,0xF8,0xFF,0xFF,0x47,0x00,0x00,0x00,0x06,0xF8,0xFF,0xFF,0x47,0x00,0x00,0x00,0x0C,
0xFC,0xFF,0xFF,0x47,0x00,0x00,0x00,0x18,0xFC,0xFF,0xFF,0x47,0x00,0x00,0x00,0x70,0xF8,0xFF,0xFF,0x47,
0x00,0x00,0x00,0xF0,0xF8,0xFF,0xFF,0x07,0x00,0x00,0x00,0xE0,0xF9,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x80,
0xFD,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x80,0xFC,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFD,0xFF,0xFF,0x1F,
0x00,0x00,0x00,0x00,0xFC,0xFF,0xDF,0x1F,0x00,0x00,0x00,0x00,0xFC,0xFF,0x8F,0x1F,0x00,0x00,0x00,0x00,
0xFC,0xFF,0x9F,0x1F,0x00,0x00,0x00,0x00,0xFC,0xFF,0x9F,0x1F,0x00,0x00,0x00,0x00,0xFE,0xFF,0x8F,0x1F,
0x00,0x00,0x00,0x00,0xFC,0xFF,0x8F,0x1F,0x00,0x00,0x00,0x00,0xFC,0xFF,0xEF,0x1F,0x00,0x00,0x00,0x00,
0xFC,0xFF,0xE7,0x1F,0x00,0x00,0x00,0x00,0xFC,0xFF,0xE7,0x1F,0x00,0x00,0x00,0x00,0xFC,0xFF,0xF3,0x1F,
0x00,0x00,0x00,0x00,0xFC,0xFF,0xF3,0x1F,0x00,0x00,0x00,0x00,0xFC,0xFF,0xF3,0x1F,0x00,0x00,0x00,0x00,
0xFC,0xFF,0xF9,0x1F,0x00,0x00,0x00,0x00,0xFC,0xFF,0xF9,0x1F,0x00,0x00,0x00,0x00,0xF8,0xFF,0xF9,0x1F,
0x00,0x00,0x00,0x00,0xF8,0xFF,0xF8,0x1F,0x00,0x00,0x00,0x00,0xFC,0xFF,0xFC,0x1F,0x00,0x00,0x00,0x00,
0xF8,0xFF,0xFC,0x1F,0x00,0x00,0x00,0x00,0xF8,0x3F,0xFF,0x3F,0x00,0x00,0x00,0x00,0xF0,0x3F,0xFF,0x3F,
0x00,0x00,0x00,0x00,0xF0,0x3F,0xFF,0x3F,0x00,0x00,0x00,0x00,0xF0,0x9F,0xFF,0x3F,0x00,0x00,0x00,0x00,
0xE0,0x8F,0xFF,0x3F,0x00,0x00,0x00,0x00,0xE0,0xCF,0xFF,0x3F,0x00,0x00,0x00,0x00,0xE0,0xCF,0xFF,0x3F,
0x00,0x00,0x00,0x00,0xC0,0xC7,0xFF,0x3F,0x00,0x00,0x00,0x00,0xC0,0xF7,0xFF,0x3F,0x00,0x00,0x00,0x00,
0xC0,0xF3,0xFF,0x3F,0x00,0x00,0x00,0x00,0xC0,0xF3,0xFF,0x3F,0x00,0x00,0x00,0x00,0xE0,0xF1,0xFF,0x3F,
0x00,0x00,0x00,0x00,0xC0,0xF9,0xFF,0x3F,0x00,0x00,0x00,0x00,0xE0,0xF8,0xFF,0x1F,0x00,0x00,0x00,0x00,
0xC0,0xFD,0xFF,0x1F,0x00,0x00,0x00,0x00,0xC0,0xFE,0xFF,0x1F,0x00,0x00,0x00,0x00,0x60,0xFE,0xFF,0x1F,
0x00,0x00,0x00,0x00,0x40,0xFE,0xFF,0x1F,0x00,0x00,0x00,0x00,0x20,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,
0xA0,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0xB0,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0xD0,0xFF,0xFF,0x1F,
0x00,0x00,0x00,0x00,0xD8,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0xE8,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,
0xE6,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0xF2,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x80,0xFB,0xFF,0xFF,0x1F,
0x00,0x00,0x00,0xC0,0xF9,0xFF,0xFF,0x1F,0x00,0x00,0x00,0xF3,0xF8,0xFF,0xFD,0x1F,0x00,0x00,0x00,0xFE,
0xFE,0xFF,0xFC,0x1F,0x00,0x00,0x00,0x6F,0xFF,0xFF,0xF9,0x3F,0x00,0x00,0x7C,0x00,0xFF,0xFF,0xF9,0x3F,
0x00,0x80,0x1F,0x3C,0xFF,0xFF,0xFD,0x3F,0x00,0x80,0x87,0xFF,0xFF,0xFF,0xFC,0x3F,0x00,0x00,0xD0,0xFF,
0xFF,0xFF,0xFE,0x3F,0x00,0xC0,0x9F,0xFF,0xFF,0x7F,0xFE,0x3F,0x00,0xC0,0x0F,0xFF,0xFF,0x7F,0xFE,0x3F,
0x00,0x80,0x73,0xFC,0xFF,0x1F,0xFF,0x3F,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0xFF,0x3F,0x00,0x00,0xC0,0xFF,
0xFF,0x0F,0xFF,0x3F,0x00,0x00,0x00,0xF0,0xFF,0x23,0xFE,0x3F,0x00,0x00,0x20,0xFC,0xFF,0x31,0xFE,0x3F,
0x00,0x00,0x20,0xFF,0x5F,0x34,0xFE,0x3F,0x00,0x00,0x00,0xF8,0x87,0x3F,0xFE,0x3F,0x00,0x00,0x00,0x01,
0xD1,0x1F,0xFE,0x3F,0x00,0x00,0x00,0x80,0xFD,0x5F,0xFE,0x3F,0x00,0x00,0x00,0x80,0xFF,0xDF,0xFE,0x3F,
0x00,0x00,0x00,0x00,0xFE,0xDF,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFE,0xDF,0xFC,0x3F,0x00,0x00,0x00,0x00,
0xFC,0x8F,0xFC,0x3F,0x00,0x00,0x00,0x00,0xF8,0xCF,0xFD,0x3F,0x00,0x00,0x00,0x00,0xE0,0xCF,0xFF,0x3F,
0x00,0x00,0x00,0x00,0xC0,0xC7,0xFF,0x3F,0x00,0x00,0x00,0x00,0xC0,0xEF,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x80,0xEF,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0xC6,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0xE4,0xFF,0x7F,
0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x7F,
0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0xF0,0xF8,0x7F,0x00,0x00,0x00,0x00,0x00,0x30,0xF0,0x7F,
0x00,0x00,0x00,0x00,0x00,0x10,0xC0,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0x00,0x00,0x00,0x00,
0x00,0xC0,0xC2,0x3F,0x00,0x00,0x00,0x00,0x00,0xE0,0xC7,0x3F,0x00,0x00,0x00,0x00,0x00,0xF8,0x8F,0x3F,
0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x3E,0x00,0x00,0x00,0x00,0x00,0xFC,0x3F,0x3E,0x00,0x00,0x00,0x00,
0x00,0xFE,0x7F,0x3E,0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0x1E,0x00,0x00,0x00,0x00,0x00,0xC3,0x7F,0x1E,
0x00,0x00,0x00,0x00,0x00,0x81,0x7F,0x1E,0x00,0x00,0x00,0x00,0x80,0x00,0x7F,0x1E,0x00,0x00,0x00,0x00,
0x80,0x26,0x7F,0x1E,0x00,0x00,0x00,0x00,0x40,0x66,0x7E,0x18,0x00,0x00,0x00,0x00,0x60,0x66,0xFC,0x18,

制作资料分享链接:https://pan.baidu.com/s/1S77uxvH1YIKV1_rqhxoRSA?pwd=2cnq
提取码:2cnq

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值