久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 基于STC15W408AS的LED小臺燈 [打印本頁]

作者: 森森小公主    時間: 2018-9-7 21:16
標題: 基于STC15W408AS的LED小臺燈
電路為BUCK型,所有LED串電阻后并聯。
LED為5730的暖白與白色兩種,暖白6只,白色的4只。
電位器調節LED亮度,電位器的ADC值直接賦予PWM的比較值。
逆時針旋到底為關機狀態,此時單片機工作于掉電模式,用
掉電喚醒專用定時器喚醒,電流約5uA。
電位器順時針旋轉一定角度后,單片機工作于空閑模式,由T0定時
喚醒,單片機電流約3.7mA。
由于國LED比較刺眼,最后在LED上蒙了兩層衛生紙,用封口膠給粘上的。
燈與底座之間采用USB接口連接,這樣的好處是燈可以插到USB充電
器上單獨使用。
核心代碼:
        while(1)
        {
                POT_L;//使能電位器
                delayus(1);
                v=adc_read8(2);
                //CCAP1H=v;
                POT_H;//關閉電位器
                if((v<10)&&(CCAP1H<11))//關機
                {
                        CCAP1H=0;
                        CCAPM1=0;//關PWM
                        n++;
                        if(n>=5)//每5秒閃一次,便于夜間尋找
                        {
                                n=0;
                                IOCLR(P1,BIT(0));
                                IOSET(P1,BIT(0));
                        }               
                        PCON=0X02;//掉電
                        _nop_();
                        _nop_();               
                }
                else//不關機
                {               

                        CCAP1H=((U16)CCAP1H*9+v)/10;//亮度漸變
                        CCAPM1=BIT(6)|BIT(1);               
                        PCON=0x01;//空閑
                        _nop_();
                        _nop_();               
                }
        }


















--------------------------
11.1317:更新PCB,因為原PCB中LED模塊敷銅距離太近。
12.0922:
  程序中原PWM時鐘為FOSC/2,PWM頻率約22KHz,現已將PWM時鐘改為FOSC,PWM頻率約43KHz。
   電路中增加AP5056充電芯片,USB輸出增加1uf電容,如無此電容,電流會有較大鋸齒。





C7=1uf時,輸出串1歐取樣電阻測得的波形:

C7=10uf時,輸出串1歐取樣電阻測得的波形:


問: 這是BUCK電路電壓調光啊。不算PWM調光

答:
我的PWM占空比是跟隨電位器的,電位器不動,占空比就不變,怎么不算PWM調光?
LED通電后,它的電壓是基本不變的,特性類似于穩壓二極管。
所以當Q4導通時,電感上的電壓也基本不變,電流呈線性上升,所以占空比越大時,平均電流也越大。
所以LED的平均電流與PWM占空基本是呈線性的,應當稱之為“電流調光”

單片機源程序如下:
  1. /*--------------------------------------------------
  2. 電位器調節LED亮度
  3. 逆時針旋到底為關機狀態,此時單片機工作于掉電模式,用
  4. 掉電喚醒專用定時器喚醒,電流約5uA。
  5. 電位器旋轉一定角度后,單片機工作于空閑模式,由T0定時
  6. 喚醒,單片機電流約3.7mA

  7. //--------------------------------------------------*/
  8. #include <INTRINS.H>
  9. #include "STC15F2K60S2.H"
  10. #include "MAIN.H"
  11. #include "uart-15.C"
  12. #include "stcadc.c"
  13. //--------------------------------------------------
  14. //定義
  15. //--------------------------------------------------

  16. //最大PWM
  17. #define        MAXPWM        230
  18. //電位器使能
  19. #define POT_L        IOCLR(P1,BIT(1))
  20. #define POT_H        IOSET(P1,BIT(1))

  21. //--------------------------------------------------
  22. //毫秒級延時
  23. //--------------------------------------------------
  24. void delayms(U16 t)
  25. {
  26.         U16 i;
  27.         for(;t>0;t--)
  28.         for(i=FOSC/13186;i>0;i--);
  29. }
  30. //--------------------------------------------------
  31. //微秒級延時
  32. //--------------------------------------------------
  33. void delayus(U16 t)//72=200us
  34. {
  35.         while(t--);
  36. }

  37. //--------------------------------------------------
  38. //T0中斷:
  39. //每次+-1更新PWM值,處理啟動與停機
  40. //--------------------------------------------------
  41. void timer0_isr(void) interrupt 1
  42. {

  43. }
  44. //--------------------------------------------------
  45. //掉電喚醒定時器
  46. //t*488us
  47. //--------------------------------------------------
  48. void wkt_init(U16 t)
  49. {
  50.         WKTCL=t;
  51.         WKTCH=BIT(7)|(t>>8);

  52. }

  53. //--------------------------------------------------
  54. //PCA初始化
  55. //--------------------------------------------------
  56. void pca_init(void)
  57. {
  58.         CMOD=4<<1;//FOSC
  59.         //CMOD=1<<1;//FOSC/2
  60.         CCAPM1=BIT(6)|BIT(1);//8位PWM
  61.         CCAP1H=0X80;       
  62.         //P_SW1=0<<4;//切換CCP到P1
  63.         //P_SW1=1<<4;//切換CCP到P3
  64.         CR=1;
  65. }
  66. //--------------------------------------------------
  67. //T0初始化
  68. //--------------------------------------------------
  69. void timer0_init(U16 f)
  70. {
  71.         U16 v;
  72.         TMOD&=0xf0;
  73.         TMOD|=0X00;        //T0方式0,16位自動重裝
  74.         v=65536-(FOSC/12/f);
  75.         TH0=v>>8;
  76.         TL0=v;
  77.         ET0=1;
  78.         TR0=1;
  79. }
  80. //--------------------------------------------------
  81. //端口初始化
  82. //--------------------------------------------------
  83. void io_init(void)
  84. {
  85.         P0=0XFF;
  86.         P1=0XFF;
  87.         P2=0XFF;
  88.         P3=0XFF;
  89.         P1M1=BIT(2)|BIT(3)|BIT(4);//AD測電位器、充電電壓
  90.         //IOCLR(P1,BIT(1));//P1.1光纖接收使能
  91.         //P3M1=0xff;
  92.         //P2M1=BIT(5);
  93.         //M0,M1:00:準雙向口,01:推挽,10:僅輸入,11:開漏
  94.         //注意:5A60S2的M0,M1是相反的
  95. }

  96. //--------------------------------------------------
  97. //所有設置初始化
  98. //--------------------------------------------------
  99. void init_devices(void)
  100. {
  101.         io_init();
  102.         uart1_init(9600,1);//關中斷
  103.         timer0_init(20);
  104.         pca_init();
  105.         wkt_init(2000);
  106.         //cmp_init();
  107.         //uart2_init(1600,0);//19200/12=1600,關中斷
  108.         //IOSET(AUXR,BIT(2));//BRTx12,讓獨立波特率變為原來的12倍(uart2)
  109.         //uart3_init(2400,1);//2400
  110.         //IOSET(AUXR,BIT(7));//T0x12,讓T0的時鐘變為原來的12倍,波特率也提高了(模擬串口)
  111. //        IP=0X02;//優先級控制(T0為最高優先級):D4:PS,D3:PT1,D2:PX1,D1:PT0,D0:PX0,
  112.         EA=1;
  113. }


  114. //--------------------------------------------------
  115. //主函數
  116. //--------------------------------------------------
  117. void main(void)
  118. {
  119.         U8 v,n;
  120.         //S16 e;
  121.         init_devices();

  122.         while(1)
  123.         {
  124.                 POT_L;
  125.                 delayus(1);
  126.                 v=adc_read8(2);
  127.                 //CCAP1H=v;
  128.                 POT_H;
  129.                 if((v<10)&&(CCAP1H<11))//關機
  130.                 {
  131.                         CCAP1H=0;
  132.                         CCAPM1=0;
  133.                         n++;
  134.                         if(n>=5)//每5秒閃一次,便于夜間尋找
  135.                         {
  136.                                 n=0;
  137.                                 IOCLR(P1,BIT(0));
  138.                                 delayus(2);
  139.                                 IOSET(P1,BIT(0));
  140.                         }               
  141.                         PCON=0X02;//
  142.                         _nop_();
  143.                         _nop_();               
  144.                 }
  145.                 else//不關機
  146.                 {               
  147.                         //if(v>MAXPWM)v=MAXPWM;
  148.                         //CCAP1H=v;
  149.                         /*e=(U16)v-CCAP1H;
  150.                         if(e<-10)e=-10;
  151.                         if(e>10)e=10;
  152.                         CCAP1H+=e;*/
  153.                         CCAP1H=((U16)CCAP1H*9+v)/10;
  154.                         CCAPM1=BIT(6)|BIT(1);               
  155.                         PCON=0x01;
  156.                         _nop_();
  157.                         _nop_();               
  158.                 }
  159.         }
  160. ……………………

  161. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
1.1電路及程序.rar (958.86 KB, 下載次數: 123)
LED臺燈電路及程序.rar (935.5 KB, 下載次數: 131)




作者: caijinfa    時間: 2018-9-12 10:58
很好的程序,馬上下載來實驗下。
作者: 新佳影    時間: 2018-12-6 02:11
謝謝先,正找這個用電位器來調光的,但是電路中如果有增加一個電位器來調色溫就好
作者: 騰飛的龍    時間: 2019-3-30 16:46
g感謝分享學習啦!!!!
作者: rong2017    時間: 2019-5-17 20:54
感謝分享
作者: DanMg    時間: 2019-10-26 09:58
感謝分享
作者: 秋風涼    時間: 2019-11-3 12:30
這個程序的掉電時間  是怎么算的?
作者: 道洲    時間: 2019-11-13 16:46
感謝分享學習啦
作者: 道洲    時間: 2019-11-13 16:50
謝謝你,學習了
作者: xiexugang    時間: 2020-1-3 10:34
這個程序挺實用,下來試試.謝謝樓主分享
作者: zxule    時間: 2020-1-4 08:06
哇塞,樓主電路板怎么做的,怎么這么好,像工廠打樣的一樣
作者: YKD1121    時間: 2020-7-29 23:25
請問這個電位器 用多大阻值的 謝謝
作者: ty417502873    時間: 2020-8-3 03:05
這個PCB是用雕刻機雕的嗎?




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久大陆 | 精品一区二区三区不卡 | 99久久久久久99国产精品免 | 国产91视频免费 | 欧美性视频在线播放 | av毛片| 视频在线日韩 | 亚洲精品一区二区三区中文字幕 | 黄色三级免费 | 欧美电影一区 | 久久1区| 欧美日韩三级在线观看 | 国产日韩精品一区二区三区 | 毛片一级片 | 久久久久久久久精 | 毛片区| 欧美高清视频一区 | 亚洲欧美国产精品久久 | 免费在线观看毛片 | 日韩精品免费视频 | 日韩欧美视频免费在线观看 | 精品国产欧美一区二区三区成人 | 曰韩三级 | 亚洲+变态+欧美+另类+精品 | 在线免费看91 | 亚洲成人一区二区 | 欧美精品一区二区三区四区 在线 | 一区二区在线观看av | 亚洲福利| 一区二区三区国产好 | 久久久人成影片免费观看 | 久久精品久久久久久 | 久久久久亚洲 | 精品国产一区二区三区久久久久久 | 国产91亚洲精品 | 久久大香 | 剑来高清在线观看 | 中文字幕不卡在线88 | 欧美一区二区三区久久精品 | 爱爱免费视频网站 | 黄色av观看 |