找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 7658|回復(fù): 4
收起左側(cè)

單片機(jī)一鍵PWM調(diào)光+開(kāi)關(guān)源程序

  [復(fù)制鏈接]
ID:140489 發(fā)表于 2018-6-29 09:23 | 顯示全部樓層 |閱讀模式
頻率370Hz,用手機(jī)攝像頭看,沒(méi)有頻閃
仿真LED會(huì)閃爍,主要看波形;實(shí)物不會(huì)閃爍,很穩(wěn)定;代碼簡(jiǎn)短
QQ截圖20180629091959.jpg
有完整代碼如下
  1. /***********************************************************************/
  2. /***功能:按鍵控制PWM對(duì)LED燈調(diào)光,短按開(kāi)關(guān),長(zhǎng)按調(diào)光 亮---暗 ----亮 循環(huán) ***********/
  3. /***改變j的值就改變了占空比,初值50%      */

  4. /*** STC89C52  @ 12MHz                    */
  5. /***********************************************************************/
  6. #include<reg52.h>
  7. typedef unsigned char U8;
  8. typedef unsigned int  U16;
  9. /*---------------------------------------------------------------------*/
  10. /*--   端口定義                 ---------------------------------------*/
  11. /*---------------------------------------------------------------------*/
  12. #define PORT_1 P1
  13. sbit KEY1 = P3^0;
  14. U8 j,knum,temp=127;        

  15. /*----------按鍵掃描--------------------*/
  16. void keyscan()
  17. {
  18.         static        U16 x;        //消抖延時(shí)變量
  19.         
  20.         if(KEY1==0)         //
  21.         {
  22.                 x++;        //按鍵消抖
  23.                 if(x>500)                //長(zhǎng)按亮度調(diào)節(jié)
  24.                 {        knum=0;
  25.                         
  26.                         if(knum==0)
  27.                         {
  28.                                 if(j<251)
  29.                                         j+=5;
  30.                                 else
  31.                                         j=3;        //寫(xiě)j=3;加到最大亮度后回到最小亮度,又開(kāi)始加,如此循環(huán)
  32.                                 temp=j;
  33.                         }
  34.                         x=450;
  35.                 }
  36.                
  37.         }
  38.         else
  39.         {
  40.                 if(x>50 && x<500) //短按 開(kāi)關(guān)燈
  41.                 {
  42.                         x=0;
  43.                         if(knum==1)
  44.                         {
  45.                                 if(j>3)
  46.                                 { j=0;}             //關(guān)燈
  47.                                 else j=temp;        //開(kāi)燈,保持前次設(shè)置的亮度
  48.                         }
  49.                         knum ++;
  50.                         if(knum>1)
  51.                                 knum=1;
  52.                 }
  53.         }

  54. }

  55. /*---------------------------------------------------------------------*/
  56. /*--   主程序                   ---------------------------------------*/
  57. /*---------------------------------------------------------------------*/
  58. void main()
  59. {
  60.         U8 i;
  61.         PORT_1=0Xff;
  62.         j=127;                                                          //改變j的值就改變了占空比,初值50%
  63.         while(1)
  64.         {
  65.                 for(i=255;i>0;i--)
  66.                 //        PORT_1=(j<i)?0x00:0xff;           //三目運(yùn)算  這句用在拉電流
  67.                         PORT_1=(j<i)?0xff:0x00;           //這句用在灌電流
  68.                 keyscan();

  69.         }
  70. }
  71. /*---------------------------------------------------------------------*/
  72. /*--   程序結(jié)束                 ---------------------------------------*/
  73. /*---------------------------------------------------------------------*/
復(fù)制代碼

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:386381 發(fā)表于 2018-8-20 11:54 來(lái)自觸屏版 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:388099 發(fā)表于 2018-8-20 14:11 | 顯示全部樓層
實(shí)用資料,謝謝。
回復(fù)

使用道具 舉報(bào)

ID:407566 發(fā)表于 2018-11-27 16:27 | 顯示全部樓層
那接線是只接按鍵嘛,那燈怎么接
回復(fù)

使用道具 舉報(bào)

ID:140183 發(fā)表于 2021-5-9 07:21 | 顯示全部樓層
過(guò)過(guò)過(guò)兒 發(fā)表于 2018-11-27 16:27
那接線是只接按鍵嘛,那燈怎么接

P1接燈
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表