用msp430f149控制LDC1000.docx

上传人:b****6 文档编号:4386158 上传时间:2022-12-01 格式:DOCX 页数:9 大小:14.86KB
下载 相关 举报
用msp430f149控制LDC1000.docx_第1页
第1页 / 共9页
用msp430f149控制LDC1000.docx_第2页
第2页 / 共9页
用msp430f149控制LDC1000.docx_第3页
第3页 / 共9页
用msp430f149控制LDC1000.docx_第4页
第4页 / 共9页
用msp430f149控制LDC1000.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

用msp430f149控制LDC1000.docx

《用msp430f149控制LDC1000.docx》由会员分享,可在线阅读,更多相关《用msp430f149控制LDC1000.docx(9页珍藏版)》请在冰豆网上搜索。

用msp430f149控制LDC1000.docx

用msp430f149控制LDC1000

TILDC1000驱动程序

#include"msp430f149.h"

#defineLDC1000_CS_LP3OUT&=~BIT0//片选#defineLDC1000_CS_HP3OUT|=BIT0#defineLDC1000_CLK_LP3OUT&=~BIT3//CLK#defineLDC1000_CLK_HP3OUT|=BIT3

#defineLDC1000_OUT_LP3OUT&=~BIT1//DataOut#defineLDC1000_OUT_HP3OUT|=BIT1

#defineLDC1000_IN(P3IN&BIT2)//DataIn

voidInit_LDC1000_Port()

{

P3DIR|=BIT0+BIT1+BIT3;//P3.0,P3.1,P3.3P3DIR&=~BIT2;//P3.2LDC1000_CS_H;

LDC1000_CLK_L;

LDC1000_OUT_H;

}

voidLDC1000_WriteData(ucharaddress,uchardata){

uchari=0;

uchartemp=0;

temp=address;

LDC1000_CS_L;

LDC1000_CLK_L;

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

if(temp&0x80)

{

LDC1000_OUT_H;

}

else

{

LDC1000_OUT_L;

}

LDC1000_CLK_H;

temp=temp<<1;

}

temp=data;

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

if(temp&0x80)

{

LDC1000_OUT_H;

}

else

{

LDC1000_OUT_L;

}

LDC1000_CLK_H;

temp=temp<<1;

}

LDC1000_CLK_L;

LDC1000_CS_H;

}

uintLDC1000_ReadData(ucharaddress,unsignedlong*f)

{

uchari=0;

uchartemp=0;

uintrp1=0,rp2=0;

uintf1=0,f2=0;

unsignedlongf3=0;

temp=address;

temp=temp|0x80;

LDC1000_CS_L;

LDC1000_CLK_L;

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

if(temp&0x80)

{

LDC1000_OUT_H;

}

else

{

LDC1000_OUT_L;

}

LDC1000_CLK_H;

temp=temp<<1;

}

LDC1000_OUT_L;

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

_NOP();

rp1|=(LDC1000_IN>>2)<<(7-i);

LDC1000_CLK_H;

}

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

_NOP();

rp2|=(LDC1000_IN>>2)<<(7-i);

LDC1000_CLK_H;

}

rp2=(rp2<<8)+rp1;

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

_NOP();

f1|=(LDC1000_IN>>2)<<(7-i);

LDC1000_CLK_H;

}

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

_NOP();

f2|=(LDC1000_IN>>2)<<(7-i);

LDC1000_CLK_H;

}

f2=(f2<<8)+f1;

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

_NOP();

f3|=(LDC1000_IN>>2)<<(7-i);

LDC1000_CLK_H;

}

f3=(f3<<16)+f2;

*f=f3;

LDC1000_CLK_L;

LDC1000_CS_H;

returnrp2;

}

voidInit_LDC1000_R(void)

{

Init_LDC1000_Port();

LDC1000_WriteData(0x01,0x0A);//250kLDC1000_WriteData(0x02,0x3B);//2.4k

LDC1000_WriteData(0x03,241);//lowfrequencyLDC1000_WriteData(0x04,0x17);//4V,6144LDC1000_WriteData(0x05,0x00);//TBCLK

LDC1000_WriteData(0x06,0x50);

LDC1000_WriteData(0x07,0xC3);//50k

LDC1000_WriteData(0x08,0x88);

LDC1000_WriteData(0x09,0x13);//5k

LDC1000_WriteData(0x0A,0x04);//DRDYBmode

LDC1000_WriteData(0x0B,0x01);//Poweron

}

if(temp&0x80);LDC1000_OUT_H;;else;LDC1000_OUT_L;;LDC1000_CLK_H;;temp=temp<<1;;temp=data;;for(i=0;i<8;i++);LDC1000_CLK_L;;if(temp&0x80);LDC1000_OUT_H;;else;LDC1000_

if(temp&0x80)

{

LDC1000_OUT_H;

}

else

{

LDC1000_OUT_L;

}

LDC1000_CLK_H;

temp=temp<<1;

}

temp=data;

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

if(temp&0x80)

{

LDC1000_OUT_H;

}

else

{

LDC1000_OUT_L;

}

LDC1000_CLK_H;

temp=temp<<1;

}

LDC1000_CLK_L;

LDC1000_CS_H;

}

uintLDC1000_ReadData(ucharaddress,unsignedlong*f)

{

uchari=0;

uchartemp=0;

uintrp1=0,rp2=0;

uintf1=0,f2=0;

unsignedlongf3=0;

temp=address;

temp=temp|0x80;

LDC1000_CS_L;

LDC1000_CLK_L;

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

if(temp&0x80)

{

LDC1000_OUT_H;

}

else

{

LDC1000_OUT_L;

}

LDC1000_CLK_H;

temp=temp<<1;

}

LDC1000_OUT_L;

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

_NOP();

rp1|=(LDC1000_IN>>2)<<(7-i);

LDC1000_CLK_H;

}

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

_NOP();

rp2|=(LDC1000_IN>>2)<<(7-i);

LDC1000_CLK_H;

}

rp2=(rp2<<8)+rp1;

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

_NOP();

f1|=(LDC1000_IN>>2)<<(7-i);

LDC1000_CLK_H;

}

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

_NOP();

f2|=(LDC1000_IN>>2)<<(7-i);

LDC1000_CLK_H;

}

f2=(f2<<8)+f1;

for(i=0;i<8;i++)

{

LDC1000_CLK_L;

_NOP();

f3|=(LDC1000_IN>>2)<<(7-i);

LDC1000_CLK_H;

}

f3=(f3<<16)+f2;

*f=f3;

LDC1000_CLK_L;

LDC1000_CS_H;

returnrp2;

}

voidInit_LDC1000_R(void)

{

Init_LDC1000_Port();

LDC1000_WriteData(0x01,0x0A);//250k

LDC1000_WriteData(0x02,0x3B);//2.4k

LDC1000_WriteData(0x03,241);//lowfrequencyLDC1000_WriteData(0x04,0x17);//4V,6144

LDC1000_WriteData(0x05,0x00);//TBCLK

LDC1000_WriteData(0x06,0x50);

LDC1000_WriteData(0x07,0xC3);//50k

LDC1000_WriteData(0x08,0x88);

LDC1000_WriteData(0x09,0x13);//5k

LDC1000_WriteData(0x0A,0x04);//DRDYBmode

LDC1000_WriteData(0x0B,0x01);//Poweron

}

voidmain()

{

WDTCTL=WDTPW+WDTHOLD;

volatileunsignedinti;

BCSCTL1&=~XT2OFF;//开启高频晶振,XT2=8MHZdo

{

IFG1&=~OFIFG;//ClearOSCFaultflagfor(i=0xFF;i>0;i--);//Timeforflagtoset}

while((IFG1&OFIFG));

BCSCTL2|=SELM1+SELS;//MCLK=SMCLK=XT2=8MHZP5SEL|=BIT4;

P5DIR|=BIT4;

unsignedintrp=0;

unsignedlongf=0;

while

(1)

{

rp=LCD1000_ReadData(0x21,&f);

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1