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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7137|回復: 7
打印 上一主題 下一主題
收起左側

單片機PWM控制LED增減光實驗 Proteus仿真加源程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:175881 發表于 2017-3-29 23:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
用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://www.raoushi.com/bbs/dpj-79328-1.html

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



評分

參與人數 1黑幣 +5 收起 理由
90182sis + 5

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:224839 發表于 2017-8-4 21:53 | 只看該作者
謝謝樓主 好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:253425 發表于 2017-12-19 17:05 | 只看該作者
謝謝樓主
回復

使用道具 舉報

地板
ID:288202 發表于 2018-3-13 17:20 | 只看該作者
為什么我使用了你的程序,但是仿真的時候LED根本不會亮,雖然有脈沖,但是寬度也太小了,可能就是這個原因,LED不會亮~難過(ಥ﹏ಥ)
回復

使用道具 舉報

5#
ID:288202 發表于 2018-3-14 13:52 | 只看該作者
還有,程序第59行怎么感覺怪怪的,按鍵在一開始就讓它的值為1?什么情況?
回復

使用道具 舉報

6#
ID:102702 發表于 2018-3-15 20:16 | 只看該作者
這個能控制LED臺燈的嗎?電路要怎么改?
回復

使用道具 舉報

7#
ID:263507 發表于 2018-7-10 10:56 | 只看該作者
這個可以實現燈光可調的智能化
回復

使用道具 舉報

8#
ID:751420 發表于 2021-6-21 14:49 | 只看該作者
求教如何實現
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表