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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機spwm程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:328361 發表于 2018-5-12 17:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include<reg52.h>
  2. #define unint unsigned int
  3. #define unchar unsigned char

  4. unchar code pwm[5][120]={
  5.          { 4 ,         12 ,         20 ,         27 ,         35 ,         43 ,         51 ,         58 ,         66 ,         74 ,        
  6.                  81 ,         88 ,         96 ,         103 ,         110 ,         117 ,         124 ,         131 ,         137 ,         144 ,        
  7.                  150 ,         156 ,         162 ,         168 ,         174 ,         180 ,         185 ,         190 ,         195 ,         200 ,        
  8.                  205 ,         209 ,         213 ,         217 ,         221 ,         224 ,         228 ,         231 ,         234 ,         237 ,        
  9.                  239 ,         241 ,         243 ,         245 ,         246 ,         247 ,         248 ,         249 ,         250 ,         250 ,        
  10.                  250 ,         250 ,         249 ,         248 ,         247 ,         246 ,         245 ,         243 ,         241 ,         239 ,        
  11.                  237 ,         234 ,         231 ,         228 ,         224 ,         221 ,         217 ,         213 ,         209 ,         205 ,        
  12.                  200 ,         195 ,         190 ,         185 ,         180 ,         174 ,         168 ,         162 ,         156 ,         150 ,        
  13.                  144 ,         137 ,         131 ,         124 ,         117 ,         110 ,         103 ,         96 ,         88 ,         81 ,        
  14.                  74 ,         66 ,         58 ,         51 ,         43 ,         35 ,         27 ,         20 ,         12 ,         4
  15.      },
  16.          { 8 ,         24 ,         39 ,         55 ,         70 ,         85 ,         99 ,         113 ,         127 ,         140 ,        
  17.                  153 ,         165 ,         177 ,         187 ,         198 ,         207 ,         215 ,         223 ,         229 ,         235 ,        
  18.                  240 ,         244 ,         247 ,         249 ,         250 ,         250 ,         249 ,         247 ,         244 ,         240 ,        
  19.                  235 ,         229 ,         223 ,         215 ,         207 ,         198 ,         187 ,         177 ,         165 ,         153 ,        
  20.                  140 ,         127 ,         113 ,         99 ,         85 ,         70 ,         55 ,         39 ,         24 ,         8},
  21.          { 10 ,         29 ,         49 ,         68 ,         87 ,         105 ,         122 ,         139 ,         155 ,         170 ,        
  22.                  184 ,         196 ,         208 ,         218 ,         227 ,         234 ,         241 ,         245 ,         248 ,         250 ,        
  23.                  250 ,         248 ,         245 ,         241 ,         234 ,         227 ,         218 ,         208 ,         196 ,         184 ,        
  24.                  170 ,         155 ,         139 ,         122 ,         105 ,         87 ,         68 ,         49 ,         29 ,         10 },
  25.          { 16 ,         47 ,         77 ,         106 ,         134 ,         159 ,         182 ,         202 ,         219 ,         232 ,        
  26.                  242 ,         248 ,         250 ,         248 ,         242 ,         232 ,         219 ,         202 ,         182 ,         159 ,        
  27.                  134 ,         106 ,         77 ,         47 ,         16},
  28.          {20,58,96,130,162,190,213,231,243,249,249,243,231,213,190,162,130,96,58,20 }};
  29.           // 反正弦變化

  30. unchar i=0;
  31. unchar m=0;
  32. unchar dr=0;

  33. sbit output=P0^0;                           //脈沖輸出
  34. sbit key=P3^0;                                         //頻率轉換鍵

  35. void init();
  36. void delay(unint);

  37. void main()
  38. {
  39.         init();
  40.         TR0=1;                                   //啟動定時器0
  41.         output=1;                           //給脈沖
  42.         TR1=1;                                   //啟動定時器1
  43.         while(1)
  44.         {
  45.                 if(key==0)
  46.                 {
  47.                         delay(5);
  48.                         if(key==0)
  49.                         {
  50.                                 while(1)
  51.                                         if(key==1)
  52.                                         {
  53.                                                 i++;                   //關光標
  54.                                                 if(i==5)
  55.                                                         i=0;
  56.                                                 break;
  57.                                         }
  58.                          }
  59.                 }
  60.                 switch (i)
  61.                 {
  62.                         case 0: m=100;break;                 //20Hz 100個數據
  63.                         case 1: m=50;break;                         //40HZ 50個數據
  64.                         case 2: m=40;break;                         //50HZ 40個數據
  65.                         case 3: m=25;break;                        // 80Hz        25個數據
  66.                         case 4: m=20;break;                         //100HZ 20個數據
  67.                 }        
  68.         }
  69. }

  70. void init()
  71. {
  72.         TMOD=0x11;
  73.         TH0=(65536-500)/256;
  74.         TL0=(65536-500)%256;
  75.         TH1=(65536-100)/256;
  76.         TL1=(65536-100)%256;
  77.         EA=1;                                                        //開總中斷
  78.         ET0=1;                                                        //開定時器0中斷
  79.         ET1=1;                                                        //開定時器1中斷
  80. }

  81. /****************************延時*****************************/
  82. void delay(unint z)
  83. {
  84.         unint x,y;
  85.         for(x=z;x>0;x--)
  86.                 for(y=110;y>0;y--);        
  87. }

  88. void time0() interrupt 1
  89. {
  90.         TH0=(65536-500)/256;
  91.         TL0=(65536-500)%256;
  92.         output=1;
  93.         TR1=1;                                                          //啟動定時器1               
  94. }

  95. void time1()  interrupt 3   
  96. {
  97.         output=0;
  98.         TR1=0;                                                         //停止定時器1
  99.         TH1=(65536-pwm[i][dr])/256;
  100.         TL1=(65536-pwm[i][dr])%256;
  101.         dr++;
  102.         if(dr==m)
  103.                 dr=0;            
  104. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:89286 發表于 2018-5-12 18:30 | 只看該作者
thanks for sharing
回復

使用道具 舉報

板凳
ID:39808 發表于 2018-5-12 19:33 | 只看該作者
調制頻率是多少?
回復

使用道具 舉報

地板
ID:782212 發表于 2021-6-3 17:08 | 只看該作者
這是頻率多大的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲a人 | www.成人免费视频 | 91一区二区| 欧美亚洲免费 | 毛片com | 欧洲高清转码区一二区 | 国产a区| h视频在线播放 | 国产999精品久久久久久 | 久久久久亚洲精品 | 91免费福利视频 | 亚洲 中文 欧美 日韩 在线观看 | 亚洲视频免费在线观看 | 碰碰视频 | 久久久久99 | 日韩喷潮 | 成人福利在线观看 | 蜜桃精品噜噜噜成人av | 国产精品不卡 | 成人精品国产一区二区4080 | 日本黄色片免费在线观看 | 久久精品中文字幕 | av一二三区 | 国产免费一区二区 | 久久精品国产精品青草 | 国产福利资源在线 | 狠狠躁躁夜夜躁波多野结依 | 91中文字幕 | 97国产精品 | 一级黄色毛片免费 | www精品美女久久久tv | 视频一区二区在线观看 | 激情五月综合 | 久草青青草| 欧美精品一区二区三区在线 | 精品免费av | 免费精品视频 | 婷婷色国产偷v国产偷v小说 | 久久久久久电影 | 国产一级片免费在线观看 | 一区二区三区日韩 |