資源簡介
AD5420的STC單片機C語言驅(qū)動,已調(diào)試通過
代碼片段和文件信息
#include?“AD5420.h“
/*
輸入移位寄存器位24位
由8位地址位和24位數(shù)據(jù)組成
在SCLK的上升沿MSB開始被載入
最高30MHz通信速率
LANCH位高電平時鎖存數(shù)據(jù)
在LANCH為高電平期間所有輸入數(shù)據(jù)無效
如果SCLK脈沖數(shù)量不足或者多于24個置位LANCH數(shù)據(jù)同樣無效
數(shù)據(jù)輸出在AD5420的SDO引腳上輸出
*/
//用戶函數(shù)
//初始化
void?ad5420_init()
{
??unsigned?char?buf[3];
??
??AD5420_clear=0; //復(fù)位引腳清零
??AD5420_sclk?=0;
??AD5420_sdin?=0;
??
??AD5420_latch=0;
??ad5420_delay(10);
??AD5420_latch=1;
??ad5420_delay(10);
??AD5420_latch=0; ???//產(chǎn)生LANCH的脈沖清除移位寄存器中多余的數(shù)據(jù)
??buf[2]?=?ADDRESS_RESET; //復(fù)位寄存器
??buf[1]?=?0x00;?????????????? //DATA_High_8bit----Disable?Slew?Rate
??buf[0]?=?0x01; //DATA_LOW_8bit
??WriteToAD5420(buf); ???? //Write?551005?to?SHIFT?REGISTER??to?write?1005?to?control?register
??ad5420_delay(100);
??
??
??buf[2]?=?ADDRESS_CONTROL; //控制寄存器
??buf[1]?=?0x3F;?????????????? //DATA_High_8bit----Disable?Slew?Rate
??buf[0]?=?0x15; //DATA_LOW_8bit
??WriteToAD5420(buf); ???? //Write?551005?to?SHIFT?REGISTER??to?write?1005?to?control?register
}
void?ad5420_setValue(unsigned?int?value)
{
?unsigned?char?buf[3];
??AD5420_clear=0; //復(fù)位引腳清零
??AD5420_sclk?=0;
??AD5420_sdin?=0;
??AD5420_latch=0;
??ad5420_delay(10);
??AD5420_latch=1;
??ad5420_delay(10);
??AD5420_latch=0; ???//產(chǎn)生LANCH的脈沖清除移位寄存器中多余的數(shù)據(jù)
?
?buf[2]?=?ADDRESS_DATA; //數(shù)據(jù)寄存器
?buf[1]?=?value>>8; //DATA_High_8bit
?buf[0]?=?value; //DATA_LOW_8bit
?WriteToAD5420(buf); ??? //Write?01?99?66H?to?SHIFT?REGISTER??to?write?99?66?to?DATA?REGISTER
}
//底層函數(shù)
void?ad5420_delay?(unsigned?int?length)
{
while?(length?>0)
???? length--;
}
//---------------------------------
//void?WriteToAD5420(unsigned?char?countunsigned?char?*Buf);
//---------------------------------
//Funct
評論
共有 條評論