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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1886|回復: 0
收起左側

通過PWM(脈寬調制)調節LED的亮度單片機源碼

[復制鏈接]
ID:315374 發表于 2018-4-24 15:12 | 顯示全部樓層 |閱讀模式
通過PWM(脈寬調制)調節LED的亮度
------------------------------------------------*/

單片機源碼:
  1. #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
  2. sbit LED0=P1^0;// 用sbit 關鍵字 定義 LED到P1.0端口,LED是自己任意定義且容易記憶的符號

  3. void Delay(unsigned int t); //函數聲明
  4. /*------------------------------------------------
  5.                     主函數
  6. ------------------------------------------------*/
  7. void main (void)
  8. {
  9.                   
  10. unsigned int CYCLE=600,PWM_LOW=0;//定義周期并賦值
  11. while (1)         //主循環
  12.   {
  13. LED0=1;
  14. Delay(60000);        //特意加延時,可以看到熄滅的過程
  15. for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++){ //PWM_LOW表示低
  16. //電平時間,這個循環中低電平時長從1累加到CYCLE(周期)的值,即600次
  17.      LED0=0;        //點亮LED  
  18.      Delay(PWM_LOW);//延時長度,600次循環中從1加至599
  19.      LED0=1;        //熄滅LED
  20.        Delay(CYCLE-PWM_LOW);//延時長度,600次循環中從599減至1
  21.      
  22.    }
  23. LED0=0;
  24. for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){ //與逐漸變亮相反的過程
  25.      LED0=0;
  26.      Delay(PWM_LOW);
  27.      LED0=1;
  28.        Delay(CYCLE-PWM_LOW);
  29.      
  30.    }
  31.                      //主循環中添加其他需要一直工作的程序
  32.   }
  33. }
  34. /*------------------------------------------------
  35. 延時函數,含有輸入參數 unsigned int t,無返回值
  36. unsigned int 是定義無符號整形變量,其值的范圍是
  37. 0~65535
  38. ------------------------------------------------*/
  39. void Delay(unsigned int t)
  40. {
  41. while(--t);
  42. }
復制代碼


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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