#include<12C5A60S2.h>
#include<intrins.h>
sbit din = P3^4;
sbit sclk = P3^5;
sbit cs = P3^6;
sbit fs = P3^7;
void TLV5636_WriteData(unsigned int da);
void TLV5636_Init(void);
void TLV5636_DA_Transform(unsigned int da);
unsigned int code da[]= {0x800,0x98f,0xb0f,0xc71,0xda7,0xea6,0xf63,0xfd8,0xfff,0xfd9,
0xf64,0xea8,0xda9,0xc74,0xb12,0x992,0x803,0x673,0x4f3,0x391,
0x25a,0x15b,0x9d,0x28,0x0,0x26,0x99,0x156,0x253,0x389,0x4ea,0x66a
};
/**********************主程序(產生正弦波)*********************/
void main()
{
unsigned char i;
TLV5636_Init();
while(1)
{
for(i=0; i<32; i++)
{
TLV5636_DA_Transform(da[i]);
}
}
}
/************************向TLV5636寫16位數據*************************/
void TLV5636_WriteData(unsigned int da)
{
unsigned char i;
cs=1;
fs=1;
cs=0;
_nop_();
fs=0;
sclk=1;
for(i=0; i<16; i++)
{
if(da&0x8000)
{
din=1;
}
else
{
din=0;
}
_nop_();
da<<=1;
sclk=0;
sclk=1;
}
fs=1;
cs=1;
}
/******************************初始化5636*************************/
void TLV5636_Init(void)
{
TLV5636_WriteData(0xd002); //初始化設置爲快速模式,內部2.048V基準電壓
}
/****************************DA轉換函數**************************/
void TLV5636_DA_Transform(unsigned int da)
{
da&=0x0fff; //屏蔽高四位
da|=0x4000;
TLV5636_WriteData(da);
}
AD模塊TLV5615/TLV5636
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.