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

標題: 單片機PWM控制LED增減光實驗 Proteus仿真加源程序 [打印本頁]

作者: 51黑電子happy    時間: 2017-3-29 23:26
標題: 單片機PWM控制LED增減光實驗 Proteus仿真加源程序
用51單片機的PWM控制實現LED增減光的仿真原理圖(proteus工程文件可到本帖附件下載):


51單片機源程序:
  1. //---------------------------------------------------------------------
  2. //程序名:PWM7-2.c
  3. //程序功能:PWM控制LED增減光。
  4. //---------------------------------------------------------------------
  5. #include <reg51.h>
  6. sbit OUT=P2^7;                                 //PWM輸出
  7. sbit INC=P2^0;                                 //增加亮度按鈕K1接口
  8. sbit DEC=P2^1;                                 //減小亮度按鈕K2接口

  9. //--------------------------- 定時器0中斷函數 ------------------------
  10. //頻率
  11. void Timer0(void) interrupt 1                  //定時器0中斷
  12.   {
  13.      OUT=1;                                     //關LED
  14.      TL0=0;
  15.      TR1=1;                                     //打開脈寬定時
  16.   }

  17. //-------------------------- 定時器1中斷函數 -------------------------

  18. //脈寬
  19. void Timer1(void) interrupt 3                  //定時器1中斷
  20.   {
  21.      OUT=~OUT;                                  //開LED
  22.      TR1=0;                                     //脈寬調節結束
  23.   }   

  24. //--------------------------- 消抖延時函數 ----------------------------

  25. delay()
  26. {
  27.   unsigned int i;
  28.   for(i=0;i<2000;i++);
  29. }
  30. //---------------------------- 定時器設置函數 ---------------------------
  31. INIT_TIMER()
  32.    {
  33.      TMOD=0x22;                                  //設置T1、T0為模式2方式,自動重裝
  34.      TH1=0;                                      //脈寬寬度
  35.      TL1=0;
  36.      TH0=0;                                      //頻率調節=0頻率最低
  37.      TL0=0;   
  38.      TR0=1;                                      //啟動T0定時
  39.      EA=1;                                       //允許總中斷
  40.      ET1=1;                                      //允許定時器1中斷
  41.      ET0=1;                                      //允許定時器0中斷
  42.    }

  43. //------------------------------- 主函數 -------------------------------

  44. main()
  45. {
  46.    
  47.    INIT_TIMER();

  48. // 無限循環       
  49.         while(1)
  50.      {
  51.        INC=1;DEC=1;
  52.        if (INC==0)
  53.           { delay();
  54.            if (INC==0)  
  55.                {
  56.                 if (TH1<240) TH1++;
  57.                }
  58.           }
  59.        else if (DEC==0)
  60.           { delay();
  61.            if (DEC==0)  
  62.                {
  63.                 if (TH1>0) TH1--;
  64.                }
  65.           }

復制代碼




該系列源碼包含有很多非常經典,代碼風格十分規范,而且注釋詳細的單片機例程,還帶仿真,對于MCU學習特別是初學者是很有幫助的,全部源碼下載(共25個項目):http://m.raoushi.com/bbs/dpj-79328-1.html

本例程下載(含proteus仿真工程文件與源碼):
7-2單片機PWM控制LED增減光實驗.rar (31.54 KB, 下載次數: 148)




作者: aa1209459220    時間: 2017-8-4 21:53
謝謝樓主 好資料,51黑有你更精彩!!!

作者: 飲冰人    時間: 2017-12-19 17:05
謝謝樓主
作者: 小白帆    時間: 2018-3-13 17:20
為什么我使用了你的程序,但是仿真的時候LED根本不會亮,雖然有脈沖,但是寬度也太小了,可能就是這個原因,LED不會亮~難過(ಥ﹏ಥ)
作者: 小白帆    時間: 2018-3-14 13:52
還有,程序第59行怎么感覺怪怪的,按鍵在一開始就讓它的值為1?什么情況?
作者: raymondau    時間: 2018-3-15 20:16
這個能控制LED臺燈的嗎?電路要怎么改?
作者: llly    時間: 2018-7-10 10:56
這個可以實現燈光可調的智能化
作者: lsjet    時間: 2021-6-21 14:49
求教如何實現




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1