《單片機(jī)應(yīng)用技術(shù)》課件第5章_第1頁
《單片機(jī)應(yīng)用技術(shù)》課件第5章_第2頁
《單片機(jī)應(yīng)用技術(shù)》課件第5章_第3頁
《單片機(jī)應(yīng)用技術(shù)》課件第5章_第4頁
《單片機(jī)應(yīng)用技術(shù)》課件第5章_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目5簡易數(shù)字電壓表設(shè)計(jì)5.1項(xiàng)目要求

5.2理論知識

5.3項(xiàng)目分析及實(shí)施

5.4項(xiàng)目拓展

5.5項(xiàng)目總結(jié)習(xí)題

5.1項(xiàng)目要求

本項(xiàng)目通過設(shè)計(jì)數(shù)字電壓表,旨在介紹A/D轉(zhuǎn)換在控制系統(tǒng)中的應(yīng)用。項(xiàng)目要求以STC89C52單片機(jī)為核心,設(shè)計(jì)一個(gè)簡易數(shù)字電壓表,要求對0~5V的電壓可以測量,電壓顯示采用液晶LCD1602顯示,精度保留到小數(shù)點(diǎn)后兩位。

項(xiàng)目重難點(diǎn):

(1)A/D轉(zhuǎn)換原理;

(2)單片機(jī)與A/D轉(zhuǎn)換器接口電路設(shè)計(jì);

(3)單片機(jī)控制A/D轉(zhuǎn)換器程序設(shè)計(jì)。技能培養(yǎng):

(1)熟練掌握單片機(jī)與A/D轉(zhuǎn)換芯片的接口電路設(shè)計(jì)方法;

(2)熟練掌握A/D轉(zhuǎn)換程序設(shè)計(jì)方法;

(3)能夠分析和解決A/D轉(zhuǎn)換中遇到的問題。

5.2理論知識

5.2.1

A/D轉(zhuǎn)換原理

A/D轉(zhuǎn)換(Analog-to-DigitalConvert)就是把模擬量轉(zhuǎn)變?yōu)閿?shù)字量。將模擬量轉(zhuǎn)換成數(shù)字量的電路集成封裝起來就稱為A/D轉(zhuǎn)換器(Analog-to-DigitalConvert)。需要轉(zhuǎn)換的模擬量可以是電壓、電流等電信號,也可以是壓力、溫度、濕度、位移、聲音等非電信號。但在A/D轉(zhuǎn)換前,輸入到A/D轉(zhuǎn)換器的輸入信號必須經(jīng)各種傳感器把各種物理量轉(zhuǎn)換成電壓信號。A/D轉(zhuǎn)換后,輸出的數(shù)字信號可以有8位、10位、12位和16位等,位數(shù)越多,轉(zhuǎn)換精度越高。如圖5-1所示,輸出數(shù)字量D正比于輸入模擬量uI。圖5-1

AD轉(zhuǎn)換框圖由于模擬量在時(shí)間和(或)數(shù)值上是連續(xù)的,而數(shù)字量在時(shí)間和數(shù)值上都是離散的,所以轉(zhuǎn)換時(shí)要在時(shí)間上對模擬信號離散化(采樣),還要在數(shù)值上離散化(量化),所以A/D轉(zhuǎn)換一般有三個(gè)步驟:采樣保持→量化→編碼。

采樣是指用每隔一定時(shí)間的信號樣值序列來代替原來在時(shí)間上連續(xù)的信號,也就是在時(shí)間上將模擬信號離散化。如圖5-2所示,通過一個(gè)周期脈沖信號序列對模擬信號進(jìn)行采樣。模擬信號的大小隨時(shí)間不斷變化,保持就是保持采樣信號不變,使有充分時(shí)間轉(zhuǎn)換為數(shù)字信號。圖5-2采樣過程量化是用有限個(gè)幅度值近似原來連續(xù)變化的幅度值,把模擬信號的連續(xù)幅度變?yōu)橛邢迶?shù)量的有一定間隔的離散值。編碼則是按照一定的規(guī)律,把量化后的值用二進(jìn)制數(shù)字表示。

在A/D轉(zhuǎn)換器中,將模擬電壓轉(zhuǎn)換成數(shù)字信號,其數(shù)字信號最低位LSB=1所對應(yīng)的模擬電壓的大小稱為量化單位S,S=(輸入最大模擬電壓值/輸出最大數(shù)字量),輸入最大模擬電壓值一般取參考電壓。假設(shè)需要把0V~+5V的模擬電壓轉(zhuǎn)換成三位二進(jìn)制代碼,我們知道三位二進(jìn)制代碼可以表示八種狀態(tài),也就是把0V~+5V分成八等分,稱為量化級,那么量化單位就是0.625V,如圖5-3所示。將采樣點(diǎn)的模擬電壓值轉(zhuǎn)化為量化單位的整數(shù)倍,就可以得到這個(gè)采樣點(diǎn)的數(shù)字量,也就是編碼。但是一般被轉(zhuǎn)換的模擬電壓不可能正好是量化單位的整數(shù)倍,這個(gè)因素引起的誤差稱為量化誤差。圖5-3量化和編碼減少量化誤差的方法可以通過增加二進(jìn)制代碼位數(shù)的方法來實(shí)現(xiàn),如果把0V~+5V的模擬電壓轉(zhuǎn)換成八位二進(jìn)制代碼,那么量化級就是28,也就是把0V~+5V分成了256份,當(dāng)電壓每變化(5/256)V≈19.53mV時(shí),就會(huì)用一個(gè)八位的二進(jìn)制代碼表示。當(dāng)然減少量化誤差的方法不止這一種,讀者可以自行研究。

A/D轉(zhuǎn)換的基本電路原理主要有積分型、逐次逼近型、并行比較型等,詳細(xì)分類如表5-1所示。表5-1

A/D轉(zhuǎn)換器分類

1.積分型A/D轉(zhuǎn)換器

積分型A/D轉(zhuǎn)換器工作原理是將輸入電壓轉(zhuǎn)換成時(shí)間(脈沖寬度信號)或頻率(脈沖頻率),然后由定時(shí)器/計(jì)數(shù)器獲得數(shù)字值。早期的A/D轉(zhuǎn)換器大多采用積分型,比如TLC7135、MC14433、ICL7106、AD7555等芯片。

采用積分法原理的A/D轉(zhuǎn)換器由電子開關(guān)、積分器、比較器和控制邏輯等部件組成,如圖5-4所示。圖5-4積分型A/D轉(zhuǎn)換結(jié)構(gòu)其轉(zhuǎn)換過程分為兩個(gè)階段:

第一階段——定時(shí)積分。

首先將開關(guān)接通道待轉(zhuǎn)換的模擬量Vi一側(cè),Vi采樣輸入到積分器,積分器從零開始對Vi進(jìn)行固定時(shí)間T1的正向積分,時(shí)間T1到后,積分器輸出電壓為:

可見積分器的輸出V01與Vi成正比。這一過程稱為轉(zhuǎn)換電路對輸入模擬電壓的采樣過程。在采樣開始時(shí),邏輯控制電路將計(jì)數(shù)門打開,計(jì)數(shù)器計(jì)數(shù)。當(dāng)計(jì)數(shù)器達(dá)到滿量程N(yùn)時(shí),計(jì)數(shù)器由全“1”復(fù)“0”,這個(gè)時(shí)間就是固定的積分時(shí)間T1。計(jì)數(shù)器復(fù)“0”時(shí),同時(shí)給出一個(gè)溢出脈沖(即進(jìn)位脈沖)使控制邏輯電路發(fā)出信號,令開關(guān)K轉(zhuǎn)換至參考電壓VREF一側(cè),采樣階段結(jié)束。(5-1)第二階段——定值積分。

采樣階段結(jié)束后,積分器對與Vi極性相反的參考電壓VREF進(jìn)行積分,計(jì)數(shù)器由0開始計(jì)數(shù),當(dāng)積分器輸出電壓變?yōu)榱銜r(shí),檢零比較器輸出信號給計(jì)數(shù)器,關(guān)閉計(jì)數(shù)器,此時(shí)經(jīng)過了T2時(shí)間。積分器的輸出電壓為:

將式(5-1)帶入式(5-2),得:(5-2)即

由于VREF和T1均為固定值,則輸入模擬電壓正比于T2。若計(jì)數(shù)器的脈沖周期為TS,T1=N1TS,T2=N2TS,那么式(5-3)改寫為:

T1為固定值,則N1也為固定值,此時(shí)N2即為輸入模擬量Vi對應(yīng)的數(shù)字值。(5-4)(5-3)可以發(fā)現(xiàn)整個(gè)轉(zhuǎn)換過程經(jīng)歷了兩次積分,所以積分型A/D轉(zhuǎn)換器也稱為雙積分A/D轉(zhuǎn)換器,它是一種間接性轉(zhuǎn)換器,將待轉(zhuǎn)換的模擬量先轉(zhuǎn)換成與它成正比的時(shí)間寬度,然后在這個(gè)時(shí)間寬度內(nèi)對固定頻率的脈沖信號進(jìn)行計(jì)數(shù),計(jì)數(shù)的結(jié)果就是這個(gè)模擬量的數(shù)字值。積分型A/D轉(zhuǎn)換器的工作波形圖如圖5-5所示,當(dāng)輸入模擬電壓Vi越大時(shí),VO1越大,由于第一階段是定時(shí)積分,所以積分器輸出最大電壓Vom隨著Vi的大小沿垂直虛線上下移動(dòng)。圖5-5積分型A/D轉(zhuǎn)換器工作波形圖

2.逐次逼近式A/D轉(zhuǎn)換器

逐次逼近型A/D轉(zhuǎn)換器有ADC0804/0808/0809系列、AD575、AD574等,其轉(zhuǎn)換過程與用天平稱物體質(zhì)量的過程相似。比如用天平秤一個(gè)149g的物體,天枰的砝碼有128g、64g、32g、16g、8g、4g、2g、1g。首先將128g的砝碼放在托盤上,由于149g>128g,所以砝碼保留,相當(dāng)于最高位數(shù)碼D7記為1;再在托盤上加上64g砝碼,此時(shí)149g<(128+64)g,64g砝碼舍棄,相當(dāng)于D6記為0;然后再放上32g砝碼,149g<(128+32)g,32g砝碼舍棄,D5記為0;按照這樣的方法,直到砝碼的總質(zhì)量無限逼近或等于物體質(zhì)量,依照放置砝碼的次序,從高到低,保留的砝碼記為“1”,舍棄的記為“0”,就可以得到物體的數(shù)字量。對于149g的物體,最后留下的砝碼是128g、16g、4g、1g,所以數(shù)字量為10010101,在放砝碼時(shí),要從大到小,逐個(gè)去試,慢慢逼近物體質(zhì)量。

逐次逼近式A/D轉(zhuǎn)換器包括電壓比較器、DA轉(zhuǎn)換器、控制電路、逐次逼近寄存器SAR和緩沖寄存器等。其原理框圖如圖5-6所示,轉(zhuǎn)換過程為:

(1)首先發(fā)出“啟動(dòng)信號”信號S,當(dāng)S由高變低時(shí),“逐次逼近寄存器SAR”清0,DAC輸出Vo=0,“比較器”輸出1。當(dāng)S變?yōu)楦唠娖綍r(shí),“控制電路”使SAR開始工作。圖5-6逐次逼近型A/D轉(zhuǎn)換器原理框圖

(2)SAR首先產(chǎn)生8位數(shù)字量的一半,即10000000B,試探模擬量的Vi大小,若Vo>Vi,“控制電路”清除最高位,若Vo<Vi,保留最高位。

(3)在最高位確定后,SAR又以對分搜索法確定次高位,即以低7位的一半y1000000B(y為已確定位)試探模擬量Vi的大小。在bit6確定后,SAR以對分搜索法確定bit5位,即以低6位的一半yy100000B(y為已確定位)試探模擬量Vi的大小。重復(fù)這一過程,直到最低位bit0被確定。

(4)在最低位bit0確定后,轉(zhuǎn)換結(jié)束,“控制電路”發(fā)出“轉(zhuǎn)換結(jié)束”信號EOC。該信號的下降沿把SAR的輸出鎖存在“緩沖寄存器”里,從而得到數(shù)字量輸出。5.2.2

A/D轉(zhuǎn)換器的主要性能指標(biāo)

1.分辨率

分辨率是A/D轉(zhuǎn)換器對輸入量變化敏感程度的描述,與輸出數(shù)字量的位數(shù)有關(guān)。使輸出數(shù)字量最低有效位(LSB)變化一個(gè)字所需輸入模擬電壓的變化量就是分辨率,通常以數(shù)字信號的位數(shù)來表示。對于線性A/D轉(zhuǎn)換器來說,其分辨率(Δ)與輸出數(shù)字量輸出的位數(shù)n呈現(xiàn)下列關(guān)系:

2.轉(zhuǎn)換速率

轉(zhuǎn)換速率是指完成一次從模擬量到數(shù)字量轉(zhuǎn)換所需的時(shí)間的倒數(shù)。積分型A/D轉(zhuǎn)換器的轉(zhuǎn)換時(shí)間是毫秒級,屬低速AD轉(zhuǎn)換器,逐次逼近型A/D轉(zhuǎn)換器是微秒級,屬中速A/D轉(zhuǎn)換器。

3.誤差(有絕對誤差和相對誤差兩種)

絕對誤差等于實(shí)際轉(zhuǎn)換結(jié)果與理論轉(zhuǎn)換結(jié)果之差。也可以用數(shù)字量的最小有效位(LSB)的分?jǐn)?shù)值表示。

相對誤差是指數(shù)字量所對應(yīng)的模擬輸入量的實(shí)際值與理論值之差,用模擬電壓滿量程的百分比表示。

4.量程

量程指被轉(zhuǎn)換的模擬輸入電壓范圍,A/D轉(zhuǎn)換器輸入模擬信號通常有以下幾種電壓范圍,分單極性、雙極性兩種類型。

單極性常見量程為0~5V,0~10V,0~20V;雙極性量程常為-2.5V~+2.5V,-5V~+5V,-10V~+10V。

5.線性度

線性度有時(shí)又稱為非線性度,它是指轉(zhuǎn)換器實(shí)際的轉(zhuǎn)換特性與理想直線的最大偏差。 5.3項(xiàng)目分析及實(shí)施

1.任務(wù)要求和分析

1)任務(wù)要求

設(shè)計(jì)一個(gè)可以對0~5V模擬電壓信號進(jìn)行測量并通過數(shù)字顯示的電壓表,電壓顯示格式為:“Voltage:*.**V”。

2)任務(wù)分析

硬件電路設(shè)計(jì)方面,核心是如何將模擬電壓量轉(zhuǎn)換成數(shù)字量?我們知道單片機(jī)只能接收數(shù)字信號,對于模擬量是沒有辦法處理的。所以我們必須采用數(shù)據(jù)轉(zhuǎn)換,把模擬量轉(zhuǎn)換成數(shù)字量送給單片機(jī),單片機(jī)對這些數(shù)字量進(jìn)行處理之后,送去給顯示器件顯示。將模擬量轉(zhuǎn)換成數(shù)字量,必須通過A/D轉(zhuǎn)換芯片。目前有些單片機(jī)將部分外圍器件集成到內(nèi)部,降低了硬件電路設(shè)計(jì)的復(fù)雜性。比如STC12CXXXXAD系列,帶有8位片上A/D轉(zhuǎn)換,STC12C5XXXAD系列,帶有10位A/D轉(zhuǎn)換。Cygnal公司的C8051FXXX系列也帶有片上A/D轉(zhuǎn)換。由于這里我們使用的STC89C51單片機(jī),它沒有片上A/D轉(zhuǎn)換,所以需要外接A/D轉(zhuǎn)換芯片。

軟件程序設(shè)計(jì)方面,重點(diǎn)是單片機(jī)如何控制A/D轉(zhuǎn)換芯片,并將轉(zhuǎn)換結(jié)果進(jìn)行顯示。

2.器件及設(shè)備選擇

在A/D芯片的選擇上需要考慮的問題有:

(1)A/D轉(zhuǎn)換器應(yīng)用的系統(tǒng)、輸出數(shù)據(jù)的位數(shù)(分辨率)、系統(tǒng)要達(dá)到的精度和線性。

(2)輸入A/D轉(zhuǎn)換器的輸入信號范圍、極性、信號的驅(qū)動(dòng)能力。

(3)對轉(zhuǎn)換器輸出的數(shù)字代碼及其邏輯電平的要求。是否需要帶輸出鎖存或三態(tài)門?是否通過計(jì)算機(jī)接口電路?是用外部時(shí)鐘、內(nèi)部時(shí)鐘還是不用時(shí)鐘?輸出代碼需要二進(jìn)制碼,還是BCD碼?是串行,還是并行?

(4)系統(tǒng)是在靜態(tài)條件下還是在動(dòng)態(tài)條件下工作?帶寬要求如何?要求的轉(zhuǎn)換時(shí)間為多少?采樣速率為多少?是高速應(yīng)用還是低速應(yīng)用?

(5)要求參考電壓是內(nèi)部的還是外加的?是固定的還是可調(diào)(或可變)的?

這里我們對A/D轉(zhuǎn)換的分辨率沒有特別要求,輸入模擬信號的范圍為0~5V,由于需要與單片機(jī)接口,所以最好是帶有輸出鎖存,并且輸出并行二進(jìn)制碼,我們設(shè)計(jì)的電壓表只對一路模擬信號進(jìn)行采樣,基于以上幾點(diǎn)我們選擇ADC0804芯片。

由于需要顯示的內(nèi)容包含字符信息,所以選用LCD1602液晶屏作為顯示器件。

ADC0804是美國國家半導(dǎo)體公司生產(chǎn)的采用CMOS集成工藝制成的逐次逼近型模數(shù)轉(zhuǎn)換芯片。主要特性有:

·工作電壓:+5V,即VCC=+5V;

·模擬輸入電壓范圍:0~+5V,即0V≤Vin≤+5V;

·分辨率:8位,即分辨率為1/28=1/256,轉(zhuǎn)換值介于0~255之間;

·轉(zhuǎn)換時(shí)間:100μs(fCK=640kHz時(shí));

·轉(zhuǎn)換誤差:±1LSB;

·參考電壓:2.5V,即VREF=2.5V;

·內(nèi)含時(shí)鐘發(fā)生器;

·允許差分電壓輸入;

·輸出電平兼容TTl電平和COMS電平;

·芯片內(nèi)具有三態(tài)輸出數(shù)據(jù)鎖存器,可以直接與數(shù)據(jù)線相連。雙列直插式ADC0804芯片的引腳如圖5-7所示。圖5-7

ADC0804引腳圖

3.任務(wù)實(shí)施

1)數(shù)字電壓表硬件電路設(shè)計(jì)

在硬件設(shè)計(jì)時(shí),需要考慮ADC0804與單片機(jī)的接口設(shè)計(jì)、顯示器件LCD1602的接口設(shè)計(jì),以及ADC0804模擬輸入信號的來源。在一般嵌入式系統(tǒng)中,這個(gè)模擬信號是傳感器將外界溫度、聲音等信號轉(zhuǎn)換為電信號,再經(jīng)過模擬電路處理之后送給A/D轉(zhuǎn)換芯片的。我們這里通過電位器調(diào)節(jié)輸入到ADC0804芯片的電壓值(ADC0804芯片的參考電壓調(diào)節(jié)成0V~5V,而電位器產(chǎn)生的電壓范圍也為0V~5V,因此沒有必要設(shè)計(jì)額外的模擬電路),然后通過單片機(jī)進(jìn)行運(yùn)算處理得到這個(gè)輸入電壓值,最后再由LCD1602顯示出來。電壓表硬件框圖如圖5-8所示。圖5-8電壓表硬件框圖在具體的硬件電路設(shè)計(jì)上,由于ADC0804自身帶有三態(tài)輸出鎖存器,所以可以直接與單片機(jī)相接。LCD1602與單片機(jī)的接口在項(xiàng)目2中也有介紹。數(shù)字電壓表具體硬件原理圖如圖5-9所示。圖5-9數(shù)字電壓表硬件原理圖

2)數(shù)字電壓表軟件程序設(shè)計(jì)

對于數(shù)字電壓表的軟件程序,我們這里的核心是單片機(jī)如何控制ADC0804實(shí)現(xiàn)模數(shù)轉(zhuǎn)換,要對ADC0804編程控制,首先需要了解ADC0804的工作時(shí)序。

ADC0804的工作分為兩個(gè)過程:

(1)啟動(dòng)轉(zhuǎn)換時(shí)序。啟動(dòng)轉(zhuǎn)換時(shí)序如圖5-10所示。圖5-10啟動(dòng)A/D轉(zhuǎn)換時(shí)序

(2)讀取轉(zhuǎn)換結(jié)果時(shí)序。讀取轉(zhuǎn)換結(jié)果時(shí)序如圖5-11所示。圖5-11讀取轉(zhuǎn)換結(jié)果時(shí)序本任務(wù)的主控制流程圖如圖5-12所示。

本任務(wù)的軟件程序主要有四個(gè)模塊:主調(diào)函數(shù)main()模塊;ADC0804轉(zhuǎn)換模塊adc0804();轉(zhuǎn)換結(jié)果處理模塊AD_IntToStr();液晶顯示模塊。液晶顯示模塊在項(xiàng)目2的音樂盒設(shè)計(jì)中已經(jīng)有寫好,可以直接在本任務(wù)中使用。圖5-12主控制流程圖具體軟件程序如下:程序分析:

(1)本程序adc0804()函數(shù)中,用到了_nop_()函數(shù),這個(gè)函數(shù)是C51的一個(gè)庫函數(shù),包含在“intrins.h頭文件中。_nop_()函數(shù)的作用是延時(shí)一個(gè)機(jī)器周期。我們采用的晶振頻率為11.0592MHz,一個(gè)機(jī)器周期的時(shí)間約為1.085μs。

(2)AD_IntToStr()函數(shù)的主要功能是將轉(zhuǎn)換結(jié)果先計(jì)算成與之對應(yīng)的模擬電壓值,再轉(zhuǎn)成字符串,方便液晶顯示。在函數(shù)adc0804()中從P1讀回來的轉(zhuǎn)換結(jié)果是模擬量轉(zhuǎn)換成數(shù)字量之后的值,比如若輸入模擬電壓為2.5V,則得到的數(shù)字量就是127,如果將這個(gè)結(jié)果直接送去顯示,則不能直觀的看到輸入的模擬電壓值。故需要將這個(gè)數(shù)字量換算成對應(yīng)的模擬量。

語句“ad_result=(ad_result*5.0*100)/256”就是數(shù)字量換算成模擬量,數(shù)字量與模擬量之間的關(guān)系是:

(3)

ad_str[0]=ad_result/100+′0′;

ad_str[1]=(ad_result%100)/10+′0′;

ad_str[2]=ad_result%10+′0′。

這三句的作用是將換算成模擬量的個(gè)、十、百位取出來,后面加字符‘0’是為了轉(zhuǎn)換成字符。

(4)ad_str[3]=ad_str[2];

ad_str[2]=ad_str[1];

ad_str[1]=′.′;

這三句是將數(shù)組的第一個(gè)、第二個(gè)元素依次后移,為小數(shù)點(diǎn)留出位置,這里相當(dāng)于除以100。

(5)strcpy(volt_str,"Voltage:");//將需要顯示的提示信息復(fù)制到數(shù)組volt_str[]中

strcat(volt_str,ad_str);//將轉(zhuǎn)換的電壓值連接到提示信息之后

strcpy()、strcat()函數(shù)分別是字符串拷貝函數(shù)和字符串連接函數(shù)。這兩個(gè)函數(shù)是C語言的標(biāo)準(zhǔn)庫函數(shù),包含在頭文件“string.h”中。

strcat()函數(shù)的格式為:

strcat(字符數(shù)組1,字符數(shù)組2)

功能:把字符數(shù)組2連到字符數(shù)組1后面

返值:返回字符數(shù)組1的首地址說明:①字符數(shù)組1必須足夠大;②連接前,兩串均以‘0’結(jié)束,連接后,串1的‘0’取消,新串最后加‘0’。

strcpy()函數(shù)的格式為:

strcpy(字符數(shù)組1,字符串2)

功能:將字符串2拷貝到字符數(shù)組1中去

返值:返回字符數(shù)組1的首地址

說明:①字符數(shù)組1必須足夠大;②拷貝時(shí)‘0’一同拷貝;③不能使用賦值語句為一個(gè)字符數(shù)組賦值。

3)軟硬件聯(lián)合調(diào)試

當(dāng)寫好的軟件程序下載到單片機(jī)中之后,調(diào)節(jié)電位器,使輸入模擬電壓發(fā)生變化,顯示屏上顯示的電壓值也會(huì)跟隨變化??梢允褂萌f用表測試輸入的模擬電壓值,然后與顯示電壓值進(jìn)行比較,如果誤差很大,說明轉(zhuǎn)換結(jié)果錯(cuò)誤,需要從硬件電路的設(shè)計(jì)和軟件程序編寫兩方面查找原因。

5.4項(xiàng)目拓展

5.4.1常見A/D轉(zhuǎn)換芯片ADC0809

1.ADC0809的主要特性

(1)8路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位;

(2)具有轉(zhuǎn)換起??刂贫?;

(3)轉(zhuǎn)換時(shí)間為100μs(時(shí)鐘為640kHz時(shí)),130μs(時(shí)鐘為500kHz時(shí));

(4)單個(gè)+5V電源供電;

(5)模擬輸入電壓范圍0~+5V,不需零點(diǎn)和滿刻度校準(zhǔn);

(6)工作溫度范圍為(-40~+85)℃;

(7)低功耗,約15mW。

2.內(nèi)部結(jié)構(gòu)及引腳功能

ADC0809的內(nèi)部結(jié)構(gòu)如圖5-13所示,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型A/D轉(zhuǎn)換器、逐次逼近寄存器、邏輯控制和定時(shí)電路組成。引腳圖如圖5-14所示。圖5-13

ADC0809內(nèi)部結(jié)構(gòu)圖5-14

ADC0809引腳圖

ADDA為低位地址,ADDC為高位地址,用于對模擬量輸入通道進(jìn)行選擇,其地址狀態(tài)與通道對應(yīng)關(guān)系見表5-2所示。表5-2

ADC0809通道選擇表

3.ADC0809時(shí)序及工作過程

ADC0809的工作時(shí)序如圖5-15所示。對應(yīng)的控制過程是:

(1)首先確定ADDA、ADDB、ADDC三位地址,決定選擇哪一路模擬信號;

(2)使ALE端接受一正脈沖信號,使該路模擬信號經(jīng)選擇開關(guān)到達(dá)比較器的輸入端;

(3)使START端接受一正脈沖信號,START的上升沿將逐次逼近寄存器復(fù)位,下降沿啟動(dòng)A/D轉(zhuǎn)換;

(4)EOC輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。

(5)A/D轉(zhuǎn)換結(jié)束,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束。此時(shí),數(shù)據(jù)已保存到8位三態(tài)輸出鎖存器中。此時(shí)CPU就可以通過使OE信號為高電平,打開ADC0809三態(tài)輸出,由ADC0809輸出的數(shù)字量傳送到CPU。圖5-15

ADC0809時(shí)序圖

4.ADC0809與單片機(jī)接口電路

ADC0809與單片機(jī)的接口方式?jīng)Q定了CPU讀取轉(zhuǎn)換結(jié)果的方式,主要有三種方式:

(1)查詢方式:把轉(zhuǎn)換結(jié)束信號EOC作為狀態(tài)信號送到CPU的數(shù)據(jù)總線的某一位上。CPU啟動(dòng)ADC0809開始轉(zhuǎn)換后,就不斷地查詢這個(gè)狀態(tài)位,當(dāng)EOC有效時(shí),便讀取轉(zhuǎn)換結(jié)果。其接口如圖5-16所示。圖5-16查詢方式ADC0809與單片機(jī)口電路

(2)延時(shí)方式:在這種方式下,不使用轉(zhuǎn)換結(jié)束信號EOC。CPU啟動(dòng)A/D轉(zhuǎn)換后,延時(shí)一段時(shí)間(略大于A/D轉(zhuǎn)換時(shí)間),此時(shí)轉(zhuǎn)換已經(jīng)結(jié)束,可以讀取轉(zhuǎn)換結(jié)果。這種方式,通常采用軟件延時(shí)的方法(也可以采用硬件延時(shí)電路),無須硬件連線,但要占用主機(jī)大量時(shí)間,多用于主機(jī)處理任務(wù)較少的系統(tǒng)中。

(3)中斷方式:把轉(zhuǎn)換結(jié)束信號EOC作為中斷請求信號接到CPU的中斷請求線上。ADC0809轉(zhuǎn)換結(jié)束,向CPU申請中斷。CPU響應(yīng)中斷請求后,在中斷服務(wù)程序中讀取轉(zhuǎn)換結(jié)果。這種方式ADC0809與CPU并行工作,適用于實(shí)時(shí)性較強(qiáng)和參數(shù)較多的數(shù)據(jù)采集系統(tǒng)。中斷方式下ADC0809與單片機(jī)的接口電路如圖5-17所示。圖5-17中斷方式ADC0809與單片機(jī)接口電路5.4.2串行A/D轉(zhuǎn)換芯片TLC2543

1.主要特性

(1)12位分辯率A/D轉(zhuǎn)換器;

(2)在工作溫度范圍內(nèi)10μs轉(zhuǎn)換時(shí)間;

(3)11個(gè)模擬輸入通道;

(4)3路內(nèi)置自測試方式;

(5)采樣率為66kb/s;

(6)線性誤差±1LSBmax;

(7)有轉(zhuǎn)換結(jié)束輸出EOC;

(8)具有單、雙極性輸出;

(9)可編程的MSB或LSB前導(dǎo);

(10)可編程輸出數(shù)據(jù)長度。

2.內(nèi)部結(jié)構(gòu)及引腳功能

TLC2543的內(nèi)部結(jié)構(gòu)如圖5-18所示,它由11路模擬開關(guān)、采樣保持電路、輸入地址寄存器、12位開關(guān)電容模數(shù)轉(zhuǎn)換器、輸出寄存器、控制邏輯和I/O計(jì)數(shù)器、12位并串轉(zhuǎn)換器組成。雙列直插封裝的引腳圖如圖5-19所示。圖5-18

TLC2543內(nèi)部結(jié)構(gòu)圖5-19

TLC2543引腳圖

3.TLC2543的控制字

TLC2543為串行A/D轉(zhuǎn)換芯片,對于輸入通道的選擇由“DATAINPUT”引腳送入控制字來完成,其控制字格式如表5-3所示。表5-3

TLC2543控制字

4.TLC2543時(shí)序及工作過程

TLC2543的工作時(shí)序跟輸出的數(shù)據(jù)位數(shù)與是否使用CS有關(guān)。使用CS,數(shù)據(jù)輸出數(shù)據(jù)寬度為12位,MSB做前導(dǎo)的時(shí)序圖如圖5-20所示。圖5-20

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論