51單片機的電壓表的設計_第1頁
51單片機的電壓表的設計_第2頁
51單片機的電壓表的設計_第3頁
51單片機的電壓表的設計_第4頁
51單片機的電壓表的設計_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

...wd......wd......wd...引言在電量的測量中,電壓、電流和頻率是最基本的三個被測量,其中電壓量的測量最為經(jīng)常。而且隨著電子技術的開展,更是經(jīng)常需要測量高精度的電壓,所以數(shù)字電壓表就成為一種必不可少的測量儀器。數(shù)字電壓表簡稱DVM,它是采用數(shù)字化測量技術,把連續(xù)的模擬量轉換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。由于數(shù)字式儀器具有讀數(shù)準確方便、精度高、誤差小、測量速度快等特而得到廣泛應用[1]。傳統(tǒng)的指針式刻度電壓表功能單一,進度低,容易引起視差和視覺疲勞,因而不能滿足數(shù)字化時代的需要。采用單片機的數(shù)字電壓表,將連續(xù)的模擬量如直流電壓轉換成不連續(xù)的離散的數(shù)字形式并加以顯示,從而精度高、抗干擾能力強,可擴展性強、集成方便,還可與PC實時通信。數(shù)字電壓表是諸多數(shù)字化儀表的核心與基礎[2]。以數(shù)字電壓表為核心,可以擴展成各種通用數(shù)字儀表、專用數(shù)字儀表及各種非電量的數(shù)字化儀表。目前,由各種單片機和A/D轉換器構成的數(shù)字電壓表作全面深入的了解是很有必要的。最近的幾十年來,隨著半導體技術、集成電路〔IC〕和微處理器技術的開展,數(shù)字電路和數(shù)字化測量技術也有了巨大的進步,從而促使了數(shù)字電壓表的快速開展,并不斷出現(xiàn)新的類型[3]。數(shù)字電壓表從1952年問世以來,經(jīng)歷了不斷改進的過程,從最早采用繼電器、電子管和形式開展到了現(xiàn)在的全固態(tài)化、集成化〔IC化〕,另一方面,精度也從0.01%-0.005%。目前,數(shù)字電壓表的內部核心部件是A/D轉換器,轉換的精度很大程度上影響著數(shù)字電壓表的準確度,因而,以后數(shù)字電壓表的開展就著眼在高精度和低本錢這兩個方面[4]。本文是以簡易數(shù)字直流電壓表的設計為研究內容,本系統(tǒng)主要包括三大模塊:轉換模塊、數(shù)據(jù)處理模塊及顯示模塊。其中,A/D轉換采用ADC0808對輸入的模擬信號進展轉換,控制核心AT89C51再對轉換的結果進展運算處理,最后驅動輸出裝置LED顯示數(shù)字電壓信號[5]。1設計總體方案1.1設計要求:完成系統(tǒng)的硬件電路設計與軟件設計;采用匯編或C語言編程;采用Proteus、KeilC等軟件實現(xiàn)系統(tǒng)的仿真調試。1.2設計思路根據(jù)設計要求,選擇AT89C51單片機為核心控制器件。A/D轉換采用ADC0808實現(xiàn),與單片機的接口為P1口和P2口的高四位引腳。電壓顯示采用4位一體的LED數(shù)碼管。LED數(shù)碼的段碼輸入,由并行端口P0產(chǎn)生:位碼輸入,用并行端口P2低四位產(chǎn)生。1.3設計方案主要設計如圖1.1:電壓采集電壓采集模數(shù)轉換單片機處理數(shù)碼管顯示圖1.1設計方案1.3.1主控芯片選用單片機AT89C51和A/D轉換芯片ADC0808實現(xiàn)電壓的轉換和控制,用四位數(shù)碼管顯示出最后的轉換電壓結果。1.3.2顯示局部選用一個四聯(lián)的共陰極數(shù)碼管。1.4電路設計原理模擬電壓經(jīng)過檔位切換到不同的分壓電路篩減后,經(jīng)隔離干擾送到A/D轉換器進展A/D轉換。然后送到單片機中進展數(shù)據(jù)處理。處理后的數(shù)據(jù)送到LED中顯示。同時通過串行通訊與上位通信。硬件電路及軟件程序。而硬件電路又大體可分為A/D轉換電路、LED顯示電路,程序的設計使用C語言編程,利用Keil和PROTEUS軟件對其編譯和仿真。一般I/O接口芯片的驅動能力是很有限的,在LED顯示器接口電路中,輸出口所能提供的驅動電流一般是不夠的尤其是設計中需要用到多位LED,此時就需要增加LED驅動電路。在本設計中采用RESPACK上拉電阻來增加驅動能力。數(shù)據(jù)處理及控制模塊數(shù)據(jù)處理及控制模塊AT89C51P1P3顯示模塊4位一體LED數(shù)碼管數(shù)據(jù)采集模塊ADC0808控制信號輸出顯示AnalogDigitalLED位控制信號P2P0圖1.2原理電路本實驗采用AT89C51單片機芯片配合ADC0808模/數(shù)轉換芯片構成一個簡易的數(shù)字電壓表,原理電路如圖1.2所示。該電路通過ADC0808芯片采樣輸入口IN0輸入的0~5V的模擬量電壓,經(jīng)過模/數(shù)轉換后,產(chǎn)生相應的數(shù)字量經(jīng)過其輸出通道D0~D7傳送給AT89C51芯片的P1口。AT89C51負責把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼,并通過其P0口傳送給數(shù)碼管。同時它還通過其四位I/O口P2.0、P2.1、P2.2、P2.3產(chǎn)生位選信號,控制數(shù)碼管的亮滅。P3.0控制ADC0808的啟動端(START)和地址鎖存端〔ALE〕;P3.1控制ADC0808的輸出允許端(OE);P3.2控制ADC0808的轉換完畢信號(EOC)。2程序設計2.1程序設計總方案根據(jù)模塊的劃分原則,將該程序劃分初始化模塊,A/D轉換子程序和顯示子程序,這三個程序模塊構成了整個系統(tǒng)軟件的主程序,如圖2.1所示。開場開場初始化調用A/D轉換子程序調用顯示子程序完畢圖2.1數(shù)字式直流電壓表主程序框圖2.2系統(tǒng)子程序設計2.2.1初始化程序所謂初始化,是對將要用到的MCS_51系列單片機內部部件或擴展芯片進展初始工作狀態(tài)設定,初始化子程序的主要工作是設置定時器的工作模式,初值預置,開中斷和翻開定時器等。2.2.2A/D轉換子程序A/D轉換子程序用來控制對輸入的模塊電壓信號的采集測量,并將對應的數(shù)值存入相應的內存單元,其轉換流程圖如圖2.2所示。開場啟動轉換開場啟動轉換A/D轉換完畢輸出轉換結果數(shù)值轉換顯示完畢圖2.2A/D轉換流程圖2.2.3顯示子程序顯示子程序采用動態(tài)掃描實現(xiàn)四位數(shù)碼管的數(shù)值顯示,在采用動態(tài)掃描顯示方式時,要使得LED顯示的比較均勻,又有足夠的亮度,需要設置適當?shù)膾呙桀l率,當掃描頻率在70HZ左右時,能夠產(chǎn)生比較好的顯示效果,一般可以采用間隔10ms對LED進展動態(tài)掃描一次,每一位LED的顯示時間為1ms。在本設計中,為了簡化硬件設計,主要采用軟件定時的方式,即用定時器0溢出中斷功能實現(xiàn)11μs定時,通過軟件延時程序來實現(xiàn)5ms的延時。3硬件電路設計3.1數(shù)字芯片A/D轉換技術電路原理圖如圖3.1所示,三個地址位ADDA,ADDB,ADDC均接地,因而所需測量的外部電壓可由ADC0808的IN0端口輸入。51系列單片機51系列單片機數(shù)字顯示A/D轉換輸入電壓圖3.1A/D轉換原理圖在A/D轉換開場之前,逐次逼近存放器的SAR的內容為0,在A/D轉換過程中,SAR存放“試探〞數(shù)字量,在轉換完畢后,它的內容即為A/D轉換的結果數(shù)字量。3.1.1ADC0808模數(shù)轉換芯片簡介ADC0808模數(shù)轉換芯片如圖3.2。圖3.2ADC0808模數(shù)轉換芯片ADC0808是采樣分辨率為8位的、以逐次逼近原理進展模/數(shù)轉換的器件。其內部有一個8通道多路開關,它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進展A/D轉換。ADC0808是ADC0809的簡化版本,功能基本一樣。一般在硬件仿真時采用ADC0808進展A/D轉換,實際使用時采用ADC0809進展A/D轉換。3.1.2引腳功能〔外部特性〕ADC0808芯片有28條引腳,采用雙列直插式封裝,如右圖所示。各引腳功能如下:1~5和26~28〔IN0~IN7〕:8路模擬量輸入端。8、14、15和17~21:8位數(shù)字量輸出端。22〔ALE〕:地址鎖存允許信號,輸入,高電平有效。6〔START〕:A/D轉換啟動脈沖輸入端,輸入一個正脈沖〔至少100ns寬〕使其啟動〔脈沖上升沿使0809復位,下降沿啟動A/D轉換〕。7〔EOC〕:A/D轉換完畢信號,輸出,當A/D轉換完畢時,此端輸出一個高電平〔轉換期間一直為低電平〕。9〔OE〕:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當A/D轉換完畢時,此端輸入一個高電平,才能翻開輸出三態(tài)門,輸出數(shù)字量。10〔CLK〕:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。12〔VREF〔+〕〕和16〔VREF〔-〕〕:參考電壓輸入端11〔Vcc〕:主電源輸入端。13〔GND〕:地。23~25〔ADDA、ADDB、ADDC〕:3位地址輸入線,用于選通8路模擬輸入中的一路。3.2單片機的數(shù)據(jù)處理技術A/D轉換完畢后,單片機的P1.6口接收到一高電平,立馬通過P3將OE置1,ADC0808的三態(tài)輸出鎖存器被翻開,轉換完的數(shù)字信號經(jīng)過與D0~D7相連的P0口進入AT89C51。AT89C51根據(jù)公式將數(shù)字信號轉換為模擬量,然后利用程序獲取模擬量的每一位,分別通過P2口輸出到LED上。與此同時,AT89C51會通過P2.0~P2.3口選擇用哪一段LED顯示所傳出的數(shù)據(jù)。例如,當P2.0~P2.3=1110,則LED接收到的數(shù)據(jù)會在第四段LED上顯示。另外,AT89C51一旦獲得了數(shù)據(jù)后便會將ST置0,即模數(shù)轉換器停頓轉換,知道LED獲得新的數(shù)據(jù)并顯示出來,ST才會重新置1。由于AT89C51轉換速率很快〔微妙量級〕,所以不會影響其接收新的數(shù)據(jù)。3.2.1AT89C51單片機簡介AT89C51單片機如圖3.3。圖3.3AT89C51單片機AT89C51是51系列單片機的一個型號,它是ATMEL公司生產(chǎn)的。AT89C52是一個低電壓、高性能CMOS8為單片機。將通用的微處理器和Flash存儲器結合在一起,可反復擦寫的Flash存儲器可有效地降低開發(fā)本錢。AT89C51有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應不同產(chǎn)品的需求。3.2.2主要功能特性:低功耗空閑和掉電模式,軟件設置睡眠和喚醒功能。兼容MCS51指令系統(tǒng),8K可反復擦寫〔>1000次〕FlashROM。3個16位可編程定時/計數(shù)器中斷,時鐘頻率0-24MHz。32個雙向I/O口,256B內部RAM。2個串行中斷,可編程UART串行通道。2個外部中斷源,共6個中斷源。2個讀寫中斷口線,3級加密位。3.3單片機控制的數(shù)碼管顯示技術3.3.1LED基本構造LED是發(fā)光二極管顯示器的縮寫。LED由于構造簡單、價格廉價、與單片機接口方便等優(yōu)點而得到廣泛應用。LED顯示器是由假設干個發(fā)光二極管組成顯示字段的顯示器件。在單片機中使用最多的是七段數(shù)碼顯示器。LED七段數(shù)碼顯示器由8個發(fā)光二極管組成顯示字段,其中7個長條形的發(fā)光二極管排列成“日〞字形,另一個圓點形的發(fā)光二極管在顯示器的右下角作為顯示小數(shù)點用,其通過不同的組合可用來顯示各種數(shù)字。LED引腳排列如以下圖3.4所示:圖3.4LED引腳排列3.3.2LED顯示器的選擇在應用系統(tǒng)中,設計要求不同,使用的LED顯示器的位數(shù)也不同,因此就生產(chǎn)了位數(shù),尺寸,型號不同的LED顯示器供選擇,數(shù)碼管有兩種:一種共陰極、另一種為共陽極,本次課程設計用的是共陰極。在本設計中,選擇4位一體的數(shù)碼型LED顯示器。本系統(tǒng)中前一位顯示電壓的整數(shù)位,即個位,后兩位顯示電壓的小數(shù)位。如圖3.5所示,是一個共陰極接法的4位LED數(shù)碼顯示管,其中a,b,c,d,e,f,g為4位LED各段的公共輸出端,1、2、3、4分別是每一位的位數(shù)選端,dp是小數(shù)點引出端,4位一體LED數(shù)碼顯示管的內部構造是由4個單獨的LED組成,每個LED的段輸出引腳在內部都并聯(lián)后,引出到器件的外部。圖3.5共陰極4位一體LED數(shù)碼顯示管3.3.3LED譯碼方式譯碼方式是指由顯示字符轉換得到對應的字段碼的方式,對于LED數(shù)碼管顯示器,通常的譯碼方式有硬件譯碼和軟件譯碼方式兩種。硬件譯碼是指利用專門的硬件電路來實現(xiàn)顯示字符碼的轉換。軟件譯碼就是編寫軟件譯碼程序,通過譯碼程序來得到要顯示的字符的字段碼,譯碼程序通常為查表程序。本設計采用的是共陰極LED,其對應的字符和字段碼如下表3.6所示。表3.6共陰極字段碼表顯示字符共陰極字段碼03FH106H25BH34FH466H56DH67DH707H87FH96FH4硬件連接4.1模擬輸入電路模擬輸入電路如圖4.1所示圖4.1模擬輸入電路通過可變電阻一端接電源+5V,一端接地GND,在并聯(lián)一個標準電壓表,通過改變電阻的阻值,從而改變所測電壓值,實現(xiàn)電壓的模擬信號輸入。4.2ADC0808芯片與單片機接口電路ADC0808芯片與單片機接口電路如圖4.2圖4.2ADC0808芯片與單片機接口電路ADC0808的輸出接到P1口,OUT1對應的是最高位,START與ALE可以接在一起。在這里,START接P3.0,OE接P3.1,EOC接P3.2,ClOCK接P3.4。4.3顯示電路顯示電路如圖4.3。圖4.3顯示電路通過P0口控制四位共陰極數(shù)碼管段選,通過P2口的低四位控制位選。值得注意的是P0需要接上拉電阻,否則P0會處于高阻態(tài)。4.4總電路設計原理:將模擬量通過IN0輸入,經(jīng)過ADC0808芯片轉換,得到數(shù)字量輸出到單片機P0口,經(jīng)過單片機處理后,送到四位共陰極數(shù)碼管上顯示。5仿真5.1軟件調試軟件調試的主要任務是排查錯誤,錯誤主要包括邏輯和功能錯誤,這些錯誤有些是顯性的,而有些是隱形的,可以通過仿真開發(fā)系統(tǒng)發(fā)現(xiàn)逐步改正。Proteus軟件可以對基于微控制器的設計連同所有的周圍電子器件一起仿真,用戶甚至可以實時采用諸如LED/LCD、鍵盤、RS232終端等動態(tài)外設模型來對設計進展交互仿真。Proteus支持的微處理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成單片機系統(tǒng)原理圖電路繪制、PCB設計,更為顯著點的特點是可以與uVisions3IDE工具軟件結合進展編程仿真調試。本系統(tǒng)的調試主要以軟件為主,其中,系統(tǒng)電路圖的繪制和仿真我采用的是Proteus軟件,而程序方面,采用的是匯編語言,用Keil軟件將程序寫入單片機。5.2顯示結果及誤差分析仿真結果如下:當輸入電壓在0-5V時,輸入電壓為2.60,顯示結果為2.658,如圖5.1所示,誤差為+0.058。圖5.1輸入電壓2.60顯示結果當輸入電壓大于5V時,發(fā)光二極管會閃爍,LED燈則總顯示5.097,如圖5.2〔a〕〔b〕。(a)(b)圖5.2輸入電壓大于5V顯示結果誤差分析由于使用ADC0808本身存在5/255的誤差,所以使得數(shù)碼管顯示的電壓值和輸入電壓顯示在標準電壓表上的電壓值存在誤差。結論經(jīng)過一段時間的努力,畢業(yè)論文-基于51單片機的數(shù)字電壓表的設計基本完成。但設計中的缺乏之處仍然存在。這次設計是我第一次設計電路,并用Proteus實現(xiàn)了仿真。在這過程中,我對電路設計,單片機的使用等都有了新的認識。通過這次設計學會了Proteus和Keil軟件的使用方法,掌握了從系統(tǒng)的需要、方案的設計、功能模塊的劃分、原理圖的設計和電路圖的仿真的設計流程,積累了不少經(jīng)歷?;趩纹瑱C的數(shù)字電壓表使用性強、構造簡單、本錢低、外接元件少。測量電壓準確,精度高。系統(tǒng)功能、指標到達了課題的預期要求、系統(tǒng)在硬件設計上充分考慮了可擴展性,經(jīng)過一定的改造,可以增加功能。本文設計主要實現(xiàn)了數(shù)字電壓表測量一路電壓的功能,詳細說明了從原理圖的設計、電路圖的仿真再到軟件的調試。通過本次設計,我對單片機這門課有了進一步的了解。無論是在硬件連接仿真方面還是在軟件編程方面。本次設計采用了AT89C51單片機芯片,與以往的單片機相比增加了許多新的功能,使其功能更為完善,應用領域也更為廣泛。設計中還用到了模/數(shù)轉換芯片ADC0808,以前在學單片機課程時只是對其理論知識有了初步的理解。通過這次設計,對它的工作原理有了更深的理解。在調試過程中遇到很多問題,硬件上的理論知識學得不夠扎實,對電路的仿真方面也不夠熟練??傊@次電路的設計和仿真,基本上到達了設計的功能要求。在以后的實踐中,我將繼續(xù)努力學習電路設計方面的理論知識,并理論聯(lián)系實際,爭取在電路設計方面能有所提升。致謝經(jīng)過兩周時間的不懈努力,本次課程設計已經(jīng)接近尾聲,由于是初次嘗試設計電路,知識及經(jīng)歷的匱乏,難免遇到很多困難,如果沒有導師的催促指導以及同學們的支持,很難順利的完成此次課程設計。從開場選題到論文的順利完成,都離不開教師、同學、朋友給以的幫助,在這里請承受我的謝意!首先,在本次畢業(yè)設計過程中,從構思、資料收集到最后定稿的各個環(huán)節(jié)給予細心指引與教導,使我對課程的多方面的知識有了深刻的認識,使我得以最終完成課程設計,在此表示衷心感謝。其次,感謝一起做課程設計的組員,還有幫助我的同學們,感謝你們給我的鼓勵,感謝你們在我遇到困難時所給的幫助,正是有了你們的幫助和鼓勵,此次課程設計才得以順利的完成。最后,本次設計得以順利完成,也要感謝導師組的楊教師,他們在本文寫作階段給出了許多珍貴意見。導師們的高深精湛的造詣與嚴謹求實的治學精神將永遠鼓勵著我。堅持下去一定會找出解決問題的方法。再次感謝給我鼓勵和幫助的教師和同學們,謝謝大家!參考文獻[1]于殿泓、王新年.單片機原理與程序設計實驗教程.西安電子科技大學出版社,2007年5月[2]謝維成、楊加國.單片機原理與應用及C51程序設計實例.電子工業(yè)出版社,2006年3月[3]魏立峰.單片機原理及應用技術.北京大學出版社,2005年[4]宋鳳娟,孫軍,李國忠.基于89C51單片機的數(shù)字電壓表設計[J].工業(yè)控制計算機,2007年[5]張靖武、周靈彬,單片機系統(tǒng)的Proteus設計與仿真[M],北京:電子工業(yè)出版社,2007年附錄1設計程序如下:#include<absacc.h>#include<reg51.h>#defineucharunsignedchar#defineucharunsignedchar#defineuintunsignedintsbitSTART=P3^0;sbitO

溫馨提示

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

評論

0/150

提交評論