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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8316|回復: 14
打印 上一主題 下一主題
收起左側(cè)

用PIC單片機的PWM生產(chǎn)一個頻率和幅值可調(diào)的正弦波

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:803054 發(fā)表于 2021-1-16 09:06 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include "Head.h"
  2. void main (void)
  3. {
  4.      OSCCON=0b11110000;  
  5.      TRISD=0;      
  6.      PORTD=0;   
  7.      TRISC=0b10000000;
  8.      OPTION_REG=0b10001000;
  9.      INTCON=0b11100000;   
  10.      PIE1=0b00100000;//開串口中斷
  11.      CCP1CON=0b00001100;
  12.      PR2=255;
  13.      T2CON=0b00000100;//  最大脈沖寬度 4*(255+1)=1024
  14.      TXSTA=0b00100100;     //SYNC=0;BRGH=1;
  15.      RCSTA=0b10010000;
  16.      BAUDCON=0b00001000;   //BRG16=1;
  17.      SPBRGH=0;
  18.      SPBRG=207;            //FOSC/[4(n+1)] (32000000/38400)/4-1=207  

  19.      while(1)
  20.      {
  21.       Send();
  22.      }   
  23. }

  24. //定時器中斷程序
  25. void interrupt TMR0INT(void)//4/32*256=32us
  26. {
  27.     static unsigned char a=0,b=0,c=0;
  28.     static unsigned int pwm_duty=0;
  29.     const unsigned int pwm_1[PI_data]={0,13,25,37,50,62,74,85,96,107,118,127,137,146,154,162,
  30.     169,175,181,186,190,194,196,198,200,200,200,198,196,194,190,186,
  31.     181,175,169,162,154,146,137,127,118,107,96,85,74,62,50,37,
  32.     25,13};
  33.     const unsigned int pwm_2[PI_data]={0,31,63,94,124,155,184,213,241,268,294,319,342,364,385,405,
  34.     422,438,452,465,476,484,491,496,499,500,499,496,491,484,476,465,
  35.     452,438,422,405,385,364,342,319,294,268,241,213,184,155,124,94,
  36.     63,31};
  37.     const unsigned int pwm_3[PI_data]={0,63,125,187,249,309,368,426,482,536,588,637,685,729,771,809,
  38.     844,876,905,930,951,969,982,992,998,1000,998,992,982,969,951,930,
  39.     905,876,844,809,771,729,685,637,588,536,482,426,368,309,249,187,
  40.     125,63};
  41.    
  42.     if(T0IF)
  43.     {
  44.         T0IF=0;
  45.         LATD6^=1;
  46.         if(++a==Pwm_frequency)  //1000000/(Pwm_frequency*32*50)=頻率HZ  1000000/(6*32*50)=104HZ
  47.         {
  48.           a=0;
  49.           if(++b==PI_data)b=0;
  50.           switch(c)
  51.           {
  52.              case 1:  {pwm_duty=pwm_1;break;}
  53.              case 2:  {pwm_duty=pwm_2;break;}
  54.              case 3:  {pwm_duty=pwm_3;break;}
  55.              default: {pwm_duty=pwm_1;break;}  
  56.           }  CCP1CON=(CCP1CON&0xcf)|((pwm_duty&3)<<4);CCPR1L=pwm_duty>>2;
  57.        }
  58.     }
  59.    
  60.    if(RCIF)   
  61.    {  
  62.       static unsigned char temp=0;  
  63.       if(OERR==1){CREN=0;asm("nop");CREN=1;}
  64.       temp=RCREG;
  65.       switch(temp)
  66.       {
  67.         case 'a':{Pwm_frequency++;break;}//頻率加
  68.         case 'b':{if(Pwm_frequency)Pwm_frequency--;break;}//頻率減
  69.         case 'c':{c++;if(c>3)c=1;break;}//振動幅度
  70.       }
  71.     }
  72. }
復制代碼


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

使用道具 舉報

沙發(fā)
ID:156508 發(fā)表于 2021-1-16 21:44 | 只看該作者
收下了,有匯編的嗎?
回復

使用道具 舉報

板凳
ID:803054 發(fā)表于 2021-1-19 15:04 | 只看該作者
匯編的沒啊,
回復

使用道具 舉報

地板
ID:296417 發(fā)表于 2021-6-3 10:30 | 只看該作者
好東西,先收下了,感謝分享
回復

使用道具 舉報

5#
ID:582276 發(fā)表于 2021-6-29 21:01 | 只看該作者
正想弄一個SPWM輸出電路,先收下了,謝謝
回復

使用道具 舉報

6#
ID:70014 發(fā)表于 2021-6-30 22:39 | 只看該作者
這個正正弦波不正
回復

使用道具 舉報

7#
ID:297256 發(fā)表于 2021-7-24 19:11 | 只看該作者

好東西,先收下了,感謝分享
回復

使用道具 舉報

8#
ID:324712 發(fā)表于 2021-9-21 15:30 | 只看該作者
為什么PWM產(chǎn)生周期用TIMER2,中斷里面確實TIMER0的程序?
回復

使用道具 舉報

9#
ID:974267 發(fā)表于 2021-10-23 03:02 | 只看該作者
這個正正弦波不正
回復

使用道具 舉報

10#
ID:678280 發(fā)表于 2021-10-28 16:53 | 只看該作者
負半周是三角波,正半周看著象一鍋窩頭。
回復

使用道具 舉報

11#
ID:974131 發(fā)表于 2021-11-11 10:03 | 只看該作者
正負半周能否對稱圓滑一點?謝謝!
回復

使用道具 舉報

12#
ID:962286 發(fā)表于 2021-11-30 20:16 | 只看該作者
用查表的方式!
回復

使用道具 舉報

13#
ID:228452 發(fā)表于 2022-5-23 23:54 | 只看該作者
where is  "Head.h" ?

Thanks
回復

使用道具 舉報

14#
ID:1004920 發(fā)表于 2023-4-19 16:45 | 只看該作者
發(fā)這樣的程序最好說用什么晶振,因為PIC的CCP輸出沒計算好的話脈寬調(diào)整并不是真的是0~1023,頻率高是話有的300就到100%了
回復

使用道具 舉報

15#
ID:53813 發(fā)表于 2023-12-7 16:30 | 只看該作者
有沒有按鍵固定選擇幾個周期,占空比不變的思路,望指點下~,是不是每次選擇PR2; CCPR2L;CCP2CON; 都要重新填寫下?
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产自产21区| 欧美日韩亚 | 成人精品国产一区二区4080 | 亚洲 欧美 另类 综合 偷拍 | 草久视频 | 美女久久 | 一区二区三区免费看 | 亚洲视频免费观看 | 在线免费观看a级片 | 97久久久 | 精品一区二区三区中文字幕 | 亚洲视频精品在线 | 美女黄18岁以下禁止观看 | 精品一区二区在线视频 | 91视频一区二区三区 | 免费观看成人性生生活片 | 欧美片网站免费 | 欧美一区二区三区 | 国产剧情一区 | 日本精品网站 | 国产福利小视频 | 99爱在线视频| 天天夜夜操 | 国产精品久久久久久久久久免费看 | 一区二区福利视频 | 国产一区二区在线观看视频 | 一区二区三区四区免费观看 | 狠狠色狠狠色综合系列 | 在线2区 | 欧美成人精品激情在线观看 | 一级黄色片毛片 | 欧美一级片在线看 | 国产精品一区二区在线观看 | 国产精品视频久久久久 | 国产日韩欧美中文 | 香蕉久久久| 男人久久天堂 | 日本不卡一区二区三区在线观看 | 久久免费精品视频 | 黄色毛片免费视频 | 粉嫩av|