标题: 全彩LED合集-4.大功率LED调光。PWM查询法,非中断。PT4115恒流IC。 [打印本页]

作者: jialinx    时间: 2015-9-15 22:06
标题: 全彩LED合集-4.大功率LED调光。PWM查询法,非中断。PT4115恒流IC。
-实际项目:按键控制大功率灯珠实现调光】
项目实际电路图:




               
程序:
/***********************************************************************/
/***名称:按键控制PWM对大功率LED灯调光    ******************************/
/***功能:按动按键可以实现9级调光,初始亮度为50%                       */
/*** 按键KEY1实现9级亮度调节,按动按键可以实现循环                     */
/***********************************************************************/
#include<reg51.h>
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
sbit LED  = P2^3;
sbit KEY1 = P2^0;
U8 j;
/*---------------------------------------------------------------------*/
/*--   显示子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void display()
{
        U8 i;
        for(i=255;i>0;i--)
                        LED=(j<i)?0x00:0xff;

}       
/*---------------------------------------------------------------------*/
/*--   按键子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void  in_key()
{
        if(KEY1==0)
        {
                while(~KEY1)
                {
                        display();
                }
                if(j<251)
                        j+=31;
                else
                        j=3;
        }
}
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
        LED=0X00;
        IT0 = 0;                        //set INT0 int type (1:Falling 0:Low level)
        EX0 = 1;                        //enable INT0 interrupt
        EA = 1;                         //open global interrupt switch
        j=127;                                                          //改变j的值就改变了占空比,初值50%
        while(1)
        {
                display();
                in_key();
        }
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

                                 我想问下,如果是用三个色的LED是不是要用三颗驱动芯片啊
回                         这个是驱动单色的3X1W(3颗1W串联)大功率LED灯珠调光的,有一个PT4115就是恒流IC,很多人在问我调光手电的原理,这就是调光手电的工作原理,和源程序!




作者: gemxie    时间: 2015-11-26 21:54
好的,可以用来控制RGB灯的吗??
作者: lxa0    时间: 2015-11-27 01:30
真没看懂是什么~~~~~~~~~~~~~~~




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1