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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

學(xué)習(xí)燈 5亮度PWM調(diào)光燈 一個數(shù)碼管顯示檔位 單片機程序

  [復(fù)制鏈接]
ID:171111 發(fā)表于 2021-5-30 22:17 | 顯示全部樓層 |閱讀模式
前些天想做個PWM調(diào)光燈給大寶學(xué)習(xí)用 想著能在論壇里搜個現(xiàn)成的程序省點力氣 因為我也是個初學(xué)者 編代碼太費勁 結(jié)果沒找到合適的 無奈自己研究好幾天終于寫出來了 大神們別笑話我啊 哈哈 特意拿出來分享給大家 里面注釋很詳細(xì) 想要的拿去不用謝^_^
過兩天抽時間做出成品 到時再給大家分享圖片

單片機源程序如下:
  1. #include "reg52.h"

  2. sbit PWMOUT=P2^0;         //PWM輸出
  3. sbit Kjia=P3^0;             //按鍵 加
  4. sbit Kjian=P3^2;     //按鍵 減
  5. sbit K=P3^1;             //按鍵 開關(guān)機
  6. sbit ON_OFF=P2^7;    //開關(guān)機狀態(tài)指示燈

  7. sbit LSA=P2^2;                 //普中開發(fā)板定義右邊第一個數(shù)碼管
  8. sbit LSB=P2^3;
  9. sbit LSC=P2^4;

  10. bit kaiguan = 0;         //開關(guān)機狀態(tài)位
  11. unsigned int count=0,FLAG=0,stat;
  12. unsigned char cnt = 0;         // 檔位變量
  13. //延時函數(shù)
  14. void DELAY(unsigned int t)
  15. {
  16.         while(t--);
  17. }
  18. //定時器 T0 初始化
  19. void init_T0(void)
  20. {
  21.     EA=1;
  22.     ET0=1;
  23.     IP=0x02;
  24.         TMOD=0x01;
  25.     TL0=(65535-100)%256;
  26.     TH0=(65535-100)/256;
  27.     TR0=1;
  28. }
  29. //按鍵掃描
  30. void scan_key(void)
  31. {
  32.     if(K==0)
  33.     {
  34.         DELAY(10000);
  35.         if(K==0)
  36.         {
  37.                         kaiguan=~kaiguan;
  38.                         ON_OFF=~ON_OFF;
  39.                         if(ON_OFF==1)
  40.                         {        //開機動畫 HELLO
  41.                                 P0=0x76;                  //1  H
  42.                                 DELAY(50000);
  43.                                 P0=0x00;
  44.                                 DELAY(30000);
  45.                                 P0=0x79;                  //2  E
  46.                                 DELAY(50000);
  47.                                 P0=0x00;
  48.                                 DELAY(30000);          
  49.                                 P0=0x38;                  //3  L
  50.                                 DELAY(50000);
  51.                                 P0=0x00;
  52.                                 DELAY(30000);
  53.                                 P0=0x38;                  //4  L
  54.                                 DELAY(50000);
  55.                                 P0=0x00;
  56.                                 DELAY(30000);
  57.                                 P0=0x3f;                  //5  O
  58.                         }
  59.                         else
  60.                         {
  61.                                 P0=0x00;
  62.                         }
  63.                         while(!K);
  64.                 }
  65.     }
  66.         if(kaiguan==0)        // 關(guān)機
  67.         {
  68.                 cnt=0;
  69.                 TR0=0;
  70.         }
  71.         if(kaiguan==1) //開機
  72.         {
  73.                 if(Kjia==0)
  74.                 {
  75.                         DELAY(10000);
  76.                         if(Kjia==0)
  77.                         {
  78.                                 cnt=cnt+1;
  79.                                 if(cnt>=5)                //加到5后不變
  80.                                 {
  81.                                         cnt=5;
  82.                                 }
  83.                         }
  84.                 }
  85.                 if((Kjian==0)&&(cnt>1))
  86.                 {
  87.                         DELAY(10000);
  88.                         if(Kjian==0)
  89.                         {
  90.                                 cnt=cnt-1;                //減到1后不變
  91.                         }
  92.                 }                                                                                                                    
  93.         }
  94. // 檔位選擇
  95.         switch(cnt)
  96.         {
  97.                 case 0:
  98.                         TR0=0;PWMOUT=1;break;
  99.                 case 1:
  100.                         P0=0x06;TR0=1;FLAG=90;break;//FLAG = 90;亮度10%
  101.                 case 2:
  102.                         P0=0x5b;TR0=1;FLAG=70;break;
  103.                 case 3:
  104.                         P0=0x4f;TR0=1;FLAG=50;break;
  105.                 case 4:
  106.                         P0=0x66;TR0=1;FLAG=30;break;
  107.                 case 5:
  108.                         P0=0x6d;TR0=1;FLAG=10;break;//最亮
  109.         }                                  
  110. }
  111. //主函數(shù)
  112. void main()
  113. {
  114.         LSA=0;
  115.         LSB=0;
  116.         LSC=0;
  117.     init_T0();
  118.     PWMOUT=1;         //  開發(fā)板P2^0高電平 燈不亮 代表關(guān)機狀態(tài) 實際應(yīng)用改成 0
  119.         ON_OFF = 0;         //  關(guān)機
  120.         P0=0x00;
  121.         cnt=0;         
  122.     while(1)
  123.     {
  124.         scan_key();
  125.     }
  126. }
  127. // 定時器T0 中斷函數(shù)
  128. void timer0() interrupt 1
  129. {
  130.     TL0=(65535-100)%256;
  131.     TH0=(65535-100)/256;      
  132.     if(count==FLAG)
  133.     {
  134.         PWMOUT=0;
  135.     }
  136.     count++;
  137.     if(count==100)
  138.     {   
  139.             count=0;
  140.         if(FLAG==0)
  141.         PWMOUT=0;
  142.         else
  143.         PWMOUT=1;
  144.     }
  145. }
復(fù)制代碼

以上代碼Keil工程51hei下載:
學(xué)習(xí)燈.rar (27.49 KB, 下載次數(shù): 59)

評分

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

查看全部評分

回復(fù)

使用道具 舉報

ID:820198 發(fā)表于 2021-5-31 09:00 | 顯示全部樓層
坐等成品學(xué)習(xí)
回復(fù)

使用道具 舉報

ID:171111 發(fā)表于 2021-6-7 20:45 來自觸屏版 | 顯示全部樓層
燈還沒做 用這個程序給大寶做了個3檔調(diào)速小風(fēng)扇 呵呵
回復(fù)

使用道具 舉報

ID:229641 發(fā)表于 2021-6-7 23:29 來自觸屏版 | 顯示全部樓層
xuwei517 發(fā)表于 2021-6-7 20:45
燈還沒做 用這個程序給大寶做了個3檔調(diào)速小風(fēng)扇 呵呵

有電路圖嗎?
回復(fù)

使用道具 舉報

ID:939154 發(fā)表于 2021-6-25 15:00 | 顯示全部樓層
有原理圖嗎
回復(fù)

使用道具 舉報

ID:601544 發(fā)表于 2021-7-3 08:40 來自觸屏版 | 顯示全部樓層
不錯,能有原理圖就更好了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91视频中文| 日韩网 | 久久综合九九 | 国产成人精品视频在线观看 | www.日韩 | 久久精品视频在线观看 | 亚州国产| 成人在线免费 | 99re6在线视频 | 综合色播 | 国产一级特黄aaa大片评分 | 欧美色综合网 | 九九久久久 | 国产做爰| 国产成人精品免高潮在线观看 | 免费看欧美一级片 | 91电影 | 一级黄色片在线看 | 久久久久久久一区二区三区 | 亚洲精品一区二区三区四区高清 | 91综合网 | 一区二区三区四区毛片 | 91一区| 一级片免费视频 | 欧美激情在线播放 | 毛片一区二区 | 视频一区在线 | 色综合99| 日韩在线免费视频 | 欧美成人精品二区三区99精品 | 国产高清精品在线 | 91在线免费视频 | 免费久久网| 久久99精品久久久久久 | 国产高清视频在线 | 伊人亚洲 | 国产精品欧美一区二区 | 久久久精品一区 | 欧美日韩免费一区二区三区 | 日韩精品一区二区三区在线观看 | 九九久久久久久 |