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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

學習燈 5亮度PWM調光燈 一個數碼管顯示檔位 單片機程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:171111 發表于 2021-5-30 22:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
前些天想做個PWM調光燈給大寶學習用 想著能在論壇里搜個現成的程序省點力氣 因為我也是個初學者 編代碼太費勁 結果沒找到合適的 無奈自己研究好幾天終于寫出來了 大神們別笑話我啊 哈哈 特意拿出來分享給大家 里面注釋很詳細 想要的拿去不用謝^_^
過兩天抽時間做出成品 到時再給大家分享圖片

單片機源程序如下:
  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;             //按鍵 開關機
  6. sbit ON_OFF=P2^7;    //開關機狀態指示燈

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

  10. bit kaiguan = 0;         //開關機狀態位
  11. unsigned int count=0,FLAG=0,stat;
  12. unsigned char cnt = 0;         // 檔位變量
  13. //延時函數
  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)        // 關機
  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. //主函數
  112. void main()
  113. {
  114.         LSA=0;
  115.         LSB=0;
  116.         LSC=0;
  117.     init_T0();
  118.     PWMOUT=1;         //  開發板P2^0高電平 燈不亮 代表關機狀態 實際應用改成 0
  119.         ON_OFF = 0;         //  關機
  120.         P0=0x00;
  121.         cnt=0;         
  122.     while(1)
  123.     {
  124.         scan_key();
  125.     }
  126. }
  127. // 定時器T0 中斷函數
  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. }
復制代碼

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

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:820198 發表于 2021-5-31 09:00 | 只看該作者
坐等成品學習
回復

使用道具 舉報

板凳
ID:171111 發表于 2021-6-7 20:45 來自手機 | 只看該作者
燈還沒做 用這個程序給大寶做了個3檔調速小風扇 呵呵
回復

使用道具 舉報

地板
ID:229641 發表于 2021-6-7 23:29 來自手機 | 只看該作者
xuwei517 發表于 2021-6-7 20:45
燈還沒做 用這個程序給大寶做了個3檔調速小風扇 呵呵

有電路圖嗎?
回復

使用道具 舉報

5#
ID:939154 發表于 2021-6-25 15:00 | 只看該作者
有原理圖嗎
回復

使用道具 舉報

6#
ID:601544 發表于 2021-7-3 08:40 來自手機 | 只看該作者
不錯,能有原理圖就更好了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美激情在线一区二区三区 | 欧美日一区 | 又爽又黄axxx片免费观看 | jlzzjlzz国产精品久久 | 亚洲一区 | 免费污视频| 国产在线中文字幕 | ririsao久久精品一区 | 欧美一区精品 | 亚洲视频免费观看 | 亚洲精品一区二区久 | 三级黄视频在线观看 | 欧美日韩国产传媒 | 精品久久久久久久 | 久久偷人| 男女羞羞网站 | 亚洲一区二区在线 | 久久成人av电影 | 天天看逼 | 亚洲毛片 | 日韩精品久久一区二区三区 | a级免费黄色片 | 欧洲一级黄 | 精品一区二区三区在线观看国产 | 成人毛片视频在线播放 | 9久9久| 一区二区三区视频在线 | 国产精品中文 | 91国产视频在线观看 | 91一区二区三区在线观看 | 91精品国产综合久久久久久首页 | 成人福利在线观看 | 亚洲国产精品久久久久秋霞不卡 | 国产高清精品网站 | 国内精品伊人久久久久网站 | 国产成人叼嘿视频在线观看 | 热re99久久精品国产99热 | 久久视频精品 | 三级av在线 | 亚洲一区精品在线 | 免费一区二区三区 |