用msp430f149控制LDC1000.docx
- 文档编号:4386158
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:9
- 大小:14.86KB
用msp430f149控制LDC1000.docx
《用msp430f149控制LDC1000.docx》由会员分享,可在线阅读,更多相关《用msp430f149控制LDC1000.docx(9页珍藏版)》请在冰豆网上搜索。
用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);
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- msp430f149 控制 LDC1000