枭龙战机

AD9833 写入16位字节程序

0
阅读(2348)

void Write_16bit_One(UNCHAR  Char_1,UNCHAR Char_2, UNCHAR Which_AD9833_CS)
{
UNCHAR i,t;
AD9833_SCLK = 1;
switch(Which_AD9833_CS) //确定片选
{
case 1:
P1=~0x80; break;
case 2:
P1=~0x40; break;
case 3:
P1=~0x20; break;
case 4:
P1=~0x10; break;
case 5:
P1=~0x08; break;
case 6:
P1=~0x04; break;
default:
P1=~0x00; break;
}
for(i=0;i<8;i++)
{
if((Char_1<<i) &0x80)//确定SDATA上的数据
{
AD9833_SDATA = 1;
}
else
{
AD9833_SDATA = 0;
}
AD9833_SCLK = 0;
for(t=0;t<20;t++);
AD9833_SCLK = ~AD9833_SCLK;//在下降沿写?AD9833_Delay();
  //_nop_(); AD9833_Delay();
for(t=0;t<10;t++);
}
for(i=0;i<8;i++)
{
if((Char_2<<i) &0x80)//确定SDATA上的数据
{
AD9833_SDATA = 1;
}
else
{
AD9833_SDATA = 0;
}
AD9833_SCLK = 0;
for(t=0;t<20;t++);
AD9833_SCLK = ~AD9833_SCLK;//在下降沿写?AD9833_Delay();
  //_nop_(); AD9833_Delay();
for(t=0;t<10;t++);
}
P1 = 0xff;
}
/******************向所有AD9833  写入一个16字节******************/
void Write_16bit_All(UNINT AD9833_16_Data)
{
UNCHAR t,i;
i = 8;
AD9833_SCLK = 1;
P1 = 0xff;  //片选
P1 = 0x03;
for(i=0;i<16;i++)
{
if((AD9833_16_Data<<i) &0x8000)//确定SDATA上的数据
{
AD9833_SDATA = 1;
}
else
{
AD9833_SDATA = 0;
}
AD9833_SCLK = 0;
for(t=0;t<20;t++);
AD9833_SCLK = ~AD9833_SCLK;//在下降沿写?AD9833_Delay();
  //_nop_(); AD9833_Delay();
for(t=0;t<10;t++);
while (--t != 0);
}
P1 = 0xff; //片选拉高
Delay_N_MCLK(8);
}