單片機電壓采集與顯示_第1頁
單片機電壓采集與顯示_第2頁
單片機電壓采集與顯示_第3頁
單片機電壓采集與顯示_第4頁
單片機電壓采集與顯示_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上基于單片機的電壓采集摘要:本設計待測的輸入電壓為8路,電壓范圍為05V,使用目前廣泛使用的AT89C51來做控制系統,用ADC0809來進行模擬電壓的采集及模數轉換,實現采集8路數據,并將結果在四位一體數碼管上進行顯示。該系統主要包括幾大模塊:數據采集模塊、AD轉換模塊、控制模塊、顯示模塊。顯示部分由LED數碼顯示器構成。該數字電壓表具有電路簡單,成本低等優點,可以方便地進8路AD轉換量的測量。關鍵詞:電壓采集、ADC0809、A/D轉換、單片機89C51、數碼管顯示引言隨著計算機技術的飛速發展和普及,數據采集系統在多個領域有著廣泛的應用。數據采集是工、農業控制系統中

2、至關重要的一環,在醫藥、化工、食品、等領域的生產過程中,往往需要隨時檢測各生產環節的溫度、濕度、流量及電壓等參數。同時,還要對某一檢測點任意參數能夠進行隨機查尋,將其在某一時間段內檢測得到的數據經過轉換提取出來,以便進行比較,做出決策,調整控制方案,提高產品的合格率,產生良好的經濟效益。 隨著工、農業的發展,多路數據采集勢必將得到越來越多的應用,為適應這一趨勢,作這方面的研究就顯得十分重要。在科學研究中,運用數據采集系統可獲得大量的動態信息,也是獲取科學數據和生成知識的重要手段之一。總之,不論在哪個應用領域中,數據采集與處理將直接影響工作效率和所取得的經濟效益。 采集系統,從嚴格的意義上來說,

3、應該是用計算機控制的多路數據自動檢測或巡回檢測,并且能夠對數據實行存儲、處理、分析計算以及從檢測的數據中提取可用的信息,供顯示、記錄、打印或描繪的系統。電壓測量成為廣大電子領域中必須掌握的過程,并且對測量的精度和采集功能的要求也越來越高,而電壓的測量與顯示系統甚為重要。在課程設計中對一路電壓采集系統與顯示系統作了基本的研究。電壓采集與通信控制采用了模塊化的設計,并用單片機8051來實現,硬件部分是以單片機為核心,還包括模-數轉換模塊,顯示模塊,和串行接口部分,還有一些簡單的外圍電路。1路被測電壓通過通用ADC0809模-數轉換,實現對采集到的電壓進行模擬量到數字量的轉換,由單片機對數據進行處理

4、,用數碼管顯示模塊來顯示所采集的結果,由相關控制器完成數據接收和顯示,匯編程序編寫了更加明了化數據顯示界面。本系統主要包括四大模塊:數據采集模塊、控制模塊、顯示模塊、A/D轉換模塊。繪制電路原理圖與工作流程圖,并進行調試,最終設計完成了該系統的硬件電路。在軟件編程上,采用了匯編語言進行編程,開發環境使用相關集成開發環境。開發了顯示模塊程序、A/D轉換程序。一、電路設計方案及原理說明依據綜合課程設計的要求,利用ADC0809設計一個單通道模擬電壓采集顯示電路,要求對所接通道變化的模擬電壓值進行采集,采集來的數字量送至數碼管指示出來,通過相關轉換在數碼管上精確顯示出來。本課程設計相當于測直流電壓的

5、大小,通過對電壓值的采集與處理,而由所學微控制器的知識可知,可以利用單片機的模數轉換來實現這一設計,進一步把相應的電壓值精確顯示出來。 模數轉換就是利用單片機控制模數轉換芯片(A/D),讓它對外部的一個模擬信號進行采樣、量化、編碼然后轉化為一個離散的數字量,提供給控制器作進一步處理。對于常用的A/D轉換芯片有ADC0809、ADC0808等。它們都是8位的模數轉換芯片,就是把模擬量轉換為一個8位的二進制數。利用單片機AT89C51與ADC0809設計一個電壓采集系統,將模擬信號(實際設計時采用05 V)之間的直流電壓值轉換成數字量信號0FF,以數碼管顯示。Proteus軟件啟動仿真,當前輸入電

6、壓為25 0V,轉換成數字值為7FH,用鼠標指針調節電位器尺,可改變輸入模數轉換器ADC0809的電壓,并通過虛擬電壓表觀察ADC0809模擬量輸入信號的電壓值,LED數碼管實時顯示相應的數值量。 此次電壓表總體的方案就是用單片機的I/O口輸出信號來控制A/D啟動轉換,將送入的模擬量轉換為一個8位數字量,然后再通過I/O口送回單片機內部進行處理,單片機進行一系列的運算和校準后,通過數碼管將電壓值顯示出來。而在方案的實現上由兩部分組成:硬件部分和軟件部分。硬件即電子元器件的選擇且將它們連接成一個可行的硬件系統,軟件是硬件系統功能化的重要組成部分。硬件的設計可以在Proteus上進行,軟件可以用P

7、roteus自帶的匯編工具,然后在Proteus將硬軟件相結合,進行仿真,再根據結果不斷對硬件進行改進,對軟件進行調試,實現電壓的采集與顯示功能。1.1 ADC0809模數轉換芯片 1.ADC0809是帶有8位A/D轉換器、8路多路開關以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉換器,可以和單片機直接接口。 (1)ADC0809的內部邏輯結構 由下圖可知,ADC0809由一個8路模擬開關、一個地址鎖存與譯碼器、一個A/D轉換器和一個三態輸出鎖存器組成。多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用A/D轉換器進行轉換。三態輸出鎖器用于鎖存A/D轉換完的數字量,當O

8、E端為高電平時,才可以從三態輸出鎖存器取走轉換完的數據。(2)ADC0809引腳結構 ADC0809各腳功能如下:D7-D0:8位數字量輸出引腳。IN0-IN7:8位模擬量輸入引腳。VCC:+5V工作電壓。GND:地。REF(+):參考電壓正端。REF(-):參考電壓負端。START:A/D轉換啟動信號輸入端。ALE:地址鎖存允許信號輸入端。(以上兩種信號用于啟動A/D轉換)EOC:轉換結束信號輸出引腳,開始轉換時為低電平,當轉換結束時為高電平。OE:輸出允許控制端,用以打開三態數據輸出鎖存器。CLK:時鐘信號輸入端(一般為500KHz)。A、B、C:地址輸入線。 ADC0809對輸入模擬量要

9、求:信號單極性,電壓范圍是05V,若信號太小,必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。 地址輸入和控制線:4條 ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與譯碼器將A,B,C三條地址線的地址信號進行鎖存,經譯碼后被選中的通道的模擬量進入轉換器進行轉換。A,B和C為地址輸入線,用于選通IN0IN7上的一路模擬量輸入。通道選擇表如下表所示。CBA選擇的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7數字量輸出及控制線:11條 ST為轉換啟動信號。當ST上跳沿

10、時,所有內部寄存器清零;下跳沿時,開始進行A/D轉換;在轉換期間,ST應保持低電平。EOC為轉換結束信號。當EOC為高電平時,表明轉換結束;否則,表明正在進行A/D轉換。OE為輸出允許信號,用于控制三條輸出鎖存器向單片機輸出轉換得到的數據。OE1,輸出轉換得到的數據;OE0,輸出數據線呈高阻狀態。D7D0為數字量輸出線。 CLK為時鐘輸入信號線。因ADC0809的內部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為500KHZ, VREF(),VREF()為參考電壓輸入。 2 ADC0809應用說明 (1) ADC0809內部帶有輸出鎖存器,可以與AT89S51單片機直接相連。 (2)

11、 初始化時,使ST和OE信號全為低電平。 (3) 送要轉換的哪一通道的地址到A,B,C端口上。 (4) 在ST端給出一個至少有100ns寬的正脈沖信號。 (5) 是否轉換完畢,我們根據EOC信號來判斷。 (6) 當EOC變為高電平時,這時給OE為高電平,轉換的數據就輸出給單片機了。1.2 AT89C51單片機 ADC0809與8051單片機的硬件接口有3種形式,分別是查詢方式、中斷方式和延時等待方式,本題中選用中斷接口方式。由于ADC0809無片內時鐘,時鐘信號可由單片機的ALE信號經D觸發器二分頻后獲得。該題目中單片機時鐘頻率采用12MHz,則ALE輸出的頻率是2MHz,四分頻后為500KH

12、z,符合ADC0809對頻率的要求。由于ADC0809內部設有地址鎖存器,所以通道地址由P0口的低3位直接與ADC0809的A、B、C相連。通道基本地址為0000H0007H。其對應關系上面已做介紹。 控制信號:將P2.7作為片選信號,在啟動A/D轉換時,由單片機的寫信號和P2.7控制ADC的地址鎖存和啟動轉換。由于ALE和START連在一起,因此ADC0809在鎖存通道地址的同時也啟動轉換。在讀取轉換結果時,用單片機的P3.0產生正脈沖作為OE信號,用來打開三態輸出鎖存器。其接口電路如圖1-2所示。圖1-2 ADC0809與AT89C51的接口電路當8051通過對0000H0007H(基本地

13、址)中的某個口地址進行一次寫操作,即可啟動相應通道的AD轉換;當轉換結束后,ADC0809的EOC端向8051發出中斷申請信號;8051通過對0000H0007H中的某個口地址進行一次讀操作,即可得到轉換結果。1.3 4個共陽7段數碼管顯示器共陽極7段LED數碼管和共陰極LED數碼管結構類似,其引腳配置,如圖所示。從圖中可以看出7段LED數碼管同樣由8個發光二極管組成,其中7個發光二極管構成字形“8”,另一個發光二極管構成小數點。共陽極7段LED數碼管的內部結構,如圖所示。其中所有發光二極管的陽極為公共端,接+5v電壓。如果發光二極管的陰極為低電平的時候,發光二極管導通,該字段發光;反之,如果

14、發光二極管的陰極為高電平的時候,發光二極管截止,該字段不發光。 共陽極7段LED引腳配置 共陽極7段LED結構圖1.4 系統整體工作原理1 硬件設計(1)系統構成該系統主要包括幾大模塊:數據采集模塊、AD轉換模塊、控制模塊、顯示模塊、按鍵模塊等。采用AT89C51作為控制模塊,ADC0809作為AD轉換模塊的核心,ADC0809本身具有8路模擬量輸入端口,通過C、B、A,3位地址輸入端,能從8路中選擇一路進行轉換。如每隔一段時間依次輪流改變3位地址輸入端的地址,就能依次對8路輸入電壓進行測量。LED數碼管的顯示采用軟件譯碼動態顯示,通過按鍵模塊的操作可以選擇8路循環顯示,也可以選擇某條單路顯示

15、。(2)數據采集電路數據采集電路是系統的主要組成部分,ADC0809具有8路模擬量輸入通道IN0IN7,通過3位地址輸入端C、B、A(引腳2325)進行選擇。引腳22為地址鎖存控制端ALE,當輸入為高電平時,C、B、A引腳輸入的地址鎖存于ADC0809內部鎖存器中,經內部譯碼電路譯碼選中相應的模擬通道。引腳6為啟動轉換控制端START,當輸入一個2 US寬的高電平脈沖時,就啟動ADC0809開始對輸入通道的模擬量進行轉換。引腳7為AD轉換器,當開始轉換時,EOC信號為低電平,經過一段時間,換結束,轉換結束信號EOC輸出高電平,轉換結果存放干ADC0809內部的輸出數據寄存器中。引腳9腳為AD轉

16、換數據輸出允許控制端OE,當0E為高電平時,存放于輸出數據鎖存器中的數據通過ADC0809的數據線DOD7輸出。引腳10為ADC0809的時鐘信號輸人端CLOCK。在連接時,ADC0809的數據線D0D7與AT89C51的P1口相連接,ADC0809的地址引腳、地址鎖存端ALE、啟動信號START、數據輸出允許控制端OE分別與AT89C51的P3口相連接,轉換結束信號EOC與AT89C52的P31相連接。二、 軟件設計(1)主程序主程序包含初始化部分,調用AD轉換子程序和調用顯示子程序。(2)數據處理子程序ADC0809轉換之后輸出的結果是8位二進制數。由公式(1)可知,當ADC0809輸出為

17、(1l1l11111)時,輸入電壓值V =500V當ADC0809輸出為()時,輸入電壓值為0.0O0V;當ADC0809輸出為()時,輸入電壓值V =250V。由于單片機進行數學運算時結果只取整數部分,因此當輸出為()時計算出的電壓值V =2OOV,很不準確。為了提高精確度,必須把小數部分保留,具體運算方式如公式(2)。個位:Dout*196/10000 十分位:(Dout*196/1000)%10 百分位:(Dout*196/100)%10 千分位:(Dout*196/10)%10 由此得到較為精確的數值。對上面的硬件部分,按照軟件流程框圖進行軟件設計。用C語言進行程序的編寫。#inclu

18、de#include#define uchar unsigned charsbit P2_0=P20;sbit P2_1=P21; /定義數碼管位碼端口sbit P2_2=P22;sbit P2_3=P23;sbit OE=P30; /定義ADC0808端口sbit EOC=P31;sbit ST=P32;sbit P3_4=P34;sbit P3_5=P35;sbit P3_6=P36;uchar code table1=0x40,0x79,0x24,0x30,0x19,0x12;/帶小數點的05六個uchar code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0

19、x82,0xf8,0x80,0x90;/共陽極09十個段碼/段碼uchar volt_data;void init();uchar i;/*/延時子程序/*void delay(uchar z)uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*/將AD轉換輸出的數據轉換成相應的/電壓值并且顯示出來/*void convert(uchar volt_data) P0=table1volt_data*196/10000; /AD轉換的個位的電壓值 P2_0=1; delay(2); P2_0=0; P0=tabvolt_data*196/1000%10; P2_

20、1=1; /顯示小數點的后的第一位 delay(2); P2_1=0;P0=tabvolt_data*196/100%10; P2_2=1; /顯示小數點的后的第二位 delay(2); P2_2=0; P0=tabvolt_data*196/10%10; P2_3=1; /顯示小數點的后的第二位 delay(2); P2_3=0;void main() uchar volt_data; init();/初始化子程序 while(1)if(i=5)i=0; ST=0; _nop_(); ST=1; _nop_(); ST=0; /啟動AD轉換 if(EOC=0) /等待轉換結束 delay(2

21、); while(EOC=0); OE=1;/允許輸出 volt_data=P1; convert(volt_data); /調用數據處理子程序 delay(2);/暫存轉換結果 OE=0;/關閉輸出 void time0_int(void) interrupt 1TH0=(65536-1000)/256; TL0=(65536-1000)%256; i+;void init() P3_4=1;/選擇通道3 P3_5=1; P3_6=0; TMOD=0x01; TH0=(65536-1000)/256; TL0=(65536-1000)%256; EA=1;ET0=1; i=0; TR0=1;

22、3、 設計框圖31硬件總體框圖該系統硬件總體框圖由四個模塊組成,如下圖3所示。在芯片的選擇中,一般的A/D芯片具有多路轉換通道,本課程設計中我們只做一路通道,該通道采集電壓,對采集的電壓值進行采集、處理并顯示,我們還可以通過改變A/D芯片的參考電壓來改變其量程,達到對電壓值的多樣化顯示。A/D芯片將輸入的模擬電壓值轉換為一個8位的二進制數字,再輸送到單片機控制單元,經過處理顯示出相應電壓值。直流電壓模數轉換模塊微控制器模塊數碼顯示模擬電壓數字電壓程序控制控制模塊3.2主程序流程圖 設計程序部分時,主要應包括主函數和和幾個功能子函數。主程序流程圖如下圖所示。3.3待測信號源單元電路待測信號源就是直流電壓采集時,所須測電壓值的信號源,其電路圖如圖3-3-1所示。 圖3-3-1 待測信號源該部分實際上是一個滑動變阻器均接在電源和地兩端,中間的滑線端提供兩路待測信號,該部分提供給模數轉換的通道3。3.4 AT

溫馨提示

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

評論

0/150

提交評論