📄 spwm部分完整程序.txt
字号:
TL1=tl1_60[f++];
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*输出70hz正弦波*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void spwm70hz()
{
uchar code th0_70[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_70[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_70[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_70[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_70()
{
TMOD=0X11;
TH0=th0_70[0];
TL0=tl0_70[0];
TH1=th1_70[0];
TL1=tl1_70[0];
}
void spwm_70()
{
init_70();
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_70(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_70[f++];
TL0=tl0_70[f++];
}
void timer1_70(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_70[f++];
TL1=tl1_70[f++];
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*输出80hz正弦波*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void spwm80hz()
{
uchar code th0_80[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_80[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_80[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_80[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_80()
{
TMOD=0X11;
TH0=th0_80[0];
TL0=tl0_80[0];
TH1=th1_80[0];
TL1=tl1_80[0];
}
void spwm_80()
{
init_80();
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_80(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_80[f++];
TL0=tl0_80[f++];
}
void timer1_80(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_80[f++];
TL1=tl1_80[f++];
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*输出90hz正弦波*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void spwm90hz()
{
uchar code th0_90[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_90[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_90[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_90[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_90()
{
TMOD=0X11;
TH0=th0_90[0];
TL0=tl0_90[0];
TH1=th1_90[0];
TL1=tl1_90[0];
}
void spwm_90()
{
init_90();
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_90(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_90[f++];
TL0=tl0_90[f++];
}
void timer1_90(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_90[f++];
TL1=tl1_90[f++];
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*输出100hz正弦波*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void spwm100hz()
{
uchar code th0_100[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_100[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_100[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_100[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_100()
{
TMOD=0X11;
TH0=th0_100[0];
TL0=tl0_100[0];
TH1=th1_100[0];
TL1=tl1_100[0];
}
void spwm_100()
{
init_100();
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_100(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_100[f++];
TL0=tl0_100[f++];
}
void timer1_100(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_100[f++];
TL1=tl1_100[f++];
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*延时子函数*/
///////////////////////////////
void delays(uint xhm)
{ int i;
for(i=0;i<xhm;i++)
for{i=0;i<100;i++}}
//////////////////////////////
/*获得键值*/
/////////////////////////////
uchar getkey(){uchar key;
delayms(100);
if(P1_0==1){i++;if(i>8){i=0;}}
if(P1_1==1){i--;if(i<0){i=8;}}
key=i;
return(key); }
///////////////////////////////////
/*选择输出频率*/
//////////////////////////////////
void switch_f()
{ uchar keynum;
keynum=getkey();
switch(keynum)
{
case 0:
spwm20hz()
break;
case 1:
spwm30hz();
break;
case 2:
spwm40hz();
break;
case 3:
spwm50hz();
break;
case 4:
spwm60hz();
break;
case 5:
spwm70hz();
break;
case 6:
spwm80hz();
break;
case 7:
spwm90hz();
break;
case 8:
spwm100hz();
break;
default :
spwm50hz();
break;
}
///////////////////////
/*主函数*/
//////////////////////
void main()
{ uint i;
do{ delayms(1000);
switch_f();
if(f>100){f=0;};}
while(1); while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -