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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

占空比,頻率可調PWM波發生器程序

[復制鏈接]
跳轉到指定樓層
樓主
占空比和頻率都可調的兩對互補的pwm波,其中由四個按鈕來分別控制占空比和頻率的加減

  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4.   uint shiwan,wan,qian,bai,shi,ge;
  5. //uint D[]={shiwan,wan,qian,bai,shi,ge};
  6. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80}; //共陰極數碼管段碼表
  7. //uchar code wei[]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
  8. uint a, b,f=500;
  9.         sbit P1_0=P1^0;
  10.         sbit P1_1=P1^1;
  11.         sbit SegSel=P2^6;                                                        //段選
  12.     sbit BitSel=P2^7;
  13.         sbit P3_6=P3^6;
  14.         sbit P3_7=P3^7;
  15.         void delay_ms(uint x)
  16. {
  17.         uint i,j;
  18.         for(i=x;i>0;i--)
  19.         for(j=240;j>0;j--)
  20.         ;
  21. }
  22. /*void show()
  23. {
  24.         uint i;
  25.         for(i=0;i<6;i++)
  26.         {
  27.                 BitSel=1;P0=wei[i];BitSel=0;SegSel=1;P0=table[D[i]];SegSel=0;delay_ms(1);
  28.         }
  29. }  */
  30. void display(uint a,uint b,uint c,uint d,uint e,uint f) //數碼管顯示函數
  31.          {
  32.          P2=0xfe;
  33.          P0=table[f];
  34.          delay_ms(2);
  35.          P2=0xfd;
  36.          P0=table[e];
  37.          delay_ms(2);
  38.          P2=0xfb;
  39.          P0=table[d];
  40.          delay_ms(2);
  41.          P2=0xf7;
  42.          P0=table[c];
  43.          delay_ms(2);
  44.          P2=0xef;
  45.          P0=table[b];
  46.          delay_ms(2);
  47.          P2=0xdf;
  48.          P0=table[a];
  49.          delay_ms(2);
  50.          }
  51.     //------------------------------------------
  52.     void main()
  53.     {
  54.              TMOD = 0x01;                 //T0定時方式1
  55.              TH0 = (65536-100000/f) / 256;   //50ms@12MHz
  56.              TL0 = (65536-100000/f) % 256;
  57.              TR0 = 1;

  58.              ET0 = 1;
  59.              EX0 = 1; EX1 = 1;
  60.              IT0 = 1; IT1 = 1;
  61.              EA = 1;

  62.              a = 0;
  63.              b = 5;
  64.                          if(P3_6==1)
  65.                          f=f-500;
  66.                         
  67.                          if(P3_7==1)
  68.                          f=f+500;
  69.                          if(f<500)
  70.                          f=500;
  71.                          if(f>9500)
  72.                      f=9500;
  73.                          shiwan=b/10;
  74.                          wan=table[9];
  75.                          qian=b%10;
  76.                          bai=f/1000;
  77.                          shi=table[9];
  78.                          ge=f%1000/100;
  79.              display(ge,shi,bai,qian,wan,shiwan);
  80.              while(1);
  81.     }
  82.     //------------------------------------------
  83.     void time0() interrupt 1
  84.     {
  85.              TL0 = (65536-100000/f) % 256;
  86.              TH0 = (65536-100000/f) / 256;   //50ms@12MHz
  87.              a++;
  88.              if(a == 10) a = 0;           //在這里調整周期.
  89.              if(a < b)
  90.                          {P1_0 = 0xff;        //在這里調整占空比.
  91.                                    P1_1 =~P1_0;
  92.                                            }
  93.              else   {
  94.                                 P1_0 = 0x00;
  95.                                 P1_1 =~P1_0;}

  96.     }
  97.     //------------------------------------------
  98.     void X0_INT() interrupt 0
  99.     {
  100.              b++;
  101.              if(b > 10) b = 10;           //占空比等級最大為19
  102.     }
  103.     //------------------------------------------
  104.     void X1_INT() interrupt 2
  105.     {
  106.              b--;
  107.              if(b < 1) b = 1;             //占空比等級最小為1.
  108.     }
復制代碼

20181226164105.png (14.04 KB, 下載次數: 92)

原理圖

原理圖

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:1 發表于 2018-12-26 15:41 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人在线一区 | 亚洲人成在线观看 | 日本一区二区视频 | 亚洲精品9999久久久久 | 久视频在线观看 | 久久国产精品72免费观看 | 偷拍自拍在线观看 | 成年免费视频 | 黄色一级大片在线观看 | 日本精品久久久一区二区三区 | xnxx 日本免费| 久久综合一区 | 欧美久久天堂 | 精品欧美一区免费观看α√ | 免费v片 | 亚洲午夜视频在线观看 | jizz视频| 国产午夜在线 | 久久国产精品99久久久久久丝袜 | 国产91色在线 | 亚洲 | 欧美一区二区三区 | 色婷婷av99xx | 最新中文字幕久久 | 成人一区二区视频 | 天天干com| 在线视频成人 | 精品99在线 | 波波电影院一区二区三区 | 九九热在线免费视频 | 国产999精品久久久 精品三级在线观看 | 81精品国产乱码久久久久久 | 国产一区二区av | 99国内精品 | 成人网av| 人人亚洲| 99精品视频一区二区三区 | 91视频a| 欧美精品 在线观看 | av天天看 | 午夜一区 | 成人精品国产免费网站 |