我最近在用mega16做一個RLC測量儀,具體思路就是AD9850產(chǎn)生正弦信號,然后CD4051的I/O端接8個標(biāo)準(zhǔn)電阻,在他們的共同輸出端接待測元件,TLC2543采集電壓進行模數(shù)轉(zhuǎn)化,送入單片機計算,LCD顯示讀數(shù)。但是無法達到測量的效果。
簡化一下原理就是
簡述原理.png (4.36 KB, 下載次數(shù): 101)
下載附件
2015-6-4 20:34 上傳
這樣,下面是我電阻測量顯示的子代碼
void dianzu(void) //1602顯示電阻值;包含量程自動轉(zhuǎn)換;
{
uchar m;
uint a,b,c,d,e;
LCD_Write_str(0,0,u0);
LCD_Write_str(1,0,u1); //顯示'D W''Value';
//R = U2 * sd[K] / (U1-U2); //待測電阻的計算公式,單位:歐姆;
//R = U * sd[K-1] / (1.838478-U); //注意:提供信號的有效值得精確測量;
R = U * sd[K-1] / (1.76777-U);
m=1;
if(R>=1000)
{
R = R/1000.000; //顯示部分單位為K;
m=2;
if(R>=1000)
{
R = R/1000.000;//顯示部分單位為M;
m=3;
}
}
a = (long)(R*100)/10000;
b = (long)(R*100)%10000/1000;
c = (long)(R*100)%1000/100;
d = (long)(R*100)%100/10;
e = (long)(R*100)%10;
if(m == 1) /*****************************/
LCD_Write_str(0,6,u2);
if(m == 2)
LCD_Write_str(0,6,u3); /********量程自動轉(zhuǎn)換;********/
if(m == 3)
LCD_Write_str(0,6,u4); /*****************************/
LCD_Write_char(1,8,a+48); /*****************************/
LCD_Write_char(1,9,b+48);
LCD_Write_char(1,10,c+48); /********顯示待測元件大小*****/
LCD_Write_char(1,11,'.');
LCD_Write_char(1,12,d+48);
LCD_Write_char(1,13,e+48); /*****************************/
}
麻煩幫我看看是哪里有問題呢。!
|