crt_data.bak
来自「利用高速da通过查表法进行正弦波,方波,三角波产生的stc89c51程序和波形码」· BAK 代码 · 共 109 行
BAK
109 行
#include "stdio.h"
#include "math.h"
void main(void)
{
unsigned char kuai,unit,loop;
int data_temp,data_temp1;
FILE *fp;
fp=fopen("data.bin","wb");
/*正弦波*/
for(unit=0;unit<=50;unit++)
{
for(loop=0;loop<8;loop++)
{
data_temp=5.1*unit*sin(6.283185307*loop/8)+128;
putc(data_temp,fp);
}
}
for(unit=51;unit<=63;unit++)
{
for(loop=0;loop<8;loop++)
{
data_temp=0;
putc(data_temp,fp);
}
}
/*方波*/
for(unit=0;unit<=50;unit++)
{
data_temp=0;
putc(data_temp,fp);
putc(data_temp,fp);
putc(data_temp,fp);
putc(data_temp,fp);
data_temp=5.1*unit;
putc(data_temp,fp);
putc(data_temp,fp);
putc(data_temp,fp);
putc(data_temp,fp);
}
for(unit=51;unit<=63;unit++)
{
for(loop=0;loop<8;loop++)
{
data_temp=0;
putc(data_temp,fp);
}
}
/*三角波*/
for(unit=0;unit<=50;unit++)
{
for(loop=0;loop<4;loop++)
{
data_temp=(int)((float)loop*unit*1.275);
putc(data_temp,fp);
}
for(loop=4;loop<8;loop++)
{
switch(loop)
{
case 4:
data_temp=(int)(5.1*unit);
putc(data_temp,fp);
break;
case 5:
data_temp=(int)(3.825*unit);
putc(data_temp,fp);
break;
case 6:
data_temp=(int)(2.55*unit);
putc(data_temp,fp);
break;
case 7:
data_temp=(int)(1.275*unit);
putc(data_temp,fp);
break;
}
}
}
for(unit=51;unit<=63;unit++)
{
for(loop=0;loop<8;loop++)
{
data_temp=128;
putc(data_temp,fp);
}
}
/*锯齿波*/
for(unit=0;unit<=50;unit++)
{
for(loop=0;loop<8;loop++)
{
data_temp=(int)(0.6375*(float)unit*loop);
putc(data_temp,fp);
}
}
for(unit=51;unit<=63;unit++)
{
for(loop=0;loop<8;loop++)
{
data_temp=128;
putc(data_temp,fp);
}
}
fclose(fp);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?