基于STC89C52RC的七彩RGB3528实验板

前述:
QQ:3177227373
V X:F9986858
这个是一个自己随便做的玩玩的作品。
       
其实这个RGB灯在去年还是前年的时候在实验室就翻出来的。后来问学姐是她的上一届学长买的,然后一直在实验室吃灰。
我其实对这个灯挺有兴趣的,想玩玩,然后一直拖到了现在。
       
此RGB灯有四个引脚,相当于是三个LED集成,采用共阳连接,对其余三个引脚置低电平,便可点亮对应的LED,由于三个灯的颜色是红蓝绿,就是三原色,理论上对三个引脚给予不同的电压,便可以使它变换出任何颜色。
       
废话不多说,直接上图。

单个LED灯实物图片:

在这里插入图片描述

原理图模型:

在这里插入图片描述

实物电路图:

LED驱动电路

在这里插入图片描述

单片机电路

在这里插入图片描述
高清电路图(PDF)百度网盘 点击蓝色字体即可跳转

3维PCB

在这里插入图片描述

演示视频:

基于RGB3258的全彩LED实验演示

实物照片:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

驱动代码:

#include "reg52.h"
#include "intrins.h"#define u8 unsigned char
#define u16 unsigned int//--定义使用的IO口--//
sbit SRCLK_1 = P1^2;
sbit RCLK_1  = P1^1;
sbit SER_1   = P1^0;sbit SRCLK_2 = P1^5;
sbit RCLK_2  = P1^4;
sbit SER_2   = P1^3;#define Flower_1_time   300
#define Flower_2_time   20
#define Flower_3_time   200
#define Flower_4_time	200
#define Flower_5_time   200
#define Flower_6_time   200/**********************************************红            绿            蓝0x01          0x02          0x04    (74HC595_1)红            绿            蓝0x08          0x10          0x20    (74HC595_1)红            绿            蓝0x40          0x80          0x01    (74HC595_1)   (74HC595_1)   (74HC595_2)红            绿            蓝0x02          0x04          0x08    (74HC595_2)红            绿            蓝0x10          0x20          0x40    (74HC595_2)
**********************************************/u8 code LED1[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
u8 code LED2[7]={0x01,0x02,0x04,0x08,0x10,0x20,0x40};
u8 GPIO_Dat;void delay_ms(u16 ms);
void HC595_1_SendByte(u8 dat);
void HC595_2_SendByte(u8 dat);
void LED_All_OFF();
void LED_Flower_1();
void LED_Flower_2();
void LED_Flower_3();
void LED_Flower_4();
void LED_Flower_5();
void LED_Flower_6();
void LED_Flower_7();void main()
{LED_All_OFF();while(1){LED_Flower_1();LED_Flower_2();LED_Flower_3();LED_Flower_4();LED_Flower_5();LED_Flower_6();}
}
void LED_Flower_1()
{u8 i;for(i=0;i<8;i++){HC595_1_SendByte(LED1[i]);delay_ms(Flower_1_time);}LED_All_OFF();for(i=0;i<7;i++){HC595_2_SendByte(LED1[i]);delay_ms(Flower_1_time);}LED_All_OFF();
}
、、、
、、、
、、、
void LED_Flower_6()
{u8 i;for(i=0;i<4;i++){HC595_1_SendByte(0x01);delay_ms(Flower_6_time);HC595_1_SendByte(0x08|0x02);delay_ms(Flower_6_time);HC595_1_SendByte(0x40|0x10|0x04);delay_ms(Flower_6_time);HC595_2_SendByte(0x02);HC595_1_SendByte(0x80|0x20|0x01);delay_ms(Flower_6_time);HC595_1_SendByte(0x08|0x02);HC595_2_SendByte(0x10|0x04|0x01);delay_ms(Flower_6_time);LED_All_OFF();HC595_2_SendByte(0x10);delay_ms(Flower_6_time);HC595_2_SendByte(0x02|0x20);delay_ms(Flower_6_time);HC595_1_SendByte(0x40);  HC595_2_SendByte(0x04|0x40);delay_ms(Flower_6_time);HC595_1_SendByte(0x08|0x80);  HC595_2_SendByte(0x08|0x10);delay_ms(Flower_6_time);HC595_1_SendByte(0x01|0x10);  HC595_2_SendByte(0x01|0x02|0x20);delay_ms(Flower_6_time);LED_All_OFF();}
}void LED_All_OFF()
{HC595_1_SendByte(0x00);HC595_2_SendByte(0x00);
}
void delay_ms(u16 ms)
{u16 i,j;for(j=0;j<ms;j++){for(i=0;i<110;i++);}
}/*******************************************************************************
* 函 数 名         : Hc595SendByte(u8 dat)
* 函数功能		   : 向74H595发送一个字节的数据
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void HC595_1_SendByte(u8 dat)
{u8 a;SRCLK_1 = 1;RCLK_1 = 1;for(a=0;a<8;a++)		 //发送8位数{SER_1 = dat >> 7;		 //从最高位开始发送dat <<= 1;SRCLK_1 = 0;			 //发送时序_nop_();_nop_();SRCLK_1 = 1;	}RCLK_1 = 0;_nop_();_nop_();RCLK_1 = 1;
}void HC595_2_SendByte(u8 dat)
{u8 a;SRCLK_2 = 1;RCLK_2 = 1;for(a=0;a<8;a++)		 //发送8位数{SER_2 = dat >> 7;		 //从最高位开始发送dat <<= 1;SRCLK_2 = 0;			 //发送时序_nop_();_nop_();SRCLK_2 = 1;	}RCLK_2 = 0;_nop_();_nop_();RCLK_2 = 1;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部