版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
課程設(shè)計(論文)說明書題目:基于單片機(jī)的數(shù)字電壓表院〔系〕:信息與通信學(xué)院專業(yè):通信工程學(xué)生姓名:學(xué)號:指導(dǎo)教師:職稱:2023年12月5日摘要本系統(tǒng)主要采用AT89C52芯片和ADC0809芯片來完成一個數(shù)字電壓表設(shè)計,能夠?qū)斎氲?~5V的模擬直流電壓進(jìn)行測量,并通過一個4位一體的8段LED數(shù)碼管進(jìn)行輪流顯示或單路選擇顯示,測量誤差約為0.02V。還可以與PC進(jìn)行串行通信。該電壓表的測量電路主要由三個模塊組成:A/D轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示控制模塊。A/D轉(zhuǎn)換主要由芯片ADC0809來完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量再傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理那么由芯片AT89C52來完成,其負(fù)責(zé)把ADC0809傳送來的數(shù)字量經(jīng)一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進(jìn)行顯示;另外它還通過P2端口控制著ADC0809芯片的模擬通道地址、A/D轉(zhuǎn)換控制信號和時鐘信號。顯示模塊主要由8段數(shù)碼管組成,顯示測量到的電壓值。最終,該系統(tǒng)到達(dá)設(shè)計的目的,高精度的顯示了所測量的電壓值,并可以通過按鍵開關(guān)準(zhǔn)確無誤的輪流或單路顯示8〔IN0~I(xiàn)N7〕個通道。關(guān)鍵詞:數(shù)字電壓表,單片機(jī),A/D轉(zhuǎn)換,LED數(shù)碼管,數(shù)據(jù)處理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.研究意義在電量的測量中,電壓、電流和頻率是最根本的三個被測量,其中電壓量的測量最為經(jīng)常。電學(xué)參量測量技術(shù)涉及范圍廣,適用于學(xué)校、工業(yè)、科研、國防等各種領(lǐng)域,供實驗室和工業(yè)現(xiàn)場測試用。而且隨著電子技術(shù)的開展,在數(shù)字化、智能化、科技化為主的今天。數(shù)字電壓表已成為電壓表設(shè)計的主要方向,在當(dāng)前電壓測量系統(tǒng)中占有非常重要的位置。更是經(jīng)常需要測量高精度的電壓,所以數(shù)字電壓表就成為一種必不可少的測量儀器。在電氣測量中,電壓是一個很重要的參數(shù)。如何準(zhǔn)確地測量模擬信號的電壓值,一直是電測儀器研究的內(nèi)容之一。數(shù)字電壓表是通用儀器中使用較廣泛的一種測試儀器,很多電量或非電量經(jīng)變化后都用可數(shù)字電壓表完成測試。因此,數(shù)字電壓表被廣泛地應(yīng)用于科研和生產(chǎn)測試中。2.研究現(xiàn)狀最近十幾年來,隨著半導(dǎo)體技術(shù)、集成電路(IC)和微處理器技術(shù)的開展,數(shù)字電路和數(shù)字化測量技術(shù)也有了巨大的進(jìn)步,從而促使了數(shù)字電壓表的日新月異,并不斷出現(xiàn)新的類型。數(shù)字電壓表自1952年問世以來,大致經(jīng)歷了五代產(chǎn)品。第一代是電子管數(shù)字電壓表,第二代屬于晶體管數(shù)字電壓表,第三代是中小規(guī)模集成電路的DVM。由大規(guī)模集成電路或超大規(guī)模集成電路構(gòu)成的數(shù)字電壓表、智能數(shù)字電壓表,分別屬于第四代、第五代產(chǎn)品。經(jīng)歷了不斷改良的過程,從最早采用繼電器、電子管的型式開展到了現(xiàn)在的全固態(tài)化、集成化(IC化〕,另一方面,精度也從0.%—0.005%,而且從實驗空用的高價的所謂的樣品開始已開展到了現(xiàn)在廠礦企業(yè)廣為利用的所謂的廉價型,進(jìn)而出現(xiàn)了能夠用于安裝板上作指示儀表的安裝型。近年來,國內(nèi)許多廠家通過積極引進(jìn),吸收國外先進(jìn)技術(shù),努力趕超先進(jìn)水平,現(xiàn)以能夠大批量生產(chǎn)多種高、精、尖的數(shù)字電壓表以及相應(yīng)的標(biāo)準(zhǔn)源、校驗儀。新型單片數(shù)字電壓表以其高準(zhǔn)確度、高可靠度、高分辨力、高性價比等優(yōu)良特性倍受人們的青睞。本設(shè)計在分析研究和總結(jié)了單片機(jī)技術(shù)的開展歷史及趨勢的根底上,以實用、可靠、經(jīng)濟(jì)、精度高等設(shè)計原那么為目標(biāo),設(shè)計出基于單片機(jī)的數(shù)字測量電壓表。單片機(jī)有著微處理器所不具備的功能,它可單獨地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機(jī)最大的特征。單片機(jī)控制系統(tǒng)能夠取代以前利用復(fù)雜電子線路或數(shù)字電路構(gòu)成的控制系統(tǒng),可用軟件控制來實現(xiàn),并能夠?qū)崿F(xiàn)智能化。由于單片機(jī)具有功能強(qiáng)、體積小、功耗低、價格廉價、工作可靠、使用方便等特點,因此,現(xiàn)在單片機(jī)控制范疇無所不在,例如通信產(chǎn)品、家用電器、智能儀器儀表、過程控制和專用控制裝置等等,單片機(jī)的應(yīng)用領(lǐng)域越來越廣泛。正因為單片機(jī)技術(shù)的廣泛應(yīng)用,使得高精度的電子測量成為可能。數(shù)字電壓表〔DigitalVoltmeter〕簡稱DVM,它是采用數(shù)字化測量技術(shù),把連續(xù)的模擬量〔直流或交流輸入電壓〕轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。傳統(tǒng)的指針式電壓表功能單一、精度低,不能滿足數(shù)字化時代的需求,采用單片機(jī)的數(shù)字電壓表,由精度高、抗干擾能力強(qiáng),可擴(kuò)展性強(qiáng)、集成方便,還可與PC進(jìn)行實時通信。數(shù)字電壓表是諸多數(shù)字化儀表的核心與根底。以數(shù)字電壓表為核心,可以擴(kuò)展成各種通用數(shù)字儀表、專用數(shù)字儀表及各種非電量的數(shù)字化儀表(如:溫度計、濕度計、酸度計、重量、厚度儀等),幾乎覆蓋了電子電工測量、工業(yè)測量、自動化儀表等各個領(lǐng)域。而且數(shù)字式儀器具有讀數(shù)準(zhǔn)確方便、精度高、誤差小、靈敏度高和分辨率高、測量速度快等特點。因此對數(shù)字電壓表作全面深入的了解是很有必要的。3.研究內(nèi)容在數(shù)字電壓表的設(shè)計中,控制系統(tǒng)采用AT89C52單片機(jī),A/D轉(zhuǎn)換器采用ADC0809高精度、8位逐次逼近式轉(zhuǎn)換電路,測量范圍直流0~5伏,并在四位8段LED數(shù)碼管上輪流顯示或單路選擇顯示,可以與PC機(jī)進(jìn)行串行通信。本文中該系統(tǒng)的數(shù)字電壓表電路簡單,所用的元件較少,本錢低,調(diào)節(jié)工作可實現(xiàn)自動化。系統(tǒng)除能確保實現(xiàn)要求的功能外,還可以方便地進(jìn)行8路A/D轉(zhuǎn)換量的測量,遠(yuǎn)程測量結(jié)果傳送等擴(kuò)展功能。目錄TOC\o"1-3"\u第1章數(shù)字電壓表11.1電壓表的開展概況11.2數(shù)字電壓表的設(shè)計背景11.3數(shù)字電壓表的特點11.4數(shù)字儀表的開展趨勢3第2章系統(tǒng)硬件設(shè)計52.1功能要求52.2方案論證52.2.1核心芯片的選擇52.2.2模數(shù)轉(zhuǎn)換芯片的選擇52.2.3設(shè)計方案52.3系統(tǒng)硬件電路的設(shè)計6第3章系統(tǒng)主要硬件模塊介紹83.1AT89C52控制模塊83.1.1AT89C52的主要性能83.1.2AT89C52的引腳結(jié)構(gòu)及功能93.2A/D轉(zhuǎn)換模塊113.2.1ADC0809的主要性能123.2.2ADC08089的內(nèi)部邏輯結(jié)構(gòu) 123.2.3ADC0809的引腳 123.3LED顯示模塊 133.4電源電路 153.5晶振電路153.6復(fù)位電路16第4章單片機(jī)與PC之間的串行通信174.1串行通信原理174.2RS232的介紹174.2.1主要信號線定義 184.2.2電氣特性 184.2.3接口的典型應(yīng)用 194.3串行通信硬件電路的實現(xiàn)194.4單片機(jī)端的串行通信194.4.1串行接口的特殊功能存放器 194.4.2串行通信波特率的計算 21第5章性能測試225.1串行接口的特殊功能存放器 225.1串行接口的特殊功能存放器 22TOC\o"1-3"\u總結(jié)23致謝24參考文獻(xiàn)25附錄1 26附錄2 27第1章數(shù)字電壓表1.1電壓表的開展概況電壓測量是電子測量的一個重要內(nèi)容。隨著電子技術(shù)的開展,對電壓測量提出了一系列的要求,主要可概括為:第一應(yīng)有足夠?qū)挼碾妷簻y量范圍;第二應(yīng)有足夠高的測量準(zhǔn)確度;第三應(yīng)有足夠高的輸入阻抗;第四應(yīng)具有高的抗干擾能力。電壓測量儀器總的可分為兩大類:即模擬式和數(shù)字式的。模擬式電壓表是指針式的。用磁電式電流表作為指示器,并在電流表表盤上以電壓〔或db〕刻度。數(shù)字式電壓表首先將模擬量通過模/數(shù)〔A/D〕變換器變成數(shù)字量,然后用電子計數(shù)器計數(shù),并以十進(jìn)制數(shù)字顯示被測電壓值。模擬式電壓表由于電路簡單、價廉,特別是在測量高頻電壓時,其測量準(zhǔn)確度不亞于數(shù)字電壓表,因此,在電壓測量中仍將占有重要地位。數(shù)字式電壓表在近年來已成為極其精確,靈活多用的電子儀器,并且價格正在逐漸下降。數(shù)字式電壓表能很好地與其它數(shù)字儀器相交接,因此在電壓測量系統(tǒng)的開展中是非常重要的。討論數(shù)字式電壓表的主要內(nèi)容可歸結(jié)為電壓測量的數(shù)字化方法。模擬量的數(shù)字化測量,其關(guān)鍵是如何把隨時間作連續(xù)變化的模擬量變換成數(shù)字量,完成這種變換的電路叫模/數(shù)變換器。所以,數(shù)字式電壓表可以簡單理解為模/數(shù)變換。1.2數(shù)字電壓表的設(shè)計背景隨著電子科學(xué)技術(shù)的開展,電子測量成為廣闊電子工作者必須掌握的手段,對測量的精度和功能的要求也越來越高,而電壓的測量甚為突出,因為電壓的測量最為普遍。傳統(tǒng)的模擬電壓表,已有百年的開展歷史,雖然經(jīng)過改良,但是仍然遠(yuǎn)遠(yuǎn)不能滿足測量的需要。近幾十年來隨著電子技術(shù)的開展,經(jīng)常需要測量高精度的電壓,因此數(shù)字電壓表應(yīng)運(yùn)而生,開展的數(shù)度很快。數(shù)字電壓表是諸多數(shù)字化儀表的核心與根底。以數(shù)字電壓表為核心,可以擴(kuò)展成各種通用數(shù)字儀表、專用數(shù)字儀表及各種非電量的數(shù)字化儀表(如:溫度計、濕度計、酸度計、重量、厚度儀等),幾乎覆蓋了電子電工測量、工業(yè)測量、自動化儀表等各個領(lǐng)域。而且數(shù)字式儀器具有讀數(shù)準(zhǔn)確方便、精度高、誤差小、靈敏度高和分辨率高、測量速度快等特點。因此對數(shù)字電壓表作全面深入的了解是很有必要的。數(shù)字電壓表的特點數(shù)字電壓表簡稱DVM,它是采用數(shù)字化測量技術(shù),把連續(xù)的模擬量〔直流輸入電壓〕轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。數(shù)字電壓表的特點:1.顯示清晰直觀,讀數(shù)準(zhǔn)確傳統(tǒng)的模擬式儀表必須借助于指針和刻度盤進(jìn)行讀數(shù),在讀數(shù)過程中不可防止的會引入人為的測量誤差。數(shù)字電壓表那么采用先進(jìn)的數(shù)顯技術(shù),使測量結(jié)果一目了然,只要儀表不發(fā)生跳讀現(xiàn)象,測量結(jié)果就是唯一的。新型數(shù)字電壓表還增加了標(biāo)志符顯示功能,包括測量工程、符號單位和特殊符號、為解決DVM不能反映被測電壓的連續(xù)變化過程以及變化趨勢這一難題,一種“數(shù)字/模擬條圖〞儀表業(yè)已問世?!澳M圖條〞〔AnalofBargraph〕有雙重含義:第一,被測量為模擬量;第二,利用條狀圖形來模擬被測量的大小及變化趨勢。這類儀表將數(shù)字顯示與高分辨率模擬條圖顯示集于一身,兼有DVM與模擬電壓表之優(yōu)點。智能數(shù)字電壓表均帶微處理器和標(biāo)準(zhǔn)接口,可配合計算機(jī)和打印機(jī)進(jìn)行數(shù)據(jù)處理或自動打印,構(gòu)成完整的測試系統(tǒng)。2.顯示位數(shù)顯示位數(shù)通常為31/2位、32/3位、33/4/位、41/2位、43/4位、51/2位、61/2位、71/2位、81/2位共9種。判定數(shù)字儀表的位數(shù)有兩條原那么:①能顯示0~9所有數(shù)字的位是整數(shù)位;②分?jǐn)?shù)位的數(shù)值是以最大顯示值中最高位數(shù)字為分子,用滿量程時最高數(shù)字作分母。例如,某數(shù)字儀表的最大顯示值為1999,滿量程計數(shù)值為2000,這說明該儀表有3個整數(shù)位,而分?jǐn)?shù)位的分子為1,分母是2,故稱之為31/2位,讀作三位半。3.準(zhǔn)確度高準(zhǔn)確度是測量結(jié)果中系統(tǒng)誤差與隨機(jī)誤差的綜合。4.分辨率高數(shù)字電壓表在最低電壓量程上末位1個字所代表的電壓值,稱為儀表的分辨力,它反映儀表靈敏度的上下。分辨力隨顯示位數(shù)的增加而提高。分辨率是指所能顯示的最小數(shù)字〔零除外〕與最大數(shù)字的百分比。例如31/2位DVM的分辨率為%。需要指出,分辨力與準(zhǔn)確度屬于兩個不同的觀念。從測量角度看,分辨力是“虛〞指標(biāo)〔與測量誤差無關(guān)〕,準(zhǔn)確度才是“實〞指標(biāo)〔代表測量誤差的大小〕。5.測量范圍寬多量程DVM一般可測量0~1000V直流電壓,配上高壓探頭還可測上萬伏的高壓。6.?dāng)U展能力強(qiáng)在數(shù)字電壓表的根底上,還可擴(kuò)展成各種通用及專用數(shù)字儀表、數(shù)字多用表〔DMM〕和智能儀表,以滿足不同的需要。7.測量速度快數(shù)字電壓表在每秒鐘內(nèi)對被測電壓的測量次數(shù),叫測量速率,單位是“次/S〞。它主要取決于A/D轉(zhuǎn)換器的轉(zhuǎn)換速率,其倒數(shù)是測量周期。8.輸入阻抗高數(shù)字電壓表具有很高的輸入阻抗,通常為10MΩ~10000MΩ,最高可達(dá)1TΩ。9.集成度高,微功耗新型數(shù)字電壓表普遍采用CMOS大規(guī)模集成電路,整機(jī)功耗很低。10.抗干擾能力強(qiáng)51/2位以下的DVM大多采用積分式A/D轉(zhuǎn)換器,其串模抑制比、共模抑制比各別可達(dá)100dB、80~120dB。高檔DVM還采用數(shù)字濾波、浮地保護(hù)等先進(jìn)技術(shù),進(jìn)一步提高了抗干擾能力,共模抑制比可達(dá)180dB。數(shù)字儀表的開展趨勢采用新技術(shù)、新工藝,由LSI和VLSI構(gòu)成的新型數(shù)字儀表及高檔智能儀器的大量問世,標(biāo)志著電子儀器領(lǐng)域的一場革命,也開創(chuàng)了現(xiàn)代電子測量技術(shù)的先河。新型數(shù)字儀表的開展主要有五個方向:
1.廣泛采用新技術(shù),不斷開發(fā)新產(chǎn)品
2.向模塊化開展新一代數(shù)字儀表正朝著標(biāo)準(zhǔn)模塊化的方向開展。預(yù)計在不久的將來,許多數(shù)字儀表將由標(biāo)準(zhǔn)化、通用化、系列化的模塊所構(gòu)成,給電路設(shè)計和安裝調(diào)試、維修帶來極大方便。外表安裝技術(shù)〔SMT〕和外表安裝元器件〔SMD〕將獲得普遍應(yīng)用。這項技術(shù)被譽(yù)為世界電子工藝技術(shù)的一項重要突破。所謂外表安裝是將微型化的外表安裝集成電路〔SMIC〕和外表安裝元件,用粘貼工藝直接安裝在印刷板上,再用波峰焊接機(jī)焊接,由此取代傳統(tǒng)的打孔焊接工藝,使印刷板安裝密度大為增加,可靠性得到明顯提高。
3.多重顯示儀表為徹底解決數(shù)字儀表不便于觀察連續(xù)變化量的技術(shù)難題,“數(shù)字/模擬條圖〞雙顯示儀表已成為國際流行款式,它兼有數(shù)字儀表準(zhǔn)確度高、模擬式儀表便于觀察被測量的變化過程及變化趨勢的兩大優(yōu)點。模擬條圖大致分成三類:①液晶〔LCD〕條圖,呈斷續(xù)的條狀,這種顯示器的分辨力高、微功耗,體積小,低壓驅(qū)動,適于電池供電的小型化儀表。②等離子體〔PDP〕光柱顯示器,其優(yōu)點是自身發(fā)光,亮度高,顯示清晰,觀察距離遠(yuǎn),分辨力較高,缺點是驅(qū)動電壓高,耗電較大。③LED光柱,它是又多只發(fā)光二極管排列而成。這種顯示器的亮度高,本錢低,但象素尺寸較大,功耗高,驅(qū)動電路復(fù)雜。4.平安性儀器儀表在設(shè)計和使用中的平安性,對于生產(chǎn)廠家和廣闊用戶都是至關(guān)重要的問題。一方面廠家必須為儀表設(shè)計平安保護(hù)電路,并使之符合國際標(biāo)準(zhǔn)〔例如美國UL認(rèn)證,歐洲GS認(rèn)證,ISO9001國際標(biāo)準(zhǔn)質(zhì)量認(rèn)證〕;另一方面用戶必須平安操作,時刻注意儀表上的各種平安警告指示。儀表的保護(hù)電路在于最大限度的減小或防止因誤操作而造成的危害。以DMM為例,常見的誤操作是用電流檔或電阻檔去測量電壓。5.操作簡單化第2章系統(tǒng)硬件設(shè)計2.1功能要求數(shù)字電壓表可以測量0~5V的輸入電壓值,并在四位LED數(shù)碼管上輪流顯示或單路選擇顯示。測量最小分辨率為0.019V,測量誤差約為。2.2方案論證2.2.1核心芯片的選擇AT89C52單片機(jī)價格低廉,輸入輸出口豐富,無需再另外擴(kuò)展,簡化了外圍電路。256B內(nèi)部RAM,8kB內(nèi)部ROM,程序存儲空間大,防止由于字模過多而造成存儲空間不夠。另外由于前期開發(fā)需要屢次的寫入、擦除,而89C52可以完成1000次寫/擦,故滿足要求。2.2.2模數(shù)轉(zhuǎn)換芯片的選擇ADC0809是8位的A/D轉(zhuǎn)換芯片,為逐次逼近型。由單一的+5V電源供電,片內(nèi)帶有所存功能的8路模擬多路開關(guān),可對8路0~5V的輸入模擬電壓信號分時進(jìn)行轉(zhuǎn)換,完成一次轉(zhuǎn)換約需100μs;片內(nèi)的地址譯碼和鎖存電路,將單片機(jī)的三條地址信號譯碼生成選擇八路模擬通道。輸出具有TTL三態(tài)鎖存緩沖器,可以直接接到單片機(jī)的數(shù)據(jù)線上。2設(shè)計方案按系統(tǒng)功能實現(xiàn)要求,決定控制系統(tǒng)采用AT89C52單片機(jī),A/D轉(zhuǎn)換采用ADC0809.系統(tǒng)除能確保實現(xiàn)要求的功能外,還可以方便地進(jìn)行8路其它A/D轉(zhuǎn)換量的測量、遠(yuǎn)程測量結(jié)果傳送的擴(kuò)展功能。實驗證明,采用AT89C52開發(fā)的系統(tǒng)性能可靠、本錢較低、軟件設(shè)計靈活簡單、硬件接口功能豐富,具有擴(kuò)展性好、通用性強(qiáng)等優(yōu)點。數(shù)字電壓表系統(tǒng)設(shè)計方案框圖如圖2-1所示:圖2-1數(shù)字電壓表系統(tǒng)設(shè)計方案2.3系統(tǒng)硬件電路的設(shè)計數(shù)字電壓測量電路由A/D轉(zhuǎn)換、數(shù)據(jù)處理及顯示控制等組成,電路原理圖如圖2-2所示。A/D轉(zhuǎn)換由集成電路0809完成。0809具有8路模擬輸入端口,地址線〔23~25腳〕可決定對哪一路模擬輸入作A/D轉(zhuǎn)換。22腳為地址鎖存控制,當(dāng)輸入為高電平時,對地址信號進(jìn)行鎖存。6腳為測試控制,當(dāng)輸入一個2S寬高電平脈沖時,就開始A/D轉(zhuǎn)換。7腳為轉(zhuǎn)換結(jié)束標(biāo)志,當(dāng)A/D轉(zhuǎn)換結(jié)束時,7腳輸出高電平。9腳為A/D轉(zhuǎn)換數(shù)據(jù)輸出允許控制,當(dāng)OE腳為高電平時,A/D轉(zhuǎn)換數(shù)據(jù)從該端口輸出。10腳為0809的時鐘輸入端。單片機(jī)P1的端口作為四位數(shù)碼管顯示控制;P3.0端口用作串行口輸入端,P3.1端口用作串行口輸出端;端口用作單路顯示時選擇通道;P0端口作A/D轉(zhuǎn)換數(shù)據(jù)讀入用,P2端口用作0809的A/D轉(zhuǎn)換控制。圖2-2數(shù)字電壓表電路原理圖第3章系統(tǒng)主要硬件模塊介紹本系統(tǒng)主要包括三大模塊:AT89C52控制模塊、A/D轉(zhuǎn)換模塊、LED顯示模塊。這三大模塊的共同作用最后完成數(shù)字電壓表的設(shè)計。3.1AT89C52控制模塊控制模塊是由AT89C52單片機(jī)來實現(xiàn)數(shù)據(jù)的處理和控制的。AT89C52是一個低功耗,高性能CMOS8位單片機(jī),片內(nèi)含8kBytesISP(In-systemprogrammable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISPFlash存儲單元,功能強(qiáng)大的微型計算機(jī)的AT89C52此外,AT89C52設(shè)計和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式。空閑模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬復(fù)位,同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。3.1.1AT89C52的主要性能AT89C52具有如下特點:與MCS_51產(chǎn)品兼容;具有8K字節(jié)可在系統(tǒng)編程的Flash內(nèi)部程序存儲器,可擦/寫100次;~的工作電壓范圍;全靜態(tài)操作:0HZ~24MHZ;三級程序存儲器加密;256×8bit內(nèi)部RAM;32根可編程I/O線;三個16位定時器/計數(shù)器;8個中斷源;全雙工異步串行通信通道;低功耗空閑和掉電保護(hù);通過中斷中止掉電方式;看門狗定時器;兩個數(shù)據(jù)指針;時鐘頻率0~33MHZ;全雙工UART串行中斷口線;〔17〕靈活的ISP字節(jié)和分頁編程。3AT89C52的引腳結(jié)構(gòu)及功能(1)AT89C52引腳結(jié)構(gòu)圖如以下圖3-1所示:圖3-1AT89C52引腳結(jié)構(gòu)圖(2)此設(shè)計用到的主要管腳及功能XTAL1〔19腳〕和XTAL2〔18腳〕為振蕩器輸入輸出端口,外接12MHz晶振。RST/Vpd〔9腳〕為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將使單片機(jī)復(fù)位。VCC〔40腳〕和VSS〔20腳〕為供電端口,分別接+5V電源的正負(fù)端。P0~P3為可編程通用I/O腳,其功能用途由軟件定義。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如表3-1所示:P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。表3-1P3口第2功能表引腳第2功能RXD〔串行口輸入端〕TXD〔串行口輸出端〕〔外部中斷0輸入端〕〔外部中斷1輸入端〕T0〔定時計數(shù)器0輸入端〕T1〔定時計數(shù)器1輸入端〕(外部數(shù)據(jù)存儲器寫選通信號輸出端〕〔外部數(shù)據(jù)存儲器讀選通信號輸出端〕下面對此系統(tǒng)要用到的功能進(jìn)行簡單的描述:存儲結(jié)構(gòu)介紹:如果引腳接地,系統(tǒng)尋址外部程序存儲器。對于AT89S52,如果引腳接至VCC,CPU。執(zhí)行內(nèi)部存儲器0000H到1FFFH的程序,外部程序存儲器尋址空間為2000H到FFFFH。2.數(shù)據(jù)存儲器 AT89C52具有256字節(jié)的片內(nèi)RAM。高128字節(jié)與專用存放器地址空間重疊,亦即高128字節(jié)與專用存放器空間有相同的地址,而物理上與專用存放器是分開的。假設(shè)采用直接尋址方式,那么是訪問特殊功能存放器;假設(shè)采用間接尋址方式,那么是訪問高128字節(jié)的RAM。堆棧操作也是間接尋址,所以,高128字節(jié)的數(shù)據(jù)RAM中斷介紹:AT89C52共有6個中斷源:兩個外部中斷,三個定時器中斷〔T0、T1、T2〕和一個串行口中斷。通過專用存放器IE置位或清0,可分別控制這些中斷源中每一個允許或禁止中斷。IE也有一個總禁止位EA中斷請求源:外部中斷請求源:即外中斷0和1,經(jīng)由外部管腳引入的,在單片機(jī)上有兩個管腳,名稱為INT0、INT1,也就是P3.2、P3.3這兩個管腳。在內(nèi)部的TCON中有四位是與外中斷有關(guān)的。IT0:INT0觸發(fā)方式控制位,可由軟件進(jìn)和置位和復(fù)位,IT0=0,INT0為低電平觸發(fā)方式,IT0=1,INT0為負(fù)跳變觸發(fā)方式。這兩種方式的差異將在以后再談。IE0:INT0中斷請求標(biāo)志位。當(dāng)有外部的中斷請求時,這位就會置1〔這由硬件來完成〕,在CPU響應(yīng)中斷后,由硬件將IE0清0。IT1、IE1的用途和IT0、IE0相同。中斷響應(yīng)過程:〔1〕中斷響應(yīng)的條件:MCS51工作時,在每個機(jī)器周期中都會去查詢一下各個中斷標(biāo)記,看他們是否是“1〞,如果是1,就說明有中斷請求了,以下三種情況之一時,CPU將封鎖對中斷的響應(yīng):CPU正在處理一個同級或更高級別的中斷請求?,F(xiàn)行的機(jī)器周期不是當(dāng)前正執(zhí)行指令的最后一個周期。當(dāng)前執(zhí)行指令是單字節(jié)沒有關(guān)系,如果是雙字節(jié)或四字節(jié)的,就要等整條指令都執(zhí)行完了,才能響應(yīng)中斷〔因為中斷查詢是在每個機(jī)器周期都可能查到的〕。當(dāng)前正執(zhí)行的指令是返回批令〔RETI〕或訪問IP、IE存放器的指令,那么CPU至少再執(zhí)行一條指令才應(yīng)中斷。這些都是與中斷有關(guān)的,如果正訪問IP、IE那么可能會開、關(guān)中斷或改變中斷的優(yōu)先級,而中斷返回指令那么說明本次中斷還沒有處理完,所以都要等本指令處理結(jié)束,再執(zhí)行一條指令才能響應(yīng)中斷?!?〕在正常的情況下,從中斷請求信號有效開始,到中斷得到響應(yīng),通常需要3個機(jī)器周期到8個機(jī)器周期。中斷得到響應(yīng)后,自動去除中斷請求標(biāo)志(對串行I/O端口的中斷標(biāo)志,要用軟件去除),將斷點即程序計數(shù)器之值(PC)壓入堆棧(以備恢復(fù)用);然后把相應(yīng)的中斷入口地址裝入PC,使程序轉(zhuǎn)入到相應(yīng)的中斷效勞程序中去執(zhí)行。各個中斷源在程序存儲器中的中斷入口地址如下:
中斷源入口地址
INT0(外部中斷0)0003HTF0(TO中斷)000BHINT1(外部中斷1)0013H〔此中斷口為本系統(tǒng)所用到的中斷口〕
TF1(T1中斷)001BH
RI/TI(串行口中斷)0023H3.2A/D轉(zhuǎn)換模塊A/D轉(zhuǎn)換模塊是由ADC0809芯片來完成的。ADC0809芯片是典型的8位8通道逐次逼近式A/D轉(zhuǎn)換器,采用CMOS工藝制造。3.2.1ADC0809的主要性能:(1)8位逐次逼近型A/D轉(zhuǎn)換器,所有引腳的邏輯電平與TTL電平兼容。(2)帶有鎖存功能的8路模擬量轉(zhuǎn)換開關(guān),可對8路0~5V模擬量進(jìn)行分時切換。(3)輸出具有三態(tài)鎖存功能。(4)分辨率:8位,轉(zhuǎn)換時間:100μs。(5)不可調(diào)誤差:±1LBS,功耗:15mW。(6)工作電壓:+5V,參考電壓標(biāo)準(zhǔn)值+5V。(7)片內(nèi)無時鐘,一般需外加640KHz以下且不低于100KHz的時鐘信號。3ADC08089的內(nèi)部邏輯結(jié)構(gòu)ADC0809的內(nèi)部邏輯結(jié)構(gòu)如圖3-2〔a〕所示。圖〔a〕中多路模擬量開關(guān)可選通8個模擬通道,允許8路模擬量分時輸入,并公用1個A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。ADC0809的內(nèi)部結(jié)構(gòu):ADC0809是CMOS的8位模/數(shù)轉(zhuǎn)換器,采用逐次逼近原理進(jìn)行A/D轉(zhuǎn)換,芯片內(nèi)有模擬多路轉(zhuǎn)換開關(guān)和A/D轉(zhuǎn)換兩大局部,可對8路0~5V的輸入模擬電壓信號分時進(jìn)行轉(zhuǎn)換。模擬多路開關(guān)由8路模擬開關(guān)和3位地址鎖存譯碼器組成,可選通8路模擬輸入中的任何一路,地址鎖存信號ALE將3位地址信號ADDA、ADDB、ADDC進(jìn)行鎖存,然后由譯碼電路選通其中的一路,被選中的通道進(jìn)行A/D轉(zhuǎn)換。A/D轉(zhuǎn)換局部包括比擬器、逐次逼近存放器〔SAR〕、256R電阻網(wǎng)絡(luò)、樹狀電子開關(guān)、控制與時序電路等。另外ADC0809輸出具有TTL三態(tài)鎖存緩沖器,可直接連到CPU數(shù)據(jù)總線上。3.2.3ADC0809的引腳ADC0809芯片為28引腳雙列直插式封裝,其引腳排列見圖3-2〔b〕所示。IN7~I(xiàn)N0:模擬量輸入通道。0809對輸入模擬量的要求主要有:信號單極性、電壓范圍0~5V、假設(shè)輸入信號過小還需進(jìn)行放大。另外,模擬量輸入在A/D轉(zhuǎn)換過程中其值不應(yīng)變化,而對變化速度快的模擬量,在輸入前應(yīng)增加采樣保持電路。ADDA、ADDB、ADDC:模擬通道地址線。這3根地址線用于對模擬通道進(jìn)行選擇,ADDA為低位地址,ADDC為高位地址。ALE:地址鎖存信號。對應(yīng)于ALE上跳沿時,ADDA、ADDB、ADDC地址狀態(tài)送入地址鎖存器中。START:轉(zhuǎn)換啟動信號。在START信號上跳沿時,所有內(nèi)部存放器清0;在START下跳沿時,開始進(jìn)行A/D轉(zhuǎn)換。在A/D轉(zhuǎn)換期間,START信號應(yīng)保持低電平。該信號可簡寫為ST。D7~D0:數(shù)據(jù)輸出線。該數(shù)據(jù)輸出線為三太緩沖輸出形式,可以和單片機(jī)的數(shù)據(jù)總線直接相連。OE:輸出允許信號。它用于控制三太輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換后的數(shù)據(jù)。OE=0時輸出數(shù)據(jù)線呈高阻狀態(tài);OE=1時輸出允許。CLK:時鐘信號。ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號有外界提供,通常使用頻率微500KHZ的時鐘信號。EOC:轉(zhuǎn)換結(jié)束狀態(tài)信號。當(dāng)EOC=0時,表示正在進(jìn)行轉(zhuǎn)換;EOC=1時,表示轉(zhuǎn)換結(jié)束。實際使用中該狀態(tài)信號即可作為查詢的狀態(tài)標(biāo)志,還可作為中斷請求信號使用。〔a〕ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖〔b〕ADC0809的引腳圖圖3-2LCD1602液晶模塊簡介1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由假設(shè)干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形〔用自定義CGRAM,顯示效果也不好〕。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊〔顯示字符和數(shù)字〕。目前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大局部的字符型液晶。管腳功能圖3-3LCD1602液晶管腳圖1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為電源地第2腳:VCC接5V電源正極第3腳:V0為液晶顯示器比照度調(diào)整端,接正電源時比照度最弱,接地電源時比照度最高〔比照度過高時會產(chǎn)生“鬼影〞,使用時可以通過一個10K的電位器調(diào)整比照度〕。第4腳:RS為存放器選擇,高電平1時選擇數(shù)據(jù)存放器、低電平0時選擇指令存放器。第5腳:RW為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。第6腳:E(或EN)端為使能(enable)端。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。3.4電源電路眾所皆知,電源電路設(shè)計,乃是在整體電路設(shè)計中最根底的必備功夫??梢哉f,有電器的地方就有電源。所有的電子齊備都離不開可靠的電源為其供電。現(xiàn)代電子設(shè)備中的電路使用了大量半導(dǎo)體器件,這些半導(dǎo)體器件需要幾伏到幾十伏的直流供電,以便得到正常工作所必需的能源。這些直流電源有的屬于化學(xué)電源,如采用交流電源經(jīng)過變壓、整流、濾波、穩(wěn)壓等變換為所需的直流電壓。完成這種變換任務(wù)的電源稱為直流穩(wěn)壓電源。本設(shè)計涉及的就是這類電源。它是通過變壓器〔直流穩(wěn)壓電壓〕提供一個5V的電源電壓。3.5晶振電路晶振是為電路提供頻率基準(zhǔn)的元器件,通常分成有源晶振和無源晶振兩個類,無源晶振需要芯片內(nèi)部有振蕩器,并且晶振的信號電壓根據(jù)起振電路而定,允許不同的電壓,但無源晶振通常信號質(zhì)量和精度較差,需要精確匹配外圍電路〔電感、電容、電阻等〕,如需更換晶振時要同時更換外圍的電路。有源晶振不需要芯片的內(nèi)部振蕩器,可以提供高精度的頻率基準(zhǔn),信號質(zhì)量也較無源晶振要好。因價格等因素,實際應(yīng)用中多采用無源晶振設(shè)計的電路居多,除非電路設(shè)計時序極其敏感或芯片內(nèi)部無振蕩器的情況〔如一些型號的DSP或精密儀器中〕。51開發(fā)板晶振采用的是單片機(jī)通用的的無源晶振,輸出時鐘到單片機(jī)P18和P19。其電路圖如以下圖3-4所示:圖3-4晶振電路3.6復(fù)位電路一個芯片,尤其是可編程芯片,通常在上電的瞬間需要一個短暫的時間進(jìn)行內(nèi)部參數(shù)的初始化,這個時候芯片無法立即進(jìn)入工作狀態(tài)。通常稱上電初始化這些工作為復(fù)位,完成這個功能的電路稱之為復(fù)位電路。MCS—51單片機(jī)在時鐘電路工作以后,在RST端持續(xù)給出2個機(jī)器周期的高電平就可以完成復(fù)位操作〔一般復(fù)位正脈沖寬度大于10ms〕。復(fù)位分為上電復(fù)位和外部復(fù)位兩種方式。上電復(fù)位是在單片機(jī)接通電源時,對單片機(jī)的復(fù)位。上電復(fù)位電路如圖3-5所示。在上電瞬間RST端與Vcc電位相同,隨著電容上電壓的逐漸上升,RST端電位逐漸下降。上電復(fù)位所需的最短時間是振蕩器振蕩建立時間加2個機(jī)器周期。復(fù)位電路的阻容參數(shù)通常由實驗調(diào),在RST端提供足夠的高電平脈沖,使單片機(jī)能夠可靠地上電自動復(fù)位。圖3-5上電復(fù)位電路在該系統(tǒng)設(shè)計中用的就是上電復(fù)位電路,高電平有效。第4章單片機(jī)與PC之間的串行通信4.1串行通信原理所謂“串行通信〞是指外設(shè)和計算機(jī)間使用一根數(shù)據(jù)信號線,數(shù)據(jù)在一根數(shù)據(jù)信號線上按位進(jìn)行傳輸,每一位數(shù)據(jù)都占據(jù)一個固定的時間長度。這種通信方式使用的數(shù)據(jù)線少,在遠(yuǎn)距離通信中可以節(jié)約通信本錢,當(dāng)然,其傳輸速度比并行傳輸慢。相比之下,由于高速率的要求,處于計算機(jī)內(nèi)部的CPU與串口之間的通訊仍然采用并行的通訊方式,所以串行口的本質(zhì)就是實現(xiàn)CPU與外圍數(shù)據(jù)設(shè)備的數(shù)據(jù)格式轉(zhuǎn)換〔或者稱為串并轉(zhuǎn)換器〕,即當(dāng)數(shù)據(jù)從外圍設(shè)備輸入計算機(jī)時,數(shù)據(jù)格式由位(bit)轉(zhuǎn)化為字節(jié)數(shù)據(jù);反之,當(dāng)計算機(jī)發(fā)送下行數(shù)據(jù)到外圍設(shè)備時,串口又將字節(jié)數(shù)據(jù)轉(zhuǎn)化為位數(shù)據(jù)。串行通信有三種通信方式:單工、半雙工、全雙工。串行端口的本質(zhì)功能是作為CPU和串行設(shè)備間的編碼轉(zhuǎn)換器.當(dāng)數(shù)據(jù)從CPU經(jīng)過串行端口發(fā)送出去時,字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位。在接收數(shù)據(jù)時,串行的位被轉(zhuǎn)換為字節(jié)數(shù)據(jù),在Windows環(huán)境(WindowsNT、Win98、Windows2000)下,串口是系統(tǒng)資源的一局部。應(yīng)用程序要使用串口進(jìn)行通信,必須在使用之前向操作系統(tǒng)提出資源申請要求(翻開串口),通信完成后必須釋放資源(關(guān)閉串口)。4.2RS232的介紹一個完整的RS-232C接口有22根線,采用標(biāo)準(zhǔn)的25芯插頭座(或者9芯插頭座。25芯和9芯的主要信號線相同。以下的介紹是以9芯的RS-232C為例。設(shè)計中采用了9芯的。MAX232的引腳圖如圖4-1所示:圖4-1MAX232引腳圖4主要信號線定義:引腳1:保護(hù)地;引腳2:發(fā)送數(shù)據(jù)TXD;引腳3:接收數(shù)據(jù)RXD;引腳4:請求發(fā)送RTS;引腳5:去除發(fā)送CTS;引腳6:數(shù)據(jù)設(shè)備就緒DSR;引腳7:信號地;引腳8:數(shù)據(jù)載波檢測DCD;4電氣特性:數(shù)據(jù)傳輸速率最大可到20Kbps,最大距離僅15m.注:看了微軟的MSDN6.0,其WindowsAPI中關(guān)于串行通訊設(shè)備(不一定都是串口RS-232C或RS-422或RS-449)速率的設(shè)置,最大可支持到RS_256000,即256Kbps!也不知道到底是什么串行通訊設(shè)備?但不管怎樣,一般主機(jī)和單片機(jī)的串口通訊大多都在9600bps,可以滿足通訊需求。4接口的典型應(yīng)用:大多數(shù)計算機(jī)應(yīng)用系統(tǒng)與智能單元之間只需使用3到5根信號線即可工作。這時,除了TXD、RXD以外,還需使用RTS、CTS、DCD、DTR、DSR等信號線。(當(dāng)然,在程序中也需要對相應(yīng)的信號線進(jìn)行設(shè)置。)圖4-2單片機(jī)與計算機(jī)的連接以上接法,在設(shè)計程序時,直接進(jìn)行數(shù)據(jù)的接收和發(fā)送就可以了,不需要對信號線的狀態(tài)進(jìn)行判斷或設(shè)置。(如果應(yīng)用的場合需要使用握手信號等,需要對相應(yīng)的信號線的狀態(tài)進(jìn)行檢測或設(shè)置。)4.3串行通信硬件電路的實現(xiàn)一般說來,計算機(jī)都有一個或多個串行端口,他們依次為COM1、COM2,……這些串口還提供了外部設(shè)備與PC機(jī)進(jìn)行數(shù)據(jù)傳輸和通信的通道,這些串口在CPU和外設(shè)之間充當(dāng)解釋器的角色。當(dāng)字符數(shù)據(jù)從計算機(jī)發(fā)送給外設(shè)時,這些字符數(shù)據(jù)將被轉(zhuǎn)換為比特流數(shù)據(jù);當(dāng)接收數(shù)據(jù)時,比特流數(shù)據(jù)被轉(zhuǎn)換為字符數(shù)據(jù)傳遞給CPU。單片機(jī)串口輸入輸出電平為TTL電平,而計算機(jī)串口符合RS232C串行總線標(biāo)準(zhǔn),采用的是負(fù)邏輯,邏輯“1〞為-5V~-15V,邏輯0為+5V~+15V。這兩種電平是不一樣的,因此不能直接連在一起,在本設(shè)計中,采用了電平轉(zhuǎn)換芯片MAX232來實現(xiàn)了單片機(jī)電平與RS232電平之間的統(tǒng)一。4.4單片機(jī)端的串行通信單片機(jī)AT89C52內(nèi)部有一個功能很強(qiáng)的全雙工串行口,可以同時發(fā)送和接收數(shù)據(jù),它有四種工作方式可供不同場合使用。波特率由軟件設(shè)置,通過片內(nèi)的定時/計數(shù)器產(chǎn)生。接收和發(fā)送均可工作在查詢方式或中斷方式。串行口有兩個獨立的接收、發(fā)送緩沖器SBUF〔屬于特殊功能存放器〕。一個用作發(fā)送,一個用于接收,發(fā)送緩沖器只能寫入不能讀出,接受緩沖器只能讀出不能寫入,兩者共用一個字節(jié)地址99H。在發(fā)送數(shù)據(jù)時,CPU由一條寫發(fā)送緩沖區(qū)的指令把數(shù)據(jù)〔字符〕寫入串行口的發(fā)送緩沖器SBUF〔發(fā)〕中,然后從TXD端1位1位地向外發(fā)送。與此同時,接收端RXD也可1位1位地接收數(shù)據(jù),直到接收到一個完整的字符數(shù)據(jù)后通知CPU,再用一條指令把接收緩沖器SBUF〔收〕的內(nèi)容讀入累加器。串行接口的特殊功能存放器〔1〕串行口數(shù)據(jù)緩沖器SBUFSBUF是兩個在物理上獨立的接收、發(fā)送緩沖器,可同時發(fā)送、接收數(shù)據(jù),兩個緩沖器共用一個字節(jié)地址99H,可通過指令對SBUF的讀寫來區(qū)別是對接收緩沖器的操作還是對發(fā)送緩沖器的操作。CPU寫SBUF就是修改發(fā)送緩沖器;讀SBUF就是讀接收緩沖器,串行口對外也有兩條獨立的收發(fā)信號線RXD〔〕和TXD〔〕。因此可以同時發(fā)送、接收數(shù)據(jù),實現(xiàn)全雙工傳送?!?〕串行口控制存放器SCONSCON存放器用來控制串行口的工作方式和狀態(tài),它可以是位尋址。在復(fù)位時所有位被清零,字節(jié)地址為98H,SCON的格式如圖4-3所示。D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI98H圖4-3SCON格式〔3〕特殊功能存放器PCONPCON主要是為CHMOS型單片機(jī)的電源控制而設(shè)置的專用存放器,單元地址為87H不能為尋址,其格式如圖4-4所示。D7D6D5D4D3D2D1D0SMODGF1GF0PDIDL87H圖4-4PCON格式在HMOS單片機(jī)中,該存放器除最高位外,其它位都是虛設(shè)的。最高位SMOD為串行口波特率選擇位,當(dāng)SMOD=1,方式1、2、3的波特率加倍;當(dāng)SMOD=0時,系統(tǒng)復(fù)位。AT89C51的串行端口有4種工作方式,通過編程設(shè)計,可以使其工作在任一方式,以滿足不同場合的需要。其中,方式0主要用于外接移位存放器,以擴(kuò)展單片機(jī)的I/O電路;方式1主要用于雙機(jī)之間或外設(shè)電路的通信;方式2、3除有方式1的功能外,還可用作多機(jī)通信,以構(gòu)成多微機(jī)系統(tǒng),方式2、3的區(qū)別在于波特率的不同。串行口有四種工作方式,它是由SCON中的SM0、SM1來定義的如下表4-1所示:表4-1SM0SM1工作方式方式簡單描述波特率000移位存放器I/O主振頻率/120118位UART可變1029位UART主振頻率/32或主振頻率/641139位UART可變串行通信的波特率可以程控設(shè)定,在不同的工作方式下,由時鐘振蕩頻率的分頻值或由定時器T1的定時溢出時間確定。單片機(jī)的串行端口有2個控制存放器,用來設(shè)置工作方式、發(fā)送或接收的狀態(tài)、特征位、數(shù)據(jù)傳送的波特率以及中斷標(biāo)志TI和RI。串行端口有1個數(shù)據(jù)存放器SBUF,該存放器為發(fā)送和接收所共有,在一定條件下,向SBUF寫入數(shù)據(jù)就啟動了發(fā)送過程,讀SBUF就啟動了接收過程。單片機(jī)可以采用循環(huán)方式或中斷方式實現(xiàn)串行數(shù)據(jù)的傳送。在循環(huán)方式下,單片機(jī)循環(huán)對數(shù)據(jù)存放器SBUF進(jìn)行讀寫來實現(xiàn)數(shù)據(jù)的接收和發(fā)送;在中斷方式下,對方式1、2來說,1幀數(shù)據(jù)發(fā)送或接收完后,TI/RI自動置1,請求串行中斷,假設(shè)CPU響應(yīng)中斷,那么執(zhí)行串行中斷效勞程序,并把TI/RI清0以再次響應(yīng)中斷。對在方式2、3下的接收,還要視串口控制存放器SCON的設(shè)置才可確定RI是否被置位以及串口中斷是否開放。實時控制中,由于事件的突發(fā)性,常采用中斷的方式進(jìn)行數(shù)據(jù)傳送,中斷方式能更大限度地提高資源的利用率,使CPU在不進(jìn)行數(shù)據(jù)通信時做其他的工作。下面重點介紹單片機(jī)在方式1下的中斷方式編程。方式1是10位異步通信方式,其中包括1個起始位,8個數(shù)據(jù)位和1個停止位。波特率由定時器T1的溢出率和串口控制存放器SMOD的狀態(tài)確定,在CPU的晶振為時,波特率常采用9600b/s。對SBUF進(jìn)行寫操作就可啟動發(fā)送,在發(fā)送移位時鐘的同步下,從TXD先送出起始位,然后是8位數(shù)據(jù)位,最后是停止位,這樣,1幀數(shù)據(jù)發(fā)送完,中斷標(biāo)志TI置位。在允許接收的條件下(REN=1),當(dāng)RXD出現(xiàn)由1到0的負(fù)跳變時,即被當(dāng)成是串行發(fā)送來的1幀數(shù)據(jù)的起始位,從而啟動1次接收過程。當(dāng)8位數(shù)據(jù)接收完,并檢測到高電平停止位后,即把收到的8位數(shù)據(jù)裝入SBUF,置位RI,1幀數(shù)據(jù)的接收過程就完成了。設(shè)計中單片機(jī)是以方式1在直接傳送下的中斷接收和發(fā)送程序。由于沒有使用通信握手,所以通信雙方都應(yīng)做好通信準(zhǔn)備。在計算機(jī)發(fā)送、單片機(jī)接收時,計算機(jī)發(fā)送1幀數(shù)據(jù),單片機(jī)響應(yīng)中斷,接收數(shù)據(jù)。串行通信波特率的計算串行通信的四種工作方式對應(yīng)著3種波特率。方式0,為單片機(jī)時鐘的十二分之一,即fosc/12方式2,波特率由兩種可供選擇,即fosc/32和fosc/64。對應(yīng)于以下公式:波特率=fosc*2smod/64方式1和方式3,波特率由定時器T1的溢出率決定,對應(yīng)于以下公式:波特率=〔2smod/32〕*〔定時器T1的溢出率〕而定時器T1的溢出率那么和所采用的定時器的工作方式有關(guān),并可用下面的公式計算:定時器T1的溢出率=fosc/12*(2n-X)其中X為定時器T1的計數(shù)初值,n為定時器T1的位數(shù),對定時器方式0,取n=13;對定時器方式1,取n=16;對定時器方式2、3,取n=8;對設(shè)計中川口初始化設(shè)置的計算如下:單片機(jī)的時鐘采用12M的晶振,定時器T1采用工作方式2,串行通信采用方式1,波特率選用2400。取SMOD=0,那么定時器T1的溢出率=波特率*32/2smod=2400*32/20=76800計數(shù)初值X=2n-〔fosc/T1的溢出率*12〕=28-〔12*106/76800*12〕=243=F3H特殊存放器的初值確實定:對于SCON,SM0、SM1=01時為方式1,在SM2=0和REN=1的條件下,允許接收數(shù)據(jù),其余各位均取0那么:SCON=01010000B=50H對于PCON:由于SMOD=0,所以PCON=00H對于TMOD:由于只用T1,且為定時方式2,所以TMOD=00100000=20H第5章性能測試5.1硬件電路測試按照電路圖將各器件焊接到實驗板上,對焊接完的硬件電路進(jìn)行調(diào)試。首先,用焊接完的實物和電路圖進(jìn)行對照,找出是否有遺漏或者接錯的地方,如有發(fā)現(xiàn)及時更正。其次,用萬用表檢查電路中是否有短路和斷路的現(xiàn)象,并檢查所有的電源線是否導(dǎo)通,所有的地線是否導(dǎo)通。再次,將電路分成多個小模塊,并且編輯一些專門的小程序,來檢測它們是否正確。最后,接通電源,用萬用表檢測各局部電路的電壓和電流是否正常。5.2各功能模塊軟件測試電路檢查無誤后,需要對系統(tǒng)的各個模塊進(jìn)行軟件與硬件相結(jié)合的調(diào)試。本設(shè)計使用的是WAVE系列仿真器,將仿真器接入硬件電路中,并和電腦的串行口工作。如果電路工作不正常,那么將程序設(shè)置幾個斷點,并單步運(yùn)行程序,找出程序的錯誤及時更正??偨Y(jié)在這次設(shè)計中,我們完成了一個基于單片機(jī)的數(shù)字電壓表設(shè)計,盡管結(jié)果算不上很完美,但是我們努力了,獲得了豐富的知識,完善了大學(xué)四年中純理論的模仿學(xué)習(xí)。我從資料的收集中,掌握了很多單片機(jī)、液晶顯示屏的知識,讓我對我所學(xué)過的知識有所穩(wěn)固和提高,并且讓我對當(dāng)今單片機(jī)、液晶顯示屏的最新開展技術(shù)有所了解。在整個過程中,我學(xué)到了新知識,增長了見識。當(dāng)然,通過本次設(shè)計,也發(fā)現(xiàn)了我在許多知識上的欠缺。通過畢業(yè)設(shè)計,我們不單單是完成了我們的設(shè)計題目,而且認(rèn)識到了設(shè)計的方法和思路。在今后的日子里,我仍然要不斷地充實自己,爭取在所學(xué)領(lǐng)域有所作為。
在這個過程中,有很多值得總結(jié)的地方。尤其在應(yīng)用ProtelDXP畫原理圖,在PCB板上手工布線,以及在做實物過程中,都需要對細(xì)節(jié)性的東西比擬清楚,返工的幾率才會比擬少。當(dāng)準(zhǔn)備調(diào)試板子的時候,一定要先認(rèn)真的做好目視檢查,檢查在焊接的過程中是否有可見的短路和管腳搭錫等故障,檢查是否有元器件型號放置錯誤,第一腳放置錯誤,漏裝配等問題,然后用萬用表測量各個電源到地的電阻,以檢查是否有短路,這個好習(xí)慣可以防止貿(mào)然上電后損壞單板。調(diào)試的過程中要有平和的心態(tài),遇見問題是非常正常的,要做的就是多做比擬和分析,逐步的排除可能的原因,要堅信“凡事都是有方法解決的〞和“問題出現(xiàn)一定有它的原因〞,這樣最后一定能調(diào)試成功。腳踏實地,認(rèn)真嚴(yán)謹(jǐn),實事求是的學(xué)習(xí)態(tài)度,不怕困難、堅持不懈、吃苦耐勞的精神是我在這次設(shè)計中最大的收益。我想這是一次意志的磨練,是對我實際能力的一次提升,也會對我未來的學(xué)習(xí)和工作有很大的幫助。
致謝在這次課程設(shè)計的整個過程中,雖然設(shè)計結(jié)果并不是很完美,但是,在這整個課程設(shè)計期間,使我學(xué)到了很多在這之前沒有學(xué)到的知識、技能。也讓我學(xué)到了怎樣才能更好的與人合作。使我把整個大學(xué)期間所學(xué)到的知識進(jìn)行了一個最后的總結(jié)和復(fù)習(xí),也使我對所學(xué)的知識有了進(jìn)一步的思考。也讓我從另一個方面認(rèn)識了我所學(xué)專業(yè)的重要性??梢哉f,在這長達(dá)一個學(xué)期的設(shè)計過程中,我是收獲多多,這些都要感謝這次設(shè)計過程中給予我?guī)椭拿恳粋€老師和同學(xué)。首先,應(yīng)該感謝的是學(xué)院為我們提供了良好的設(shè)計環(huán)境,為我們提供了很方便的查詢各種需要資料的環(huán)境。也為我們每一個學(xué)生的設(shè)計提供了很好的設(shè)計平臺,并在整個設(shè)計過程中不斷的催促我們完成我們的畢業(yè)設(shè)計。更應(yīng)該感謝的是我的指導(dǎo)老師肖功利老師,肖老師在極其繁忙的工作中還抽出大量的時間來為我們輔導(dǎo),為我們的設(shè)計分配任務(wù),提供了思路,解決我們在設(shè)計過程中遇到的各種困難,為我們的論文的編寫提供了很好的思路和建議,并指引著我們朝著完美設(shè)計的方向開展。在此我要向王老師致以最衷心的感謝。其次,也應(yīng)該感謝我的軟件伙伴韓日華同學(xué),他在這次設(shè)計中給了我軟件的支持和在系統(tǒng)調(diào)試的過程中努力的解決在調(diào)試過程中遇到的各種問題。在我們積極良好的配合之下,才使得這次設(shè)計得以順利的完成。還應(yīng)該感謝的是班上的同學(xué)們,他們在我硬件電路的設(shè)計、PCB板的焊接以及調(diào)試的過程中給予了極大建議和幫助。另外,還要感謝我的社友們,在設(shè)計過程中,他們給了我極大的精神鼓勵。在這次畢業(yè)設(shè)計中使我們的同學(xué)關(guān)系更進(jìn)了一步,同學(xué)之間互相幫助,有什么不懂的大家在一起商量,聽聽不同的看法使我們更好的理解知識??傊兄x這次設(shè)計中給我?guī)椭乃腥?,有了他們的指?dǎo)、幫助和鼓勵,才使得我能在學(xué)校規(guī)定的時間內(nèi)順利的完成這次的設(shè)計任務(wù)。也使我在這次的設(shè)計中成長了許多。參考文獻(xiàn)[1]《新編實用數(shù)字化測量技術(shù)》沙占友編國防工業(yè)出版社,1998[2]《單片機(jī)根底》李廣第朱月秀王秀山編北京航空航天大學(xué)出版社,2001[3]《單片機(jī)課程設(shè)計實例知道》李光飛等編北京航空航天大學(xué)出版社,2004[4]《電子技術(shù)》房建東高勝利編內(nèi)蒙古大學(xué)出版社,2004[5]《單片機(jī)實用系統(tǒng)設(shè)計技術(shù)》房小翠王金鳳編國防工業(yè)出版社,1999[6]《電子創(chuàng)新設(shè)計與實踐》王松武于鑫武思軍編國防工業(yè)出版社,2005[7]《單片微型計算機(jī)原理及應(yīng)用》張毅坤等西安:西安電子科技大學(xué)出版社,2005[8]《單片機(jī)課程設(shè)計實例指導(dǎo)》北京航空航天出版社,2002[9]《51單片機(jī)應(yīng)用開發(fā)案例精選》王為青邱文勛等編人民郵政出版社,2007[10]《單片機(jī)典型模塊實例導(dǎo)航》求是科技編人民郵電出版社[11]《單片機(jī)外圍電路設(shè)計》沙占有王彥朋等編電子工業(yè)出版社[12]《串行技術(shù)大全》謝瑞等編清華大學(xué)出版社[13]《AT89系列單片機(jī)原理與接口技術(shù)》王幸之鐘愛琴編北京航空航天大學(xué)出版社[14]《串行端口技術(shù)》李肇慶韓濤編著國防工業(yè)出版社[15]《PC機(jī)與單片機(jī)&DSP數(shù)據(jù)通信技術(shù)選編》李朝青主編北京航空航天大學(xué)出版社附錄1附錄2系統(tǒng)的程序#include<reg52.h>#include<intrins.h>//#include<stdio.h>#include<math.h>//externfloatpow(floatx,floaty);//用到pow函數(shù)#defineuintunsignedint#defineucharunsignedchar/*******************max187連線圖********************/sbitCS=P2^1;//max187片選sbitCLK=P2^0;//max187時鐘脈沖sbitSDOUT=P2^2;//max187數(shù)據(jù)輸出口,返回給AT89S51/*************LCD1602連線圖**********************/sbitRS=P2^6;//數(shù)據(jù)\命令選擇sbitRW=P2^5;//讀\寫選擇sbitE=P2^4;//使能端/*************a上下電壓報警管腳設(shè)置**********************/sbitK1=P1^0;//高電壓報警減參數(shù)設(shè)置sbitK2=P1^1;//高電壓報警加參數(shù)設(shè)置sbitK3=P1^2;//低電壓報警減參數(shù)設(shè)置sbitK4=P1^3;//低電壓報警加參數(shù)設(shè)置sbitfmq=P2^7;//蜂鳴器報警/*************變量定義********************///由于存放時數(shù)據(jù)范圍的不同,要注意各變量的類型uintnum=0,temp,x=0; uchari,xx,temp1,ge,fen1,fen2,fen3,t0,lv=10,hv=50,fmq1=1,fmq2=1,fmq3=1;//用在對數(shù)據(jù)的處理uinttable[12]={0,0,0,0,0,0,0,0,0,0,0,0};//暫存max187讀回的二進(jìn)制數(shù)/*************蜂鳴器報警程序****************/voiddelay500us(){unsignedcharj;for(j=0;j<57;j++) //500us第三方{;}}voidbeep() //產(chǎn)生1KHZ頻率聲音的函數(shù){ 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;//片選低電平,開始轉(zhuǎn)換//while(SDOUT==0);for(i=0;i<8;i++)//延遲,等待轉(zhuǎn)換結(jié)束{_nop_();}CLK=1;CLK=0;xx=SDOUT;//count=count^xx;table[0]=xx;//將讀回的數(shù)值存入table數(shù)組,便于后面進(jìn)行的數(shù)制轉(zhuǎn)換的處理for(i=0;i<11;i++){CLK=1;CLK=0;//count=count<<1;xx=SDOUT;//count=count^xx;table[i+1]=xx;}//運(yùn)用完12次,存入12位二進(jìn)制數(shù)CLK=1;CLK=0;CS=1;//讀完數(shù)據(jù),片選拉高//returncount;}/*********************max187end******************//******************************************//*將max187返回的二進(jìn)制轉(zhuǎn)換為十進(jìn)制,由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進(jìn)行十進(jìn)制數(shù)值的累加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累加得最后要顯示的十進(jìn)制數(shù)值,做為函數(shù)的返回值}/*******************************//*LCD1602子程序/*******************************//*********LCD1602begin*******/voidwrite_com(ucharcom)//寫命令子函數(shù){RS=0;P0=com;RW=0;delay(5);E=1;delay(5);E=0;}voidwrite_data(uchardate)//寫數(shù)據(jù)子函數(shù){RS=1;P0=date;RW=0;delay(5);E=1;delay(5);E=0;}voidwrite_str(ucharadd,uchar*str)//從一個地址開始寫字符串{write_com(add);//要寫數(shù)據(jù)的地址while(*str!='\0'){write_data(*str++);}}voidinit(void)//LCD初始化函數(shù){E=0;w
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度舊環(huán)保設(shè)備買賣與運(yùn)營維護(hù)合同3篇
- 二零二五年度建筑廢棄物綜合利用合同3篇
- 計算思維課程設(shè)計
- 海南醫(yī)學(xué)院《生物醫(yī)學(xué)工程倫理及政策法規(guī)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度抵債資產(chǎn)轉(zhuǎn)讓與受讓合同3篇
- 海南師范大學(xué)《武術(shù)教學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 照明電氣設(shè)計課程設(shè)計
- 2025年度生態(tài)農(nóng)業(yè)園區(qū)綠化種植與生態(tài)保護(hù)合同3篇
- 二零二五年度安置房租賃中介服務(wù)合同
- 算法課程設(shè)計2048
- 小學(xué)五年級上冊數(shù)學(xué)寒假作業(yè)每日一練
- 三年級上冊語文期末考試作文押題預(yù)測
- 2025年醫(yī)院院感工作計劃
- 2024年陜西省安全員《A證》考試題庫及答案
- 《道路車輛 48V供電電壓的電氣及電子部件 電性能要求和試驗方法》文本以及編制說明
- 供貨進(jìn)度計劃及保證措施
- 北師大版二年級《數(shù)學(xué)》下冊單元測試卷
- 十八項醫(yī)療核心制度考試題與答案
- 杵針療法課件
- 船形烏頭提取工藝優(yōu)化
- 軟件企業(yè)戰(zhàn)略規(guī)劃
評論
0/150
提交評論