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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2951|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91免费在线| 国产乱码精品一区二区三区中文 | 久久久蜜臀国产一区二区 | 91久久久久久久久久久 | 午夜电影网| 91大神在线资源观看无广告 | 97精品超碰一区二区三区 | 国产精品国产精品 | 99在线精品视频 | 精品av| 国产亚洲www | 国产1区2区3区 | 91欧美激情一区二区三区成人 | 成人av网站在线观看 | 91麻豆精品国产91久久久更新资源速度超快 | 91视频正在播放 | 国产精品高清在线 | 婷婷亚洲综合 | 亚洲精品一区二区三区四区高清 | 日本不卡一区 | 色站综合 | 一级做a爰片性色毛片16 | 激情久久久久 | 欧州一区二区三区 | 在线一级片 | 国产精品久久亚洲 | 精品九九九 | 亚洲av一级毛片 | 中文字幕在线观看一区 | 欧美1区| 无码日韩精品一区二区免费 | 亚洲不卡在线观看 | 成人婷婷 | 久久免费精品 | 九九热久久免费视频 | www.亚洲精品 | 亚州av| 日本午夜免费福利视频 | 精品日韩一区 | 99视频在线 | av一二三区 |