基于單片機數字電壓表的硬件設計_第1頁
基于單片機數字電壓表的硬件設計_第2頁
基于單片機數字電壓表的硬件設計_第3頁
基于單片機數字電壓表的硬件設計_第4頁
基于單片機數字電壓表的硬件設計_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程設計(論文)說明書題目:基于單片機的數字電壓表院〔系〕:信息與通信學院專業(yè):通信工程學生姓名:學號:指導教師:職稱:2023年12月5日摘要本系統(tǒng)主要采用AT89C52芯片和ADC0809芯片來完成一個數字電壓表設計,能夠對輸入的0~5V的模擬直流電壓進行測量,并通過一個4位一體的8段LED數碼管進行輪流顯示或單路選擇顯示,測量誤差約為0.02V。還可以與PC進行串行通信。該電壓表的測量電路主要由三個模塊組成:A/D轉換模塊、數據處理模塊及顯示控制模塊。A/D轉換主要由芯片ADC0809來完成,它負責把采集到的模擬量轉換為相應的數字量再傳送到數據處理模塊。數據處理那么由芯片AT89C52來完成,其負責把ADC0809傳送來的數字量經一定的數據處理,產生相應的顯示碼送到顯示模塊進行顯示;另外它還通過P2端口控制著ADC0809芯片的模擬通道地址、A/D轉換控制信號和時鐘信號。顯示模塊主要由8段數碼管組成,顯示測量到的電壓值。最終,該系統(tǒng)到達設計的目的,高精度的顯示了所測量的電壓值,并可以通過按鍵開關準確無誤的輪流或單路顯示8〔IN0~IN7〕個通道。關鍵詞:數字電壓表,單片機,A/D轉換,LED數碼管,數據處理ABSTRACTInthesystemAT89C52chipandADC0809chiparemainlyusedtocompletethedesignofadigitalvoltagemeter,Themeasurementfromthedigitalvoltagemetercanbecarriedoutatthearrangeoftheinput0~5VanalogDCvoltage,and4throughaoneparagraph8digitaltubeLEDtaketurnstodisplaytaketurnsorone-waychoosetodisplay,themeasurementerrorisabout0.02V.ThesystemcanalsocommunicatewithPCserially.Itmainlyconsistsofthreemodules:A/Dconvertermodule,dataprocessingmoduleandthedisplaycontrolmodule.ADC0809chipisemployedforA/Dconversion,anditisresponsibleforcollectinganalogsignalandconvertingtheanalogsignaltodigitalsignalandsendsdigitaldata-processingmodule.AT89C52isthecontrollerandinchargeofdataprocessing,theADC0809isresponsiblefortransmissiontodigitalbyacertaindegreeofdataprocessing;AnalogchanneladdressofADC0809chip,A/DconversioncontrolsignalandclocksignalareallcontrolledbytheP2port.Displaymodulemainlycomposesof8digits,indicatingthevoltagevaluethatismeasured.Infinal,thedesigngoalisachieved,Thevoltagemeasuredisdisplayedaccurately.the8(IN0~IN7)channelsalternativedisplayorone-waychoicedisplaycanbecarriedoutbybuttoncorrectly.Keywords:Digitalvoltagemeter,Single-chipMicrocomputer,A/Dconverter,LEDdigitaltube,Dataprocessing前言1.研究意義在電量的測量中,電壓、電流和頻率是最根本的三個被測量,其中電壓量的測量最為經常。電學參量測量技術涉及范圍廣,適用于學校、工業(yè)、科研、國防等各種領域,供實驗室和工業(yè)現場測試用。而且隨著電子技術的開展,在數字化、智能化、科技化為主的今天。數字電壓表已成為電壓表設計的主要方向,在當前電壓測量系統(tǒng)中占有非常重要的位置。更是經常需要測量高精度的電壓,所以數字電壓表就成為一種必不可少的測量儀器。在電氣測量中,電壓是一個很重要的參數。如何準確地測量模擬信號的電壓值,一直是電測儀器研究的內容之一。數字電壓表是通用儀器中使用較廣泛的一種測試儀器,很多電量或非電量經變化后都用可數字電壓表完成測試。因此,數字電壓表被廣泛地應用于科研和生產測試中。2.研究現狀最近十幾年來,隨著半導體技術、集成電路(IC)和微處理器技術的開展,數字電路和數字化測量技術也有了巨大的進步,從而促使了數字電壓表的日新月異,并不斷出現新的類型。數字電壓表自1952年問世以來,大致經歷了五代產品。第一代是電子管數字電壓表,第二代屬于晶體管數字電壓表,第三代是中小規(guī)模集成電路的DVM。由大規(guī)模集成電路或超大規(guī)模集成電路構成的數字電壓表、智能數字電壓表,分別屬于第四代、第五代產品。經歷了不斷改良的過程,從最早采用繼電器、電子管的型式開展到了現在的全固態(tài)化、集成化(IC化〕,另一方面,精度也從0.%—0.005%,而且從實驗空用的高價的所謂的樣品開始已開展到了現在廠礦企業(yè)廣為利用的所謂的廉價型,進而出現了能夠用于安裝板上作指示儀表的安裝型。近年來,國內許多廠家通過積極引進,吸收國外先進技術,努力趕超先進水平,現以能夠大批量生產多種高、精、尖的數字電壓表以及相應的標準源、校驗儀。新型單片數字電壓表以其高準確度、高可靠度、高分辨力、高性價比等優(yōu)良特性倍受人們的青睞。本設計在分析研究和總結了單片機技術的開展歷史及趨勢的根底上,以實用、可靠、經濟、精度高等設計原那么為目標,設計出基于單片機的數字測量電壓表。單片機有著微處理器所不具備的功能,它可單獨地完成現代工業(yè)控制所要求的智能化控制功能,這是單片機最大的特征。單片機控制系統(tǒng)能夠取代以前利用復雜電子線路或數字電路構成的控制系統(tǒng),可用軟件控制來實現,并能夠實現智能化。由于單片機具有功能強、體積小、功耗低、價格廉價、工作可靠、使用方便等特點,因此,現在單片機控制范疇無所不在,例如通信產品、家用電器、智能儀器儀表、過程控制和專用控制裝置等等,單片機的應用領域越來越廣泛。正因為單片機技術的廣泛應用,使得高精度的電子測量成為可能。數字電壓表〔DigitalVoltmeter〕簡稱DVM,它是采用數字化測量技術,把連續(xù)的模擬量〔直流或交流輸入電壓〕轉換成不連續(xù)、離散的數字形式并加以顯示的儀表。傳統(tǒng)的指針式電壓表功能單一、精度低,不能滿足數字化時代的需求,采用單片機的數字電壓表,由精度高、抗干擾能力強,可擴展性強、集成方便,還可與PC進行實時通信。數字電壓表是諸多數字化儀表的核心與根底。以數字電壓表為核心,可以擴展成各種通用數字儀表、專用數字儀表及各種非電量的數字化儀表(如:溫度計、濕度計、酸度計、重量、厚度儀等),幾乎覆蓋了電子電工測量、工業(yè)測量、自動化儀表等各個領域。而且數字式儀器具有讀數準確方便、精度高、誤差小、靈敏度高和分辨率高、測量速度快等特點。因此對數字電壓表作全面深入的了解是很有必要的。3.研究內容在數字電壓表的設計中,控制系統(tǒng)采用AT89C52單片機,A/D轉換器采用ADC0809高精度、8位逐次逼近式轉換電路,測量范圍直流0~5伏,并在四位8段LED數碼管上輪流顯示或單路選擇顯示,可以與PC機進行串行通信。本文中該系統(tǒng)的數字電壓表電路簡單,所用的元件較少,本錢低,調節(jié)工作可實現自動化。系統(tǒng)除能確保實現要求的功能外,還可以方便地進行8路A/D轉換量的測量,遠程測量結果傳送等擴展功能。目錄TOC\o"1-3"\u第1章數字電壓表11.1電壓表的開展概況11.2數字電壓表的設計背景11.3數字電壓表的特點11.4數字儀表的開展趨勢3第2章系統(tǒng)硬件設計52.1功能要求52.2方案論證52.2.1核心芯片的選擇52.2.2模數轉換芯片的選擇52.2.3設計方案52.3系統(tǒng)硬件電路的設計6第3章系統(tǒng)主要硬件模塊介紹83.1AT89C52控制模塊83.1.1AT89C52的主要性能83.1.2AT89C52的引腳結構及功能93.2A/D轉換模塊113.2.1ADC0809的主要性能123.2.2ADC08089的內部邏輯結構 123.2.3ADC0809的引腳 123.3LED顯示模塊 133.4電源電路 153.5晶振電路153.6復位電路16第4章單片機與PC之間的串行通信174.1串行通信原理174.2RS232的介紹174.2.1主要信號線定義 184.2.2電氣特性 184.2.3接口的典型應用 194.3串行通信硬件電路的實現194.4單片機端的串行通信194.4.1串行接口的特殊功能存放器 194.4.2串行通信波特率的計算 21第5章性能測試225.1串行接口的特殊功能存放器 225.1串行接口的特殊功能存放器 22TOC\o"1-3"\u總結23致謝24參考文獻25附錄1 26附錄2 27第1章數字電壓表1.1電壓表的開展概況電壓測量是電子測量的一個重要內容。隨著電子技術的開展,對電壓測量提出了一系列的要求,主要可概括為:第一應有足夠寬的電壓測量范圍;第二應有足夠高的測量準確度;第三應有足夠高的輸入阻抗;第四應具有高的抗干擾能力。電壓測量儀器總的可分為兩大類:即模擬式和數字式的。模擬式電壓表是指針式的。用磁電式電流表作為指示器,并在電流表表盤上以電壓〔或db〕刻度。數字式電壓表首先將模擬量通過模/數〔A/D〕變換器變成數字量,然后用電子計數器計數,并以十進制數字顯示被測電壓值。模擬式電壓表由于電路簡單、價廉,特別是在測量高頻電壓時,其測量準確度不亞于數字電壓表,因此,在電壓測量中仍將占有重要地位。數字式電壓表在近年來已成為極其精確,靈活多用的電子儀器,并且價格正在逐漸下降。數字式電壓表能很好地與其它數字儀器相交接,因此在電壓測量系統(tǒng)的開展中是非常重要的。討論數字式電壓表的主要內容可歸結為電壓測量的數字化方法。模擬量的數字化測量,其關鍵是如何把隨時間作連續(xù)變化的模擬量變換成數字量,完成這種變換的電路叫模/數變換器。所以,數字式電壓表可以簡單理解為模/數變換。1.2數字電壓表的設計背景隨著電子科學技術的開展,電子測量成為廣闊電子工作者必須掌握的手段,對測量的精度和功能的要求也越來越高,而電壓的測量甚為突出,因為電壓的測量最為普遍。傳統(tǒng)的模擬電壓表,已有百年的開展歷史,雖然經過改良,但是仍然遠遠不能滿足測量的需要。近幾十年來隨著電子技術的開展,經常需要測量高精度的電壓,因此數字電壓表應運而生,開展的數度很快。數字電壓表是諸多數字化儀表的核心與根底。以數字電壓表為核心,可以擴展成各種通用數字儀表、專用數字儀表及各種非電量的數字化儀表(如:溫度計、濕度計、酸度計、重量、厚度儀等),幾乎覆蓋了電子電工測量、工業(yè)測量、自動化儀表等各個領域。而且數字式儀器具有讀數準確方便、精度高、誤差小、靈敏度高和分辨率高、測量速度快等特點。因此對數字電壓表作全面深入的了解是很有必要的。數字電壓表的特點數字電壓表簡稱DVM,它是采用數字化測量技術,把連續(xù)的模擬量〔直流輸入電壓〕轉換成不連續(xù)、離散的數字形式并加以顯示的儀表。數字電壓表的特點:1.顯示清晰直觀,讀數準確傳統(tǒng)的模擬式儀表必須借助于指針和刻度盤進行讀數,在讀數過程中不可防止的會引入人為的測量誤差。數字電壓表那么采用先進的數顯技術,使測量結果一目了然,只要儀表不發(fā)生跳讀現象,測量結果就是唯一的。新型數字電壓表還增加了標志符顯示功能,包括測量工程、符號單位和特殊符號、為解決DVM不能反映被測電壓的連續(xù)變化過程以及變化趨勢這一難題,一種“數字/模擬條圖〞儀表業(yè)已問世?!澳M圖條〞〔AnalofBargraph〕有雙重含義:第一,被測量為模擬量;第二,利用條狀圖形來模擬被測量的大小及變化趨勢。這類儀表將數字顯示與高分辨率模擬條圖顯示集于一身,兼有DVM與模擬電壓表之優(yōu)點。智能數字電壓表均帶微處理器和標準接口,可配合計算機和打印機進行數據處理或自動打印,構成完整的測試系統(tǒng)。2.顯示位數顯示位數通常為31/2位、32/3位、33/4/位、41/2位、43/4位、51/2位、61/2位、71/2位、81/2位共9種。判定數字儀表的位數有兩條原那么:①能顯示0~9所有數字的位是整數位;②分數位的數值是以最大顯示值中最高位數字為分子,用滿量程時最高數字作分母。例如,某數字儀表的最大顯示值為1999,滿量程計數值為2000,這說明該儀表有3個整數位,而分數位的分子為1,分母是2,故稱之為31/2位,讀作三位半。3.準確度高準確度是測量結果中系統(tǒng)誤差與隨機誤差的綜合。4.分辨率高數字電壓表在最低電壓量程上末位1個字所代表的電壓值,稱為儀表的分辨力,它反映儀表靈敏度的上下。分辨力隨顯示位數的增加而提高。分辨率是指所能顯示的最小數字〔零除外〕與最大數字的百分比。例如31/2位DVM的分辨率為%。需要指出,分辨力與準確度屬于兩個不同的觀念。從測量角度看,分辨力是“虛〞指標〔與測量誤差無關〕,準確度才是“實〞指標〔代表測量誤差的大小〕。5.測量范圍寬多量程DVM一般可測量0~1000V直流電壓,配上高壓探頭還可測上萬伏的高壓。6.擴展能力強在數字電壓表的根底上,還可擴展成各種通用及專用數字儀表、數字多用表〔DMM〕和智能儀表,以滿足不同的需要。7.測量速度快數字電壓表在每秒鐘內對被測電壓的測量次數,叫測量速率,單位是“次/S〞。它主要取決于A/D轉換器的轉換速率,其倒數是測量周期。8.輸入阻抗高數字電壓表具有很高的輸入阻抗,通常為10MΩ~10000MΩ,最高可達1TΩ。9.集成度高,微功耗新型數字電壓表普遍采用CMOS大規(guī)模集成電路,整機功耗很低。10.抗干擾能力強51/2位以下的DVM大多采用積分式A/D轉換器,其串模抑制比、共模抑制比各別可達100dB、80~120dB。高檔DVM還采用數字濾波、浮地保護等先進技術,進一步提高了抗干擾能力,共模抑制比可達180dB。數字儀表的開展趨勢采用新技術、新工藝,由LSI和VLSI構成的新型數字儀表及高檔智能儀器的大量問世,標志著電子儀器領域的一場革命,也開創(chuàng)了現代電子測量技術的先河。新型數字儀表的開展主要有五個方向:

1.廣泛采用新技術,不斷開發(fā)新產品

2.向模塊化開展新一代數字儀表正朝著標準模塊化的方向開展。預計在不久的將來,許多數字儀表將由標準化、通用化、系列化的模塊所構成,給電路設計和安裝調試、維修帶來極大方便。外表安裝技術〔SMT〕和外表安裝元器件〔SMD〕將獲得普遍應用。這項技術被譽為世界電子工藝技術的一項重要突破。所謂外表安裝是將微型化的外表安裝集成電路〔SMIC〕和外表安裝元件,用粘貼工藝直接安裝在印刷板上,再用波峰焊接機焊接,由此取代傳統(tǒng)的打孔焊接工藝,使印刷板安裝密度大為增加,可靠性得到明顯提高。

3.多重顯示儀表為徹底解決數字儀表不便于觀察連續(xù)變化量的技術難題,“數字/模擬條圖〞雙顯示儀表已成為國際流行款式,它兼有數字儀表準確度高、模擬式儀表便于觀察被測量的變化過程及變化趨勢的兩大優(yōu)點。模擬條圖大致分成三類:①液晶〔LCD〕條圖,呈斷續(xù)的條狀,這種顯示器的分辨力高、微功耗,體積小,低壓驅動,適于電池供電的小型化儀表。②等離子體〔PDP〕光柱顯示器,其優(yōu)點是自身發(fā)光,亮度高,顯示清晰,觀察距離遠,分辨力較高,缺點是驅動電壓高,耗電較大。③LED光柱,它是又多只發(fā)光二極管排列而成。這種顯示器的亮度高,本錢低,但象素尺寸較大,功耗高,驅動電路復雜。4.平安性儀器儀表在設計和使用中的平安性,對于生產廠家和廣闊用戶都是至關重要的問題。一方面廠家必須為儀表設計平安保護電路,并使之符合國際標準〔例如美國UL認證,歐洲GS認證,ISO9001國際標準質量認證〕;另一方面用戶必須平安操作,時刻注意儀表上的各種平安警告指示。儀表的保護電路在于最大限度的減小或防止因誤操作而造成的危害。以DMM為例,常見的誤操作是用電流檔或電阻檔去測量電壓。5.操作簡單化第2章系統(tǒng)硬件設計2.1功能要求數字電壓表可以測量0~5V的輸入電壓值,并在四位LED數碼管上輪流顯示或單路選擇顯示。測量最小分辨率為0.019V,測量誤差約為。2.2方案論證2.2.1核心芯片的選擇AT89C52單片機價格低廉,輸入輸出口豐富,無需再另外擴展,簡化了外圍電路。256B內部RAM,8kB內部ROM,程序存儲空間大,防止由于字模過多而造成存儲空間不夠。另外由于前期開發(fā)需要屢次的寫入、擦除,而89C52可以完成1000次寫/擦,故滿足要求。2.2.2模數轉換芯片的選擇ADC0809是8位的A/D轉換芯片,為逐次逼近型。由單一的+5V電源供電,片內帶有所存功能的8路模擬多路開關,可對8路0~5V的輸入模擬電壓信號分時進行轉換,完成一次轉換約需100μs;片內的地址譯碼和鎖存電路,將單片機的三條地址信號譯碼生成選擇八路模擬通道。輸出具有TTL三態(tài)鎖存緩沖器,可以直接接到單片機的數據線上。2設計方案按系統(tǒng)功能實現要求,決定控制系統(tǒng)采用AT89C52單片機,A/D轉換采用ADC0809.系統(tǒng)除能確保實現要求的功能外,還可以方便地進行8路其它A/D轉換量的測量、遠程測量結果傳送的擴展功能。實驗證明,采用AT89C52開發(fā)的系統(tǒng)性能可靠、本錢較低、軟件設計靈活簡單、硬件接口功能豐富,具有擴展性好、通用性強等優(yōu)點。數字電壓表系統(tǒng)設計方案框圖如圖2-1所示:圖2-1數字電壓表系統(tǒng)設計方案2.3系統(tǒng)硬件電路的設計數字電壓測量電路由A/D轉換、數據處理及顯示控制等組成,電路原理圖如圖2-2所示。A/D轉換由集成電路0809完成。0809具有8路模擬輸入端口,地址線〔23~25腳〕可決定對哪一路模擬輸入作A/D轉換。22腳為地址鎖存控制,當輸入為高電平時,對地址信號進行鎖存。6腳為測試控制,當輸入一個2S寬高電平脈沖時,就開始A/D轉換。7腳為轉換結束標志,當A/D轉換結束時,7腳輸出高電平。9腳為A/D轉換數據輸出允許控制,當OE腳為高電平時,A/D轉換數據從該端口輸出。10腳為0809的時鐘輸入端。單片機P1的端口作為四位數碼管顯示控制;P3.0端口用作串行口輸入端,P3.1端口用作串行口輸出端;端口用作單路顯示時選擇通道;P0端口作A/D轉換數據讀入用,P2端口用作0809的A/D轉換控制。圖2-2數字電壓表電路原理圖第3章系統(tǒng)主要硬件模塊介紹本系統(tǒng)主要包括三大模塊:AT89C52控制模塊、A/D轉換模塊、LED顯示模塊。這三大模塊的共同作用最后完成數字電壓表的設計。3.1AT89C52控制模塊控制模塊是由AT89C52單片機來實現數據的處理和控制的。AT89C52是一個低功耗,高性能CMOS8位單片機,片內含8kBytesISP(In-systemprogrammable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,芯片內集成了通用8位中央處理器和ISPFlash存儲單元,功能強大的微型計算機的AT89C52此外,AT89C52設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式。空閑模式下,CPU暫停工作,而RAM定時計數器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結振蕩器而保存RAM的數據,停止芯片其它功能直至外中斷激活或硬復位,同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應不同產品的需求。3.1.1AT89C52的主要性能AT89C52具有如下特點:與MCS_51產品兼容;具有8K字節(jié)可在系統(tǒng)編程的Flash內部程序存儲器,可擦/寫100次;~的工作電壓范圍;全靜態(tài)操作:0HZ~24MHZ;三級程序存儲器加密;256×8bit內部RAM;32根可編程I/O線;三個16位定時器/計數器;8個中斷源;全雙工異步串行通信通道;低功耗空閑和掉電保護;通過中斷中止掉電方式;看門狗定時器;兩個數據指針;時鐘頻率0~33MHZ;全雙工UART串行中斷口線;〔17〕靈活的ISP字節(jié)和分頁編程。3AT89C52的引腳結構及功能(1)AT89C52引腳結構圖如以下圖3-1所示:圖3-1AT89C52引腳結構圖(2)此設計用到的主要管腳及功能XTAL1〔19腳〕和XTAL2〔18腳〕為振蕩器輸入輸出端口,外接12MHz晶振。RST/Vpd〔9腳〕為復位輸入端口,外接電阻電容組成的復位電路。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將使單片機復位。VCC〔40腳〕和VSS〔20腳〕為供電端口,分別接+5V電源的正負端。P0~P3為可編程通用I/O腳,其功能用途由軟件定義。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如表3-1所示:P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。表3-1P3口第2功能表引腳第2功能RXD〔串行口輸入端〕TXD〔串行口輸出端〕〔外部中斷0輸入端〕〔外部中斷1輸入端〕T0〔定時計數器0輸入端〕T1〔定時計數器1輸入端〕(外部數據存儲器寫選通信號輸出端〕〔外部數據存儲器讀選通信號輸出端〕下面對此系統(tǒng)要用到的功能進行簡單的描述:存儲結構介紹:如果引腳接地,系統(tǒng)尋址外部程序存儲器。對于AT89S52,如果引腳接至VCC,CPU。執(zhí)行內部存儲器0000H到1FFFH的程序,外部程序存儲器尋址空間為2000H到FFFFH。2.數據存儲器 AT89C52具有256字節(jié)的片內RAM。高128字節(jié)與專用存放器地址空間重疊,亦即高128字節(jié)與專用存放器空間有相同的地址,而物理上與專用存放器是分開的。假設采用直接尋址方式,那么是訪問特殊功能存放器;假設采用間接尋址方式,那么是訪問高128字節(jié)的RAM。堆棧操作也是間接尋址,所以,高128字節(jié)的數據RAM中斷介紹:AT89C52共有6個中斷源:兩個外部中斷,三個定時器中斷〔T0、T1、T2〕和一個串行口中斷。通過專用存放器IE置位或清0,可分別控制這些中斷源中每一個允許或禁止中斷。IE也有一個總禁止位EA中斷請求源:外部中斷請求源:即外中斷0和1,經由外部管腳引入的,在單片機上有兩個管腳,名稱為INT0、INT1,也就是P3.2、P3.3這兩個管腳。在內部的TCON中有四位是與外中斷有關的。IT0:INT0觸發(fā)方式控制位,可由軟件進和置位和復位,IT0=0,INT0為低電平觸發(fā)方式,IT0=1,INT0為負跳變觸發(fā)方式。這兩種方式的差異將在以后再談。IE0:INT0中斷請求標志位。當有外部的中斷請求時,這位就會置1〔這由硬件來完成〕,在CPU響應中斷后,由硬件將IE0清0。IT1、IE1的用途和IT0、IE0相同。中斷響應過程:〔1〕中斷響應的條件:MCS51工作時,在每個機器周期中都會去查詢一下各個中斷標記,看他們是否是“1〞,如果是1,就說明有中斷請求了,以下三種情況之一時,CPU將封鎖對中斷的響應:CPU正在處理一個同級或更高級別的中斷請求?,F行的機器周期不是當前正執(zhí)行指令的最后一個周期。當前執(zhí)行指令是單字節(jié)沒有關系,如果是雙字節(jié)或四字節(jié)的,就要等整條指令都執(zhí)行完了,才能響應中斷〔因為中斷查詢是在每個機器周期都可能查到的〕。當前正執(zhí)行的指令是返回批令〔RETI〕或訪問IP、IE存放器的指令,那么CPU至少再執(zhí)行一條指令才應中斷。這些都是與中斷有關的,如果正訪問IP、IE那么可能會開、關中斷或改變中斷的優(yōu)先級,而中斷返回指令那么說明本次中斷還沒有處理完,所以都要等本指令處理結束,再執(zhí)行一條指令才能響應中斷?!?〕在正常的情況下,從中斷請求信號有效開始,到中斷得到響應,通常需要3個機器周期到8個機器周期。中斷得到響應后,自動去除中斷請求標志(對串行I/O端口的中斷標志,要用軟件去除),將斷點即程序計數器之值(PC)壓入堆棧(以備恢復用);然后把相應的中斷入口地址裝入PC,使程序轉入到相應的中斷效勞程序中去執(zhí)行。各個中斷源在程序存儲器中的中斷入口地址如下:

中斷源入口地址

INT0(外部中斷0)0003HTF0(TO中斷)000BHINT1(外部中斷1)0013H〔此中斷口為本系統(tǒng)所用到的中斷口〕

TF1(T1中斷)001BH

RI/TI(串行口中斷)0023H3.2A/D轉換模塊A/D轉換模塊是由ADC0809芯片來完成的。ADC0809芯片是典型的8位8通道逐次逼近式A/D轉換器,采用CMOS工藝制造。3.2.1ADC0809的主要性能:(1)8位逐次逼近型A/D轉換器,所有引腳的邏輯電平與TTL電平兼容。(2)帶有鎖存功能的8路模擬量轉換開關,可對8路0~5V模擬量進行分時切換。(3)輸出具有三態(tài)鎖存功能。(4)分辨率:8位,轉換時間:100μs。(5)不可調誤差:±1LBS,功耗:15mW。(6)工作電壓:+5V,參考電壓標準值+5V。(7)片內無時鐘,一般需外加640KHz以下且不低于100KHz的時鐘信號。3ADC08089的內部邏輯結構ADC0809的內部邏輯結構如圖3-2〔a〕所示。圖〔a〕中多路模擬量開關可選通8個模擬通道,允許8路模擬量分時輸入,并公用1個A/D轉換器進行轉換。ADC0809的內部結構:ADC0809是CMOS的8位模/數轉換器,采用逐次逼近原理進行A/D轉換,芯片內有模擬多路轉換開關和A/D轉換兩大局部,可對8路0~5V的輸入模擬電壓信號分時進行轉換。模擬多路開關由8路模擬開關和3位地址鎖存譯碼器組成,可選通8路模擬輸入中的任何一路,地址鎖存信號ALE將3位地址信號ADDA、ADDB、ADDC進行鎖存,然后由譯碼電路選通其中的一路,被選中的通道進行A/D轉換。A/D轉換局部包括比擬器、逐次逼近存放器〔SAR〕、256R電阻網絡、樹狀電子開關、控制與時序電路等。另外ADC0809輸出具有TTL三態(tài)鎖存緩沖器,可直接連到CPU數據總線上。3.2.3ADC0809的引腳ADC0809芯片為28引腳雙列直插式封裝,其引腳排列見圖3-2〔b〕所示。IN7~IN0:模擬量輸入通道。0809對輸入模擬量的要求主要有:信號單極性、電壓范圍0~5V、假設輸入信號過小還需進行放大。另外,模擬量輸入在A/D轉換過程中其值不應變化,而對變化速度快的模擬量,在輸入前應增加采樣保持電路。ADDA、ADDB、ADDC:模擬通道地址線。這3根地址線用于對模擬通道進行選擇,ADDA為低位地址,ADDC為高位地址。ALE:地址鎖存信號。對應于ALE上跳沿時,ADDA、ADDB、ADDC地址狀態(tài)送入地址鎖存器中。START:轉換啟動信號。在START信號上跳沿時,所有內部存放器清0;在START下跳沿時,開始進行A/D轉換。在A/D轉換期間,START信號應保持低電平。該信號可簡寫為ST。D7~D0:數據輸出線。該數據輸出線為三太緩沖輸出形式,可以和單片機的數據總線直接相連。OE:輸出允許信號。它用于控制三太輸出鎖存器向單片機輸出轉換后的數據。OE=0時輸出數據線呈高阻狀態(tài);OE=1時輸出允許。CLK:時鐘信號。ADC0809的內部沒有時鐘電路,所需時鐘信號有外界提供,通常使用頻率微500KHZ的時鐘信號。EOC:轉換結束狀態(tài)信號。當EOC=0時,表示正在進行轉換;EOC=1時,表示轉換結束。實際使用中該狀態(tài)信號即可作為查詢的狀態(tài)標志,還可作為中斷請求信號使用?!瞐〕ADC0809的內部邏輯結構圖〔b〕ADC0809的引腳圖圖3-2LCD1602液晶模塊簡介1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊。它由假設干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形〔用自定義CGRAM,顯示效果也不好〕。1602LCD是指顯示的內容為16X2,即可以顯示兩行,每行16個字符液晶模塊〔顯示字符和數字〕。目前市面上字符液晶絕大多數是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應用于市面上大局部的字符型液晶。管腳功能圖3-3LCD1602液晶管腳圖1602采用標準的16腳接口,其中:第1腳:VSS為電源地第2腳:VCC接5V電源正極第3腳:V0為液晶顯示器比照度調整端,接正電源時比照度最弱,接地電源時比照度最高〔比照度過高時會產生“鬼影〞,使用時可以通過一個10K的電位器調整比照度〕。第4腳:RS為存放器選擇,高電平1時選擇數據存放器、低電平0時選擇指令存放器。第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。第6腳:E(或EN)端為使能(enable)端。第7~14腳:D0~D7為8位雙向數據端。第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負極。3.4電源電路眾所皆知,電源電路設計,乃是在整體電路設計中最根底的必備功夫??梢哉f,有電器的地方就有電源。所有的電子齊備都離不開可靠的電源為其供電。現代電子設備中的電路使用了大量半導體器件,這些半導體器件需要幾伏到幾十伏的直流供電,以便得到正常工作所必需的能源。這些直流電源有的屬于化學電源,如采用交流電源經過變壓、整流、濾波、穩(wěn)壓等變換為所需的直流電壓。完成這種變換任務的電源稱為直流穩(wěn)壓電源。本設計涉及的就是這類電源。它是通過變壓器〔直流穩(wěn)壓電壓〕提供一個5V的電源電壓。3.5晶振電路晶振是為電路提供頻率基準的元器件,通常分成有源晶振和無源晶振兩個類,無源晶振需要芯片內部有振蕩器,并且晶振的信號電壓根據起振電路而定,允許不同的電壓,但無源晶振通常信號質量和精度較差,需要精確匹配外圍電路〔電感、電容、電阻等〕,如需更換晶振時要同時更換外圍的電路。有源晶振不需要芯片的內部振蕩器,可以提供高精度的頻率基準,信號質量也較無源晶振要好。因價格等因素,實際應用中多采用無源晶振設計的電路居多,除非電路設計時序極其敏感或芯片內部無振蕩器的情況〔如一些型號的DSP或精密儀器中〕。51開發(fā)板晶振采用的是單片機通用的的無源晶振,輸出時鐘到單片機P18和P19。其電路圖如以下圖3-4所示:圖3-4晶振電路3.6復位電路一個芯片,尤其是可編程芯片,通常在上電的瞬間需要一個短暫的時間進行內部參數的初始化,這個時候芯片無法立即進入工作狀態(tài)。通常稱上電初始化這些工作為復位,完成這個功能的電路稱之為復位電路。MCS—51單片機在時鐘電路工作以后,在RST端持續(xù)給出2個機器周期的高電平就可以完成復位操作〔一般復位正脈沖寬度大于10ms〕。復位分為上電復位和外部復位兩種方式。上電復位是在單片機接通電源時,對單片機的復位。上電復位電路如圖3-5所示。在上電瞬間RST端與Vcc電位相同,隨著電容上電壓的逐漸上升,RST端電位逐漸下降。上電復位所需的最短時間是振蕩器振蕩建立時間加2個機器周期。復位電路的阻容參數通常由實驗調,在RST端提供足夠的高電平脈沖,使單片機能夠可靠地上電自動復位。圖3-5上電復位電路在該系統(tǒng)設計中用的就是上電復位電路,高電平有效。第4章單片機與PC之間的串行通信4.1串行通信原理所謂“串行通信〞是指外設和計算機間使用一根數據信號線,數據在一根數據信號線上按位進行傳輸,每一位數據都占據一個固定的時間長度。這種通信方式使用的數據線少,在遠距離通信中可以節(jié)約通信本錢,當然,其傳輸速度比并行傳輸慢。相比之下,由于高速率的要求,處于計算機內部的CPU與串口之間的通訊仍然采用并行的通訊方式,所以串行口的本質就是實現CPU與外圍數據設備的數據格式轉換〔或者稱為串并轉換器〕,即當數據從外圍設備輸入計算機時,數據格式由位(bit)轉化為字節(jié)數據;反之,當計算機發(fā)送下行數據到外圍設備時,串口又將字節(jié)數據轉化為位數據。串行通信有三種通信方式:單工、半雙工、全雙工。串行端口的本質功能是作為CPU和串行設備間的編碼轉換器.當數據從CPU經過串行端口發(fā)送出去時,字節(jié)數據轉換為串行的位。在接收數據時,串行的位被轉換為字節(jié)數據,在Windows環(huán)境(WindowsNT、Win98、Windows2000)下,串口是系統(tǒng)資源的一局部。應用程序要使用串口進行通信,必須在使用之前向操作系統(tǒng)提出資源申請要求(翻開串口),通信完成后必須釋放資源(關閉串口)。4.2RS232的介紹一個完整的RS-232C接口有22根線,采用標準的25芯插頭座(或者9芯插頭座。25芯和9芯的主要信號線相同。以下的介紹是以9芯的RS-232C為例。設計中采用了9芯的。MAX232的引腳圖如圖4-1所示:圖4-1MAX232引腳圖4主要信號線定義:引腳1:保護地;引腳2:發(fā)送數據TXD;引腳3:接收數據RXD;引腳4:請求發(fā)送RTS;引腳5:去除發(fā)送CTS;引腳6:數據設備就緒DSR;引腳7:信號地;引腳8:數據載波檢測DCD;4電氣特性:數據傳輸速率最大可到20Kbps,最大距離僅15m.注:看了微軟的MSDN6.0,其WindowsAPI中關于串行通訊設備(不一定都是串口RS-232C或RS-422或RS-449)速率的設置,最大可支持到RS_256000,即256Kbps!也不知道到底是什么串行通訊設備?但不管怎樣,一般主機和單片機的串口通訊大多都在9600bps,可以滿足通訊需求。4接口的典型應用:大多數計算機應用系統(tǒng)與智能單元之間只需使用3到5根信號線即可工作。這時,除了TXD、RXD以外,還需使用RTS、CTS、DCD、DTR、DSR等信號線。(當然,在程序中也需要對相應的信號線進行設置。)圖4-2單片機與計算機的連接以上接法,在設計程序時,直接進行數據的接收和發(fā)送就可以了,不需要對信號線的狀態(tài)進行判斷或設置。(如果應用的場合需要使用握手信號等,需要對相應的信號線的狀態(tài)進行檢測或設置。)4.3串行通信硬件電路的實現一般說來,計算機都有一個或多個串行端口,他們依次為COM1、COM2,……這些串口還提供了外部設備與PC機進行數據傳輸和通信的通道,這些串口在CPU和外設之間充當解釋器的角色。當字符數據從計算機發(fā)送給外設時,這些字符數據將被轉換為比特流數據;當接收數據時,比特流數據被轉換為字符數據傳遞給CPU。單片機串口輸入輸出電平為TTL電平,而計算機串口符合RS232C串行總線標準,采用的是負邏輯,邏輯“1〞為-5V~-15V,邏輯0為+5V~+15V。這兩種電平是不一樣的,因此不能直接連在一起,在本設計中,采用了電平轉換芯片MAX232來實現了單片機電平與RS232電平之間的統(tǒng)一。4.4單片機端的串行通信單片機AT89C52內部有一個功能很強的全雙工串行口,可以同時發(fā)送和接收數據,它有四種工作方式可供不同場合使用。波特率由軟件設置,通過片內的定時/計數器產生。接收和發(fā)送均可工作在查詢方式或中斷方式。串行口有兩個獨立的接收、發(fā)送緩沖器SBUF〔屬于特殊功能存放器〕。一個用作發(fā)送,一個用于接收,發(fā)送緩沖器只能寫入不能讀出,接受緩沖器只能讀出不能寫入,兩者共用一個字節(jié)地址99H。在發(fā)送數據時,CPU由一條寫發(fā)送緩沖區(qū)的指令把數據〔字符〕寫入串行口的發(fā)送緩沖器SBUF〔發(fā)〕中,然后從TXD端1位1位地向外發(fā)送。與此同時,接收端RXD也可1位1位地接收數據,直到接收到一個完整的字符數據后通知CPU,再用一條指令把接收緩沖器SBUF〔收〕的內容讀入累加器。串行接口的特殊功能存放器〔1〕串行口數據緩沖器SBUFSBUF是兩個在物理上獨立的接收、發(fā)送緩沖器,可同時發(fā)送、接收數據,兩個緩沖器共用一個字節(jié)地址99H,可通過指令對SBUF的讀寫來區(qū)別是對接收緩沖器的操作還是對發(fā)送緩沖器的操作。CPU寫SBUF就是修改發(fā)送緩沖器;讀SBUF就是讀接收緩沖器,串行口對外也有兩條獨立的收發(fā)信號線RXD〔〕和TXD〔〕。因此可以同時發(fā)送、接收數據,實現全雙工傳送。〔2〕串行口控制存放器SCONSCON存放器用來控制串行口的工作方式和狀態(tài),它可以是位尋址。在復位時所有位被清零,字節(jié)地址為98H,SCON的格式如圖4-3所示。D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI98H圖4-3SCON格式〔3〕特殊功能存放器PCONPCON主要是為CHMOS型單片機的電源控制而設置的專用存放器,單元地址為87H不能為尋址,其格式如圖4-4所示。D7D6D5D4D3D2D1D0SMODGF1GF0PDIDL87H圖4-4PCON格式在HMOS單片機中,該存放器除最高位外,其它位都是虛設的。最高位SMOD為串行口波特率選擇位,當SMOD=1,方式1、2、3的波特率加倍;當SMOD=0時,系統(tǒng)復位。AT89C51的串行端口有4種工作方式,通過編程設計,可以使其工作在任一方式,以滿足不同場合的需要。其中,方式0主要用于外接移位存放器,以擴展單片機的I/O電路;方式1主要用于雙機之間或外設電路的通信;方式2、3除有方式1的功能外,還可用作多機通信,以構成多微機系統(tǒng),方式2、3的區(qū)別在于波特率的不同。串行口有四種工作方式,它是由SCON中的SM0、SM1來定義的如下表4-1所示:表4-1SM0SM1工作方式方式簡單描述波特率000移位存放器I/O主振頻率/120118位UART可變1029位UART主振頻率/32或主振頻率/641139位UART可變串行通信的波特率可以程控設定,在不同的工作方式下,由時鐘振蕩頻率的分頻值或由定時器T1的定時溢出時間確定。單片機的串行端口有2個控制存放器,用來設置工作方式、發(fā)送或接收的狀態(tài)、特征位、數據傳送的波特率以及中斷標志TI和RI。串行端口有1個數據存放器SBUF,該存放器為發(fā)送和接收所共有,在一定條件下,向SBUF寫入數據就啟動了發(fā)送過程,讀SBUF就啟動了接收過程。單片機可以采用循環(huán)方式或中斷方式實現串行數據的傳送。在循環(huán)方式下,單片機循環(huán)對數據存放器SBUF進行讀寫來實現數據的接收和發(fā)送;在中斷方式下,對方式1、2來說,1幀數據發(fā)送或接收完后,TI/RI自動置1,請求串行中斷,假設CPU響應中斷,那么執(zhí)行串行中斷效勞程序,并把TI/RI清0以再次響應中斷。對在方式2、3下的接收,還要視串口控制存放器SCON的設置才可確定RI是否被置位以及串口中斷是否開放。實時控制中,由于事件的突發(fā)性,常采用中斷的方式進行數據傳送,中斷方式能更大限度地提高資源的利用率,使CPU在不進行數據通信時做其他的工作。下面重點介紹單片機在方式1下的中斷方式編程。方式1是10位異步通信方式,其中包括1個起始位,8個數據位和1個停止位。波特率由定時器T1的溢出率和串口控制存放器SMOD的狀態(tài)確定,在CPU的晶振為時,波特率常采用9600b/s。對SBUF進行寫操作就可啟動發(fā)送,在發(fā)送移位時鐘的同步下,從TXD先送出起始位,然后是8位數據位,最后是停止位,這樣,1幀數據發(fā)送完,中斷標志TI置位。在允許接收的條件下(REN=1),當RXD出現由1到0的負跳變時,即被當成是串行發(fā)送來的1幀數據的起始位,從而啟動1次接收過程。當8位數據接收完,并檢測到高電平停止位后,即把收到的8位數據裝入SBUF,置位RI,1幀數據的接收過程就完成了。設計中單片機是以方式1在直接傳送下的中斷接收和發(fā)送程序。由于沒有使用通信握手,所以通信雙方都應做好通信準備。在計算機發(fā)送、單片機接收時,計算機發(fā)送1幀數據,單片機響應中斷,接收數據。串行通信波特率的計算串行通信的四種工作方式對應著3種波特率。方式0,為單片機時鐘的十二分之一,即fosc/12方式2,波特率由兩種可供選擇,即fosc/32和fosc/64。對應于以下公式:波特率=fosc*2smod/64方式1和方式3,波特率由定時器T1的溢出率決定,對應于以下公式:波特率=〔2smod/32〕*〔定時器T1的溢出率〕而定時器T1的溢出率那么和所采用的定時器的工作方式有關,并可用下面的公式計算:定時器T1的溢出率=fosc/12*(2n-X)其中X為定時器T1的計數初值,n為定時器T1的位數,對定時器方式0,取n=13;對定時器方式1,取n=16;對定時器方式2、3,取n=8;對設計中川口初始化設置的計算如下:單片機的時鐘采用12M的晶振,定時器T1采用工作方式2,串行通信采用方式1,波特率選用2400。取SMOD=0,那么定時器T1的溢出率=波特率*32/2smod=2400*32/20=76800計數初值X=2n-〔fosc/T1的溢出率*12〕=28-〔12*106/76800*12〕=243=F3H特殊存放器的初值確實定:對于SCON,SM0、SM1=01時為方式1,在SM2=0和REN=1的條件下,允許接收數據,其余各位均取0那么:SCON=01010000B=50H對于PCON:由于SMOD=0,所以PCON=00H對于TMOD:由于只用T1,且為定時方式2,所以TMOD=00100000=20H第5章性能測試5.1硬件電路測試按照電路圖將各器件焊接到實驗板上,對焊接完的硬件電路進行調試。首先,用焊接完的實物和電路圖進行對照,找出是否有遺漏或者接錯的地方,如有發(fā)現及時更正。其次,用萬用表檢查電路中是否有短路和斷路的現象,并檢查所有的電源線是否導通,所有的地線是否導通。再次,將電路分成多個小模塊,并且編輯一些專門的小程序,來檢測它們是否正確。最后,接通電源,用萬用表檢測各局部電路的電壓和電流是否正常。5.2各功能模塊軟件測試電路檢查無誤后,需要對系統(tǒng)的各個模塊進行軟件與硬件相結合的調試。本設計使用的是WAVE系列仿真器,將仿真器接入硬件電路中,并和電腦的串行口工作。如果電路工作不正常,那么將程序設置幾個斷點,并單步運行程序,找出程序的錯誤及時更正??偨Y在這次設計中,我們完成了一個基于單片機的數字電壓表設計,盡管結果算不上很完美,但是我們努力了,獲得了豐富的知識,完善了大學四年中純理論的模仿學習。我從資料的收集中,掌握了很多單片機、液晶顯示屏的知識,讓我對我所學過的知識有所穩(wěn)固和提高,并且讓我對當今單片機、液晶顯示屏的最新開展技術有所了解。在整個過程中,我學到了新知識,增長了見識。當然,通過本次設計,也發(fā)現了我在許多知識上的欠缺。通過畢業(yè)設計,我們不單單是完成了我們的設計題目,而且認識到了設計的方法和思路。在今后的日子里,我仍然要不斷地充實自己,爭取在所學領域有所作為。

在這個過程中,有很多值得總結的地方。尤其在應用ProtelDXP畫原理圖,在PCB板上手工布線,以及在做實物過程中,都需要對細節(jié)性的東西比擬清楚,返工的幾率才會比擬少。當準備調試板子的時候,一定要先認真的做好目視檢查,檢查在焊接的過程中是否有可見的短路和管腳搭錫等故障,檢查是否有元器件型號放置錯誤,第一腳放置錯誤,漏裝配等問題,然后用萬用表測量各個電源到地的電阻,以檢查是否有短路,這個好習慣可以防止貿然上電后損壞單板。調試的過程中要有平和的心態(tài),遇見問題是非常正常的,要做的就是多做比擬和分析,逐步的排除可能的原因,要堅信“凡事都是有方法解決的〞和“問題出現一定有它的原因〞,這樣最后一定能調試成功。腳踏實地,認真嚴謹,實事求是的學習態(tài)度,不怕困難、堅持不懈、吃苦耐勞的精神是我在這次設計中最大的收益。我想這是一次意志的磨練,是對我實際能力的一次提升,也會對我未來的學習和工作有很大的幫助。

致謝在這次課程設計的整個過程中,雖然設計結果并不是很完美,但是,在這整個課程設計期間,使我學到了很多在這之前沒有學到的知識、技能。也讓我學到了怎樣才能更好的與人合作。使我把整個大學期間所學到的知識進行了一個最后的總結和復習,也使我對所學的知識有了進一步的思考。也讓我從另一個方面認識了我所學專業(yè)的重要性??梢哉f,在這長達一個學期的設計過程中,我是收獲多多,這些都要感謝這次設計過程中給予我?guī)椭拿恳粋€老師和同學。首先,應該感謝的是學院為我們提供了良好的設計環(huán)境,為我們提供了很方便的查詢各種需要資料的環(huán)境。也為我們每一個學生的設計提供了很好的設計平臺,并在整個設計過程中不斷的催促我們完成我們的畢業(yè)設計。更應該感謝的是我的指導老師肖功利老師,肖老師在極其繁忙的工作中還抽出大量的時間來為我們輔導,為我們的設計分配任務,提供了思路,解決我們在設計過程中遇到的各種困難,為我們的論文的編寫提供了很好的思路和建議,并指引著我們朝著完美設計的方向開展。在此我要向王老師致以最衷心的感謝。其次,也應該感謝我的軟件伙伴韓日華同學,他在這次設計中給了我軟件的支持和在系統(tǒng)調試的過程中努力的解決在調試過程中遇到的各種問題。在我們積極良好的配合之下,才使得這次設計得以順利的完成。還應該感謝的是班上的同學們,他們在我硬件電路的設計、PCB板的焊接以及調試的過程中給予了極大建議和幫助。另外,還要感謝我的社友們,在設計過程中,他們給了我極大的精神鼓勵。在這次畢業(yè)設計中使我們的同學關系更進了一步,同學之間互相幫助,有什么不懂的大家在一起商量,聽聽不同的看法使我們更好的理解知識??傊兄x這次設計中給我?guī)椭乃腥?,有了他們的指導、幫助和鼓勵,才使得我能在學校規(guī)定的時間內順利的完成這次的設計任務。也使我在這次的設計中成長了許多。參考文獻[1]《新編實用數字化測量技術》沙占友編國防工業(yè)出版社,1998[2]《單片機根底》李廣第朱月秀王秀山編北京航空航天大學出版社,2001[3]《單片機課程設計實例知道》李光飛等編北京航空航天大學出版社,2004[4]《電子技術》房建東高勝利編內蒙古大學出版社,2004[5]《單片機實用系統(tǒng)設計技術》房小翠王金鳳編國防工業(yè)出版社,1999[6]《電子創(chuàng)新設計與實踐》王松武于鑫武思軍編國防工業(yè)出版社,2005[7]《單片微型計算機原理及應用》張毅坤等西安:西安電子科技大學出版社,2005[8]《單片機課程設計實例指導》北京航空航天出版社,2002[9]《51單片機應用開發(fā)案例精選》王為青邱文勛等編人民郵政出版社,2007[10]《單片機典型模塊實例導航》求是科技編人民郵電出版社[11]《單片機外圍電路設計》沙占有王彥朋等編電子工業(yè)出版社[12]《串行技術大全》謝瑞等編清華大學出版社[13]《AT89系列單片機原理與接口技術》王幸之鐘愛琴編北京航空航天大學出版社[14]《串行端口技術》李肇慶韓濤編著國防工業(yè)出版社[15]《PC機與單片機&DSP數據通信技術選編》李朝青主編北京航空航天大學出版社附錄1附錄2系統(tǒng)的程序#include<reg52.h>#include<intrins.h>//#include<stdio.h>#include<math.h>//externfloatpow(floatx,floaty);//用到pow函數#defineuintunsignedint#defineucharunsignedchar/*******************max187連線圖********************/sbitCS=P2^1;//max187片選sbitCLK=P2^0;//max187時鐘脈沖sbitSDOUT=P2^2;//max187數據輸出口,返回給AT89S51/*************LCD1602連線圖**********************/sbitRS=P2^6;//數據\命令選擇sbitRW=P2^5;//讀\寫選擇sbitE=P2^4;//使能端/*************a上下電壓報警管腳設置**********************/sbitK1=P1^0;//高電壓報警減參數設置sbitK2=P1^1;//高電壓報警加參數設置sbitK3=P1^2;//低電壓報警減參數設置sbitK4=P1^3;//低電壓報警加參數設置sbitfmq=P2^7;//蜂鳴器報警/*************變量定義********************///由于存放時數據范圍的不同,要注意各變量的類型uintnum=0,temp,x=0; uchari,xx,temp1,ge,fen1,fen2,fen3,t0,lv=10,hv=50,fmq1=1,fmq2=1,fmq3=1;//用在對數據的處理uinttable[12]={0,0,0,0,0,0,0,0,0,0,0,0};//暫存max187讀回的二進制數/*************蜂鳴器報警程序****************/voiddelay500us(){unsignedcharj;for(j=0;j<57;j++) //500us第三方{;}}voidbeep() //產生1KHZ頻率聲音的函數{ fmq=0; delay500us(); fmq=1; delay500us(); }/*****************************/voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}/*****************************/voidbaojing(){ if(temp1>hv)fmq1=0; elsefmq1=1; if(temp1<lv)fmq2=0; elsefmq2=1; fmq3=fmq1&fmq2; if(fmq3==0)fmq=0; elsefmq=1;}/********************************//*max187子程序/********************************//***************max187begin************/voidread_max187(void){//uintcount=0;CS=1;CLK=0;CS=0;//片選低電平,開始轉換//while(SDOUT==0);for(i=0;i<8;i++)//延遲,等待轉換結束{_nop_();}CLK=1;CLK=0;xx=SDOUT;//count=count^xx;table[0]=xx;//將讀回的數值存入table數組,便于后面進行的數制轉換的處理for(i=0;i<11;i++){CLK=1;CLK=0;//count=count<<1;xx=SDOUT;//count=count^xx;table[i+1]=xx;}//運用完12次,存入12位二進制數CLK=1;CLK=0;CS=1;//讀完數據,片選拉高//returncount;}/*********************max187end******************//******************************************//*將max187返回的二進制轉換為十進制,由LCD顯示/******************************************/uintchange_code(void){floatj;read_max187();/* for(i=0,j=11;i<12,j>=0;j--,i++) { x=table[i]*pow(2,j); num+=x; } */x=table[0]*2048;//最高位num=num+x;//由num進行十進制數值的累加x=table[1]*1024;//次高位num=num+x;x=table[2]*512;//第十位num=num+x;x=table[3]*256;num=num+x;x=table[4]*128;num=num+x;x=table[5]*64;num=num+x;x=table[6]*32;num=num+x;x=table[7]*16;num=num+x;x=table[8]*8;num=num+x;x=table[9]*4;//第三位num=num+x;x=table[10]*2;//次低位num=num+x;x=table[11]*1;//最低位num=num+x;returnnum;//num累加得最后要顯示的十進制數值,做為函數的返回值}/*******************************//*LCD1602子程序/*******************************//*********LCD1602begin*******/voidwrite_com(ucharcom)//寫命令子函數{RS=0;P0=com;RW=0;delay(5);E=1;delay(5);E=0;}voidwrite_data(uchardate)//寫數據子函數{RS=1;P0=date;RW=0;delay(5);E=1;delay(5);E=0;}voidwrite_str(ucharadd,uchar*str)//從一個地址開始寫字符串{write_com(add);//要寫數據的地址while(*str!='\0'){write_data(*str++);}}voidinit(void)//LCD初始化函數{E=0;w

溫馨提示

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

評論

0/150

提交評論