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

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

QQ登錄

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

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

基于51單片機(jī)增加減少鍵控制PWM(脈沖寬度調(diào)制)來(lái)調(diào)整LED亮滅程度的項(xiàng)目工程

[復(fù)制鏈接]
ID:171036 發(fā)表于 2020-4-18 11:47 | 顯示全部樓層 |閱讀模式
本帖最后由 51黑電子會(huì)員 于 2020-4-18 15:25 編輯
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char//宏定義,用uchar表示unsigned char,叫無(wú)符號(hào)字符型數(shù)據(jù)類型,取值范圍為:0到255。
  4. #define uint unsigned int//宏定義,用uint表示unsigned int,叫無(wú)符號(hào)整數(shù)型數(shù)據(jù)類型,取值范圍為: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)//延時(shí)程序
  10. {
  11.    uint x,y;
  12.    for(x=z;x>0;x--)
  13.     for(y=110;y>0;y--);
  14.   }
  15.   void keyscan()//按鍵掃描函數(shù)
  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()//定時(shí)器0初始化函數(shù)
  42. {
  43.    TMOD=0x01;//設(shè)定定時(shí)器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;//開(kāi)啟定時(shí)器總中斷
  49.    ET0=1;//開(kāi)啟定時(shí)器0中斷開(kāi)關(guān)
  50.    TR0=1;//啟動(dòng)定時(shí)器0
  51. // ET1=1;//開(kāi)啟定時(shí)器1中斷開(kāi)關(guān)
  52. // TR1=1;//啟動(dòng)定時(shí)器1
  53. }
  54.   void timer0() interrupt 1//定時(shí)器0中斷函數(shù)
  55. {
  56.    TH0=(65536-50000)/256;//中斷定時(shí)50毫秒,表示高低電平占用周期50毫秒,也表示高低電平頻率(計(jì)算工式: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)//中斷次數(shù)變量達(dá)到20次,表示1秒(即中斷次數(shù)變量20次X中斷定時(shí)50毫秒)時(shí)間到 ,也表示高低電平占用周期1秒,另外表示高低電平頻率(計(jì)算工式: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()//主函數(shù)
  73. {
  74.    TimerInit();
  75.    while(1)
  76. {
  77.     keyscan();//按鍵掃描函數(shù)  
  78.    }
  79. }
復(fù)制代碼
圖片1000.png
圖片3.png



0.gif

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

無(wú)效樓層,該帖已經(jīng)被刪除

本版積分規(guī)則

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

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

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