欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

QQ登錄

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

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

51單片機(jī)LED PWM調(diào)光程序

[復(fù)制鏈接]
ID:137190 發(fā)表于 2016-9-9 23:34 | 顯示全部樓層 |閱讀模式
基于51單片機(jī)的對(duì)LEDPWM調(diào)光程序.zip (7.51 KB, 下載次數(shù): 66)

  1. 用STC12C5624AD寫(xiě)的PWM可調(diào)C程序
  2. //本程序用占空比可調(diào)節(jié)的PWM方波來(lái)控制大功率LED的亮度,PWM波占空比可從0到100
  3. // PWM 控制 LED 燈漸亮漸滅程序
  4. // 晶振為12M
  5. // 利用STC12C5624AD單片機(jī)的PWM功能產(chǎn)生占空比可變的 PWM 方波
  6. // 按K1,PWM值增加,則占空比減小,LED 燈漸暗。
  7. // 按K2,PWM值減小,則占空比增加,LED 燈漸亮。
  8. // 當(dāng)PWM值增加到最大值或減小到最小值時(shí),蜂鳴器將報(bào)警。
  9. //…..安徽師范大學(xué)物理與電子信息學(xué)院07級(jí)電子信息工程專業(yè)   曾祥…………..//
  10. #include<reg52.h>
  11. sfr CCON=0xD8;
  12. sfr CMOD=0xD9;
  13. sfr CL=0xE9;
  14. sfr CH=0xD8;
  15. sfr CCAP0L=0xEA;
  16. sfr CCAP0H=0xFA;
  17. sfr CCAPM0=0xDA;
  18. unsigned char PWM=0x7f;                           //PWM初值
  19. unsigned char flag=0;                                
  20. sbit K1 =P2^6 ;                    //增加鍵
  21. sbit K2 =P2^7 ;                                           //減少鍵
  22. sbit BEEP=P2^5;                                           //蜂鳴器
  23. sbit CR=0xDE;
  24. void Beep();
  25. void delayms(unsigned char ms);
  26. void delay(unsigned char t);
  27. void main(void)
  28. {
  29.   CMOD=0x02;                //PCA計(jì)數(shù)脈沖選擇為fos/2
  30.   CL=0x00;
  31.   CH=0x00;
  32.   CCAP0L=0xC0;
  33.   CCAP0H=PWM;
  34.   CCAPM0=0x42;
  35.   CR=1;
  36.   
  37.   while(1)
  38.   {
  39.   if(K1==1&&K2==1)
  40.    flag=0;
  41.   if(K1==0)
  42.         {
  43.                 delay(50);
  44.                if(K1==0&&flag==0)        
  45.                         {        
  46.                                 if(PWM<0xf5)
  47.                                 {  
  48.                                 CR=0;        PWM+=10; delayms(10); CR=1;
  49.                                  }
  50.                                   else
  51.                                   { PWM=0xff;Beep();}
  52.                                   flag=1;
  53.                     }
  54.      }
  55.     if(K2==0)
  56.          {
  57.                 delay(50);
  58.               if(K2==0&&flag==0)
  59.            {
  60.                  if(PWM>0x0a)
  61.               {
  62.                            CR=0;   PWM-=10 ;delayms(10); CR=1;  }
  63.                       else {PWM=0x00;Beep();}
  64.                           
  65.                     }
  66.                         flag=1;        
  67.       }

  68.      CCAP0H=PWM;
  69.     }
  70.   }

  71. /*********************************************************/
  72. //蜂鳴器子程序
  73. /*********************************************************/
  74. void Beep()     
  75. {
  76.       unsigned char i ;
  77.       for (i=0 ;i<100 ;i++)
  78.         {
  79.           delayms(3) ;
  80.          BEEP=0 ;                //Beep取反
  81.         }
  82.     BEEP=1 ;                            //關(guān)閉蜂鳴器
  83.     delayms(100);
  84. }
  85. /*********************************************************/
  86. // 延時(shí)子程序1
  87. /*********************************************************/
  88. void delay(unsigned char t)
  89. {
  90.     while(t--)   ;
  91. }
  92. /*********************************************************/
  93. // 延時(shí)子程序2
  94. /*********************************************************/
  95. void delayms(unsigned char ms)
  96. {
  97.     unsigned char i ;
  98.     while(ms--)
  99.      {
  100.         for(i = 0 ; i < 120 ; i++)         ;
  101.      }
  102. }

  103.   
復(fù)制代碼


相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:138282 發(fā)表于 2016-9-10 15:25 來(lái)自觸屏版 | 顯示全部樓層
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:139028 發(fā)表于 2016-9-11 07:39 | 顯示全部樓層
本帖最后由 lele4608 于 2016-9-11 08:48 編輯

能把當(dāng)前的分級(jí)值,用2位數(shù)碼管顯示出來(lái)嗎,不需要太多的分級(jí)?有其他可以替換的芯片嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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