锁相放大器设计(4)

2020-04-21 00:33

#define channel_0 0 //表示选择通道0 #define channel_1 1 //表示选择通道1 #define channel_2 2 //表示选择通道2 #define channel_3 3 //表示选择通道2 uchar jieguo[5]; uchar dianya[3]; /////////////////////////////////

//12864 1接地 2接vcc 3和18接电位器 (3---18 ) 19接vcc 20接地 #define CS BIT0

//P2.0 片选端 //P2.1 数据口

//P2.2 时钟口

#define SID BIT1

#define SCLK BIT2 uchar f[10]; int c;

//#define PSB BIT3 //P2.3 PSB=0,串行;PSB=1,并行

int ad,i=1010,j=0,date,p=0,a=0,n=0,w=0;

double a1,a2=0,a3=0;

// 函数名称 :void DAC_TLV5618(unsigned int Dignum) // 函数功能 :进行DA转换

//=============================================================

// 入口参数 :Dignum:根据说明设置转化数据,头四位为特殊位用于选择转化方式,

// 以及用于通道选择.请自行设置.后12位为需要转换的值 // 出口参数 :无

void DAC_TLV5618( unsigned int Dignum ) {

unsigned int Dig=0; unsigned char i=0; SCLK_H;

CS_L; // Chip Enable

for(i=0;i<16;i++) // Write 16_Bits Datas {

Dig=Dignum&0x8000;

15

//=============================================================

} SCLK_H;

CS_H; // Chip Disenable }

// 函数名称 :void Write_A_B( float Analog_A , float Analog_B , // unsigned char Channal,unsigned char Mode ) // 函数功能 :模式、通道选择并进行DA转换 // 入口参数 :Analog_A:A通道转换的电压值 // Analog_B:B通道转换的电压值

// Channal:通道选择,其值为Channal_A,Channal_B,或Channal_AB // Model:速度控制位 0:slow mode 1:fast mode // 出口参数 :无

//说明: 范围为:0—0x0fff

// 本程序如果只需要一个通道时,另外一个通道的值可任意,但是不能缺省

void Write_A_B( float Analog_A , float Analog_B ,

unsigned char Channal,unsigned char Mode ) {

unsigned int Data_A = 0, Data_B = 0; unsigned int tmp = 0;

//Analog_A=2*Vref*(Data_A/0x1000) 822

16

if(Dig) } else { } SCLK_L; _NOP();

DIN_L;

{

DIN_H;

Dignum<<=1; SCLK_H; _NOP();

//=============================================================

//=============================================================

{ }

void Delay_Nms(uint n) { uint i;

for(i = n;i > 0;i--) Delay_1ms(); }

void Write_Cmd(uchar cmd) {

uchar flag;

P2DIR|=CS+SCLK+SID;

P2OUT&=~(CS+SCLK+SID);//P2OUT=0; uchar i; uchar i_data;

17

Data_A = (unsigned int)( Analog_A * 1000 ) ; Data_B = (unsigned int)( Analog_B * 1000 ) ; if( Mode ) tmp=0x4000; else

tmp=0x0000; switch( Channal ) {

case Channal_A: DAC_TLV5618( tmp | 0x8000 | ( 0x0fff & case Channal_B: DAC_TLV5618( tmp | 0x0000 | ( 0x0fff & case Channal_AB:DAC_TLV5618( tmp | 0x1000 | ( 0x0fff & DAC_TLV5618( tmp | 0x8000 | ( 0x0fff & default:break; } }

Data_A ) );break; Data_B ) );break; Data_B ) ); Data_A ) );break;

void Delay_1ms(void)

uchar i;

for(i = 150;i > 0;i--) _NOP();

i_data=0xf8;

P2OUT|=CS; //CS=1;= for(i=0;i<8;i++) { flag=SID&((i_data&0x80)>>6); if(flag!=0)P2OUT|=SID; else P2OUT&=~SID;

P2OUT&=~SCLK; //SCLK=0; P2OUT|=SCLK; //SCLK=1; i_data=i_data<<1;

}

i_data=cmd; i_data&=0xf0; for(i=0;i<8;i++) { flag=SID&((i_data&0x80)>>6); if(flag)P2OUT|=SID; else P2OUT&=~SID;

P2OUT&=~SCLK; //SCLK=0; P2OUT|=SCLK; //SCLK=1; i_data=i_data<<1;

}

i_data=cmd; i_data=i_data<<4; for(i=0;i<8;i++) { flag=SID&((i_data&0x80)>>6); if(flag)P2OUT|=SID; else P2OUT&=~SID;

P2OUT&=~SCLK; //SCLK=0; P2OUT|=SCLK; //SCLK=1; i_data=i_data<<1;

}

P2OUT&=~CS; //CS=0; Delay_Nms(10);

18

}

void Write_Data(uchar dat) { uchar flag;

P2DIR|=CS+SCLK+SID;

P2OUT&=~(CS+SCLK+SID);//P2OUT=0; //P2OUT&=~PSB; //PSB=0; uchar i; uchar i_data; i_data=0xfa;

P2OUT|=CS; //CS=1; for(i=0;i<8;i++) { flag=SID&((i_data&0x80)>>6); if(flag)P2OUT|=SID; else P2OUT&=~SID;

P2OUT&=~SCLK; //SCLK=0; P2OUT|=SCLK; //SCLK=1; i_data=i_data<<1;

}

i_data=dat; i_data&=0xf0; for(i=0;i<8;i++) { flag=SID&((i_data&0x80)>>6); if(flag)P2OUT|=SID; else P2OUT&=~SID;

P2OUT&=~SCLK; //SCLK=0; P2OUT|=SCLK; //SCLK=1; i_data=i_data<<1;

}

i_data=dat; i_data=i_data<<4; for(i=0;i<8;i++)

{

19


锁相放大器设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:道路排水工程施工组织设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: