找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4448|回复: 2
收起左侧

一键单片机调LED色温+灯开关 源程序

[复制链接]
ID:140489 发表于 2018-7-11 12:22 | 显示全部楼层 |阅读模式
完整源程序如下:
  1. /***********************************************************************/
  2. /***硬件:LED1用3000K色温,LED2用6000K色温,LED1、2同时亮就是正白          **/
  3. /***功能:开关短按开关灯,长按切换色温,正白----亮白----暖白  如此循环 */
  4. /***           开灯时保持前次亮灯时的色温                                                                */
  5. /*** STC89C52  @ 12MHz                                                 */
  6. /***********************************************************************/
  7. #include<reg52.h>
  8. typedef unsigned char U8;
  9. typedef unsigned int  U16;
  10. /*---------------------------------------------------------------------*/
  11. /*--   端口定义                 ---------------------------------------*/
  12. /*---------------------------------------------------------------------*/

  13. sbit led1 = P1^0;         //定义LED端口,灌电流,低电平点亮
  14. sbit led2 = P1^1;
  15. sbit KEY1 = P3^0;
  16. /*----------按键扫描--------------------*/
  17. void keyscan()
  18. {
  19.         static        U16 x;        //消抖延时变量
  20.         U8 temp1,temp2;
  21.         U8 knum,knuml;
  22.         if(KEY1==0)         //
  23.         {       
  24.                
  25.                 x++;                        //按键消抖
  26.                 if(x>50000)                //长按切换色温
  27.                 {       
  28.                 //        x=0;
  29.                         knum=2;
  30.                         knuml++;
  31.                         if(knuml==3)
  32.                                 knuml=0;
  33.                         if(knum==2)
  34.                         {
  35.                                 switch(knuml)
  36.                                 {
  37.                                         case 0: led1=0; led2=0; temp1=led1;        temp2=led2;  break;        //正白
  38.                                         case 1: led1=1; led2=0; temp1=led1;        temp2=led2;  break;        //亮白
  39.                                         case 2: led1=0; led2=1; temp1=led1;        temp2=led2;  break;        //暖白
  40.                                         default: break;
  41.                                 }
  42.                         }
  43.                         x=30000;        //这里X的值越大,切换速度越快
  44.                 }
  45.         }
  46.         else
  47.         {
  48.                 if(x>1000 && x<50000) //短按 开关灯
  49.                 {
  50.                         x=0;
  51.                         knum++;
  52.                         if(knum==3)
  53.                                 knum=0;       
  54.                        
  55.                         if(knum==1 )
  56.                         {
  57.                                 led1=1;                  //关灯
  58.                                 led2=1;                  //关灯
  59.                         }
  60.                         else if(knum==2 )
  61.                         {
  62.                                 knum=0;
  63.                                 led1=temp1;           //开灯,并保持关灯前的色温
  64.                                 led2=temp2;           //开灯,并保持关灯前的色温
  65.                         }
  66.                 }
  67.         }
  68. }

  69. /*---------------------------------------------------------------------*/
  70. /*--   主程序                   ---------------------------------------*/
  71. /*---------------------------------------------------------------------*/
  72. void main()
  73. {
  74.         led1=0;
  75.         led2=0;                                                          //
  76.         while(1)
  77.         {
  78.                 keyscan();
  79.         }
  80. }
  81. /*---------------------------------------------------------------------*/
  82. /*--   程序结束                 ---------------------------------------*/
  83. /*---------------------------------------------------------------------*/
复制代码



QQ截图20180711121915.jpg

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:369538 发表于 2018-7-11 15:55 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

ID:759725 发表于 2020-5-24 11:35 | 显示全部楼层
楼主你好能私发下高清点的原理给我吗,多谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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