上一个版本做的立体平面旋转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