📄 spwm部分完整程序.txt
字号:
#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 + -