free性丰满hd毛多多,久久综合给合久久狠狠狠97色69 ,欧美成人乱码一区二区三区,国产美女久久久亚洲综合,7777久久亚洲中文字幕

0
問答首頁 最新問題 熱門問題 等待回答標(biāo)簽廣場
我要提問

AD7731應(yīng)用

現(xiàn)要用AD7731芯片,采集DC0.5V~2.45V之間的電壓,我接的電路圖如下,但對AD7731的應(yīng)用不是很明確,初次使用24位AD芯片,在網(wǎng)上尋找相關(guān)資源也沒有,其中有幾點(diǎn)不明確的地方:如下,請大家?guī)兔Ψ治鲆幌?br/>1.我所采集的電壓范圍,按我的接圖方式可行不,我看手冊中,如果AIN-是+2.5V,AD7731的模擬輸入電壓范圍是0~±1.28v,則AIN+輸入的模擬輸入范圍是1.22~3.78v.所以,我將AIN-=1.316V左右,AD7731的模擬輸入電壓范圍是0~±1.28v
??則AIN+輸入的模擬輸入范圍是0.036~2.596v,這樣應(yīng)用是否可以,不知我理解的對否。
2.我寫了AD7731的C程序,初始化,寫入、讀出和讀AD轉(zhuǎn)換結(jié)果的函數(shù),想請大家批閱以下,是否正確。我這邊測試采集不到電壓,實(shí)在找不出問題了。
//==============AD7731初始化
void Ad7731_Ini(void)
{
? ? WriteByte_AD7731(0x03);/* 寫通信寄存器,下一次對濾波寄存器進(jìn)行操作*/

? ? WriteByte_AD7731(0x80);//設(shè)置濾波寄存器,50HZ的輸出頻率
? ? WriteByte_AD7731(0x00);
? ? WriteByte_AD7731(0x10);//設(shè)置濾波寄存器,CHOP使能,交換模式


? ? WriteByte_AD7731(0x02);
? ? /* 寫通信寄存器,下一次對模式寄存器進(jìn)行操作*/
? ? WriteByte_AD7731(0xa1);//內(nèi)部滿刻度校正,雙極性操作
? ? WriteByte_AD7731(0x74);//0~±1.28v輸入范圍,基準(zhǔn)電壓2.5v
? ? /*寫模式寄存器初始化內(nèi)部滿刻度校正是0~±1.28v輸入范圍,基準(zhǔn)電壓2.5v*/
? ? while(AD7731_rdy);//等待RDY膠變低,表明校正周期結(jié)束

? ? WriteByte_AD7731(0x02);/* 寫通信寄存器,下一次對模式寄存器進(jìn)行操作*/
? ? WriteByte_AD7731(0x81);//內(nèi)部零刻度校正,雙極性操作
? ? WriteByte_AD7731(0x74);//0~±1.28v輸入范圍,基準(zhǔn)電壓2.5v
? ? /* 寫模式寄存器初始化內(nèi)部零刻度校正是0~±1.28v輸入范圍,基準(zhǔn)電壓2.5v*/
? ? while(AD7731_rdy);//等待RDY膠變低,表明校正周期結(jié)束


? ? WriteByte_AD7731(0x02);
? ? /* Writes to Communications Register Setting Next Operation as Write to Mode Register*/
? ? WriteByte_AD7731(0x21);//連續(xù)轉(zhuǎn)換模式,選擇數(shù)據(jù)寄存器的24位字長度
? ? WriteByte_AD7731(0x74);
? ? /* 寫模式寄存器對0~±1.28v輸入范圍開始連續(xù)轉(zhuǎn)換*/
? ? while(AD7731_rdy);
? ? /* Wait for RDY pin to go low to indicate end of calibration cycle*/

}
//==============AD7731寫寄存器
void WriteByte_AD7731(uchar WriteData)? ???//AD7731寫寄存器
{
uchar i,temp;
AD7731_sclk=1;
temp=0x80;
for(i=0;i<8;i++)
??{
? ? AD7731_sclk=0;
? ? //AD7730_drdy=0;
? ? if((WriteData&0x80)==1)//取出最高位,51 單片機(jī)先輸出LSB
? ?
AD7731_din_dout=1;
? ? else
? ?
AD7731_din_dout=0;

? ???WriteData=WriteData<<1;//取出次高位
? ???AD7731_sclk=1;
??}
??//AD7731_din_dout=0;
}
//==============AD7731讀寄存器
uchar ReadByte_Ad7731()//讀取AD7731的一個(gè)字節(jié)
{
uchar i;
uint ReadData=0;

//AD7731_sclk=0;
AD7731_din_dout=0;
for(i=0;i<24;i++)
? ?{
? ???AD7731_sclk=0;
? ???if(AD7731_din_dout==0)
? ???
ReadData=ReadData<<1;
? ???else//(AD7731_din_dout)
? ???{
? ???ReadData=ReadData<<1;
? ???ReadData=ReadData+0x01;
? ???}
? ???AD7731_sclk=1;
? ?}
??return(ReadData);
}
/********讀AD轉(zhuǎn)換結(jié)果***********/
long ReadAd7731ConverData(void)
{
? ?long ConverData;
? ?WriteByte_AD7731(0x11);//寫通信寄存器,下一個(gè)操作從數(shù)據(jù)寄存器單次讀轉(zhuǎn)換結(jié)果
? ?AD7731_din_dout=0;
? ?while(AD7731_rdy)
? ?/* Wait for RDY pin to go low to indicate end of calibration cycle等待DRY信號*/
? ?{
??if(!AD7731_rdy)
??{
? ?? ?ConverData=0;
? ?? ?ConverData=ReadByte_Ad7731();
? ?? ?ConverData=ConverData<<8;
? ?? ?ConverData=ReadByte_Ad7731()+ConverData;
? ?? ?ConverData=ConverData<<8;
? ?? ?ConverData=ReadByte_Ad7731()+ConverData;
??}
??/* Read Conversion Result from AD7731's Data Register讀取轉(zhuǎn)換結(jié)果*/
? ?}
? ?WriteByte_AD7731(0x30);
? ?/* Ends Continuous Read Operation and Places Part in Mode Where It
? ?Expects Write to Communications Register結(jié)束讀操作,使器件處于寫通信寄存器所希望的模式*/
? ?return(ConverData);
}
提問者:st94wo 地點(diǎn):- 瀏覽次數(shù):4464 提問時(shí)間:04-21 09:29
我有更好的答案
提 交
撰寫答案
提 交
1 / 3
1 / 3