标题:
一键单片机调LED色温+灯开关 源程序
[打印本页]
作者:
lids
时间:
2018-7-11 12:22
标题:
一键单片机调LED色温+灯开关 源程序
完整源程序如下:
/***********************************************************************/
/***硬件:LED1用3000K色温,LED2用6000K色温,LED1、2同时亮就是正白 **/
/***功能:开关短按开关灯,长按切换色温,正白----亮白----暖白 如此循环 */
/*** 开灯时保持前次亮灯时的色温 */
/*** STC89C52 @ 12MHz */
/***********************************************************************/
#include<reg52.h>
typedef unsigned char U8;
typedef unsigned int U16;
/*---------------------------------------------------------------------*/
/*-- 端口定义 ---------------------------------------*/
/*---------------------------------------------------------------------*/
sbit led1 = P1^0; //定义LED端口,灌电流,低电平点亮
sbit led2 = P1^1;
sbit KEY1 = P3^0;
/*----------按键扫描--------------------*/
void keyscan()
{
static U16 x; //消抖延时变量
U8 temp1,temp2;
U8 knum,knuml;
if(KEY1==0) //
{
x++; //按键消抖
if(x>50000) //长按切换色温
{
// x=0;
knum=2;
knuml++;
if(knuml==3)
knuml=0;
if(knum==2)
{
switch(knuml)
{
case 0: led1=0; led2=0; temp1=led1; temp2=led2; break; //正白
case 1: led1=1; led2=0; temp1=led1; temp2=led2; break; //亮白
case 2: led1=0; led2=1; temp1=led1; temp2=led2; break; //暖白
default: break;
}
}
x=30000; //这里X的值越大,切换速度越快
}
}
else
{
if(x>1000 && x<50000) //短按 开关灯
{
x=0;
knum++;
if(knum==3)
knum=0;
if(knum==1 )
{
led1=1; //关灯
led2=1; //关灯
}
else if(knum==2 )
{
knum=0;
led1=temp1; //开灯,并保持关灯前的色温
led2=temp2; //开灯,并保持关灯前的色温
}
}
}
}
/*---------------------------------------------------------------------*/
/*-- 主程序 ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
led1=0;
led2=0; //
while(1)
{
keyscan();
}
}
/*---------------------------------------------------------------------*/
/*-- 程序结束 ---------------------------------------*/
/*---------------------------------------------------------------------*/
复制代码
QQ截图20180711121915.jpg
(55.49 KB, 下载次数: 85)
下载附件
2018-7-11 12:21 上传
作者:
哈1哈2
时间:
2018-7-11 15:55
谢谢楼主
作者:
qzyhlf
时间:
2025-4-26 10:05
楼主你好能发下高清点的原理给我吗,多谢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1