資源簡介
AD5420的STC單片機C語言驅動,已調試通過
代碼片段和文件信息
#include?“AD5420.h“
/*
輸入移位寄存器位24位
由8位地址位和24位數據組成
在SCLK的上升沿MSB開始被載入
最高30MHz通信速率
LANCH位高電平時鎖存數據
在LANCH為高電平期間所有輸入數據無效
如果SCLK脈沖數量不足或者多于24個置位LANCH數據同樣無效
數據輸出在AD5420的SDO引腳上輸出
*/
//用戶函數
//初始化
void?ad5420_init()
{
??unsigned?char?buf[3];
??
??AD5420_clear=0; //復位引腳清零
??AD5420_sclk?=0;
??AD5420_sdin?=0;
??
??AD5420_latch=0;
??ad5420_delay(10);
??AD5420_latch=1;
??ad5420_delay(10);
??AD5420_latch=0; ???//產生LANCH的脈沖清除移位寄存器中多余的數據
??buf[2]?=?ADDRESS_RESET; //復位寄存器
??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; //復位引腳清零
??AD5420_sclk?=0;
??AD5420_sdin?=0;
??AD5420_latch=0;
??ad5420_delay(10);
??AD5420_latch=1;
??ad5420_delay(10);
??AD5420_latch=0; ???//產生LANCH的脈沖清除移位寄存器中多余的數據
?
?buf[2]?=?ADDRESS_DATA; //數據寄存器
?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
}
//底層函數
void?ad5420_delay?(unsigned?int?length)
{
while?(length?>0)
???? length--;
}
//---------------------------------
//void?WriteToAD5420(unsigned?char?countunsigned?char?*Buf);
//---------------------------------
//Funct
評論
共有 條評論