好东西,值得学习收藏![]() |
liaolinhui 发表于 2014-8-14 22:16 我在有警告的 前面 加了void 就解决了。谢谢楼主的程序,学习中。。。 |
楼主好贴,我上次给客户出货了刚好还剩下几个这个芯片,明天来照样做个学习学习,灯就没有三色同体的,不过有做个红绿灯,还有灯仔,试试,谢谢楼主提供源程序。 |
初学者,学习中 |
liaolinhui 发表于 2014-8-14 22:16 编译的时候要注意什么,我怎么好多警告。 |
初学者,学习中.路过...... |
重庆水下LED灯 发表于 2015-7-20 00:04 方便的话提供一下电路和程序,才能判断怎么回事 |
新手前来学习,目前想做一个光立方 |
高手老师 我遇上一个难题了 我是做水下LED的 也有7彩 我是不会写 现在是别人写的 就是我们这个 要几百个灯同时上电,一定要同时变。现在就是遇上了不同步。当喷泉水泵一启动 就开始乱变了 叫这写程序的改下 他说只能这样 把我都气晕了 |
楼主真牛,实际上STC15f104w用途很大,我就用来代替过著名的555集成块 |
很好,正需要 |
楼主很行啊,不错,在玩中学习!!! |
还行挺经典的啊 |
我喜欢 |
本帖最后由 liaolinhui 于 2014-8-15 23:59 编辑 淘宝应该有卖,才几毛钱一个(在淘宝搜三色LED),15f104w要1块多,洞洞板5X7的3毛钱(只用到一小块,一块5X7的起码可以做十几个),usb转ttl线(下载用)10块钱(这个最贵,不过买了以后可以经常用到,)三色LED分共阳和共阴两种,用51单片机IO口直接驱动的话买共阳的好点,因为51单片机低电平输出能力要比高电平好,共阳三色LED的公共端接VCC,其他三脚通过限流电阻接IO口,建议红色用1k,蓝绿用560左右,因为如果三个都用同样的电阻红色会太亮,其他两个颜色就不明显,假如钱多的话可以买大功率的LED,那样的话这玩意就变成舞台灯了 |
太牛逼了,,楼主问一下这种灯叫什么名字到哪里有卖的呀?我也想亲手制作一个 |
好久没有看到这么牛的制作了 非常好 非常详细 值得学习 |
昨天受到启发,想吧程序改一下,想把七彩改为多彩,今天在51hei网站发现有个类似的 原网址http://www.51hei.com/mcu/3973.html,我拿来修改了下,做成了七彩灯2代 ![]() 只改动了头文件和IO口设置 #include <STC15F104E.H> //C:\Keil\C51\INC\STC目录居然没有STC15F104W的,所以用STC15F104E的 sbit g1=P3^0; //绿色 这个改成STC15F104W的io sbit r1=P3^1; //红 sbit b1=P3^2; //兰 sbit key1=P3^3; /*********************************/ unsigned char i; unsigned char mode; /*********************************/ void delay(unsigned int k) { unsigned int i,j; for(i=0;i<k;i++){ for(j=0;j<121;j++) {;}} } /*********************************/ void interint1() interrupt 2 //using ** //外部中断1处理 { EA=0; if(key1==0) { delay(20); key1=1; if(key1==0) { mode++; if(mode==4)mode=0; } while(key1==0); } key1=1; EA=1; } /*********************************/ timer(unsigned char t) {unsigned char b; for(b=0;b<t;b++) {; } } /*********************************/ ledout(unsigned char g,r,b) {unsigned char a; for(a=0;a<10;a++) {if(g!=0) {g1=1;timer(g);g1=0;} if(r!=0) {r1=1;timer(r);r1=0;} if(b!=0) {b1=1;timer(b);b1=0;} } } /*********************************/ /*********************************/ main() { unsigned char g,r,b; r1=0; g1=0; b1=0; EA=1; EX1=1; delay(1); while(1) { if(mode==0) { {if(g!=0&&b==0) {g--;r++;} if(r!=0&&g==0) {r--;b++;} if(b!=0&&r==0) {b--;g++;} if(g+r+b!=100) {g=100;r=0;b=0;} ledout(g,r,b); } } if(mode==1) { i++; if(i==7)i=0; switch(i) { case 0 : r1=1;g1=0;b1=0;delay(100); r1=0;g1=0;b1=0; delay(100); break; case 1 : r1=0;g1=1;b1=0;delay(100); r1=0;g1=0;b1=0; delay(100); break; case 2 : r1=0;g1=0;b1=1;delay(100); r1=0;g1=0;b1=0; delay(100); break; case 3 : r1=1;g1=1;b1=0;delay(100); r1=0;g1=0;b1=0; delay(100); break; case 4 : r1=1;g1=0;b1=1;delay(100); r1=0;g1=0;b1=0; delay(100); break; case 5 : r1=0;g1=1;b1=1;delay(100); r1=0;g1=0;b1=0; delay(100); break; case 6 : r1=1;g1=1;b1=1;delay(100); r1=0;g1=0;b1=0; delay(100); break; default : break; } } if(mode==2) { i++; if(i==7)i=0; switch(i) { case 0 : r1=1;g1=0;b1=0;delay(300); r1=0;g1=0;b1=0; delay(300); break; case 1 : r1=0;g1=1;b1=0;delay(300); r1=0;g1=0;b1=0; delay(300); break; case 2 : r1=0;g1=0;b1=1;delay(300); r1=0;g1=0;b1=0; delay(300); break; case 3 : r1=1;g1=1;b1=0;delay(300); r1=0;g1=0;b1=0; delay(300); break; case 4 : r1=1;g1=0;b1=1;delay(300); r1=0;g1=0;b1=0; delay(300); break; case 5 : r1=0;g1=1;b1=1;delay(300); r1=0;g1=0;b1=0; delay(300); break; case 6 : r1=1;g1=1;b1=1;delay(300); r1=0;g1=0;b1=0; delay(300); break; default : break; } } if(mode==3) { i++; if(i==7)i=0; switch(i) { case 0 : r1=1;g1=0;b1=0;delay(300); break; case 1 : r1=0;g1=1;b1=0;delay(300); break; case 2 : r1=0;g1=0;b1=1;delay(300); break; case 3 : r1=1;g1=1;b1=0;delay(300); break; case 4 : r1=1;g1=0;b1=1;delay(300); break; case 5 : r1=0;g1=1;b1=1;delay(300); break; case 6 : r1=1;g1=1;b1=1;delay(300); break; default : break; } } } } |
很好很详细 |
jiege 发表于 2014-8-13 23:25 这灯有4个引脚,一个共阳极,一个绿灯,一个蓝灯,一个红灯。分别接在P3.0,P3.1,P3.2,通过P3.0-P3.2输出000-111实现分别点亮一个灯(红,绿,蓝),同时点亮两个灯(红绿,红蓝,绿蓝)。同时点亮三个灯(红绿蓝),同时熄灭等八种状态。如果通过pwm改变3灯的亮度的话理论上是有无数种颜色的,要知道彩电就是通过这三基色来显示各种各样的颜色的 |
太牛逼了,问一下 这个灯有几个引脚? 为什么可以发出七彩色呢? |
很好的制作 谢谢分享 |