正弦波信号处理程序,模数转换然后求峰峰值,有错误不知道怎么改求指教~
#include <reg52.H>#define uint unsigned int
#define uchar unsigned char
sbit ledlk=P2^5;
sbit smglk=P2^7;
sbit smgbitlk=P2^6;
sbit dian=P0^7;
sbit rd=P3^7;
sbit wr=P3^6;
void showsmg(uchar smg,uchar value)
{
uchar code tablesmg[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
uchar code table[]={ 0x3f , 0x06 ,0x5b , 0x4f , 0x66 , 0x6d , 0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 0x39 , 0x5e , 0x79 , 0x71 , 0x00};
smglk=1;
P0=tablesmg[smg];
smglk=0;
smgbitlk=1;
P0=table[value];
smgbitlk=0;
delay(8);
}
void csad1()
{
smglk=1;
P0=0xc0;//AD的cs端至1 继电器控制端给1 不开
smglk=0;
}
void csad0()
{
smglk=1;
P0=0x40;//AD的cs端至0 继电器控制端给1 不开
smglk=0;
}
void start()
{
csad1();
wr=1;
csad0();
wr=0;
wr=1;
csad1();
}
void main()
{
uchar i;
uint a=0,b=0,c=0,d=0,e=0,f=0;
while(1)
{
ledlk=0;
start();
csad1();
rd=1;
csad0();
rd=0;
i=~P1;
tablenum[a]=i;
a++;
rd=1;
csad1();
//存储
}
for(b=c;b<a;b++)
for(c=1;c<a;c++)
if(tablenum[c]>tablenum[c-1]&&tablenum[c+1])
{
tablemax[d]=tablenum[c];
d++;
break;
}
for(e=0;e<d;e++)
{
tablesave[e]=tablemax[e+1]-tablemax[e];
showsmg(0,/100);
showsmg(1,tablesave[e]%100/10);
showsmg(2,tablesave[e]%100%10);
}
}
求指教啊~
啊~