⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9851.c

📁 超级经典!紧密结合9851的英文文档进行51单片机对AD9851的控制
💻 C
字号:
#include <reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char

#define DATA P1
sbit FQUD=P3^2;
sbit WCLK=P3^3;
sbit RST=P3^4;
uchar code Frequency[41][5]={
{0,0,0x0D,0x1B,0x71},{0,0,0x0D,0x53,0x5E},{0,0,0x0D,0x8B,0x4B},{0,0,0x0D,0xC3,0x37},{0,0,0x0D,0xFB,0x24},
{0,0,0x0E,0x33,0x10},{0,0,0x0E,0x6A,0xFD},{0,0,0x0E,0xA2,0xE9},{0,0,0x0E,0xDA,0xD6},{0,0,0x0F,0x12,0xC2},
{0,0,0x0F,0x4A,0xAF},{0,0,0x0F,0x82,0x9C},{0,0,0x0F,0xBA,0x88},{0,0,0x0F,0xF2,0x75},{0,0,0x10,0x2A,0x61},
{0,0,0x10,0x62,0x4E},{0,0,0x10,0x9A,0x3A},{0,0,0x10,0xD2,0x27},{0,0,0x11,0x0A,0x13},{0,0,0x11,0x42,0x00},
{0,0,0x11,0x79,0xED},{0,0,0x11,0xB1,0xD9},{0,0,0x11,0xE9,0xC6},{0,0,0x12,0x21,0xB2},{0,0,0x12,0x59,0x9F},
{0,0,0x12,0x91,0x8B},{0,0,0x12,0xC9,0x78},{0,0,0x13,0x01,0x65},{0,0,0x13,0x39,0x51},{0,0,0x13,0x71,0x3E},
{0,0,0x13,0xA9,0x2A},{0,0,0x13,0xE1,0x17},{0,0,0x14,0x19,0x03},{0,0,0x14,0x50,0xF0},{0,0,0x14,0x88,0xDC},
{0,0,0x14,0xC0,0xC9},{0,0,0x14,0xF8,0xB6},{0,0,0x15,0xC0,0xA2},{0,0,0x15,0x68,0x8F},{0,0,0x15,0xA0,0x7B},
{0,0,0x15,0xD8,0x68}};			 //6~10Khz的频率控制字
uchar a[5] ={0x09,0x0e,0x38,0xe3,0x8e};               //{0x09,0x0e,0x38,0xe3,0x8e}; //10Khz频率控制字
uchar i;
void delay(uint z)	 //延时程序
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);
}
void Write_Word(uchar *a)    //写正弦表:约
{
     RST=0;
     RST=1;
     RST=1;
     RST=0;
     FQUD=0;
     WCLK=0;	 
     for(i=0;i<5;i++)
     { 
	      DATA = a[i];
	      WCLK=1;
	      WCLK=0;
     }
     FQUD=1;
}
void up_freq(uchar ch)
{
	FQUD=0;
	WCLK=0;
	P0=Frequency[ch][0];
	WCLK=1;
	_nop_();
	WCLK=0;
	P0=Frequency[ch][1];
	WCLK=1;
	_nop_();
	WCLK=0;
	P0=Frequency[ch][2];
	WCLK=1;
	_nop_();
	WCLK=0;
	P0=Frequency[ch][3];
	WCLK=1;
	_nop_();
	WCLK=0;
	P0=Frequency[ch][4];
	WCLK=1;
	_nop_();
	WCLK=0;
	_nop_();
	FQUD=1;
}
void autoupfreq(void)
{
	*a=Frequency[20][i];
//	for(i=0;i<41;i++)
//	{
		Write_Word(a);
		delay(1000);
		delay(1000);
		delay(1000);
		delay(1000);	
//	}
}
/*void powerdown()
{
    RST=0;
    RST=1;
    RST=1;
    RST=0;
    FQUD=0;
    WCLK=0;	 
	DATA =0x04;
	WCLK=1;
	WCLK=0;
     FQUD=1;
}	 */

void main(void)
{
    Write_Word(a);
	delay(1000);
	delay(1000);
//	autoupfreq();
    while(1);
}



⌨️ 快捷键说明

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