-实际项目:按键控制大功率灯珠实现调光】
项目实际电路图:

程序:
/***********************************************************************/
/***名称:按键控制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,很多人在问我调光手电的原理,这就是调光手电的工作原理,和源程序!
|