日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

STC12C5410AD生成SPWM請(qǐng)大家?guī)兔?/h1>

最近弄了點(diǎn)程序(尤小翠編寫(xiě))改了改,半周期256個(gè)點(diǎn)  是不是有點(diǎn)多?還有就是如何計(jì)算SPWM的頻率,以及輸出正弦波頻率?256個(gè)點(diǎn)是用軟件生成的,如果自己計(jì)算的話怎樣算,還請(qǐng)各位幫忙?。。。。?!以下是RC濾波雙通道相加得到的波形。。附帶程序

#include         
#define uint unsigned int
#define uchar unsigned char
uint pwm_1,pwm_2,m;  

uint pwm_1,pwm_2,m; 

uchar code pwm[256]={
1 ,  2 ,  4 ,  5 ,  7 ,  8 ,  10 ,  11 ,  13 ,  14 , 
 16 ,  17 ,  19 ,  20 ,  22 ,  23 ,  25 ,  26 ,  28 ,  29 , 
 31 ,  32 ,  33 ,  35 ,  36 ,  38 ,  39 ,  41 ,  42 ,  43 , 
 45 ,  46 ,  48 ,  49 ,  50 ,  52 ,  53 ,  55 ,  56 ,  57 , 
 59 ,  60 ,  61 ,  62 ,  64 ,  65 ,  66 ,  68 ,  69 ,  70 , 
 71 ,  73 ,  74 ,  75 ,  76 ,  77 ,  78 ,  80 ,  81 ,  82 , 
 83 ,  84 ,  85 ,  86 ,  87 ,  88 ,  89 ,  90 ,  91 ,  92 , 
 93 ,  94 ,  95 ,  96 ,  97 ,  98 ,  99 ,  100 ,  101 ,  102 , 
 102 ,  103 ,  104 ,  105 ,  106 ,  106 ,  107 ,  108 ,  109 ,  109 , 
 110 ,  111 ,  111 ,  112 ,  113 ,  113 ,  114 ,  114 ,  115 ,  115 , 
 116 ,  116 ,  117 ,  117 ,  118 ,  118 ,  119 ,  119 ,  119 ,  120 , 
 120 ,  120 ,  121 ,  121 ,  121 ,  121 ,  122 ,  122 ,  122 ,  122 , 
 122 ,  122 ,  122 ,  123 ,  123 ,  123 ,  123 ,  123 ,  123 ,  123 , 
 123 ,  123 ,  123 ,  122 ,  122 ,  122 ,  122 ,  122 ,  122 ,  122 , 
 121 ,  121 ,  121 ,  121 ,  120 ,  120 ,  120 ,  119 ,  119 ,  119 , 
 118 ,  118 ,  117 ,  117 ,  116 ,  116 ,  115 ,  115 ,  114 ,  114 , 
 113 ,  113 ,  112 ,  111 ,  111 ,  110 ,  109 ,  109 ,  108 ,  107 , 
 106 ,  106 ,  105 ,  104 ,  103 ,  102 ,  102 ,  101 ,  100 ,  99 , 
 98 ,  97 ,  96 ,  95 ,  94 ,  93 ,  92 ,  91 ,  90 ,  89 , 
 88 ,  87 ,  86 ,  85 ,  84 ,  83 ,  82 ,  81 ,  80 ,  78 , 
 77 ,  76 ,  75 ,  74 ,  73 ,  71 ,  70 ,  69 ,  68 ,  66 , 
 65 ,  64 ,  62 ,  61 ,  60 ,  59 ,  57 ,  56 ,  55 ,  53 , 
 52 ,  50 ,  49 ,  48 ,  46 ,  45 ,  43 ,  42 ,  41 ,  39 , 
 38 ,  36 ,  35 ,  33 ,  32 ,  31 ,  29 ,  28 ,  26 ,  25 , 
 23 ,  22 ,  20 ,  19 ,  17 ,  16 ,  14 ,  13 ,  11 ,  10 , 
 8 ,  7 ,  5 ,  4 ,  2 ,  1
}; 
//延時(shí)函數(shù)//
void delay(uint time){
    uint a=0,b;
    for(a=0;a  for(b=0;b<1200;b++);
}
//PWM initiallize//
void pwm_init()
{
   CMOD=0X02; //設(shè)置PCA計(jì)數(shù)器工作頻率為F/2//
   CCON=0X00; //清零計(jì)數(shù)器和溢出標(biāo)志//
   CL=0X00;   //計(jì)數(shù)器低8位和高8位全部清零//
   CH=0X00;
   CCAPM0=0X42;  //設(shè)置PWM0口//   八位pwm輸出
   CCAPM1=0X42;
   CCAPM2=0X42;
   CCAPM3=0X42;
   CCAP0L=0X00;
   CCAP0H=0X00;
   CCAP1L=0X00;
   CCAP1H=0X00;
   CCAP2L=0X00;
   CCAP2H=0X00;
   CCAP3L=0X00;
   CCAP3H=0X00;
   CR=1;//開(kāi)啟PCA計(jì)數(shù)器//
}
void time_init()
{
  TMOD|=0X01;//定時(shí)器0工作在模式1// (模式一16位定時(shí)器)
  TH0=0Xff;
  TL0=0xe9;   //160個(gè)點(diǎn)晶振12M   50Hz*2*159=15900個(gè)點(diǎn)   調(diào)整TL0使輸出頻率為50Hz左右//
  ET0=1; //開(kāi)定時(shí)器0中斷//
  TR0=1;//開(kāi)啟定時(shí)器0//      
}
//軟啟動(dòng)//
void soft_start(void)
{
 m=0;
 do
 {
     m=m+27;
     delay(12);
 }
  while(m<216);  
}
//SPWM實(shí)現(xiàn)//
void int_time0(void) interrupt 1
{
 TH0=0Xff;
 TL0=0Xe9;//重裝計(jì)數(shù)值//
 TR0=1;
 CCAP0H=pwm1;
 CCAP2H=pwm1;
 CCAP1H=pwm2; //裝入脈寬值//
  CCAP3H=pwm2;
  k++;
    if(k<256) //正半周//
 {
  i=k;
  pwm_1=m*pwm[i]/216;
     pwm1=(uchar)pwm_1;
  pwm2=0;
 }
   else if(k<512) //負(fù)半周//
 {   
  j=k-256;
  pwm1=0;
  pwm_2=m*pwm[j]/216;
     pwm2=(uchar)pwm_2;
  pwm1=0;
    }
   else
 {//周期結(jié)束//
  k=0;
  i=k;
  pwm_1=m*pwm[i]/216;
  pwm1=(uchar)pwm_1;
        pwm2=0;
 }
}
//主程序//
void main()
{
 pwm_init();  //各種初始化
 time_init();
 EA=1;
// soft_start();
 m=300;
 while(1);
}

  

全部回復(fù)(11)
正序查看
倒序查看
2012-12-05 21:58
懂得C語(yǔ)言就是好.想要什么樣的功能就有什么樣的功能!實(shí)在是佩服.頂一個(gè)!
0
回復(fù)
2012-12-05 22:10
@廖遠(yuǎn)方
懂得C語(yǔ)言就是好.想要什么樣的功能就有什么樣的功能!實(shí)在是佩服.頂一個(gè)!
**此帖已被管理員刪除**
0
回復(fù)
2012-12-05 22:15
@鵬城快易貸
**此帖已被管理員刪除**

打廣告這位請(qǐng)你移駕

0
回復(fù)
2012-12-07 16:58
@loudianxin
打廣告這位請(qǐng)你移駕
自己頂     各位都感到太簡(jiǎn)單  不屑回答呀!您的指導(dǎo)是我進(jìn)步的源泉呀!
0
回復(fù)
黑夜11
LV.5
6
2012-12-07 18:55
@loudianxin
自己頂    各位都感到太簡(jiǎn)單 不屑回答呀!您的指導(dǎo)是我進(jìn)步的源泉呀!
開(kāi)環(huán)?加行ad采樣吧,穩(wěn)壓效果才能實(shí)現(xiàn)
0
回復(fù)
2012-12-08 19:20
@黑夜11
開(kāi)環(huán)?加行ad采樣吧,穩(wěn)壓效果才能實(shí)現(xiàn)
現(xiàn)在還不考慮加,因?yàn)槲椰F(xiàn)在還不知怎樣計(jì)算SPWM的頻率  以及輸出正弦波的頻率   一步一步來(lái) 。查了些資料也沒(méi)找到說(shuō)明的
0
回復(fù)
2013-04-08 10:20
@loudianxin
現(xiàn)在還不考慮加,因?yàn)槲椰F(xiàn)在還不知怎樣計(jì)算SPWM的頻率 以及輸出正弦波的頻率  一步一步來(lái)。查了些資料也沒(méi)找到說(shuō)明的
我也正在研究這個(gè),還有好多地方不懂??!向樓主學(xué)習(xí)
0
回復(fù)
2013-07-10 09:26
@loudianxin
現(xiàn)在還不考慮加,因?yàn)槲椰F(xiàn)在還不知怎樣計(jì)算SPWM的頻率 以及輸出正弦波的頻率  一步一步來(lái)。查了些資料也沒(méi)找到說(shuō)明的
樓主,您好,現(xiàn)在才看到你張?zhí)?,不知道你解決你問(wèn)題沒(méi)有,我現(xiàn)在才開(kāi)始學(xué)用單片機(jī)通過(guò)DDS技術(shù)產(chǎn)生SPWM的方法,好多地方都不懂,上網(wǎng)也找不到解決方法,請(qǐng)您教教我,我也是學(xué)生。
0
回復(fù)
loudianxin
LV.7
10
2013-07-19 20:53
@守稻者0
樓主,您好,現(xiàn)在才看到你張?zhí)恢滥憬鉀Q你問(wèn)題沒(méi)有,我現(xiàn)在才開(kāi)始學(xué)用單片機(jī)通過(guò)DDS技術(shù)產(chǎn)生SPWM的方法,好多地方都不懂,上網(wǎng)也找不到解決方法,請(qǐng)您教教我,我也是學(xué)生。

最近沒(méi)時(shí)間弄這個(gè)了,不過(guò)想一起討論討論,我QQ:525658917   注明:電源網(wǎng)

0
回復(fù)
07611128
LV.2
11
2013-07-25 20:47
@loudianxin
最近沒(méi)時(shí)間弄這個(gè)了,不過(guò)想一起討論討論,我QQ:525658917  注明:電源網(wǎng)

depth=1024;
widths=10;
n=0:1:depth;
s=sin(pi*n/512);
My_sin=fopen(sin.mif,wt);

fprintf(My_sin,depth=%d;\n,depth);
fprintf(My_sin,width=%d;\n,widths);
fprintf(My_sin,address_radix=dec;\n);
fprintf(My_sin,data_radix=dec;\n);
fprintf(My_sin,ContentBegin\n);
for(x=1:depth)
    fprintf(My_sin,\%d:%d;\n,x-1,round(511*sin(pi*(x-1)/512)+512));
end
fprintf(My_sin,end;);
fclose(My_sin);

可以用matlab去計(jì)算一個(gè)正弦的數(shù)的,設(shè)置位寬和深度,產(chǎn)生了一個(gè)mif文件,我是用于fpga的,學(xué)生黨

0
回復(fù)
2013-09-01 11:24
前輩,您那個(gè)生成spwm波那些點(diǎn)的軟件可以給我發(fā)一個(gè)嗎?我的郵箱378105653@qq.com,謝謝了,我自己在網(wǎng)上收不著合適的
0
回復(fù)
發(fā)