ad9850 version2 ok.c

来自「个人单片机入门程序集合 。很适合刚学单片机的人。用的是keil proteus」· C语言 代码 · 共 65 行

C
65
字号
//*********************************************************
//File Name  :AD9850.c
//Author     :GHL 
//Date       :2007/8/6
//Desciption :AD9850的控制字串行加载程序
//            
//*********************************************************

#include<reg51.h>
#define uchar unsigned char 
#define uint  unsigned int 

sbit load=P0^1;   //FQUD
sbit sclk=P0^0;   //W_CLK
sbit sdata=P0^2;  //DATA



/*************************AD9850显示正弦波********************************/
AD9850(float freq)
{
   float fw;
    uchar i,j,temp;
   uchar d[5];
   fw=freq*34.359738368;                   //Frequency Word(FW)
                                            //Fout=MCLK*FW/2^32    

   d[0]=(unsigned long)fw;
   d[1]=(unsigned long)fw>>8;
   d[2]=(unsigned long)fw>>16;
   d[3]=(unsigned long)fw>>24;
   d[4]=0;
    load=0; 
    sclk=0;	
    sclk=1;
    sclk=0;
    load=1;
    load=0;
    
    for(i=0;i<5;i++)
    {
        temp=d[i];
        for(j=0;j<8;j++)
    	{
            sclk=0;
            if(temp&1) sdata=1;
            else sdata=0;
            sclk=1;
            temp=temp>>1;
    	 }
      }
      load=1;
      load=0;

}

main()
{
    AD9850(100000);
    while(1);
}
    		


⌨️ 快捷键说明

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