資源簡介
利用AD7705芯片制作精度達(dá)到uV級的電壓表

代碼片段和文件信息
/************AD7705初始化及基本應(yīng)用模塊*****************/
#define?uint?unsigned?int
#define?uchar?unsigned?char
sbit?adclk=P1^3;/***時(shí)鐘脈沖***/
sbit?addout=P1^4;/***數(shù)據(jù)輸出的反向脈沖***/
sbit?addin=P1^5;/**數(shù)據(jù)輸入脈沖***/
#define?ch1?1/**輸入通道IN1***/
#define?ch2?2/**輸入通道IN2***/
#define?bipolar?0/**雙極性輸入***/
#define?unipolar?1/**單極性輸入***/
#define?ad_clk_width?1/**串口時(shí)鐘脈沖寬度***/
/**軟件延時(shí)***/
void?wait7705(uint?t)
{
for(;t>0;t--);
}
/**向ad7705寫入一個(gè)字節(jié)***/
void?wbyte7705(uchar?x)
{
uchar?i;
adclk=1;
for(i=0;i<8;i++)
{
adclk=0;
wait7705(ad_clk_width);
addin=(bit)(x?&?0x80);
wait7705(ad_clk_width);
adclk=1;
wait7705(ad_clk_width);
x<<=1;
}
}
/**從ad7705讀一個(gè)字***/
uint?rword7705()
{
uchar?i;
uint?x;
adclk=1;
for(i=0x=0;i<16;i++)
{
adclk=0;
wait7705(ad_clk_width);
x<<=1;
if(!addout)/**光電耦合器反相***/
x|=0x01;
adclk=1;
wait7705(ad_clk_width);
}
return?x;
}
/**ad7705通信端口復(fù)位***/
void?reset7705()
{
uchar?i;
for(i=0;i<35;i++)
{/*多于連續(xù)32個(gè)DIN=1,使端口復(fù)位*/
adclk=0;
wait7705(ad_clk_width);
addin=1;
wait7705(ad_clk_width);
adclk=1;
wait7705(ad_clk_width);
}
}
/**ad7705初始化?輸入通道channel-----1=IN12=IN2;
輸入極性polarity----0=雙極性,1=單極性;
PGA增益gain-----[1248163264128]
非緩沖模式**************/
void?init7705(uchar?channelbit?polarityuchar?gain)
{
uchar?x;
reset7705();/***防止串口失步***/
wbyte7705(0x20);/**寫ch0?clock?register***/
wbyte7705(0x00);/**2.4576MHz?時(shí)鐘,20Hz數(shù)據(jù)更新速率***/
wbyte7705(0x21);/**寫ch1?clock?register***/
wbyte7705(0x00);/**2.4576MHz?時(shí)鐘,20Hz數(shù)據(jù)更新速率***/
if(channel==1)/**com?register選擇下步操作setup?register***/
wbyte7705(0x10);
else
wbyte7705(0x11);
if(polarity)
x=0x04;
else
x=0x00;
switch(gain)
{
case?1:x|=0x40;break;
case?2:x|=0x48;break;
case?4:x|=0x50;break;
case?8:x|=0x58;break;
case?16:x|=0x60;break;
case?32:x|=0x68;break;
case?64:x|=0x70;break;
case?128:x|=0x78;break;
default?:x|=0x40;break;
}
wbyte7705(x);
}
/***讀ad7705轉(zhuǎn)換數(shù)據(jù)?輸入通道channel-----1=IN12=IN2;***/
uint?getdata7705(uchar?channel)
{
if(channel==1)
wbyte7705(0x38);
else
wbyte7705(0x39);
return(rword7705());
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????2322??2011-09-06?22:52??AD7705\7705.c
?????文件???????2551??2011-10-25?18:27??AD7705\7705.h
?????文件??????33142??2011-10-26?02:49??AD7705\AD7705
?????文件???????8780??2011-10-27?00:22??AD7705\AD7705.c
?????文件????????273??2011-09-07?01:18??AD7705\ad7705.h
?????文件??????12119??2011-10-26?02:49??AD7705\AD7705.hex
?????文件?????????45??2011-10-26?02:49??AD7705\AD7705.lnp
?????文件??????30554??2011-10-26?02:49??AD7705\AD7705.LST
?????文件??????44877??2011-10-26?02:49??AD7705\AD7705.M51
?????文件??????37139??2011-10-26?02:49??AD7705\AD7705.OBJ
?????文件???????2381??2011-10-27?00:23??AD7705\AD7705.Opt
?????文件????????159??2011-10-27?00:15??AD7705\AD7705.plg
?????文件???????2145??2011-09-12?21:03??AD7705\AD7705.Uv2
????.......??????2383??2011-10-26?02:53??AD7705\AD7705_Opt.Bak
?????文件???????2145??2011-09-12?20:57??AD7705\AD7705_Uv2.Bak
?????文件???????1588??2011-09-06?23:21??AD7705\buttom4x4.h
?????文件???????2157??2011-10-23?11:45??AD7705\LCD_1602.h
?????文件???????5115??2002-04-16?14:32??AD7705\STARTUP.A51
?????文件??????11679??2011-10-26?02:49??AD7705\STARTUP.LST
?????文件????????749??2011-10-26?02:49??AD7705\STARTUP.OBJ
?????目錄??????????0??2011-10-27?00:23??AD7705
-----------?---------??----------?-----??----
???????????????202303????????????????????21
評論
共有 條評論