單片機電壓采集與顯示_第1頁
單片機電壓采集與顯示_第2頁
單片機電壓采集與顯示_第3頁
單片機電壓采集與顯示_第4頁
免費預覽已結束,剩余12頁可下載查看

下載本文檔

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

文檔簡介

1、單片機電壓采集與顯示目錄摘要引言一 課程設計題目及任務要求課程設計主要任務課程設計的要求二 電路設計方案及原理說明課程設計的方案 adc0809模數轉換芯片 at89c51單片機 4個共陽7段數碼管顯示器 系統整體工作原理硬件原理軟件原理分析三 設計總體框圖硬件總體框圖主程序流程圖待測信號源單元電路 at89c51單片機單片機控制單元外部時鐘電路復位電路數碼管顯示模塊四 實驗仿真五 總結及設計心得六 致謝七 參考文獻摘要:本設計待測的輸入電壓為8路,電壓范圍為05v,使用目前廣泛使用的at89c51來做控制系統,用adc0809來進行模擬電壓的采集及模數轉換,實現采集8路數據,并將結果在四位一

2、體數碼管上進行顯示。該系統主要包括幾大模塊:數據采集模塊、ad轉換模塊、控制模塊、顯示模塊。顯示部分由led數碼顯示器構成。該數字電壓表具有電路簡單,成本低等優點,可以方便地進8路ad轉換量的測量。關鍵詞:電壓采集、adc0809、a/d轉換、單片機89c51、數碼管顯示引言隨著計算機技術的飛速發展和普及,數據采集系統在多個領域有著廣泛的應用。數據采集是工、農業控制系統中至關重要的一環,在醫藥、化工、食品、等領域的生產過程中,往往需要隨時檢測各生產環節的溫度、濕度、流量及電壓等參數。同時,還要對某一檢測點任意參數能夠進行隨機查尋,將其在某一時間段內檢測得到的數據經過轉換提取出來,以便進行比較,

3、做出決策,調整控制方案,提高產品的合格率,產生良好的經濟效益。 隨著工、農業的發展,多路數據采集勢必將得到越來越多的應用,為適應這一趨勢,作這方面的研究就顯得十分重要。在科學研究中,運用數據采集系統可獲得大量的動態信息,也是獲取科學數據和生成知識的重要手段之一。總之,不論在哪個應用領域中,數據采集與處理將直接影響工作效率和所取得的經濟效益。 采集系統,從嚴格的意義上來說,應該是用計算機控制的多路數據自動檢測或巡回檢測,并且能夠對數據實行存儲、處理、分析計算以及從檢測的數據中提取可用的信息,供顯示、記錄、打印或描繪的系統。電壓測量成為廣大電子領域中必須掌握的過程,并且對測量的精度和采集功能的要求

4、也越來越高,而電壓的測量與顯示系統甚為重要。在課程設計中對一路電壓采集系統與顯示系統作了基本的研究。電壓采集與通信控制采用了模塊化的設計,并用單片機8051來實現,硬件部分是以單片機為核心,還包括模-數轉換模塊,顯示模塊,和串行接口部分,還有一些簡單的外圍電路。1路被測電壓通過通用adc0809模-數轉換,實現對采集到的電壓進行模擬量到數字量的轉換,由單片機對數據進行處理,用數碼管顯示模塊來顯示所采集的結果,由相關控制器完成數據接收和顯示,匯編程序編寫了更加明了化數據顯示界面。本系統主要包括四大模塊:數據采集模塊、控制模塊、顯示模塊、a/d轉換模塊。繪制電路原理圖與工作流程圖,并進行調試,最終

5、設計完成了該系統的硬件電路。在軟件編程上,采用了匯編語言進行編程,開發環境使用相關集成開發環境。開發了顯示模塊程序、a/d轉換程序。一、 設計任務與要求課程設計主要任務a、通過設計是學生掌握利用adc0809及其適當的外圍電路實現直流電壓的采集以及利用led顯示功能的方法。b、進一步掌握adc0809的功能特點、工作原理和正確使用方法。c、進一步了解外圍器件接口的基本原理與使用技術。課程設計的要求a、利用adc0809及其適當的外圍電路實現直流電壓的采集。b、采集結果在led數碼管上顯示出來,數據范圍為:05vc、繪制硬件連接圖,編寫相應的控制程序。d、撰寫設計報告、調試報告、設計心得。二 、

6、電路設計方案及原理說明依據綜合課程設計的要求,利用adc0809設計一個單通道模擬電壓采集顯示電路,要求對所接通道變化的模擬電壓值進行采集,采集來的數字量送至數碼管指示出來,通過相關轉換在數碼管上精確顯示出來。本課程設計相當于測直流電壓的大小,通過對電壓值的采集與處理,而由所學微控制器的知識可知,可以利用單片機的模數轉換來實現這一設計,進一步把相應的電壓值精確顯示出來。 模數轉換就是利用單片機控制模數轉換芯片(a/d),讓它對外部的一個模擬信號進行采樣、量化、編碼然后轉化為一個離散的數字量,提供給控制器作進一步處理。對于常用的a/d轉換芯片有adc0809、adc0808等。它們都是8位的模數

7、轉換芯片,就是把模擬量轉換為一個8位的二進制數。利用單片機at89c51與adc0809設計一個電壓采集系統,將模擬信號(實際設計時采用05 v)之間的直流電壓值轉換成數字量信號0ff,以數碼管顯示。proteus軟件啟動仿真,當前輸入電壓為25 0v,轉換成數字值為7fh,用鼠標指針調節電位器尺,可改變輸入模數轉換器adc0809的電壓,并通過虛擬電壓表觀察adc0809模擬量輸入信號的電壓值,led數碼管實時顯示相應的數值量。 此次電壓表總體的方案就是用單片機的i/o口輸出信號來控制a/d啟動轉換,將送入的模擬量轉換為一個8位數字量,然后再通過i/o口送回單片機內部進行處理,單片機進行一系

8、列的運算和校準后,通過數碼管將電壓值顯示出來。而在方案的實現上由兩部分組成:硬件部分和軟件部分。硬件即電子元器件的選擇且將它們連接成一個可行的硬件系統,軟件是硬件系統功能化的重要組成部分。硬件的設計可以在proteus上進行,軟件可以用proteus自帶的匯編工具,然后在proteus將硬軟件相結合,進行仿真,再根據結果不斷對硬件進行改進,對軟件進行調試,實現電壓的采集與顯示功能。 adc0809模數轉換芯片 是帶有8位a/d轉換器、8路多路開關以及微處理機兼容的控制邏輯的cmos組件。它是逐次逼近式a/d轉換器,可以和單片機直接接口。 (1)adc0809的內部邏輯結構  

9、0;  由下圖可知,adc0809由一個8路模擬開關、一個地址鎖存與譯碼器、一個a/d轉換器和一個三態輸出鎖存器組成。多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用a/d轉換器進行轉換。三態輸出鎖器用于鎖存a/d轉換完的數字量,當oe端為高電平時,才可以從三態輸出鎖存器取走轉換完的數據。(2)adc0809引腳結構 adc0809各腳功能如下:d7-d0:8位數字量輸出引腳。in0-in7:8位模擬量輸入引腳。vcc:+5v工作電壓。gnd:地。ref(+):參考電壓正端。ref(-):參考電壓負端。start:a/d轉換啟動信號輸入端。ale:地址鎖存允許信號輸入端。(以

10、上兩種信號用于啟動a/d轉換)eoc:轉換結束信號輸出引腳,開始轉換時為低電平,當轉換結束時為高電平。oe:輸出允許控制端,用以打開三態數據輸出鎖存器。clk:時鐘信號輸入端(一般為500khz)。a、b、c:地址輸入線。    adc0809對輸入模擬量要求:信號單極性,電壓范圍是05v,若信號太小,必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。 地址輸入和控制線:4條     ale為地址鎖存允許輸入線,高電平有效。當ale線為高電平時,地址鎖存與譯碼器將a,b,c三條地址線

11、的地址信號進行鎖存,經譯碼后被選中的通道的模擬量進入轉換器進行轉換。a,b和c為地址輸入線,用于選通in0in7上的一路模擬量輸入。通道選擇表如下表所示。cba選擇的通道000in0001in1010in2011in3100in4101in5110in6111in7數字量輸出及控制線:11條     st為轉換啟動信號。當st上跳沿時,所有內部寄存器清零;下跳沿時,開始進行a/d轉換;在轉換期間,st應保持低電平。eoc為轉換結束信號。當eoc為高電平時,表明轉換結束;否則,表明正在進行a/d轉換。oe為輸出允許信號,用于控制三條輸出鎖存器向單片機輸出轉換得到的數

12、據。oe1,輸出轉換得到的數據;oe0,輸出數據線呈高阻狀態。d7d0為數字量輸出線。 clk為時鐘輸入信號線。因adc0809的內部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為500khz, vref(),vref()為參考電壓輸入。 2 adc0809應用說明 (1) adc0809內部帶有輸出鎖存器,可以與at89s51單片機直接相連。 (2) 初始化時,使st和oe信號全為低電平。 (3) 送要轉換的哪一通道的地址到a,b,c端口上。 (4) 在st端給出一個至少有100ns寬的正脈沖信號。 (5) 是否轉換完畢,我們根據eoc信號來判斷。 (6) 當eoc變為高電平時,這

13、時給oe為高電平,轉換的數據就輸出給單片機了。 at89c51單片機 adc0809與8051單片機的硬件接口有3種形式,分別是查詢方式、中斷方式和延時等待方式,本題中選用中斷接口方式。由于adc0809無片內時鐘,時鐘信號可由單片機的ale信號經d觸發器二分頻后獲得。該題目中單片機時鐘頻率采用12mhz,則ale輸出的頻率是2mhz,四分頻后為500khz,符合adc0809對頻率的要求。由于adc0809內部設有地址鎖存器,所以通道地址由p0口的低3位直接與adc0809的a、b、c相連。通道基本地址為0000h0007h。其對應關系上面已做介紹。 控制信號:將作為片選信號,在啟動a/d轉

14、換時,由單片機的寫信號和控制adc的地址鎖存和啟動轉換。由于ale和start連在一起,因此adc0809在鎖存通道地址的同時也啟動轉換。在讀取轉換結果時,用單片機的產生正脈沖作為oe信號,用來打開三態輸出鎖存器。其接口電路如圖2-2所示。圖2-2 adc0809與at89c51的接口電路當8051通過對0000h0007h(基本地址)中的某個口地址進行一次寫操作,即可啟動相應通道的ad轉換;當轉換結束后,adc0809的eoc端向8051發出中斷申請信號;8051通過對0000h0007h中的某個口地址進行一次讀操作,即可得到轉換結果。 4個共陽7段數碼管顯示器共陽極7段led數碼管和共陰極

15、led數碼管結構類似,其引腳配置,如圖所示。從圖中可以看出7段led數碼管同樣由8個發光二極管組成,其中7個發光二極管構成字形“8”,另一個發光二極管構成小數點。共陽極7段led數碼管的內部結構,如圖所示。其中所有發光二極管的陽極為公共端,接+5v電壓。如果發光二極管的陰極為低電平的時候,發光二極管導通,該字段發光;反之,如果發光二極管的陰極為高電平的時候,發光二極管截止,該字段不發光。 共陽極7段led引腳配置 共陽極7段led結構圖 系統整體工作原理1 硬件設計(1)系統構成該系統主要包括幾大模塊:數據采集模塊、ad轉換模塊、控制模塊、顯示模塊、按鍵模塊等。采用at89c51作為控制模塊,

16、adc0809作為ad轉換模塊的核心,adc0809本身具有8路模擬量輸入端口,通過c、b、a,3位地址輸入端,能從8路中選擇一路進行轉換。如每隔一段時間依次輪流改變3位地址輸入端的地址,就能依次對8路輸入電壓進行測量。led數碼管的顯示采用軟件譯碼動態顯示,通過按鍵模塊的操作可以選擇8路循環顯示,也可以選擇某條單路顯示。(2)數據采集電路數據采集電路是系統的主要組成部分,adc0809具有8路模擬量輸入通道in0in7,通過3位地址輸入端c、b、a(引腳2325)進行選擇。引腳22為地址鎖存控制端ale,當輸入為高電平時,c、b、a引腳輸入的地址鎖存于adc0809內部鎖存器中,經內部譯碼電

17、路譯碼選中相應的模擬通道。引腳6為啟動轉換控制端start,當輸入一個2 us寬的高電平脈沖時,就啟動adc0809開始對輸入通道的模擬量進行轉換。引腳7為ad轉換器,當開始轉換時,eoc信號為低電平,經過一段時間,換結束,轉換結束信號eoc輸出高電平,轉換結果存放干adc0809內部的輸出數據寄存器中。引腳9腳為ad轉換數據輸出允許控制端oe,當0e為高電平時,存放于輸出數據鎖存器中的數據通過adc0809的數據線dod7輸出。引腳10為adc0809的時鐘信號輸人端clock。在連接時,adc0809的數據線d0d7與at89c51的p1口相連接,adc0809的地址引腳、地址鎖存端ale

18、、啟動信號start、數據輸出允許控制端oe分別與at89c51的p3口相連接,轉換結束信號eoc與at89c52的p31相連接。2 軟件設計(1)主程序主程序包含初始化部分,調用ad轉換子程序和調用顯示子程序。(2)數據處理子程序adc0809轉換之后輸出的結果是8位二進制數。由公式(1)可知,當adc0809輸出為(1l1l11111)時,輸入電壓值v =500v當adc0809輸出為(00000000)時,輸入電壓值為;當adc0809輸出為()時,輸入電壓值v =250v。由于單片機進行數學運算時結果只取整數部分,因此當輸出為()時計算出的電壓值v =2oov,很不準確。為了提高精確度

19、,必須把小數部分保留,具體運算方式如公式(2)。個位:dout*196/10000 十分位:(dout*196/1000)%10 百分位:(dout*196/100)%10 千分位:(dout*196/10)%10 由此得到較為精確的數值。對上面的硬件部分,按照軟件流程框圖進行軟件設計。用c語言進行程序的編寫。(下面的是c語言程序,最后面幾頁還有匯編程序及其算法說明,可自己選擇)#include<>#include<>#define uchar unsigned charsbit p2_0=p20;sbit p2_1=p21; 直流電壓模數轉換模塊微控制器模塊數碼顯示模

20、擬電壓數字電壓程序控制控制模塊圖3-3-1 待測信號源2復位電路當對單片機的的reset引腳加超過兩個機器周期以上的高電平時,可使單片機復位,即程序從頭開始執行。設計的復位電路如圖3-5-2所示:圖3-5-2 復位電路3數碼管顯示模塊選用了一片集成的共陰極數碼管,每片是由4塊8段數碼管組成(包括小數點位)。這4塊8斷數碼管共用相同的數據輸入線,每塊有一根片選線,只有選中了該數碼管,它才會點亮并顯示。而通過動態掃描原理可以使接在同一數據線的幾塊數碼管顯示不同的數。輸入bcd碼值,就可以在數碼管上顯示十進制數字。其中有電壓表起校準對比作用。3、 實驗仿真在proteus仿真軟件平臺上搭建硬件電路,

21、在keil uv2上編寫軟件并經編譯連接生產可執行的.hex文件,把該文件添加到在proteus平臺上搭建好的電路的單片機里。運行進行仿真調試。仿真時,數碼管有示數,與標準電壓表的示數差不多,說明各模塊均在正常工作。例如,在5v量程下,標準電壓表的顯示值,而數碼管顯示;標準電壓表顯示,數碼管示值為。數碼管顯示結果有誤差是由于adc0809輸出的二進制碼數轉換為bcd碼數的換算方法有一定誤差導致。仿真結果如圖4-14、 實驗總結本設計是基于adc0809設計的電壓檢測裝置。采用at89c51單片機進行數據控制、處理,結構簡單,元件較少,成本較低,軟件采用c語言實現,程序簡單可讀寫性強,效率高。能

22、夠實現八路待測電壓測量,還能夠自由選擇要測量的通道,與傳統的電路相比,具有方便操作、處理速度快、穩定性高、性價比高的優點,具有一定的使用價值。通過本次課程設計,我對模數轉換芯片adc0809有進一步了解,故我將此次設計的重點放在了功能的擴展部分模塊的實現方法及顯示的改變上。大三學期教學實驗中,通過網上資料及課本信息,我會會了簡單的編程和設計最重要的是排版效果,在這些過程中我獲益匪淺:加深了對模數轉換的了解,能對其功能進行多元化的應用;數碼管的顯示技術上,我在以前所存靜態顯示的基礎上,又掌握了動態掃描方法;另一個收獲是在課程設計的過程中,我邊學邊用c語言,對簡單的c語言編程能夠獨立輕松的完成,c

23、語言在單片機的編程中靈活,功能強大,效率高,簡單明了,具有很多優勢,學會它是此次課程設計的最大收獲。本次課程設計,培養了我運用互聯網查找資料和綜合應用課本理論知識解決實際問題的能力。啟發了我,在今后的學習過程中不能懶懶散散,學的要懂不懂,要把課本上的知識學精通,同時也要多學習課外知識來擴張自己的知識面;在計算和動手方面要更加的耐心加細心,才能把事情做得更好;在生活和學習中,要和身邊的人團結互助,能幫的就要盡力幫。由于能力有限,我的課程設計難免有一些誤差和錯誤,還望老師批評和指正! 致謝本課程設計是在我的導師張斌張老師的親切關懷和悉心指導下完成的。他嚴肅的科學態度,嚴謹的治學精神,精益求精的工作

24、作風,深深地感染和激勵著我。從課題的選擇到項目的最終完成,張老師都始終給予我細心的指導和不懈的支持。雖然只有短短的一星期,張老師去教會我們很多。在此謹向鄭老師致以誠摯的謝意和崇高的敬意。 另外,我還要感謝在一起愉快的度過這次課程設計的伙伴,正是由于你們的幫助和支持,我才能克服一個一個的困難和疑惑,直至本文的順利完成。特別感謝我的隊友,他對本課題做了不少工作,給予我不少的幫助。 參考文獻1.戴梅萼 史嘉權 微型計算機技術及應用 北京:清華大學出版社,20032.仇玉章 32位微型計算機原理與接口技術 北京:清華大學出版社,20013.鄭學堅 周斌 微型計算機原理及應用 北京:清華大學出版社,19

25、984.李伯成 候伯亭 微型計算機及應用 西安:電子科技大學出版社,19985.鄧元慶 賈鵬 數字電路與系統設計 西安:電子科技大學出版社,2003 下面是匯編程序,其中的bcd的轉換算法不同,不過后有解釋led_0 equ 30h;存放三個數碼管的段碼led_1 equ 31hled_2equ 32hadc equ 35h;存放ad轉換后的數據st bit oe bit eoc bit org 0000hljmpmainorg0030hmain:movled_0,#00h ;給顯示賦初值0 mov led_1,#00hmov led_2,#00h setb setb clr ;選擇通道3wait: clr st setb st clr st;啟動ad轉換 jnb eoc,$;等待轉換結束 setb oe;允許輸出 mov adc ,p1;暫存轉換結果 clr oe;關閉輸出 lcall bcd;調用數據處理子程序 lcall led;調用顯示程序,顯示轉換的值 sjmp wait;*;將ad轉換輸出的數據轉換成相應的電壓值;*bcd:mova,adc;將ad轉換結果轉換成bcd碼mov b,#51 ;255/51= div ab mov led_2,a;個位數字存入led_2中 mov a,b;余數大于19h,f0為1乘法溢出,結果加5 clr f0 subb

溫馨提示

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

評論

0/150

提交評論