开源制作最炫RGB全彩51流水灯(原理图+PCB图+C程序)
2016-12-05 09:00
447 查看
http://www.51hei.com/bbs/dpj-56830-1.html
程序, 源程序, 制作
本主题由 admin 执行 审核通过
2.png (613.88
KB, 下载次数: 4)
RGB流水灯程序和原理图PCB图.rar
136.36 KB, 下载次数: 11, 下载积分: 黑币 -5
最炫RGB全彩51流水灯 流水灯这货大家估计都跟她都很熟悉,但是下面制作的这种RGB全彩流水灯或许会让你对流水灯刮目相看,话不多说有图有真相。(PCB板我用的PADS画的,附件中有源程序+原理图+PCB图,用的湿膜感光法做的) 1。硬件:所有的51单片机均可驱动(晶振频率随意、晶振频率越高流动速度越快)P3口通过8个电阻分别接8个三极管基极 2.元件:5050RGB灯珠8颗+PNP三极管8个+单片机+电阻8个(470R-4.7K均可)+电阻2个(220R左右)+电阻1个(330R左右) 3.初学者可以通过“货”认识到LED三基色混光原理以及左右移位 /********************************************************************************************* 编写:刘海龙 程序名:RGB8位彩色流水灯程序 硬件支持:所有的51单片机均可驱动(晶振频率随意) 元件:5050RGB灯珠8颗+PNP三极管8个+单片机+电阻8个(470R-4.7K均可)+电阻2个(220R左右)+电阻1个(330R左右) /*********************************************************************************************/ #include <REG51.h> //单片机头文件 #include <intrins.h> //51基本运算(包括_nop_空函数) sbit BB=P1^0;//blue蓝灯 sbit RR=P1^1;//red红灯 sbit GG=P1^2;//green绿灯 unsigned int N=100;//定义每个灯亮的时间、单位为毫秒、修改此值可改变流动速度 /********************************************************************************************* 函数名:毫秒级CPU延时函数 /*********************************************************************************************/ void DELAY_MS (unsigned int a){ unsigned int i; while( a-- != 0){ for(i = 0; i < 630; i++); } } /*********************************************************************************************/ /*********************************************************************************************/ void main (void) { unsigned char i; while(1){ /***************各种颜色灯单个点亮左右流动**************************/ RR=0;GG=1;BB=1;//红灯亮 for(i=0;i<8;i++){ //低位向高位流动 P3 = ~(1<<i); DELAY_MS(N); } for(i=0;i<8;i++){//高位向低位流动 P3 = ~(1<<7-i); DELAY_MS(N); } RR=1;GG=0;BB=1;//绿灯亮 for(i=0;i<8;i++){ //低位向高位流动 P3 = ~(1<<i); DELAY_MS(N); } for(i=0;i<8;i++){//高位向低位流动 P3 = ~(1<<7-i); DELAY_MS(N); } RR=1;GG=1;BB=0;//蓝灯点亮 for(i=0;i<8;i++){ P3 = ~(1<<i); DELAY_MS(N); } for(i=0;i<8;i++){ P3 = ~(1<<7-i); DELAY_MS(N); } RR=0;GG=0;BB=1;//红绿灯亮(黄色光) for(i=0;i<8;i++){ P3 = ~(1<<i); DELAY_MS(N); } for(i=0;i<8;i++){ P3 = ~(1<<7-i); DELAY_MS(N); } RR=0;GG=1;BB=0;//红蓝灯亮(粉红光) for(i=0;i<8;i++){ P3 = ~(1<<i); DELAY_MS(N); } for(i=0;i<8;i++){ P3 = ~(1<<7-i); DELAY_MS(N); } RR=1;GG=0;BB=0;//蓝绿灯亮(青色光) for(i=0;i<8;i++){ P3 = ~(1<<i); DELAY_MS(N); } for(i=0;i<8;i++){ P3 = ~(1<<7-i); DELAY_MS(N); } RR=0;GG=0;BB=0;//红蓝绿灯亮(白色光) for(i=0;i<8;i++){ P3 = ~(1<<i); DELAY_MS(N); } for(i=0;i<8;i++){ P3 = ~(1<<7-i); DELAY_MS(N); } /********各种颜色灯逐个点亮左右流动****************************/ RR=0;GG=1;BB=1;//红灯亮 for(i=0;i<8;i++){ P3 = 0xfe<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x7f>>i; DELAY_MS(N); } RR=1;GG=0;BB=1;//绿灯亮 for(i=0;i<8;i++){ P3 = 0xfe<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x7f>>i; DELAY_MS(N); } RR=1;GG=1;BB=0;//蓝灯点亮 for(i=0;i<8;i++){ P3 = 0xfe<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x7f>>i; DELAY_MS(N); } RR=0;GG=0;BB=1;//红绿灯亮 for(i=0;i<8;i++){ P3 = 0xfe<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x7f>>i; DELAY_MS(N); } RR=0;GG=1;BB=0;//红蓝灯亮 for(i=0;i<8;i++){ P3 = 0xfe<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x7f>>i; DELAY_MS(N); } RR=1;GG=0;BB=0;//蓝绿灯亮 for(i=0;i<8;i++){ P3 = 0xfe<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x7f>>i; DELAY_MS(N); } RR=0;GG=0;BB=0;//红蓝绿灯亮 for(i=0;i<8;i++){ P3 = 0xfe<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x7f>>i; DELAY_MS(N); } /********各种颜色灯全部点亮一个熄灭的灯左右流动*************************/ RR=0;GG=1;BB=1;//红灯亮 for(i=0;i<8;i++){ P3 = 1<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x80>>i; DELAY_MS(N); } RR=1;GG=0;BB=1;//绿灯亮 for(i=0;i<8;i++){ P3 = 1<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x80>>i; DELAY_MS(N); } RR=1;GG=1;BB=0;//蓝灯点亮 for(i=0;i<8;i++){ P3 = 1<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x80>>i; DELAY_MS(N); } RR=0;GG=0;BB=1;//红绿灯亮 for(i=0;i<8;i++){ P3 = 1<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x80>>i; DELAY_MS(N); } RR=0;GG=1;BB=0;//红蓝灯亮 for(i=0;i<8;i++){ P3 = 1<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x80>>i; DELAY_MS(N); } RR=1;GG=0;BB=0;//蓝绿灯亮 for(i=0;i<8;i++){ P3 = 1<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x80>>i; DELAY_MS(N); } RR=0;GG=0;BB=0;//红蓝绿灯亮 for(i=0;i<8;i++){ P3 = 1<<i; DELAY_MS(N); } for(i=0;i<8;i++){ P3 = 0x80>>i; DELAY_MS(N); } } } /************************************END*********************************************************/ 复制代码 |
本主题由 admin 执行 审核通过
2.png (613.88
KB, 下载次数: 4)
RGB流水灯程序和原理图PCB图.rar
136.36 KB, 下载次数: 11, 下载积分: 黑币 -5
相关文章推荐
- Android Dialog 大合集
- sh和bash的区别
- SVN无法提交出现 Can't set file "/db/txn_current" read-write :拒绝访问
- 网络层:虚电路:IPV4:子网掩码
- android-解决EditText的inputType为Password时, 字体不一致的问题
- 设计模式1:单例模式原理的思考
- V-MODEL指令实现方法
- Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
- github fork后的pull和保持同步
- 为AM335x移植Linux内核主线代码
- 回文串是指这个字符串无论从左读还是从右读,所读的顺序是一样的;简而言之,回文串是左右对称的。现在,对于一个给定的母串 abcdedcb求最长回文子串的长度
- 多态
- 多态
- 服装
- JS 对java返回的json格式的数据处理方法
- 面对面需求获取与原型设计
- Maven 中央仓库地址
- Eclipse Mars.2 Release (4.5.2) 安装svn插件
- 接口
- SAP HANA 2.0简介