7107數字電壓表課程設計
Ⅰ 7107數字電壓表
是不是穩壓電源負載時波紋增大,影響了你做的數字電壓表的讀數。
Ⅱ 數字電壓表的課程設計
不用單片機啊,那就ICL710x系列的吧,應用電路在它的數據手冊里都有.
不過0~200V的范圍要達到0.1mV的解析度,就是100uV了,要全部檢測的話那就得21位以上的ADC解析度,帶這樣高解析度ADC的東東可不好找啊,就算有你也買不起.
因此,由於位數的原因,你這個測量范圍和解析度要做成幾個量程檔位才會比較好做.
另外,你的供電電源得好好處理一下,不然它的參考電壓紋波都是這個解析度的幾百倍了,再加上你還要對待測的信號進行前級處理,也得選用低噪音高精度的運放之類,沒有個好的電源可不行..
Ⅲ 數字電壓表設計
採用雙積分式模/數轉換器為核心器件,稱為雙積分式電壓表在一個測量周期內,將被測電壓Ui加到積分器的輸入端在確定的時間內進行積分。然後切斷輸入電壓在積分器的輸入端加與Ui極性相反的電壓U,進行定值積分但積分方向相反,直到積分輸出達到起始電平為止從而將Ui轉換成時間間隔量進行測量只要用計數器累計時間間隔內的脈沖數,即為Ui之值電路簡單,便於維護。但電壓表的測量精度完全受限於模/數轉換的精度
Ⅳ icl7107在數字電壓表中的工作原理
ICL7107的工作原理
雙積分型A/D轉換器ICL7107是一種間接A/D轉換器。它通過對輸入模擬電壓和參考電壓分別進行兩次積分,將輸入電壓平均值變換成與之成正比的時間間隔,然後利用脈沖時間間隔,進而得出相應的數字性輸出。
它包括積分器、比較器、計數器,控制邏輯和時鍾信號源。積分器是A/D轉換器的心臟,在一個測量周期內,積分器先後對輸入信號電壓和基準電壓進行兩次積分。比較器將積分器的輸出信號與零電平進行比較,比較的結果作為數字電路的控制信一號。
時鍾信號源的標准周期Tc 作為測量時間間隔的標准時間。它是由內部的兩個反向器以及外部的RC組成的。
計數器對反向積分過程的時鍾脈沖進行計數。控制邏輯包括分頻器、解碼器、相位驅動器、控制器和鎖存器。分頻器用來對時鍾脈沖逐漸分頻,得到所需的計數脈沖fc和共陽極LED數碼管公共電極所需的方波信號fc。
解碼器為BCD-7段解碼器,將計數器的BCD碼譯成LED數碼管七段筆畫組成數字的相應編碼。驅動器是將解碼器輸出對應於共陽極數碼管七段筆畫的邏輯電平變成驅動相應筆畫的方波。
控制器的作用有三個:第一,識別積分器的工作狀態,適時發出控制信號,使各模擬開關接通或斷開,A/D轉換器能循環進行。第二,識別輸入電壓極性,控制LED數碼管的負號顯示。第二,當輸入電壓超量限時發出溢出信號,使千位顯示「1" ,其餘碼全部熄滅。
釣鎖存器用來存放A/D轉換的結果,鎖存器的輸出經解碼器後驅動LED 。它的每個測量周期自動調零(AZ)、信號積分(INT)和反向積分(DE)三個階段。
Ⅳ 數字電壓表的設計
用ICL7107(LED數碼管顯示)晶元做,電路簡單,可以做成三位半的電壓表.
Ⅵ 7107數顯電壓表問題
我沒有看到你的實物。我以前也遇到過這樣的情況。
1你的數字電壓表表頭是不是自己連的,如果是自己連的,你的積分電容要精度高,必須是好電容。
2表頭的供電必須與電壓源獨立,如果沒有地方可以將變壓器換了,換成多繞組的那種,就是有兩個獨立輸出電源的那種,不是中間抽頭的那個,再進行變壓。應該就可以了。
你再檢測一下,在整個電路連接在一起時,是不是表頭的供電電壓是不是有波動
Ⅶ 急求簡易數字電壓表課程設計(原理圖加匯編程序,不要語言)用ADC0809
LED_0EQU30H
LED_1EQU31H
LED_2EQU32H
LED_3EQU33H
ADCEQU35H
CLOCKBITP2.4
STBITP2.5
EOCBITP2.6
OEBITP2.7
ORG00H
SJMPSTART
ORG0BH
LJMPINT_T0
START:MOVLED_0,#00H
MOVLED_1,#00H
MOVLED_2,#00H
MOVP2,#0FFH
MOVDPTR,#TABLE
MOVTMOD,#02H;採用定時器2實現11us的定時
MOVTH0,#245
MOVTL0,#00
MOVIE,#82H
SETBTR0
WAIT:CLRST;此語句到第三條語句為啟動A/D轉換
SETBST
CLRST
JNBEOC,$;查詢A/D轉換是否結束
SETBOE;允許輸出
MOVADC,P1;A/D轉換結果存入ADC也即35H單元中
CLROE;關閉輸出
MOVA,ADC;A/D轉換數據轉BCD碼
MOVB,#51
DIVAB
MOVLED_3,A;整數位存入LED_3也即33H單元中
MOVA,B
CLRF0
SUBBA,#1AH
MOVF0,C
MOVA,#10
MULAB
MOVB,#51
DIVAB
JBF0,BCD1
ADDA,#5
BCD1:MOVLED_2,A;小數點後第一位存入LED_2也即32H單元中
MOVA,B
CLRF0
SUBBA,#1AH
MOVF0,C
MOVA,#10
MULAB
MOVB,#51
DIVAB
JBF0,BCD2
ADDA,#5
BCD2:MOVLED_1,A;小數點後第二位存入LED_1即31H單元中
MOVA,B
CLRF0
SUBBA,#1AH
MOVF0,C
MOVA,#10
MULAB
MOVB,#51
DIVAB
JBF0,BCD3
ADDA,#5
BCD3:MOVLED_0,A;小數點後第三位存入LED_0即30H單元中
LCALLDISP
LJMPWAIT
INT_T0:CPLCLOCK;給A/D轉換器提供時鍾
RETI
DISP:MOVA,LED_0
MOVCA,@A+DPTR;查詢小數點後第三位段碼
CLRP2.3
MOVP0,A;顯示小數點後第三位
LCALLDELAY
SETBP2.3
MOVA,LED_1
MOVCA,@A+DPTR;查詢小數點後第二位段碼
CLRP2.2
MOVP0,A;顯示小數點後第二位
LCALLDELAY
SETBP2.2
MOVA,LED_2
MOVCA,@A+DPTR;查詢小數點後第一位段碼
CLRP2.1
MOVP0,A;顯示小數點後第一位
LCALLDELAY
SETBP2.1
MOVA,LED_3
MOVCA,@A+DPTR;查詢整數位段碼
CLRP2.0
ORLA,#80H;顯示小數點位
MOVP0,A;顯示整數位
LCALLDELAY
SETBP2.0
RET
DELAY:MOVR6,#10;延時5ms
D1:MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
TABLE:DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
希望對你有幫助
Ⅷ 急求簡易數字電壓表課程設計(原理圖加匯編c程序)用adc0809 謝謝 qq312188954
^#include <AT89X52.H>
unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsigned char dispbuf[8]={10,10,10,10,0,0,0,0};
unsigned char dispcount;
unsigned char getdata;
unsigned int temp;
unsigned char i;
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit CLK=P3^3;
void main(void)
{
ST=0;
OE=0;
ET0=1;
ET1=1;
EA=1;
TMOD=0x12;
TH0=216;
TL0=216;
TH1=(65536-4000)/256;
TL1=(65536-4000)%256;
TR1=1;
TR0=1;
ST=1;
ST=0;
while(1)
{
if(EOC==1)
{
OE=1;
getdata=P0;
OE=0;
temp=getdata*235;
temp=temp/128;
i=5;
dispbuf[0]=10;
dispbuf[1]=10;
dispbuf[2]=10;
dispbuf[3]=10;
dispbuf[4]=10;
dispbuf[5]=0;
dispbuf[6]=0;
dispbuf[7]=0;
while(temp/10)
{
dispbuf[i]=temp%10;
temp=temp/10;
i++;
}
dispbuf[i]=temp;
ST=1;
ST=0;
}
}
}
void t0(void) interrupt 1 using 0
{
CLK=~CLK;
}
void t1(void) interrupt 3 using 0
{
TH1=(65536-4000)/256;
TL1=(65536-4000)%256;
P1=dispcode[dispbuf[dispcount]];
P2=dispbitcode[dispcount];
if(dispcount==7)
{
P1=P1 | 0x80;
}
dispcount++;
if(dispcount==8)
{
dispcount=0;
}
}