日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

可变量程的直流电压表

發(fā)布時(shí)間:2023/12/31 综合教程 56 生活家
生活随笔 收集整理的這篇文章主要介紹了 可变量程的直流电压表 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

可變量程的直流電壓表

一、 實(shí)習(xí)內(nèi)容、要求及指標(biāo)

設(shè)計(jì)一個(gè)可變量程的直流電壓表,要求及設(shè)計(jì)指標(biāo)如下:

1.測(cè)量范圍:0-20V直流電壓,設(shè)置三個(gè)量程:0-200mV,200 mV-2V,2V-20V,實(shí)現(xiàn)自動(dòng)換檔。

2.測(cè)量精度:20 mV。

3.測(cè)量誤差允許范圍:<=1%。

4.顯示:用四位七段數(shù)碼管顯示電壓讀數(shù)。

二、 方案分析及論證

1. 自動(dòng)換檔(模擬部分)設(shè)計(jì)方案分析與論證

方案一:考慮到ADC0809的八路模擬量輸入通道本質(zhì)上也是模擬開關(guān),因此可以利用其八個(gè)模擬通道中的三個(gè)作為換檔選擇器,即根據(jù)通道對(duì)應(yīng)的電壓測(cè)量范圍確定對(duì)應(yīng)的電壓放大倍數(shù)設(shè)計(jì)對(duì)應(yīng)的前置放大電路。

方案二:選用模擬開關(guān)芯片4066實(shí)現(xiàn)換檔。4066集成了4個(gè)模擬開關(guān),每一路開關(guān)都有一個(gè)控制端控制對(duì)應(yīng)開關(guān)的通斷。用單片機(jī)對(duì)控制端進(jìn)行控制,實(shí)現(xiàn)不同量程的轉(zhuǎn)換。

方案論證:選用方案一可以節(jié)省一片CD4066芯片,但采用該方案時(shí)如果由于換檔環(huán)節(jié)沒有控制好的話很可能造成ADC0809芯片的損壞,而ADC0809遠(yuǎn)比CD4066高。另外采用ADC0809做模擬開關(guān)勢(shì)必會(huì)增加所需運(yùn)算放大器的數(shù)量并且增加單片機(jī)程序編寫的難度,綜合考慮之,我們采用方案二。

2. 譯碼顯示部分方案分析與論證

方案一:選用優(yōu)先譯碼器74LS138對(duì)四片用來(lái)顯示電壓讀數(shù)的數(shù)碼管進(jìn)行片選,實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)點(diǎn)亮。因?yàn)橹挥每刂扑膫€(gè)數(shù)碼管,而74LS138又為3—8譯碼器,所以只用單片機(jī)控制前兩個(gè)控制端,最高位控制端接地。另外選用用74LS244作為數(shù)碼管的驅(qū)動(dòng),具體譯碼由軟件控制。

方案二:同方案一選用74LS138進(jìn)行片選,在譯碼驅(qū)動(dòng)部分選用譯碼器CD4056,不用軟件譯碼。

方案論證:兩個(gè)方案都選用了74LS138,所不同的是數(shù)碼管的驅(qū)動(dòng)選用的芯片不一樣,考慮到74LS244成本較CD4056高且使用它會(huì)增加單片機(jī)控制程序的編寫難度,故選用方案二。

三、 軟、硬件設(shè)計(jì)

1. 硬件設(shè)計(jì)

系統(tǒng)硬件設(shè)計(jì)主要分模擬部分設(shè)計(jì)、A/D轉(zhuǎn)換模塊設(shè)計(jì)、數(shù)據(jù)顯示模塊設(shè)計(jì)。

(1)模擬部分設(shè)計(jì)

a. 電壓跟隨器設(shè)計(jì)

如圖3-1所示,電壓跟隨器是用一個(gè)三極管構(gòu)成的共集電路,它的電壓增益是一,所以叫做電壓跟隨器。共集電路是輸入高阻抗,輸出低阻抗,這就使得它在電路中可以起到阻抗匹配的作用,能夠使得后一級(jí)的放大電路更好的工作。它有功率放大作用。常用在測(cè)量?jī)x表的輸入極,以提高儀表的輸入阻抗,減小對(duì)被測(cè)電路的影響。在這里我們?cè)O(shè)計(jì)電壓跟隨器正是這樣一個(gè)目的。圖中前端的電位器起電壓衰減到輸入電壓1/5的作用,因?yàn)锳DC0809能轉(zhuǎn)換的電壓范圍為0到5V,而輸入待測(cè)電壓的范圍為0到20V,所以必須先進(jìn)行衰減。


圖3-1 電壓跟隨器

b.譯碼顯示模塊設(shè)計(jì):


該模塊的主要功能是通過(guò)譯碼器將ADC0809轉(zhuǎn)換出的數(shù)字量進(jìn)行譯碼并用數(shù)碼管顯示。電路原理圖如圖3-5所示。四片數(shù)碼管要?jiǎng)討B(tài)點(diǎn)亮,用3線-8線譯碼器74LS138作為片選控制器,因?yàn)橹挥兴钠瑪?shù)碼管需要控制,所以只用控制譯碼輸出端中的與四片數(shù)碼管接地端相連的高四位,因而譯碼輸入碼控制端的高位C端接地,A端和B端接單片機(jī),在程序中通過(guò)控制A、B端的邏輯狀態(tài)實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)點(diǎn)亮。另外數(shù)碼管各段的點(diǎn)亮由通用譯碼器CD4066實(shí)現(xiàn)。CD4066可以作為數(shù)碼管的驅(qū)動(dòng),也可以做液晶顯示屏的驅(qū)動(dòng)。CD4066有4個(gè)譯碼輸入端,7個(gè)譯碼輸出端分別接四片數(shù)碼管的相應(yīng)端,4個(gè)譯碼輸入端接單片機(jī)的P1口,在單片機(jī)的軟件設(shè)計(jì)中對(duì)譯碼加以控制。

1. 軟件設(shè)計(jì):

四、調(diào)試過(guò)程

本次課程設(shè)計(jì)我們花在焊接和程序的編寫上的時(shí)間并不多,電路設(shè)計(jì)、方案論證和系統(tǒng)調(diào)試才占用了大部分的時(shí)間。我們的調(diào)試試過(guò)程是按照先局部后整體的思路進(jìn)行的。現(xiàn)詳細(xì)敘述如下:

1.分局部調(diào)試

模擬部分的調(diào)試

模擬部分的設(shè)計(jì)主要是根據(jù)我們的設(shè)計(jì)檢查跟隨器工作是否正常、檢查模擬開關(guān)4066是否工作、調(diào)節(jié)各量程放大倍數(shù)到設(shè)計(jì)指定值等。

a.跟隨器的檢查

我們首先將與待測(cè)電壓輸入端相連的204電位器接入的部分調(diào)到50K(即進(jìn)行1/4衰減),接著為L(zhǎng)M324接通了5V電壓,然后將輸入待測(cè)電壓調(diào)到3V,接下來(lái)用萬(wàn)用表測(cè)量了LM324芯片3腿的電壓,發(fā)現(xiàn)電壓居然達(dá)到2.8V。這是很不正常的,因?yàn)榘凑瘴覀兊脑O(shè)計(jì)電壓應(yīng)該衰減到為原來(lái)的1/4,即便是我們的電位器調(diào)得不夠準(zhǔn)的話,電壓也至少應(yīng)該出現(xiàn)衰減的現(xiàn)象才對(duì)。我們判斷可能是電路在焊接方面出了問題,于是對(duì)照著電路原理圖仔細(xì)檢查電路的焊接,經(jīng)過(guò)檢查,我們發(fā)現(xiàn)我們?cè)陔娢黄鞯暮附由铣隽藛栴},按我們的接法,電位器根本就沒有接入電路,難怪電壓也不衰減了。我們改焊了電路。按前面的方法去檢查,發(fā)現(xiàn)電壓又出奇的低,還有問題?這次我們又仔細(xì)檢查了電路,發(fā)現(xiàn)無(wú)論是原理上還是焊接上都不應(yīng)該存在問題。我靜下心來(lái)查閱芯片資料并與指導(dǎo)老師討論了問題,發(fā)現(xiàn)原來(lái)是LM324的工作電壓出了問題,其工作電壓應(yīng)設(shè)為12V而我們只用了5V。改接12V電壓后我們?cè)贉y(cè),發(fā)現(xiàn)與理論計(jì)算值已經(jīng)非常接近,電壓跟隨器工作正常。

b.檢查模擬開關(guān)4066是否工作

4066集成了四個(gè)開關(guān)。共有四個(gè)控制端。如果某一控制端為高電平則對(duì)應(yīng)的開關(guān)將接通。為測(cè)量其是否工作,我們將它的四個(gè)控制端用導(dǎo)線引出分別接高低電平,發(fā)現(xiàn)測(cè)量結(jié)果與理論分析結(jié)果一致,4066工作正常。

c.各量程放大倍數(shù)的調(diào)節(jié)

這一步調(diào)試是建立在上述兩步調(diào)試的基礎(chǔ)上的。針對(duì)不同的檔位,我們通過(guò)接入不同的待測(cè)的模擬輸入電壓來(lái)調(diào)節(jié)放大電路的放大倍數(shù)。調(diào)試測(cè)量5到20V檔的放大倍數(shù)時(shí),我們選擇的輸入電壓為8V,按照設(shè)計(jì),該電壓在經(jīng)過(guò)衰減電路后不放大。前面已經(jīng)說(shuō)過(guò),我們?cè)O(shè)定的衰減比例為1/4,因此LM324輸出端(7腿)的電壓應(yīng)該為2V,經(jīng)過(guò)萬(wàn)用表測(cè)量,電壓為2V,調(diào)試成功。在調(diào)節(jié)2到5V檔的放大倍數(shù)時(shí),我們選擇的電壓為3V,該電壓應(yīng)該先衰減到原來(lái)值的1/4再經(jīng)過(guò)4倍放大電路后大小不變。我們通過(guò)調(diào)節(jié)控制放大倍數(shù)的電位器使LM324的7腿的電壓為3V達(dá)到放大倍數(shù)調(diào)節(jié)的目的。同理,在調(diào)節(jié)其他檔位的放大倍數(shù)時(shí)也是通過(guò)上述方法調(diào)節(jié)相應(yīng)的電位器實(shí)現(xiàn)的。

譯碼部分的調(diào)試

譯碼部分主要是檢驗(yàn)74LS138片選和4056譯碼是否正常。如前,我們?nèi)允菍?4LS138的兩個(gè)控制端和4056的四個(gè)譯碼控制端用長(zhǎng)導(dǎo)線引出,分別接高低電平。當(dāng)74LS138的A、 B分別為00、01、10、11時(shí),分別是第一個(gè)、第二個(gè)、第三個(gè)和第四個(gè)數(shù)碼管被點(diǎn)亮,這說(shuō)明片選是正常的。在測(cè)試4056時(shí)結(jié)合起真值表用上述方法進(jìn)行了譯碼檢測(cè),發(fā)現(xiàn)其也是正常工作的。

單片機(jī)與譯碼部分整體調(diào)試

上面是對(duì)譯碼部分單獨(dú)進(jìn)行了調(diào)試,而741LS138和4056的工作是要在單片機(jī)的控制下工作的,所以我們做了這樣一步測(cè)試。我為單片機(jī)編寫了在數(shù)碼管上動(dòng)態(tài)點(diǎn)亮數(shù)碼管并讓四個(gè)數(shù)碼管依次顯示“1”、“2”、“3”、“4”的程序,燒錄并將單片機(jī)接入電路后發(fā)現(xiàn)數(shù)碼管上顯示的為“0224”。是程序出了問題還是其他原因?我反復(fù)檢查了我的程序,發(fā)現(xiàn)沒有問題。我又向暑假參加過(guò)省電子設(shè)計(jì)大賽的同學(xué)請(qǐng)教單片機(jī)可以燒錄是否仍可能壞的問題,他們的回答模棱兩可。我只好自己測(cè)試。我檢查了單片機(jī)的30腿發(fā)現(xiàn)有1MHz的矩形波,說(shuō)明單片機(jī)在工作,但工作是否正常呢?我找同學(xué)借了一個(gè)經(jīng)過(guò)測(cè)試可以正常工作的單片機(jī),一樣的程序燒錄并接入我的電路發(fā)現(xiàn)正常顯示,我這才確定是單片機(jī)壞了。通過(guò)這個(gè)測(cè)試我知道即使是可以燒錄程序的單片機(jī)也不一定可以正常工作。

2.整機(jī)調(diào)試:

在進(jìn)行電路的分局部調(diào)試之后,我們又進(jìn)行了系統(tǒng)整機(jī)調(diào)試。首先為L(zhǎng)M324接上12V的電壓,為其他芯片接上5V的工作電壓。另外還要輸入待測(cè)的模擬電壓,該電壓從200mV以下的電壓開始輸起,依次增大。直到達(dá)到待測(cè)電壓的上限20V為止,在這過(guò)程中,記錄測(cè)量數(shù)據(jù)如上表所示。由于前面的分局部調(diào)試進(jìn)行得比較細(xì)致,因此整機(jī)調(diào)試較為順利。

五、數(shù)據(jù)測(cè)量及分析

1.實(shí)驗(yàn)數(shù)據(jù)測(cè)量結(jié)果如表5-1所示:

表5-1 實(shí)驗(yàn)數(shù)據(jù)測(cè)量記錄表

測(cè)量檔

測(cè)量值

真實(shí)值

誤差

0-200mV檔

0.006V

0.0063V

0.3mV

0.078V

0.076V

2mV

0.168V

0.143V

25mV

200mV-2V檔

0.619V

0.603V

16mV

1.086V

1.080V

6mV

1.427V

1.450V

23mV

1.892V

1.910V

18mV

2V-5V檔

2.505V

2.510V

5mV

3.640V

3.660V

20mV

4.044V

4.050V

6mV

5-20V檔

5.415V

5.450V

35mV

7.603V

7.640V

37mV

8.492V

8.490V

2mV

10.76V

10.72V

40mV

11.13V

11.13V

0mV

12.33V

12.34V

10mV

13.43V

13.42V

10mV

15.09V

15.11V

20mV

17.09V

17.08V

10mV

18.31V

18.35V

40mV

19.25V

19.30V

50mV

2.實(shí)驗(yàn)測(cè)試結(jié)果分析

從上表可以看出,系統(tǒng)測(cè)試結(jié)果基本滿足20mV精度的測(cè)量要求,但精度不是很穩(wěn)定,有的精度很高,而最高的誤差達(dá)到了50mV。造成這種結(jié)果的原因主要是系統(tǒng)前端模擬部分的不穩(wěn)定性和放大倍數(shù)的不精確性,另外就是數(shù)字部分的ADC0809進(jìn)行A/D轉(zhuǎn)換造成的誤差。我曾經(jīng)測(cè)量過(guò)模擬部分中CD4066的電阻,我覺得它的電阻過(guò)大可能也是造成誤差的一個(gè)原因。

六、實(shí)習(xí)體會(huì)

這次的實(shí)習(xí)卻給了我們一個(gè)在實(shí)踐中靈活運(yùn)用知識(shí)的機(jī)會(huì),我們通過(guò)在實(shí)踐中發(fā)現(xiàn)問題,進(jìn)而去書本中找相關(guān)的知識(shí)去解決問題,從而鞏固了理論知識(shí)。那樣的知識(shí)是你從根本上去認(rèn)識(shí)它,理解它,所以你的記憶時(shí)間會(huì)很長(zhǎng)。

焊接電路是我們這次實(shí)習(xí)新學(xué)到的一個(gè)基本操作,而又是很重要的一個(gè)操作。焊接電路的好壞直接影響你的實(shí)驗(yàn)結(jié)果。在這次實(shí)驗(yàn)之前,我們用了一天的時(shí)間去學(xué)習(xí)查找有關(guān)電壓表量程變換的單片機(jī)知識(shí)。在這次實(shí)驗(yàn)的過(guò)程中,我們首先是在電路板按照設(shè)計(jì)好的方案圖焊接,檢查焊接有無(wú)問題,再把寫好程序?qū)懭?9ATS51單片機(jī)上,進(jìn)行測(cè)試。當(dāng)看到數(shù)碼管數(shù)字與電源的數(shù)字相差無(wú)幾時(shí),很幸運(yùn),我們一下就成功了,并且量程精度完全符合要求,相信我們組的每個(gè)人這時(shí)都有一種自豪感和成就感。

在此也非常感謝老師陪伴著我們,在我們遇到問題時(shí)給予我們的指導(dǎo)和幫助。

七、參考文獻(xiàn)

1. 胡致強(qiáng),劉振明。單片機(jī)實(shí)現(xiàn)的自動(dòng)轉(zhuǎn)換量程電壓測(cè)試儀,哈爾濱學(xué)院學(xué)報(bào),2001年9月刊。

2. 劉煥平,韓樹新。ADC0809 與AT89C51的一種接口方法,石家莊師范專科學(xué)校學(xué)報(bào),2002年6月刊。

3. 任永強(qiáng),徐百榮。一種基于單片機(jī)的量程自動(dòng)轉(zhuǎn)換技術(shù),儀器儀表用戶,2002年2月刊。

4. 王 劍。一種用于A/D轉(zhuǎn)換的量程自動(dòng)控制電路,華東地質(zhì)學(xué)院學(xué)報(bào),1999年12月刊。

5. 李廣第等編,單片機(jī)技術(shù)基礎(chǔ),北京,北京航空航天大學(xué)出版社,2002年版。

6. www.21ic.com.。

附錄

附錄1.軟件設(shè)計(jì)源代碼

//******************************************************************

//單片機(jī)課程設(shè)計(jì)程序:可變量程直流電壓表的設(shè)計(jì)

//小組成員:石進(jìn) 劉銳

//***************************************************************************

//電壓表的程序

//BY WXH

//Copyright 2007

//All right reserved

//==============================

#include<at89x51.h>

#include<intrins.h>

typedef unsigned char uchar;

//==============================

//P0口接ADC0809的數(shù)據(jù)輸出端

//#define adc_data P0;

//P2口

sbit v20 =P2^4; //P2_7為1選通20V量程,X0.25

sbit v5 =P2^5; //P2_6為0選通5V量程,X1

sbit v2 =P2^6; //P2_5為0選通2V量程,X2.5

sbit v02 =P2^7; //P2_4為0選通0.2V量程,X25

sbit START =P2^0; //P2_3通過(guò)非門接ADC0809的ALE和START

sbit EOC=P2^3; //P2_2接ADC0809的EOC

sbit OE =P2^1; //P2_1接ADC0809的OE

//P1_0~P1_3接4056的數(shù)據(jù)輸入

//P3口

sbit dp1 =P3^0; //P3_1接第一個(gè)數(shù)碼的小數(shù)點(diǎn)

sbit dp2 =P3^1; //P3_2接第二個(gè)數(shù)碼的小數(shù)點(diǎn)

sbit A138=P3^6; //P3_6接74ls138的A

sbit B138=P3^7; //P3_7接74ls138的B

//===============macro define=====================

#define v20_on {v20=1;v5=v2=v02=1;}

#define v5_on {v5=0;v20=0;v2=v02=1;}

#define v2_on {v2=0;v20=0;v5=v02=1;}

#define v02_on {v02=0;v20=0;v5=v2=1;}

#define ADC_ST {START=1;_nop_();START=0;}

#define OE_on {OE=1;}

#define OE_off {OE=0;}

#define dpy0 {A138=0;B138=0;}

#define dpy1 {A138=1;B138=0;}

#define dpy2 {A138=0;B138=1;}

#define dpy3 {A138=1;B138=1;}

#define DP1 {dp1=1;dp2=0;}

#define DP2 {dp1=0;dp2=1;}

//==================================

uchar temp[5];

float vol;

uchar num_disp[4];

//================delay_5ms=============================

delay_5ms() //5k T

{

int i = 624;

for(;i>0;i--);

}

//=====================================

main()

{

char i;

//===initialize===

OE_off;

//===========

_20v:

v20_on;

for(i=0;i<5;i++)

{

ADC_ST;

while(EOC==0);

OE_on;

temp[i]=P0;

OE_off;

if(temp[i]<51)

goto _5v;

}

vol=(temp[0]+temp[1]+temp[2]+temp[3]+temp[4])/51.0;

goto disp;

_5v:

v5_on;

for(i=0;i<5;i++)

{

ADC_ST;

while(EOC==0);

OE_on;

temp[i]=P0;

OE_off;

if(temp[i]<82)

goto _2v;

else if(temp[i]>204)

goto _20v;

}

vol=(temp[0]+temp[1]+temp[2]+temp[3]+temp[4])/204.0;

goto disp;

_2v:

v2_on;

for(i=0;i<5;i++)

{

ADC_ST;

while(EOC==0);

OE_on;

temp[i]=P0;

OE_off;

if(temp[i]<82)

goto _02v;

else if(temp[i]>204)

goto _2v;

}

vol=(temp[0]+temp[1]+temp[2]+temp[3]+temp[4])/510.0;

goto disp;

_02v:

v02_on;

for(i=0;i<5;i++)

{

ADC_ST;

while(EOC==0);

OE_on;

temp[i]=P0;

OE_off;

if(temp[i]>204)

goto _2v;

}

vol=(temp[0]+temp[1]+temp[2]+temp[3]+temp[4])/5100.0;

disp:

if(vol<10.0)

{

DP1;

num_disp[0]=(uchar)vol;

num_disp[1]=((uchar)(vol*10))%10;

num_disp[2]=((uchar)(vol*100))%10;

num_disp[3]=((uchar)(vol*1000))%10;

}

else

{

DP2;

num_disp[0]=((uchar)vol)/10;

num_disp[1]=((uchar)vol)%10;

num_disp[2]=((uchar)(vol*10))%10;

num_disp[3]=((uchar)(vol*100))%10;

}

for(i=0;i<10;i++)

{

P1=num_disp[0];

dpy0;

delay_5ms();

P1=num_disp[1];

dpy1;

delay_5ms();

P1=num_disp[2];

dpy2;

delay_5ms();

P1=num_disp[3];

dpy3;

delay_5ms();

}

goto _20v;

}

附錄3.元器件清單列表

附表1 元器件清單

器件名稱

數(shù)量

備注

AT89S52單片機(jī)

1片

ADC0809

1片

A/D轉(zhuǎn)換芯片

七段數(shù)碼顯示管

4片

顯示用

20pF電容

2個(gè)

10uF電容

1個(gè)

12M晶振

1個(gè)

CD4066

1片

四路集成模擬開關(guān)

運(yùn)放LM324

1片

74LS138(74HC138)

1片

74LS74(74HC74)

1片

分頻用

204電位器

3片

105電位器

1片

CD4056

1片

七段譯碼器

附錄4.整機(jī)原理圖:


實(shí)習(xí)報(bào)告下載地址:
http://www.freefilehosting.net/files/MTE5OTYx">01.doc

總結(jié)

以上是生活随笔為你收集整理的可变量程的直流电压表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。