⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spwm部分完整程序.txt

📁 数控直流电源和变频电源程序在c环境下编译
💻 TXT
📖 第 1 页 / 共 2 页
字号:
#include <reg52.h>
#define unit unsigned int
#define uchar unsigned char

sbit P3_0=P3^0;
sbit P3_1=P3^1;
sbit P3_2=P3^2;
sbit P3_3=P3^3;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
static f=0;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 /*输出20hz正弦波*/
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
void    spwm20hz()
{
uchar code th0_20[100]={256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                     255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                      255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,
                      255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                      255,255,255,255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256
                     };
uchar code tl0_20[100]={246,225,204,184,164,144,125,106,88,71,54,38,23,9,251,239,228,218,209,202,195,190,186,
   184,182,182,184,186,190,195,202,209,218,228,239,251,9,23,38,54,71,88,106,125,144,164,184,204,225,246 ,
   246,225,204,184,164,144,125,106,88,71,54,38,23,9,251,239,228,218,209,202,195,190,186,184,182,182,184,186,
   190,195,202,209,218,228,239,251,9,23,38,54,71,88,106,125,144,164,184,204,225,246};
uchar code th1_20[100]={255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,
  256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255,
  255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,
   256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255};
uchar code tl1_20[100]={127,63,247,164,65,202,60,148,208,238,238,208,148,60,202,65,164,247,63,127,
                127,63,247,164,65,202,60,148,208,238,238,208,148,60,202,65,164,247,63,127,
                189,210,230,251,15,34,54,72,91,108,125,141,156,170,183,196,207,217,225,233,239,245,249,251,252,252,
                251,249,245,239,233,225,217,207,196,183,170,156,141,125,108,91,72,54,34,15,251,230,210,189};
void init_20()
{
 TMOD=0X11;
 TH0=th0_20[0];
 TL0=tl0_20[0];
 TH1=th1_20[0];
 TL1=tl1_20[0];
 }

 void  spwm_20()
       {                            
        init_20();
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
 EA=1;
 ET0=1;
 ET1=1;
 TR0=1;
 TR1=0;
  }
void timer0_20(void) interrupt 1
 {
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
     TR1=1;
     TR0=0;
     TH0=th0_20[f++];
     TL0=tl0_20[f++];
   }

void timer1_20(void) interrupt 3
{
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
      TR0=1;
      TR1=0;
      TH1=th1_20[f++];
      TL1=tl1_20[f++];
  }
  }
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////  
  /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 /*输出30hz正弦波*/
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
void    spwm30hz()
{
uchar code th0_30[100]={256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                     255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                      255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,
                      255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                      255,255,255,255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256
                     };
uchar code tl0_30[100]={246,225,204,184,164,144,125,106,88,71,54,38,23,9,251,239,228,218,209,202,195,190,186,
   184,182,182,184,186,190,195,202,209,218,228,239,251,9,23,38,54,71,88,106,125,144,164,184,204,225,246 ,
   246,225,204,184,164,144,125,106,88,71,54,38,23,9,251,239,228,218,209,202,195,190,186,184,182,182,184,186,
   190,195,202,209,218,228,239,251,9,23,38,54,71,88,106,125,144,164,184,204,225,246};
uchar code th1_30[100]={255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,
  256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255,
  255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,
   256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255};
uchar code tl1_30[100]={127,63,247,164,65,202,60,148,208,238,238,208,148,60,202,65,164,247,63,127,
                127,63,247,164,65,202,60,148,208,238,238,208,148,60,202,65,164,247,63,127,
                189,210,230,251,15,34,54,72,91,108,125,141,156,170,183,196,207,217,225,233,239,245,249,251,252,252,
                251,249,245,239,233,225,217,207,196,183,170,156,141,125,108,91,72,54,34,15,251,230,210,189};
void init_30()
{
 TMOD=0X11;
 TH0=th0_30[0];
 TL0=tl0_30[0];
 TH1=th1_30[0];
 TL1=tl1_30[0];
 }

 void  spwm_30()
       {                            
        init_30();
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
 EA=1;
 ET0=1;
 ET1=1;
 TR0=1;
 TR1=0;
  }
void timer0_30(void) interrupt 1
 {
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
     TR1=1;
     TR0=0;
     TH0=th0_30[f++];
     TL0=tl0_30[f++];
   }

void timer1_30(void) interrupt 3
{
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
      TR0=1;
      TR1=0;
      TH1=th1_30[f++];
      TL1=tl1_30[f++];
  }
  }
  /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 /*输出40hz正弦波*/
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
void    spwm40hz()
{
uchar code th0_40[100]={256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                     255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                      255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,
                      255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                      255,255,255,255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256
                     };
uchar code tl0_40[100]={246,225,204,184,164,144,125,106,88,71,54,38,23,9,251,239,228,218,209,202,195,190,186,
   184,182,182,184,186,190,195,202,209,218,228,239,251,9,23,38,54,71,88,106,125,144,164,184,204,225,246 ,
   246,225,204,184,164,144,125,106,88,71,54,38,23,9,251,239,228,218,209,202,195,190,186,184,182,182,184,186,
   190,195,202,209,218,228,239,251,9,23,38,54,71,88,106,125,144,164,184,204,225,246};
uchar code th1_40[100]={255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,
  256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255,
  255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,
   256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255};
uchar code tl1_40[100]={127,63,247,164,65,202,60,148,208,238,238,208,148,60,202,65,164,247,63,127,
                127,63,247,164,65,202,60,148,208,238,238,208,148,60,202,65,164,247,63,127,
                189,210,230,251,15,34,54,72,91,108,125,141,156,170,183,196,207,217,225,233,239,245,249,251,252,252,
                251,249,245,239,233,225,217,207,196,183,170,156,141,125,108,91,72,54,34,15,251,230,210,189};
void init_40()
{
 TMOD=0X11;
 TH0=th0_40[0];
 TL0=tl0_40[0];
 TH1=th1_40[0];
 TL1=tl1_40[0];
 }

 void  spwm_40()
       {                            
        init_40();
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
 EA=1;
 ET0=1;
 ET1=1;
 TR0=1;
 TR1=0;
  }
void timer0_40(void) interrupt 1
 {
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
     TR1=1;
     TR0=0;
     TH0=th0_40[f++];
     TL0=tl0_40[f++];
   }

void timer1_40(void) interrupt 3
{
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
      TR0=1;
      TR1=0;
      TH1=th1_40[f++];
      TL1=tl1_40[f++];
  }
  }
  /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 /*输出50hz正弦波*/
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
void    spwm50hz()
{
uchar code th0_50[100]={256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                     255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                      255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,
                      255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                      255,255,255,255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256
                     };
uchar code tl0_50[100]={246,225,204,184,164,144,125,106,88,71,54,38,23,9,251,239,228,218,209,202,195,190,186,
   184,182,182,184,186,190,195,202,209,218,228,239,251,9,23,38,54,71,88,106,125,144,164,184,204,225,246 ,
   246,225,204,184,164,144,125,106,88,71,54,38,23,9,251,239,228,218,209,202,195,190,186,184,182,182,184,186,
   190,195,202,209,218,228,239,251,9,23,38,54,71,88,106,125,144,164,184,204,225,246};
uchar code th1_50[100]={255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,
  256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255,
  255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,
   256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255};
uchar code tl1_50[100]={127,63,247,164,65,202,60,148,208,238,238,208,148,60,202,65,164,247,63,127,
                127,63,247,164,65,202,60,148,208,238,238,208,148,60,202,65,164,247,63,127,
                189,210,230,251,15,34,54,72,91,108,125,141,156,170,183,196,207,217,225,233,239,245,249,251,252,252,
                251,249,245,239,233,225,217,207,196,183,170,156,141,125,108,91,72,54,34,15,251,230,210,189};
void init_50()
{
 TMOD=0X11;
 TH0=th0_50[0];
 TL0=tl0_50[0];
 TH1=th1_50[0];
 TL1=tl1_50[0];
 }

 void  spwm_50()
       {                            
        init_50();
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
 EA=1;
 ET0=1;
 ET1=1;
 TR0=1;
 TR1=0;
  }
void timer0_50(void) interrupt 1
 {
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
     TR1=1;
     TR0=0;
     TH0=th0_50[f++];
     TL0=tl0_50[f++];
   }

void timer1_50(void) interrupt 3
{
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
      TR0=1;
      TR1=0;
      TH1=th1_50[f++];
      TL1=tl1_50[f++];
  }
  }
  
  /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 /*输出60hz正弦波*/
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
void    spwm60hz()
{
uchar code th0_60[100]={256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                     255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                      255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,
                      255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
                      255,255,255,255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256
                     };
uchar code tl0_60[100]={246,225,204,184,164,144,125,106,88,71,54,38,23,9,251,239,228,218,209,202,195,190,186,
   184,182,182,184,186,190,195,202,209,218,228,239,251,9,23,38,54,71,88,106,125,144,164,184,204,225,246 ,
   246,225,204,184,164,144,125,106,88,71,54,38,23,9,251,239,228,218,209,202,195,190,186,184,182,182,184,186,
   190,195,202,209,218,228,239,251,9,23,38,54,71,88,106,125,144,164,184,204,225,246};
uchar code th1_60[100]={255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,
  256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255,
  255,255,255,255,255,255,255,255,255,255,255,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,
   256,256,256,256,256,256,256,256,256,256,256,255,255,255,255,255,255,255,255,255,255,255};
uchar code tl1_60[100]={127,63,247,164,65,202,60,148,208,238,238,208,148,60,202,65,164,247,63,127,
                127,63,247,164,65,202,60,148,208,238,238,208,148,60,202,65,164,247,63,127,
                189,210,230,251,15,34,54,72,91,108,125,141,156,170,183,196,207,217,225,233,239,245,249,251,252,252,
                251,249,245,239,233,225,217,207,196,183,170,156,141,125,108,91,72,54,34,15,251,230,210,189};
void init_60()
{
 TMOD=0X11;
 TH0=th0_60[0];
 TL0=tl0_60[0];
 TH1=th1_60[0];
 TL1=tl1_60[0];
 }

 void  spwm_60()
       {                            
        init_60();
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
 EA=1;
 ET0=1;
 ET1=1;
 TR0=1;
 TR1=0;
  }
void timer0_60(void) interrupt 1
 {
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
     TR1=1;
     TR0=0;
     TH0=th0_60[f++];
     TL0=tl0_60[f++];
   }

void timer1_60(void) interrupt 3
{
        P3_0=~P3_0;
        P3_1=~P3_1;
        P3_2=~P3_2;
        P3_3=~P3_3;
      TR0=1;
      TR1=0;
      TH1=th1_60[f++];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -