久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機增加減少鍵控制PWM(脈沖寬度調制)來調整LED亮滅程度的項目工程

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 51黑電子會員 于 2020-4-18 15:25 編輯
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char//宏定義,用uchar表示unsigned char,叫無符號字符型數據類型,取值范圍為:0到255。
  4. #define uint unsigned int//宏定義,用uint表示unsigned int,叫無符號整數型數據類型,取值范圍為:0到65535。
  5. sbit k1=P1^0;
  6. sbit k2=P1^5;
  7. sbit led=P3^4;
  8. uchar count,pwm,flag;
  9.   void delay(uint z)//延時程序
  10. {
  11.    uint x,y;
  12.    for(x=z;x>0;x--)
  13.     for(y=110;y>0;y--);
  14.   }
  15.   void keyscan()//按鍵掃描函數
  16. {
  17.    if(k1==0)
  18. {
  19.     delay(5);
  20.     if(k1==0)
  21.   {
  22.      pwm++;
  23.      if(pwm>=20)
  24.      pwm=0;
  25.    }
  26.      while(!k1);
  27.     }
  28.    if(k2==0)
  29. {
  30.     delay(5);
  31.     if(k2==0)
  32.   {
  33.      if(pwm>0)
  34.      pwm--;
  35.      if(pwm<=0)
  36.      pwm=0;
  37.    }
  38.      while(!k2);
  39.     }
  40. }
  41.   void TimerInit()//定時器0初始化函數
  42. {
  43.    TMOD=0x01;//設定定時器0,工作模式為模式1。
  44.    TH0=(65536-50000)/256;//TH0裝初值
  45.    TL0=(65536-50000)%256;//TL0裝初值
  46. // TH1=0xfc;//TH1裝初值
  47. // TL1=0x66;//TL1裝初值
  48.    EA=1;//開啟定時器總中斷
  49.    ET0=1;//開啟定時器0中斷開關
  50.    TR0=1;//啟動定時器0
  51. // ET1=1;//開啟定時器1中斷開關
  52. // TR1=1;//啟動定時器1
  53. }
  54.   void timer0() interrupt 1//定時器0中斷函數
  55. {
  56.    TH0=(65536-50000)/256;//中斷定時50毫秒,表示高低電平占用周期50毫秒,也表示高低電平頻率(計算工式:F=1/T,其中F單位為赫茲,即Hz,而T單位為秒,即s。)為1/0.05s(由50毫秒除以1000求得0.05秒)=20Hz。
  57.    TL0=(65536-50000)%256;//
  58.    count++;
  59.    if(count>=20)//中斷次數變量達到20次,表示1秒(即中斷次數變量20次X中斷定時50毫秒)時間到 ,也表示高低電平占用周期1秒,另外表示高低電平頻率(計算工式:F=1/T,其中F單位為赫茲,即Hz,而T單位為秒,即s。)為1/1s=1Hz。
  60.   {
  61.     count=0;
  62.    }
  63.     if(count<pwm)
  64.   {
  65.      led=0;//led為低電平
  66.     }
  67.     else
  68.   {
  69.      led=1;//led為高電平
  70.     }
  71.   }
  72.   void main()//主函數
  73. {
  74.    TimerInit();
  75.    while(1)
  76. {
  77.     keyscan();//按鍵掃描函數  
  78.    }
  79. }
復制代碼





0.gif (1.87 MB, 下載次數: 41)

0.gif

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 2019天天操 | av网站观看| 伊人久久一区二区 | 欧美日韩一区二区三区四区 | 欧美精品片 | 国产精品一区三区 | 久久综合久久自在自线精品自 | 男人的天堂在线视频 | 国产精品国色综合久久 | 久久久久国产一区二区三区 | 国产精品日韩欧美一区二区三区 | 久久精品国产免费 | 国产一区精品在线 | av黄色片| 精品成人| 国产精品一区二区三区久久 | 国产成人精品a视频 | 欧美a在线观看 | 97超碰在线免费 | 一区二区视频免费观看 | 日韩欧美亚洲综合 | 亚洲高清视频一区 | 久久亚洲国产 | 日韩久久久久久 | 久久精品久久久 | 狠狠操狠狠干 | 黑人精品 | 欧美久久大片 | 亚洲视频在线播放 | 国产亚洲精品久久yy50 | 亚洲精品视频在线播放 | 欧美视频三区 | 玖玖精品视频 | 欧美韩一区二区三区 | 亚洲国产精品日本 | 黄一区二区三区 | 久久久久久高潮国产精品视 | 日韩午夜一区二区三区 | 天天色天天 | 免费亚洲成人 | 欧美日韩高清在线一区 |