找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 8155|回復(fù): 5
收起左側(cè)

怎么用51單片機(jī)控制RGB燈珠

[復(fù)制鏈接]
ID:81230 發(fā)表于 2015-10-29 12:40 | 顯示全部樓層 |閱讀模式
      怎么用51單片機(jī)控制RGB燈珠,誰哪里有教程,另外我看有些人用PWM編寫程序,怎么用PWM???求大神指導(dǎo)。。
回復(fù)

使用道具 舉報(bào)

ID:87738 發(fā)表于 2015-10-29 22:30 | 顯示全部樓層
網(wǎng)上搜調(diào)光程序,自己改一下就行了
回復(fù)

使用道具 舉報(bào)

ID:93852 發(fā)表于 2015-10-30 13:07 | 顯示全部樓層
還沒學(xué)行,就學(xué)跑

PWM就不要想了

回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2015-10-30 13:40 | 顯示全部樓層
回復(fù)

使用道具 舉報(bào)

ID:884588 發(fā)表于 2021-2-25 18:11 | 顯示全部樓層
實(shí)在不行你用延時(shí)程序來做占空比:定義一個(gè)時(shí)間減去某個(gè)變量或數(shù)字例如:Delay(500-i);
回復(fù)

使用道具 舉報(bào)

ID:143767 發(fā)表于 2021-3-9 15:48 | 顯示全部樓層
//用這個(gè)試試

void timer(uint t)
{
uint n;
for(n=0;n<t;n++)
{
while(RC5==0)


num=5;   


}
}

//程序代碼如下:
#include<pic.h>
__CONFIG(0X1B4);
#define uchar unsigned char
#define uint unsigned int
unsigned char a;
unsigned char g,r,b,p,num;


void delay(uint x)
{
uint c,d;
for(c=x;c>0;c--)
   for(d=110;d>0;d--);


}


void timer(uint t)
{
uint n;
for(n=0;n<t;n++)
{
while(RC5==0)


num=5;   


}
}
void LED0_ON()
{
RC0=0;
RC1=0;
RC2=0;
RC3=0;
}


void LED1_ON()
{
RC0=0;
RC1=1;
RC2=0;
RC3=0;
}


void LED2_ON()
{
RC0=0;
RC1=0;
RC2=1;
RC3=0;
}


void LED3_ON()
{
RC0=0;
RC1=0;
RC2=0;
RC3=1;
}


void LED4_ON()//此漸變函數(shù)是無意中在網(wǎng)上發(fā)現(xiàn)的
{  
    RC3=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!=240)
{
g=200;
r=0;
b=0;
}
   for(a=0;a<10;a++)
{
if(g!=0)
{
RC0=0;
timer(g);
RC0=1;
}
if(r!=0)
{
RC1=0;
timer(r);
RC1=1;
}
if(b!=0)
{
RC2=0;
timer(b);
RC2=1;
}
  }
}


void LED5_ON()
{
RC0=1;
RC1=1;
RC2=1;
RC3=1;
}
void init()
{
    TRISA=0b11111111;
    TRISC=0b11100000;
    ANSEL=0X00;//把RC1,RC2,RC3設(shè)置為普通I/O 或者中斷輸入,模擬輸入時(shí)候ANSEL=0XFF
    CMCON=0X07;//比較器禁止
    RC4=0;
    RC3=0;
    RC0=0;
    RC1=0;
    RC2=0;

    g=240;r=0;b=0;
}


void scan()
{


while(!RC5)
{
delay(5);
p++;
}
if(p>10)
{
p=0;
num++;
if(num>5)num=0;
}

void main()
{

    init();
while(1)
{
       scan();


       switch(num)
       {
case 0:LED0_ON();break;
case 1:LED1_ON();break;
case 2:LED2_ON();break;
case 3:LED3_ON();break;
case 4:LED4_ON();break;
                case 5:LED5_ON();break;

}


    }
}

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表