欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: stc12單片機生成spwm波形+仿真 [打印本頁]

作者: zhmgxx113    時間: 2017-8-15 15:42
標題: stc12單片機生成spwm波形+仿真
stc12單片機生成spwm波形和proteus仿真

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include <stc.h>
  2. #include <sin.h>

  3. #define uint unsigned int

  4. uchar index;
  5. uchar a;
  6. void init_pca(void)//pca計數器初始化函數

  7. {

  8. CMOD=0x04;//計數器0的溢出為PCA計數器的時鐘源

  9. CCON=0x00;

  10. CCAPM0=0x42;//8位PWM輸出,無中斷

  11. CL=0x00;//清零pca計數器

  12. CH=0x00;

  13. CCAP0L=pwm[0];    //初始化spwm輸出的占空比

  14. CCAP0H=pwm[0];

  15. CR=1;//運行pca計數器

  16. }

  17. void init_timer(void)//計數器初始化函數

  18. {

  19. TMOD= 0x12; //計數器0工作在方式模式2,計數器1工作在方式1

  20. TH0 = 0xFF;//T0的計數值為5,把時鐘源5分頻

  21. TL0 = 0xFF;

  22. TH1 = 0xF6;//T1的計數值為625,若是12M晶振,則中斷頻率為12M/625=1920HZ,正弦頻率為1920/32=600HZ,即600/12=50HZ

  23. TL1 = 0xA0;    //T1的計數值低位

  24. AUXR=0x80;//計數器均工作在8051速度

  25. //ET0 = 1; //開中計數器0斷

  26. ET1 = 1; //開計數器1中斷

  27. TR0 = 1; //開啟計數器0

  28. TR1 = 1; //開計數器1

  29. }

  30. void int_timer1(void) interrupt 3//計數器1中斷函數

  31. {

  32. CR=0;
  33. a=a+1;
  34. index++; //查表索引

  35. TH1=0xFD; //重裝計數值

  36. TL1=0x8F;

  37. CCAP0H=pwm[index%32]*2;//改變pwm的占空比

  38. CR=1;

  39. }
  40. void main()
  41. {a=0;
  42. EA=1;//開總中斷
  43. init_pca();
  44. init_timer();
  45. while(1);
  46. //-.-//
  47. }
  48. 單片機源程序如下:
復制代碼

所有資料51hei提供下載:
stc生成spwm 仿真.zip (74.11 KB, 下載次數: 200)



作者: ww__dong    時間: 2018-4-20 20:11
寫的很不錯哦
作者: 蘇軾蘇軾    時間: 2018-4-25 19:48
老哥能寫個89c51的嗎,
作者: 瓦下班了    時間: 2018-4-28 17:40
大神有這個是51單片機的程序嗎

作者: dyhrdy    時間: 2018-6-28 17:12
謝樓主,你是大神啊。

作者: aiyowei1998    時間: 2018-7-9 17:17
真的很棒,最近在研究三相逆變電源,有點難
作者: 13480828805    時間: 2018-8-27 16:54
很不錯,頂
作者: dgdz5i    時間: 2018-9-4 21:54
黑幣不足,無法下載
作者: 66249259    時間: 2019-7-5 16:30
很不錯,頂
作者: chenjialin12    時間: 2019-8-5 22:02
感謝大佬
作者: slaoliu    時間: 2023-3-16 21:09
下來研究一下,打算做個課件。




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1