请问有关采样和DA转换的问题?我想在单片机中编程模拟一个AD采样后的波形,具体要求如下;
1、模拟的AD转换输入的函数为y=5sin1000π(x-π/2)+2.5,也就是说这个函数的周期
是2ms,并且y=5sinx波形向右移动了一个π/2,且向上移动了一个2。5,也就是波形全部在
x轴的上面和y轴的右边了
2、AD转换过程中采样的频率为8K
不知道怎么模拟编程才是正确的,我编写的程序是;Timer0_process() interrupt 1
{
uchar a;
EA=0;
P1_5=!P1_5; //测验
_nop_();
P1_5=!P1_5;
switch(count)
{
case 0:
{
TH0=0xFA;
TL0=0x9A;
XBYTE[DA_ADDRESS]=B0000_0000;
count++;
}break;
case 1:
case 14:
{
TH0=0xFA;
TL0=0x9A;
XBYTE[DA_ADDRESS]=B0010_0000;
count++;
}break;
case 2:
case 13:
{
TH0=0xFA;
TL0=0x9A;
XBYTE[DA_ADDRESS]=B0100_0000;
count++;
}break;
case 3:
case 12:
{
TH0=0xFA;
TL0=0x9A;
XBYTE[DA_ADDRESS]=B0110_0000 ;
count++;
}break;
case 4:
case 11:
{
TH0=0xFA;
TL0=0x9A;
XBYTE[DA_ADDRESS]=B1000_0000 ;
count++;
}break;
case 5:
case 10:
{
TH0=0xFA;
TL0=0x9A;
XBYTE[DA_ADDRESS]=B1010_0000;
count++;
}break;
case 6:
case 9:
{
TH0=0xFA;
TL0=0x9A;
XBYTE[DA_ADDRESS]=B1100_0000;
count++;
}break;
case 7:
case 8:
{
TH0=0xFA;
TL0=0x9A;
XBYTE[DA_ADDRESS]=B1110_0000;
count++;
}break;
case 15:
{
TH0=0xFA;
TL0=0x9A;
XBYTE[DA_ADDRESS]=B0000_0000;
count=0;
};break;
DOG=!DOG;
_nop_();
DOG=!DOG;
EA=1;
}
}