ad9851.c

来自「12位ad转换程序」· C语言 代码 · 共 64 行

C
64
字号
//在每次发数之前都要进行RESET.这个已经包含在Datasend函数里了。
#include"SPCE061V004.H"
extern long int k;//k为频率关键字
//////////////////////////////////////////////////////////////////////////// 
void datasend(void)    
 { 
   unsigned int a,b,c,d;//为k的各个位值
   
   
   a=k&255;//取得个位上的数据
   b=(k>>8)&255;
   c=(k>>16)&255;
   d=(k>>24)&255; 
   
   a=a<<8;//为了能有IO口直接与或
   b=b<<8;
   c=c<<8;
   d=d<<8;
    *P_IOB_Data|=0x0040;//reset=1
    *P_IOB_Data&=0xffbf;//reset=0
    *P_IOB_Data&=0xffef;//W_CLK=0
    *P_IOB_Data|=0x0020;//FQ_UD=1
    *P_IOB_Data&=0xffdf;//FQ_UD=0
    {   *P_IOB_Data&=0x09ff;//WO
        *P_IOB_Data|=0x0900;
        
        *P_IOB_Data|=0x0010;//W_CLK=1
        *P_IOB_Data&=0xffef;//W_CLK=0   
    }
    {     *P_IOB_Data|=d;
         d=d|0x00ff;//为了能与
        *P_IOB_Data&=d;//W1
        
        *P_IOB_Data|=0x0010;//W_CLK=1
        *P_IOB_Data&=0xffef;//W_CLK=0   
    }
    { *P_IOB_Data|=c;
         c=c|0x00ff;//为了能与
        *P_IOB_Data&=c;//W2
       
       *P_IOB_Data|=0x0010;//W_CLK=1
       *P_IOB_Data&=0xffef;//W_CLK=0   
    }
    { *P_IOB_Data|=b;
         b=b|0x00ff;//为了能与
        *P_IOB_Data&=b;//W3
     
        *P_IOB_Data|=0x0010;//W_CLK=1
        *P_IOB_Data&=0xffef;//W_CLK=0
    }
    {   *P_IOB_Data|=a;
         a=a|0x00ff;//为了能与
        *P_IOB_Data&=a;//W4
        
        *P_IOB_Data|=0x0010;//W_CLK=1
        *P_IOB_Data&=0xffef;//W_CLK=0 
    }
     *P_IOB_Data|=0x0020;//FQ_UD=1. enable data
     *P_IOB_Data&=0xffdf;//FQ_UD=0
    
    
    
 }
  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?