开源DIY制作分享采用STC15W408AS制作七彩LED广州塔

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源DIY制作分享采用STC15W408AS制作七彩LED广州塔相关的知识,希望对你有一定的参考价值。

【广州塔DIY】采用STC15W408AS制作七彩LED广州塔


  • 之前在上升沿购买的散件led散件回来自己搭建的广州塔的,半年前突然就不亮了,这次重新购买回来了芯片,将程序烧录进去,重新恢复了。采用的单片机是STC15W408AS-35I-SKDIP28
  • 找了其他网上的广州塔LED代码,烧录进去,效果不理想,有的采用的是共阴极焊接的,有的能亮但是,显示的效果都不多,没有原来之前芯片里面自带程序的效果多,今天想到免去淘宝翻一翻你是记录,看看,能不能找到资料,果真,还有,立马下载下来,将里面附带的程序烧录进去,效果和原来的一样了。特此分享出来,完全可以自己去嘉立创打板,自己做,成本的话也就10块钱的成本完全够,去TB购买散件需要25元左右,对于电子DIY,最重要的就是程序和原理图了,有了这两样基本上制作都没有什么难度了,所以分享出来,让后面的人如果想自己动手制作,完全可以按照这里的资料自己制作。
  • STC15W408AS-35I-SKDIP28
  • Led灯的价格很便宜的,一大包要不了多少钱,然后就是4个电阻。

制作所需材料(包含教程原理图,程序,焊接教程)

链接: https://pan.baidu.com/s/1DKJq5fa0UdwnCnK4ic_gTw 
提取码: edjc 
  • 资料截图

  • 实际焊接的骨架效果取决于个人的焊接水平。凑合着看吧


程序代码

/*共阳极LED灯焊接***/

#include "STC15F2K.h"
#include "intrins.h"
#include <math.h>

#define uchar unsigned char 
#define uint unsigned int

sbit L1=P2^5;
sbit L2=P2^6;
sbit L3=P2^7;
sbit L4=P1^1;
sbit L5=P1^2;
sbit L6=P1^3;
sbit L7=P3^7;
sbit L8=P2^0;
sbit L9=P2^1;
sbit L10=P2^2;
sbit L11=P2^3;
sbit L12=P2^4;

sbit C1=P3^0;
sbit C2=P3^1;
sbit C3=P3^3;
sbit C4=P3^4;
sbit C5=P3^5;
sbit C6=P3^6;
sbit C7=P1^4;
sbit C8=P1^5;
sbit C9=P1^6;
sbit C10=P1^7;
sbit C11=P5^4;
sbit C12=P5^5;

sbit hwx=P3^2;		//红外接收数据引脚,

unsigned char ly_lhj[4];					//保存NEC的四个字节数据
bit ly_flag=0;								//成功接收标志

unsigned int temp;

char moshi=1;
int hys=100;
char zy=0,sj=0;

void Delayms(uint t)

 	uchar i;
	while(t--)
	   for(i=0;i<hys;i++);


void bjc()//层变化

	L1=L2=L3=L4=L5=L6=L7=L8=L9=L10=L11=L12=1;
	if(sj==0)
	
		C1=0;C2=C3=C4=C5=C6=C7=C8=C9=C10=C11=C12=1;
	

	if(sj==1)
	
		C1=1;C2=0;C3=C4=C5=C6=C7=C8=C9=C10=C11=C12=1;
	

	if(sj==2)
	
		C1=C2=1;C3=0;C4=C5=C6=C7=C8=C9=C10=C11=C12=1;
	
	if(sj==3)
	
		C1=C2=C3=1;C4=0;C5=C6=C7=C8=C9=C10=C11=C12=1;
	

	if(sj==4)
	
		C1=C2=C3=C4=1;C5=0;C6=C7=C8=C9=C10=C11=C12=1;	
	
	if(sj==5)
	
		C1=C2=C3=C4=C5=1;C6=0;C7=C8=C9=C10=C11=C12=1;	
	
	if(sj==6)
	
		C1=C2=C3=C4=C5=C6=1;C7=0;C8=C9=C10=C11=C12=1;
	
	if(sj==7)
	
		C1=C2=C3=C4=C5=C6=C7=1;C8=0;C9=C10=C11=C12=1;	
	
	if(sj==8)
	
		C1=C2=C3=C4=C5=C6=C7=C8=1;C9=0;C10=C11=C12=1;	
	
	if(sj==9)
	
		C1=C2=C3=C4=C5=C6=C7=C8=C9=1;C10=0;C11=C12=1;	
	
	if(sj==10)
	
		C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=1;C11=0;C12=1;	
	
	if(sj==11)
	
		C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11=1;C12=0;	
	

void bjs()//竖变化

	C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11=C12=0;		
	if(zy==0)
	
		L1=1;L2=L3=L4=L5=L6=0;L7=1;L8=L9=L10=L11=L12=0;
	

	if(zy==1)
	
		L1=0;L2=1;L3=L4=L5=L6=L7=0;L8=1;L9=L10=L11=L12=0;
		

	if(zy==2)
	
		L1=L2=0;L3=1;L4=L5=L6=L7=L8=0;L9=1;L10=L11=L12=0;
		

	if(zy==3)
	
		L1=L2=L3=0;L4=1;L5=L6=L7=L8=L9=0;L10=1;L11=L12=0;
		

	if(zy==4)
	
		L1=L2=L3=L4=0;L5=1;L6=L7=L8=L9=L10=0;L11=1;L12=0;
		

	if(zy==5)
	
		L1=L2=L3=L4=L5=0;L6=1;L7=L8=L9=L10=L11=0;L12=1;	
		


void dh1()

	int time=1200;
	L1=L2=L3=L4=L5=L6=L7=L8=L9=L10=L11=L12=1;
	C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11=C12=1;
	C1=0;
	Delayms(time);
	C2=0;
	Delayms(time);
	C3=0;
	Delayms(time);
	C4=0;
	Delayms(time);
	C5=0;
	Delayms(time);
	if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
	C6=0;
	Delayms(time);
	C7=0;
	Delayms(time);	
	C8=0;
	Delayms(time);
	C9=0;
	Delayms(time);
	C10=0;
	Delayms(time);
	C11=0;
	Delayms(time);
	C12=0;
	if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
	Delayms(8000);
	if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
	Delayms(8000);
	if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
	Delayms(8000);
	if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
	Delayms(8000);
	if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
	Delayms(8000);
	if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
	Delayms(8000);
	if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
	Delayms(8000);
	if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
	Delayms(8000);
	if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
	Delayms(8000);
	if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
	Delayms(8000);
	if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
	Delayms(8000);
	C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11=C12=1;
hm:;

void dh2()

	int time=1000,i;
	C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11=C12=0;
	L1=L2=L3=L4=L5=L6=L7=L8=L9=L10=L11=L12=0;

	for(i=0;i<12;i++)
	
		L1=1;
		L7=1;
		Delayms(time);
		L1=0;
		L7=0;
	
		L2=1;
		L8=1;
		Delayms(time);
		L2=0;
		L8=0;
	
		L3=1;
		L9=1;
		Delayms(time);
		L3=0;
		L9=0;
		if(ly_flag==1)moshi=0;ly_flag=0;goto hm;	
		L4=1;
		L10=1;
		Delayms(time);
		L4=0;
		L10=0;
	
		L5=1;
		L11=1;
		Delayms(time);
		L5=0;
		L11=0;
	
		L6=1;
		L12=1;
		Delayms(time);
		L6=0;
		L12=0;	
		if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
	
hm:;	


void dh3()

	char i;
	int time=500;
	L1=L2=L3=L4=L5=L6=L7=L8=L9=L10=L11=L12=1;
	C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11=C12=1;

	for(i=0;i<4;i++)
	
		C1=0;
		Delayms(time);
		C1=1;
		C2=0;
		Delayms(time);
		C2=1;
		C3=0;
		Delayms(time);
		C3=1;
		C4=0;
		Delayms(time);
		if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
		C4=1;
		C5=0;
		Delayms(time);
		C5=1;
		C6=0;
		Delayms(time);
		C6=1;
		C7=0;
		Delayms(time);
		C7=1;
		C8=0;
		Delayms(time);
		if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
		C8=1;
		C9=0;
		Delayms(time);
		C9=1;
		C10=0;
		Delayms(time);
		C10=1;
		C11=0;
		Delayms(time);
		C11=1;
		C12=0;
		Delayms(time);
		if(ly_flag==1)moshi=0;ly_flag=0;goto hm;
		C12=1;
		C11=0;
		Delayms(time);
		C11=1;
		C10=0;
		Delayms(time);
		C10=1;
		C9=0;
		Delayms(time);
		C9=1;
		C8=0;
		Delayms(time);
		if(ly_flag==1)moshi=0;ly_flag=0;STC单片机基于VSCode PlatformIO开发STC15W408AS软串口示例程序

STC15W408AS无感BLDC电机驱动程序

STC15W408AS+LCD1602+PCF8574转IIC接口+DHT11数据显示

STC单片机VSCode PlatformIO开发环境详细配置过程

问天BlockSTC15单片机PWM输出讲解

STC单片机STC15主时钟对外输出示例程序及演示