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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC15F104W單片機實現編碼器調節兩路PWM輸出程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:486426 發表于 2020-2-2 14:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <STC15F104E_PLUS.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. //#define uint unsigned int
  5. sbit VD=P3^3;  //紅色LED 0.50v=10v ;1.00=27v ;3.85=73v;
  6. sbit CD=P3^4;  //綠色LED
  7. sbit ZS=P3^5;  //指示LED轉換  0 - 紅色LED調整;1 - 綠色LED調整
  8. sbit BA=P3^0;  //編碼器的a腳接P3.0
  9. sbit BB=P3^1;  //編碼器的b腳接P3.1
  10. sbit QH=P3^2;  //編碼器的按鍵接P3.2 電壓調整或電流調整249=5.00V
  11. uchar v_temp = 128,c_temp = 109,XZ = 0,flag,a0,b0,c0;//占空比 189=3.70V;109=0.75V;128=1.00V
  12. //延時函數,大約延時10ms.此處未用到
  13. /*void Delay10ms()        //@11.0592MHz
  14. {
  15.     unsigned char i, j;
  16.     i = 108;
  17.     j = 145;
  18.     do
  19.     {
  20.     while (--j);
  21.     } while (--i);
  22. }*/
  23. void bianmaqi(void)//捕捉EC11按下和旋轉信息
  24. {
  25.   unsigned char a, b, c;
  26.         a = BA;  
  27.         b = BB;
  28.    if (a != a0)     // A changed
  29.   {
  30.         a0 = a;
  31.     if (b != b0)    // B changed
  32.      {
  33.         b0 = b;
  34.         if (a == b)        
  35.             {
  36.            if  (XZ == 0)
  37.          {
  38.             if (v_temp < 249) v_temp++;
  39.           }
  40.            else  if ( XZ == 1)
  41.          {   
  42.             if (c_temp < 208)c_temp++;;
  43.           }
  44.             }
  45.    else         if (a != b)   
  46.      {  
  47.       if ( XZ == 0)
  48.         {                     
  49.           if (v_temp > 85)v_temp--;
  50.         }
  51.          else   if ( XZ == 1)
  52.         {
  53.           if (c_temp > 1)c_temp--;
  54.         }
  55.       }
  56.      }
  57.     }
  58.   c = QH;
  59.   if (!c && c0)
  60.         {
  61.         if (XZ == 0 )
  62.       {
  63.         XZ = 1;
  64.         ZS = 1;
  65.         }
  66.     else if(XZ == 1)//切換
  67.       {
  68.         XZ = 0;
  69.         ZS = 0;
  70.        }
  71.     }
  72.     c0 = c;
  73. }
  74. void InitTimer0() interrupt 1  // 0.5毫秒@11.0592MHz  //定時器T0 16位自動模式定時1ms 控制燈滅時間 頻率 2000HZ
  75. {
  76.     IE2 = 0x00;    //關閉定時器2中斷
  77.     AUXR = 0XE4;   //關閉定時器2計數
  78.     TL0 = 0xCD;
  79.     TH0 = 0xD4;
  80.     VD = 1;
  81.     CD = 1;
  82. //    blue=1;
  83.     flag = 1;
  84.     AUXR = 0xF4;   //開啟定時器2計數
  85.     IE2 = 0x04;    //開啟定時器2中斷允許
  86. }

  87. void InitTimer2() interrupt 12    //     2.5微秒@11.0592MHz  //定時器T2 16位自動模式定時4us    控制燈亮時間
  88. {
  89.     flag++;
  90.     T2L = 0xD4;    //設置定時初值
  91.     T2H = 0xFF;    //設置定時初值
  92.     if(v_temp == flag) VD=0;
  93.     if(c_temp == flag) CD=0;
  94. //    if(b_temp == flag) blue=0;
  95. }
  96. void init()
  97. {
  98.     AUXR = 0XE4;   //設置定時器0和2為1T模式
  99.     TMOD = 0x00;
  100.     TL0 = 0xCD;
  101.     TH0 = 0xD4;
  102.     T2L = 0xD4;    //設置定時初值
  103.     T2H = 0xFF;    //設置定時初值
  104.     EA = 1;
  105.     ET0 = 1;
  106.     TR0 = 1;
  107.     P3M1 &= 0xF7;
  108.     P3M0 |= 0x08;  //P3.3(推挽)
  109.     P3M1 &= 0xEF;
  110.     P3M0 |= 0x10;  //P3.4(推挽)
  111.     P3M1 &= 0xDF;
  112.     P3M0 |= 0x20;  //P3.5(推挽)
  113.     VD = 0;
  114.     CD = 0;
  115.     ZS = 0;        // 0 - 電壓調整狀態;1 - 電流調整狀態
  116.     a0 = BA;
  117.     b0 = BB;
  118.     c0 = QH;
  119.         
  120. }
  121. void main()
  122. {
  123. init();
  124. while(1)
  125.    {
  126.    bianmaqi();  
  127.    }
  128. }
復制代碼


STC15F104W實現編碼器調節兩路PWM輸出.rar

33.85 KB, 下載次數: 129, 下載積分: 黑幣 -5

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:137005 發表于 2020-2-3 16:40 | 只看該作者
沒有工程文件;只有一個C文件,其中也沒有頭文件STC15F104E_PLUS.h
回復

使用道具 舉報

板凳
ID:438886 發表于 2022-2-28 22:59 來自手機 | 只看該作者
剛剛試了樓主的文件,好像沒成功,調整頻率和占空比無反應,不知道問題在那
回復

使用道具 舉報

地板
ID:983641 發表于 2022-3-1 11:07 | 只看該作者
樓主能不能介紹一下實現過程?
回復

使用道具 舉報

5#
ID:848299 發表于 2022-4-6 00:27 | 只看該作者
樓主能不能介紹一下實現過程?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久新| 色婷婷av一区二区三区软件 | 亚洲欧美激情精品一区二区 | 久久久久久91 | 精品国产久 | 欧美不卡一区二区三区 | 亚洲三区在线观看 | 亚洲成人自拍 | 精品国产伦一区二区三区观看说明 | 亚洲欧美一区二区三区国产精品 | 国产伦精品一区二区三区高清 | 青青草亚洲 | 精品国产一区探花在线观看 | 久久久久国产 | 91av在线免费看 | 国产精品欧美一区二区三区不卡 | 91久久综合 | 国产亚洲精品成人av久久ww | 电影午夜精品一区二区三区 | 国产精品日韩欧美一区二区 | 国产精品96久久久久久 | 中文字幕第5页 | 婷婷激情综合 | 亚洲 中文 欧美 日韩 在线观看 | 亚洲一区二区av | 欧美一级在线免费观看 | 福利片在线观看 | av性色| 久久国产精品色av免费观看 | 国产美女在线播放 | 久久综合一区 | 国产精品免费一区二区三区 | 另类视频在线 | 亚洲一区二区久久 | 正在播放国产精品 | a毛片 | 国产99久久 | 欧美一区二区三区在线观看视频 | 一区在线视频 | 久久剧场 | 久久精品二区 |