找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

stc51f104w制作的七彩灯

查看数: 18087 | 评论数: 23 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-8-13 22:01

正文摘要:

前天看了nniipf的帖子才知道原来stc也有8脚的单片机,之前买了2块pic的由于要编程器所以被丢一边了,看到STC也有于是从淘宝买了几片回来研究。申通也够给力,今天早上收到货了,于是弄了个最小系统,说是最小系统其 ...

回复

ID:147018 发表于 2017-7-28 22:09
好东西,值得学习收藏
ID:139028 发表于 2016-9-27 10:15
liaolinhui 发表于 2014-8-14 22:16
昨天受到启发,想吧程序改一下,想把七彩改为多彩,今天在51hei网站发现有个类似的
原网址http://www.51he ...

我在有警告的 前面 加了void 就解决了。谢谢楼主的程序,学习中。。。
ID:140245 发表于 2016-9-23 19:12
楼主好贴,我上次给客户出货了刚好还剩下几个这个芯片,明天来照样做个学习学习,灯就没有三色同体的,不过有做个红绿灯,还有灯仔,试试,谢谢楼主提供源程序。
ID:140236 发表于 2016-9-23 17:13

初学者,学习中
ID:139028 发表于 2016-9-23 16:43
liaolinhui 发表于 2014-8-14 22:16
昨天受到启发,想吧程序改一下,想把七彩改为多彩,今天在51hei网站发现有个类似的
原网址http://www.51he ...

编译的时候要注意什么,我怎么好多警告。
ID:112693 发表于 2016-4-16 21:26
初学者,学习中.路过......
ID:58502 发表于 2015-7-20 23:53
重庆水下LED灯 发表于 2015-7-20 00:04
高手老师 我遇上一个难题了 我是做水下LED的 也有7彩 我是不会写  现在是别人写的 就是我们这个 要几百个灯 ...

方便的话提供一下电路和程序,才能判断怎么回事
ID:85435 发表于 2015-7-20 08:30
新手前来学习,目前想做一个光立方
ID:86203 发表于 2015-7-20 00:04
高手老师 我遇上一个难题了 我是做水下LED的 也有7彩 我是不会写  现在是别人写的 就是我们这个 要几百个灯同时上电,一定要同时变。现在就是遇上了不同步。当喷泉水泵一启动 就开始乱变了 叫这写程序的改下 他说只能这样 把我都气晕了     
ID:66287 发表于 2015-6-2 10:08
楼主真牛,实际上STC15f104w用途很大,我就用来代替过著名的555集成块
ID:70769 发表于 2014-12-21 04:50
很好,正需要
ID:65837 发表于 2014-10-9 16:07
楼主很行啊,不错,在玩中学习!!!
ID:64246 发表于 2014-9-5 13:22
还行挺经典的啊
ID:65234 发表于 2014-8-21 17:57
我喜欢
ID:58502 发表于 2014-8-15 23:32
本帖最后由 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,那样的话这玩意就变成舞台灯了
ID:2318 发表于 2014-8-15 12:23
太牛逼了,,楼主问一下这种灯叫什么名字到哪里有卖的呀?我也想亲手制作一个
ID:51024 发表于 2014-8-15 00:42
好久没有看到这么牛的制作了 非常好 非常详细  值得学习
ID:58502 发表于 2014-8-14 22:16
昨天受到启发,想吧程序改一下,想把七彩改为多彩,今天在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;
}
}

}
}
ID:65053 发表于 2014-8-14 11:36
很好很详细
ID:58502 发表于 2014-8-13 23:38
jiege 发表于 2014-8-13 23:25
太牛逼了,问一下 这个灯有几个引脚? 为什么可以发出七彩色呢?

这灯有4个引脚,一个共阳极,一个绿灯,一个蓝灯,一个红灯。分别接在P3.0,P3.1,P3.2,通过P3.0-P3.2输出000-111实现分别点亮一个灯(红,绿,蓝),同时点亮两个灯(红绿,红蓝,绿蓝)。同时点亮三个灯(红绿蓝),同时熄灭等八种状态。如果通过pwm改变3灯的亮度的话理论上是有无数种颜色的,要知道彩电就是通过这三基色来显示各种各样的颜色的
ID:51088 发表于 2014-8-13 23:25
太牛逼了,问一下 这个灯有几个引脚? 为什么可以发出七彩色呢?
ID:1 发表于 2014-8-13 23:23
很好的制作  谢谢分享

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表