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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于頻率可調節的pwm,各位大師 不知道我描述的你們能看懂不

[復制鏈接]
跳轉到指定樓層
樓主

第一圖是一個正常輸出的波形   




第二  這個波形是需要經過調制后需要 單片機最后輸出的波形    請問這個波形該怎么輸出     中間密集的那分怎么變換   占空比都是一樣的   只是頻率變化了


我是這樣弄的 但是不行    我設置了一個參考波形 參考波形的占空比就是圖中的密集部分      這個參考波形我是通過PCA產生的波形 然后通過外部觸發中斷INT0來實現 下降沿觸發  上升下降都無法   但是最后得不到這個波形   而且進入中斷以后  main函數中的程序就不能正常運行了  無法退出中斷      

請問還有什么方法可以實現  這樣的波形    這個波形的  頻率是可以調節的   可以在不同時刻調節不一樣的頻率  但是最后我要得到這個波形  
現在調節頻率這些我都弄好了   就差最后這一步了     有沒有高手給我說一下      

可以用ADC合成嗎   通過一個控制PWM來實現  
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:94031 發表于 2021-9-2 13:52 | 只看該作者
用不同定時中斷輸出高低電平實現。
回復

使用道具 舉報

板凳
ID:514901 發表于 2021-9-2 13:56 | 只看該作者
是不是只有兩種頻率?我看占空比都是50%,沒必要用PWM了,搞個定時器就行
回復

使用道具 舉報

地板
ID:213173 發表于 2021-9-2 14:29 | 只看該作者
本帖最后由 wulin 于 2021-9-7 08:36 編輯

最簡單的方法是用定時器,按需要的脈沖寬度和變化周期做一個數組,定時器中斷函數按序從數組中取值作重載值即可。示例如下:是一個按正弦規律變化的PWM波形。
  1. #include <reg51.h>
  2. sbit PWM=P1^0;
  3. unsigned char code K_Sine[256]={
  4. 0x00,0x01,0x03,0x04,0x06,0x07,0x09,0x0a,0x0c,0x0d,0x0f,0x10,
  5. 0x12,0x13,0x15,0x16,0x18,0x19,0x1b,0x1c,0x1e,0x1f,0x21,0x22,
  6. 0x24,0x25,0x27,0x28,0x2a,0x2b,0x2d,0x2e,0x2f,0x31,0x32,0x34,
  7. 0x35,0x36,0x38,0x39,0x3b,0x3c,0x3d,0x3f,0x40,0x41,0x43,0x44,
  8. 0x45,0x47,0x48,0x49,0x4a,0x4c,0x4d,0x4e,0x4f,0x50,0x52,0x53,
  9. 0x54,0x55,0x56,0x57,0x58,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,
  10. 0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x67,0x68,0x69,0x6a,0x6b,
  11. 0x6c,0x6d,0x6d,0x6e,0x6f,0x70,0x70,0x71,0x72,0x72,0x73,0x74,
  12. 0x74,0x75,0x76,0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,
  13. 0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,
  14. 0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7d,0x7b,0x7a,
  15. 0x78,0x77,0x75,0x74,0x72,0x71,0x6f,0x6e,0x6c,0x6b,0x69,0x68,
  16. 0x66,0x65,0x63,0x62,0x60,0x5f,0x5d,0x5c,0x5a,0x59,0x57,0x56,
  17. 0x54,0x53,0x51,0x50,0x4f,0x4d,0x4c,0x4a,0x49,0x48,0x46,0x45,
  18. 0x43,0x42,0x41,0x3f,0x3e,0x3d,0x3b,0x3a,0x39,0x37,0x36,0x35,
  19. 0x34,0x32,0x31,0x30,0x2f,0x2e,0x2c,0x2b,0x2a,0x29,0x28,0x27,
  20. 0x26,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,
  21. 0x19,0x18,0x17,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x11,0x10,
  22. 0x0f,0x0e,0x0d,0x0c,0x0c,0x0b,0x0a,0x0a,0x09,0x09,0x08,0x08,
  23. 0x07,0x07,0x05,0x05,0x04,0x04,0x04,0x03,0x03,0x03,0x02,0x02,
  24. 0x02,0x02,0x02,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,
  25. 0x00,0x00,0x00,0x00};    //kindred sine wave

  26. void InitTimer0(void)
  27. {
  28.     TMOD = 0x01;
  29.     TH0 = 0xff;
  30.     TL0 = 0x00;
  31.     EA = 1;
  32.     ET0 = 1;
  33.     TR0 = 1;
  34. }

  35. void main(void)
  36. {
  37.         InitTimer0();
  38.         while(1);
  39. }

  40. void Timer0Interrupt(void) interrupt 1
  41. {
  42.         static unsigned char i;
  43.         PWM=~PWM;
  44.         TH0 = 0xff;
  45.         TL0 = K_Sine[i];
  46.         i++;
  47. }
復制代碼
回復

使用道具 舉報

5#
ID:332444 發表于 2021-9-2 14:37 | 只看該作者
看圖疑似倍頻有2種方法1改變定時器初值2不變定時器初值修改計數值
回復

使用道具 舉報

6#
ID:624769 發表于 2021-9-2 14:49 | 只看該作者
思路是:定時器確定切換波頻率的周期,改寫PWM定時器,PWM只管輸出就完了。
其實頻占比都是50%的話,壓根不用PWM,直接用T0CLK_OUT就可以了。
回復

使用道具 舉報

7#
ID:161164 發表于 2021-9-2 15:04 | 只看該作者
由圖看出高頻是低頻的一倍
PCA不懂,如果頻率不高可以用定時器軟件模擬
  1. void timer1_int (void) interrupt 3
  2. {
  3.         static uchar i = 0;
  4.         TL1 = 0x18;                //設置定時初始值1ms@12.000MHz 12T
  5.         TH1 = 0xFC;                //設置定時初始值1ms@12.000MHz 12T
  6.         if(HLF_Sel)//0 = Low Feq, 1 = High Feq
  7.         {
  8.                 S_Out = i%2;//0=0,1=1,2=0,3=1
  9.         }
  10.         else
  11.         {
  12.                 S_Out = i>1;//0=0,1=0,2=1,3=1
  13.         }
  14.         if(++i==4)
  15.         {
  16.                 i=0;
  17.         }
  18. }
復制代碼
回復

使用道具 舉報

8#
ID:163285 發表于 2021-9-2 15:55 | 只看該作者
參考單片機電子琴發聲原理。高音叨是中音叨兩倍頻。
回復

使用道具 舉報

9#
ID:254747 發表于 2021-9-2 23:55 | 只看該作者
非常感謝大家的回復   我按照你們的思路在搞一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩中文在线 | 亚洲精品视频免费观看 | 99av成人精品国语自产拍 | 在线观看av不卡 | 国产精品久久久久久久久久免费看 | 色橹橹欧美在线观看视频高清 | 成人精品视频在线观看 | 日韩成人在线视频 | 欧美久久一级特黄毛片 | 逼逼视频 | 亚洲精品乱码久久久久久按摩 | 夜夜艹 | caoporn视频在线 | 国产精品亚洲视频 | 亚洲狠狠 | 亚洲欧美精品在线观看 | 欧美日韩久久久 | 国产午夜精品一区二区三区嫩草 | 四虎影视免费观看 | 91精品国产欧美一区二区成人 | 福利久久 | 国产伦精品一区二区三区精品视频 | 99精品国产一区二区三区 | 黄色一级毛片 | 一区二区三区四区电影 | 一区二区三区国产好的精 | 日韩在线视频观看 | 一级黄色片美国 | 狠狠撸在线视频 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 希岛爱理在线 | 国产又色又爽又黄又免费 | 久久性| 欧美一级二级视频 | 亚洲免费视频一区 | 亚洲免费精品 | 亚洲逼院 | 国产日韩欧美91 | 国产午夜精品一区二区三区嫩草 | av网址在线 | 亚洲区一 |