基于5單片機(jī)數(shù)字電壓表的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于5單片機(jī)數(shù)字電壓表的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于5單片機(jī)數(shù)字電壓表的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于5單片機(jī)數(shù)字電壓表的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于5單片機(jī)數(shù)字電壓表的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、大連東軟信息技術(shù)職業(yè)學(xué)院高職畢業(yè)設(shè)計(jì)(論文)高職畢業(yè)設(shè)計(jì)(論文)系系 所:所: 電子工程系 專專 業(yè):業(yè): 嵌入式系統(tǒng)工程 學(xué)生姓名:學(xué)生姓名: 學(xué)生學(xué)號(hào):學(xué)生學(xué)號(hào): 指導(dǎo)教師:指導(dǎo)教師: 導(dǎo)師職稱:導(dǎo)師職稱: 論文題目論文題目:基于 51 單片機(jī)數(shù)字電壓表的設(shè)計(jì)與實(shí)現(xiàn)完成日期:完成日期: 2013 年 04 月 22 日 大連東軟信息技術(shù)職業(yè)學(xué)院Dalian Neusoft Institute of Information Technology大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文) 摘要I基于 51 單片機(jī)數(shù)字電壓表的設(shè)計(jì)與實(shí)現(xiàn)摘 要數(shù)字電壓表簡(jiǎn)稱 DVM,它是采用數(shù)字化測(cè)量技術(shù),把連續(xù)的

2、模擬量(直流輸入電壓)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并且加以顯示的儀表。數(shù)字電壓表自從一九五二年以來,隨著電子技術(shù)的飛躍發(fā)展,尤其是目前,做成測(cè)量?jī)x表、模擬指示儀表的數(shù)字化和自動(dòng)測(cè)量的系統(tǒng),而得到了很大的發(fā)展。數(shù)字電壓表是從電位差計(jì)的自動(dòng)化這種想法研制出來的,因此即便是最初的數(shù)字電壓表,其精度也要比模擬式儀表高,而其成本比電位差計(jì)也高。以后,DVM 的發(fā)展就著眼在高精度和低成本兩個(gè)方面。單片機(jī)可單獨(dú)地完成工業(yè)控制所要求的智能化控制功能,這是單片機(jī)最大的特征。本電路主要采用 STC89C52RC 芯片和 ADC0832 芯片來完成一個(gè)簡(jiǎn)易的數(shù)字電壓表,可以夠?qū)斎氲?05 V 的模擬直流電壓進(jìn)行測(cè)

3、量,并且通過一個(gè) 4 位一體的 7 段 LED數(shù)碼管進(jìn)行顯示。該電壓表的測(cè)量電路由三個(gè)模塊組成:A/D 轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示控制模塊。A/D 轉(zhuǎn)換主要由芯片 ADC0832 來完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換成相應(yīng)的數(shù)字量再傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片 STC89C52RC 來完成,其負(fù)責(zé)把 ADC0832 傳送來的數(shù)字量經(jīng)一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進(jìn)行顯示;另外它還控制著 ADC0832 芯片的工作。關(guān)鍵詞關(guān)鍵詞:?jiǎn)纹瑱C(jī),數(shù)字電壓表,A/D 轉(zhuǎn)換,ADC0832大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文) AbstractIIBased on 51 Single

4、 Chip Microcomputer Digital Voltmeter Design and ImplementationAbstractReferred to as the digital voltmeter DVM, it is the use of digital measuring technology, continuous analog (DC input voltage) is converted into a discontinuous, discrete digital form and the display of the instrument. Digital vol

5、tmeter since its inception in 1952, with the rapid development of electronic technology, especially as the measuring instruments, the digitization of analog indicating instrument and automatic measurement system, and has been a great development. Digital voltmeter is developed out of this idea from

6、the potential difference of automation, so even if the initial digital voltmeter, its accuracy than analog instrumentation, and its cost is also higher than the potential difference. In the future, the development of the DVM focus on two aspects of the high accuracy and low cost. The microcontroller

7、 can be used alone to complete the requirements of modern industrial control intelligent control function, which is the biggest features of the microcontroller. The present circuit the STC89C52RC chip and ADC0832 chip to complete a simple digital voltmeter, 05V analog input DC voltage to be measured

8、 and integrated by a four 7-segment LED display. The voltmeter measuring circuit mainly consists of three modules: A/D converter module, the data processing module and the display control module. The A/D converter chip ADC0832 to complete, it sends it to the data processing module is responsible for

9、 the acquisition to analog conversion for the corresponding digital. STC89C52RC to complete the data processing by the chip, which is responsible for the ADC0832 transferred to digital by a certain data processing to produce the corresponding display code to the display module for display; addition,

10、 it also controls the ADC0832 chip.Key words: Singlechip, digital Display voltmeter, A/D conversion ADC0832大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文) 目錄III目 錄摘 要.IABSTRACT.II第 1 章項(xiàng)目概述.11.1 設(shè)計(jì)的目的.11.2 產(chǎn)品要求.11.3 各模塊方案選擇及論證.1第 2 章項(xiàng)目實(shí)施方案.32.1 概述模數(shù)轉(zhuǎn)換芯片 ADC0832.32.2.1ADC0832 內(nèi)部邏輯結(jié)構(gòu).32.2.2 工作原理.32.2 控制芯片 STC89C52RC.32.3 LED 數(shù)碼管

11、的控制顯示.4第 3 章電壓表原理.53.1 電壓表的原理.53.2 電源部分.53.3A/D 轉(zhuǎn)換電路 .63.4 單片機(jī)最小系統(tǒng)電路部分.63.5 顯示電路部分.6第 4 章項(xiàng)目成果.84.1 軟件成果物.84.2 程序設(shè)計(jì).84.2.1 主程序設(shè)計(jì).84.2.2 中斷顯示程序.94.2.3 調(diào)試與測(cè)試.10大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文) 目錄IV4.2.4 軟件介紹.104.3 源程序代碼.114.3 硬成果物.144.4 硬件調(diào)試.15參考文獻(xiàn).16致 謝.17大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-1-第第 1 章章項(xiàng)目概述項(xiàng)目概述1.1 設(shè)計(jì)的目的設(shè)計(jì)的目的通過制作簡(jiǎn)易

12、數(shù)字電壓表,加深對(duì)所學(xué)專業(yè)知識(shí)的認(rèn)識(shí),提高分析、解決工程實(shí)際問題的能力,提高對(duì)單片機(jī)的應(yīng)用能力,提高收集文獻(xiàn)、資料的能力,從而達(dá)到綜合運(yùn)用所學(xué)的專業(yè)知識(shí)進(jìn)行電子產(chǎn)品設(shè)計(jì)、制作與調(diào)試的能力。1.2 產(chǎn)品要求產(chǎn)品要求基本功能:1) 能用數(shù)碼管顯示電壓值2) 測(cè)量精確度達(dá) 0.5V3) 自制的直流穩(wěn)壓電源4) 系統(tǒng)應(yīng)具備復(fù)位功能1.3 各模塊方案選擇及論證各模塊方案選擇及論證根據(jù)設(shè)計(jì)要求,系統(tǒng)可分成電壓采集模塊、A/D 轉(zhuǎn)換模塊 、主控模塊、顯示模塊。A/D 轉(zhuǎn)換模塊:方案一: A/D 轉(zhuǎn)換器采用 ICL7107 型三位半顯示的芯片,輸入信號(hào),流經(jīng)取樣電路取樣后送到 ICL7107 型三位半 A/D

13、 轉(zhuǎn)換器,只需要很少的簡(jiǎn)單外圍元件,就可組成數(shù)字電流表模塊,直接驅(qū)動(dòng)三位半 LED 顯示器顯示,最后輸入電流在顯示部分顯示。由于本人對(duì)此電路不熟悉,而且 ICL7107 做的 LED 數(shù)字表,最大的缺點(diǎn)就是數(shù)字亂跳不穩(wěn)定,尤其最后一位。所以不采用此方案。方案二: 采用 ADC0832 轉(zhuǎn)換芯片,其中 A/D 轉(zhuǎn)換器用于實(shí)現(xiàn)模擬量向數(shù)字量的轉(zhuǎn)換,單電源供電。它是具有 8 路模擬量輸入、8 位數(shù)字量輸出功能的 A/D 轉(zhuǎn)換器,轉(zhuǎn)換時(shí)間成 100s,模擬輸入電壓范圍為 0V+5V,不需零點(diǎn)和滿刻度校準(zhǔn),功耗低,約 15mW。由于模擬轉(zhuǎn)換電路的種類很多,通過對(duì)轉(zhuǎn)換速度,精度和價(jià)格方面考慮,所以選擇方案

14、二采用 ADC0832 為本次設(shè)計(jì)的轉(zhuǎn)換芯片。接口模塊:方案一:用數(shù)字電路實(shí)現(xiàn),采用譯碼芯片 CD4543 作為接口芯片,這種方案能實(shí)現(xiàn)功能,但穩(wěn)定性不高,結(jié)構(gòu)復(fù)雜。方案二:采用 STC89C52RC 單片機(jī)作為系統(tǒng)的控制單元,通過 A/D 轉(zhuǎn)換將被測(cè)值大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-2-轉(zhuǎn)換為數(shù)字量送入單片機(jī)中,再由單片機(jī)來送顯。此方案各類功能易于實(shí)現(xiàn),成本低、功耗低,顯示穩(wěn)定。通過比較,我選擇方案二。 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-3-第第 2 章章項(xiàng)目實(shí)施方案項(xiàng)目實(shí)施方案2.1 概述概述模數(shù)轉(zhuǎn)換芯片模數(shù)轉(zhuǎn)換芯片 ADC0832ADC0832 是典型的 8 位 8 通

15、道逐次逼近式 A/D 轉(zhuǎn)換器,它能和微型計(jì)算機(jī)直接接。ADC0832 轉(zhuǎn)換器的系列芯片是 ADC0808,能相互替換。2.2.1 ADC0832 內(nèi)部邏輯結(jié)構(gòu)內(nèi)部邏輯結(jié)構(gòu)如圖 3.1 所示圖 2.1 ADC0832 內(nèi)部邏輯結(jié)構(gòu)2.2.2 工作原理工作原理首先輸入 3 位地址,并且使 ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通 8 路模擬輸入之一到比較器。START 上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng) A/D 轉(zhuǎn)換,之后 EOC 輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行。直到 A/D 轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指?A/D 轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可用作中斷申請(qǐng)。當(dāng) OE

16、 輸入高電平時(shí),輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上2.2 控制芯片控制芯片 STC89C52RCSTC89C52RC 是美國(guó) ATMEL 公司生產(chǎn)的低功耗、高性能 CMOS 8 位單片機(jī)。STC89C52RC 片內(nèi)含有 4k 字節(jié) Flash 閃速存儲(chǔ)器,128 字節(jié)內(nèi)部 RAM,32 個(gè) I/O 口線,看門狗(WDT),兩個(gè)數(shù)據(jù)指針,兩個(gè) 16 位定時(shí)/計(jì)數(shù)器,一個(gè) 5 向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。并且支持兩種軟件可選的節(jié)電工作模式。空閑方式停止 CPU 的工作,但允許 RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM

17、中的內(nèi)容,但振蕩器停止工作并且禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。由于將多功能 8 位 CPU 和閃爍存儲(chǔ)器組合在單個(gè)芯大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-4-片中,ATMEL 的 STC89C52RC 是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。2.3 LED 數(shù)碼管的控制顯示數(shù)碼管的控制顯示LED 數(shù)碼管模型如圖 2.4LED 的段碼端口 AG 分別接至 AT89C51 的 P1.0P1.7 口,位選端 14 分別接至 P3.5、P3.4、P3.1、P3.0,如圖 2.4ABCDEFGDPQ1Q2Q3Q0圖 2.2 LED 數(shù)碼管模型圖 2.3 LED

18、 與 AT89C51 的硬件連線大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-5-第第 3 章章電壓表原理電壓表原理3.1 電壓表的原理電壓表的原理本設(shè)計(jì)采用 STC89C52RC 單片機(jī)芯片配合 ADC0832 模/數(shù)轉(zhuǎn)換芯片組成一個(gè)簡(jiǎn)易的數(shù)字電壓表,電路通過 ADC0832 芯片采樣輸入口 IN0 輸入的 05 V 的模擬量電壓,經(jīng)過模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過其輸出通道 D0D7 傳送給 STC89C52RC 芯片的 P0 口。STC89C52RC 負(fù)責(zé)把接收到的數(shù)字量數(shù)據(jù)處理,產(chǎn)生正確的 7 段數(shù)碼管的顯示段碼,并且通過其 P1 口經(jīng)驅(qū)動(dòng)芯片 SN74LS373 驅(qū)動(dòng),再傳送給數(shù)碼管

19、。同時(shí)它還通過其三位 I/O 口 P3.0、P3.1、P3.2 產(chǎn)生位選信號(hào),控制數(shù)碼管的亮滅。STC89C52RC 還控制著 ADC0832 的工作。其 ALE 管腳為 ADC0832 提供了 1MHz 工作的時(shí)鐘脈沖;P2.3 控制 ADC0832 的地址鎖存端(ALE);P2.4 控制 ADC0832 的啟動(dòng)端(START);P2.5 控制 ADC0832 的輸出允許端(OE);P3.7 控制 ADC0832 的轉(zhuǎn)換結(jié)束信號(hào)(EOC)。3.2 電源部分電源部分電源部分電路主要是要求能提供穩(wěn)定可靠的電壓,使整個(gè)系統(tǒng)能正常的工作。采用 220V 的工頻交流電壓,而單片機(jī)的工作電壓是直流+5V

20、,因此,先通過一個(gè)普通的變壓器降低電壓,再通過橋式整流,然后再通過 7805 芯片的進(jìn)一步穩(wěn)壓,確保+5V 電源的穩(wěn)定、 。而且 7805 集成穩(wěn)壓器是常用的固定輸出+5V 電壓的集成穩(wěn)壓器。其內(nèi)部含有限流保護(hù)、過熱保護(hù)和過壓保護(hù)電路,采用了噪聲低、溫度漂移小的基準(zhǔn)電壓源,工作穩(wěn)定可靠。1 腳為輸入端,2 腳為接地端,3 腳為輸出端,用十分方便,能在任何有交流電壓的地方用,不需另帶電池。通過整流濾波以后輸出直流電壓,為確保整個(gè)電路能正常工作,考慮到不接負(fù)載或電源電壓有波動(dòng)時(shí)電容能承受的耐壓,必須加電容。發(fā)光二極管 D2 點(diǎn)亮表示電源電路正常工作,其電源電路如圖 3.1 所示:大連東軟信息技術(shù)職

21、業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-6-圖 3.1 電源部分3.3 A/D 轉(zhuǎn)換電路轉(zhuǎn)換電路隨著數(shù)字技術(shù),尤其是信息技術(shù)的飛速發(fā)展與普及,在現(xiàn)代控制。通信及檢測(cè)等領(lǐng)域,為了提高系統(tǒng)的性能指標(biāo),對(duì)信號(hào)的處理廣泛采用了數(shù)字計(jì)算機(jī)技術(shù)。系統(tǒng)的實(shí)際對(duì)象往往都是一些模擬量(如溫度。壓力。位移。圖像等),使計(jì)算機(jī)或數(shù)字儀表能識(shí)別。處理這些信號(hào),必須首先將這些模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),經(jīng)計(jì)算機(jī)分析。處理后輸出的數(shù)字量也往往需要將其轉(zhuǎn)換為相應(yīng)模擬信號(hào)才能為執(zhí)行機(jī)構(gòu)所接受。所以就需要一種能在模擬信號(hào)與數(shù)字信號(hào)之間起橋梁作用的電路-模數(shù)和數(shù)模轉(zhuǎn)換器。將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)的電路,稱為模數(shù)轉(zhuǎn)換器(簡(jiǎn)稱 a/d 轉(zhuǎn)換器);將數(shù)字

22、信號(hào)轉(zhuǎn)換為模擬信號(hào)的電路稱為數(shù)模轉(zhuǎn)換器(簡(jiǎn)稱 d/a 轉(zhuǎn)換器或);a/d 轉(zhuǎn)換器和 d/a 轉(zhuǎn)換器已成為信息系統(tǒng)中不可缺的組成部分,為確保系統(tǒng)處理結(jié)果的精確,a/d 轉(zhuǎn)換器和 d/a轉(zhuǎn)換器必須具有足夠轉(zhuǎn)換精度;如果要實(shí)現(xiàn)快速變化信號(hào)的實(shí)時(shí)控制與檢測(cè),a/d 與d/a 轉(zhuǎn)換器還要求具有較高的轉(zhuǎn)換速度。轉(zhuǎn)換精度與轉(zhuǎn)換速度是衡量 a/d 與 d/a 轉(zhuǎn)換器的重要技術(shù)指標(biāo)。隨著集成技術(shù)的發(fā)展,現(xiàn)已研制和生產(chǎn)出許多單片的和混合集成型的 a/d 和 d/a 轉(zhuǎn)換器,它們具有愈來先進(jìn)的技術(shù)指標(biāo)A/D 轉(zhuǎn)換器是模擬量輸入通道的一個(gè)環(huán)節(jié),單片機(jī)通過 A/D 轉(zhuǎn)換器把輸入模擬量變成數(shù)字量再處理。隨著大規(guī)模集成電路

23、的發(fā)展,目前不同廠家已經(jīng)生產(chǎn)出了多種型號(hào)的 A/D 轉(zhuǎn)換器,以滿足不同應(yīng)用場(chǎng)合的需要。如VIN1GND2VOUT3U57805123J1POWER1234D1BRIDGE1C4104C5104C6470UF/25VC7470UF/16VC81O4R142KD2LE DVCC大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-7-果按照工作原理劃分,AC 主要有 4 種類型,即雙積分式 A/D 轉(zhuǎn)換器、逐近式 A/D 轉(zhuǎn)換器和并且行式 A/D 轉(zhuǎn)換器和計(jì)數(shù)比較式 A/D 轉(zhuǎn)換器。目前最常用的是雙積分和逐次逼近式。3.4 單片機(jī)最小系統(tǒng)電路部分單片機(jī)最小系統(tǒng)電路部分單片機(jī)內(nèi)部每個(gè)部件要想?yún)f(xié)調(diào)一致地工作,必須

24、在統(tǒng)一口令時(shí)鐘信號(hào)的控制下工作。單片機(jī)工作所需要的時(shí)鐘信號(hào)有兩種產(chǎn)生方式,內(nèi)部時(shí)鐘方式和外部時(shí)鐘。內(nèi)部時(shí)鐘方式:?jiǎn)纹瑱C(jī)內(nèi)部有一個(gè)構(gòu)成振蕩器的增益反相放大器,引腳 XTAL1 和 XTAL2分別是此放大器的輸入端和輸入端,這個(gè)放大器與反饋元件的片外晶振一起構(gòu)成自激振蕩器。電容 C1 和 C2 取 20PF,晶體的振蕩頻率取 12MHz,晶體振蕩頻率高,則系統(tǒng)的時(shí)鐘頻率也高,單片機(jī)運(yùn)行速度也比較快。大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-8-3.5 顯示電路部分顯示電路部分本電路的顯示模塊主要由一個(gè) 4 位一體的 7 段 LED 數(shù)碼管組成,用于顯示測(cè)量到的電壓值。它是一個(gè)共陽極的數(shù)碼管,每一位

25、數(shù)碼管的 a,b,c,d,e,f,g 和 dp 端都各自連接在一起,用于接收 STC89C52RC 的 P1 口產(chǎn)生的顯示段碼。1,2,3,4 引腳端為其位選端,用于接收 STC89C52RC 的 P3 口產(chǎn)生的位選碼。本系統(tǒng)采用動(dòng)態(tài)掃描方式。掃描方法是用其接口電路把所有數(shù)碼管的 8 個(gè)比劃段 ag 和 DP 同名端連在一起,而每一個(gè)數(shù)碼管的公共極 COM 各自獨(dú)立地受 I/O 線控制。CUP 從字段輸出口送出字型碼時(shí),所有數(shù)碼管接收到相同的字型碼,取決于 COM 端。COM 端與單片機(jī)的 I/O 接口相連接,由單片機(jī)輸出位位選碼到 IO 接口,控制何時(shí)哪一位數(shù)碼管被點(diǎn)亮。在輪流點(diǎn)亮數(shù)碼管的位

26、掃描過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間極為短暫。但由于人的視覺暫留現(xiàn)象,給人的印象就是一組穩(wěn)定顯示的數(shù)碼。動(dòng)態(tài)方式的優(yōu)點(diǎn)是十分明顯的,即耗電省,在動(dòng)態(tài)掃描過程中,任何時(shí)刻只有一個(gè)數(shù)碼管是處于工作狀態(tài)的。具體原理圖如圖 3.2 所示。CLK10ST ART6OE9IN026IN127IN228IN31IN42IN53IN64IN75ADDA25ADDB24ADDC23ALE22GND13VCC11D017D114D215D38D418D519D620D721EOC7REF+12REF-16U3ADC0809FND0D1D2D3D4D5D6D7A0VCCA2A3A3A4接1Q接2Q接3QABCDEFGD

27、P12347SEG-MPX4-CC接接接Q1PNPQ2PNPQ3PNPQ4PNPR21OKR31OKR41OKR51OKP0P1P2P3P4P5P6P7VCCVCCVCCVCC接P3.0接P3.1接P3.3接P3.4大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-9-圖 3.2 顯示部分大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-10-第第 4 章章項(xiàng)目成果項(xiàng)目成果4.1 軟件成果物軟件成果物如圖 3.3 所示圖 3.3 軟件成果圖4.2 程序設(shè)計(jì)程序設(shè)計(jì)4.2.1 主程序設(shè)計(jì)主程序設(shè)計(jì)主程序包含初始化部分、調(diào)用 A/D 轉(zhuǎn)換子程序和相應(yīng)外部 0 中斷顯示電壓數(shù)值程序,初始化部分包含存放通道的緩沖區(qū)初

28、始化和顯示緩沖區(qū)初始化。另外,對(duì)于單路顯示和循環(huán)顯示,系統(tǒng)設(shè)置了一個(gè)標(biāo)志位 00H 控制,初始化時(shí) 00H 位設(shè)置為 0,默認(rèn)為循環(huán)顯示,當(dāng)它為 1 時(shí)改變?yōu)閱温凤@示控制,00H 位通過單路、循環(huán)按鍵控制。流程圖如圖 3.4 所示。開始顯示子程序A/D 轉(zhuǎn)換子程序初始化圖 3.4 主程序流程圖大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-11-A/D 轉(zhuǎn)換子程序用于對(duì) ADC0808 的 4 路輸入模擬電壓進(jìn)行 A/D 轉(zhuǎn)換,并且將轉(zhuǎn)換的數(shù)值存入 4 個(gè)相應(yīng)的存儲(chǔ)單元中,A/D 轉(zhuǎn)換子程序每隔一定時(shí)間調(diào)用一次,即隔一段時(shí)間對(duì)輸入電壓采樣一次,如圖 4-2 所示。過程進(jìn)行十六進(jìn)制調(diào)整開始 A/D 轉(zhuǎn)

29、換調(diào)用延時(shí)存轉(zhuǎn)換后的十六進(jìn)制數(shù)數(shù)據(jù)指針加一入棧保護(hù)4 路轉(zhuǎn)換次數(shù)減一顯示電壓值NY圖 3.5 轉(zhuǎn)換子程序流程圖大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-12-4.2.2 中斷顯示程序中斷顯示程序設(shè)計(jì)中采用中斷的方式來讀取轉(zhuǎn)換完成的數(shù)據(jù)能節(jié)省 CPU 的資源。當(dāng)系統(tǒng)設(shè)置好后,一旦數(shù)據(jù)轉(zhuǎn)換完成,便會(huì)進(jìn)入外部中斷 0,然后在中斷中讀取轉(zhuǎn)換的數(shù)值,處理數(shù)據(jù)并且送數(shù)碼管顯示輸出。LED 數(shù)碼管采用軟件譯碼動(dòng)態(tài)掃描的方式。在中斷程序中包含多路循環(huán)顯示程序和單路顯示程序,多路循環(huán)顯示程序把 4 個(gè)存儲(chǔ)單元的數(shù)值依次取出送到 4 個(gè)數(shù)碼管上顯示,每一路顯示一秒。單路顯示程序只對(duì)當(dāng)前選中的一路數(shù)據(jù)進(jìn)行顯示。每路

30、數(shù)據(jù)顯示時(shí)需經(jīng)過轉(zhuǎn)換變成十進(jìn)制 BCD 碼,放于 4 個(gè)數(shù)碼管顯示緩沖區(qū)中。單路或多路循環(huán)顯示通過標(biāo)志位 00H 控制。在顯示控制程序中加入了對(duì)單路或多路循環(huán)按鍵的判斷。4.2.3 調(diào)試與測(cè)試調(diào)試與測(cè)試本設(shè)計(jì)應(yīng)用 Proteus6 及 KEIL51 軟件,首先根據(jù)自己設(shè)計(jì)的電路圖用 Proteus6 軟件畫出電路模型,關(guān)于這個(gè)軟件的用通過查一些資料和自己的摸索學(xué)習(xí);然后我們用KEIL51 軟件對(duì)所編寫的程序進(jìn)行編譯、鏈接,如果沒有錯(cuò)誤和警告便可生成程序的hex 文件,將此文件加到電路圖上使軟硬件結(jié)合運(yùn)行,最后進(jìn)行端口電壓的對(duì)比測(cè)試。4.2.4 軟件介紹軟件介紹proteus6.0 是目前最好的

31、模擬單片機(jī)外圍器件的工具,真的很不錯(cuò)。能仿真 51 系列、AVR,PIC 等常用的 MCU 及其外圍電路(如 LCD,RAM,ROM,鍵盤,馬達(dá),LED,AD/DA,部分 SPI 器件,部分 IIC 器件。 )其實(shí) proteus 與 multisim 比較類似,只不過它能仿真 MCU。當(dāng)然,軟件仿真精度有限,而且不可能所有的器件都找得到相應(yīng)的仿真模型,用開發(fā)板和仿真器當(dāng)然是最好選擇。如果你在學(xué) 51 單片機(jī),如果你想自己做 LCD,LED,AD/DA,直流馬達(dá)。用 51 不管是用匯編或是 C 編程當(dāng)然要。用 keil c51 v7.20 + proteus 6.0 能像用仿真器一樣調(diào)試程序,

32、一般而言,微機(jī)實(shí)驗(yàn)中用萬利仿真器+電工系自己做的實(shí)驗(yàn)板的實(shí)驗(yàn)都能做得到。當(dāng)然,硬件實(shí)踐還是必不可少的。本方案只是在沒有硬件的情況下讓你能像pspice 仿真模擬/數(shù)字電路那樣仿真 MCU 及外圍電路。另外,即使有硬件,在程序編寫早期用軟件仿真一下也不錯(cuò)的。1、安裝 keil c51 v7.20 與 proteus 6.02、把 proteus 安裝目錄下 VDM51.dll 文件復(fù)制到 Keil 安裝目錄的 C51BIN 目錄大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-13-中。3、修改 keil 安裝目錄下 Tools.ini 文件,在 C51 字段加入TDRV5=BINVDM51.DLL(P

33、roteus VSM Monitor-51 Driver),保存。注意:不一定要用 TDRV5,根據(jù)原來字段選用一個(gè)不重復(fù)的數(shù)值就能了。引號(hào)內(nèi)的名字隨意。4、打開 proteus,畫出相應(yīng)電路。在 proteus 的 tools 菜單中選中 use remote debug monitor。5、在 keil 中編寫 MCU 的程序。6、進(jìn)入 KEIL 的 project 菜單 option for target 工程名。在 DEBUG 選項(xiàng)中右欄上部的下拉菜選中 Proteus VSM Monitor-51 Driver。在進(jìn)入 seting,如果同一臺(tái)機(jī) IP 名為 127.0.0.1,如不

34、是同一臺(tái)機(jī)則填另一臺(tái)的 IP地址。端口號(hào)一定為 8000。注意:能在一臺(tái)機(jī)器上運(yùn)行 keil,另一臺(tái)中運(yùn)行 proteus 進(jìn)行遠(yuǎn)程仿真。7、在 keil 中進(jìn)行 debug,同時(shí)在 proteus 中查看直觀的結(jié)果(如 LCD 顯示)4.3 源程序代碼源程序代碼ORG 0000HLJMP STARTORG 0003HRETIORG 000BHRETIORG 0013HRETIORG 001BHRETIORG 0023HRETIORG 002BHRETIORG 0030HSTART: CLR A SETB P3.7 ;初始化EOC CLR P3.0 ;初始化LED位選,全不選中。 CLR P3

35、.1 CLR P3.2 MOV P2 , A ;初始化P2口,清除對(duì)ADC0832的控制信號(hào)。大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-14- MOV 70H , A ;初始化數(shù)據(jù)采樣后存儲(chǔ)空間。 MOV 78H , A ;初始化數(shù)據(jù)處理后3位有效數(shù)字的存儲(chǔ)空間(78H最高位,7AH最低位)。 MOV 79H , A MOV 7AH , A MOV A , #0FFH ;初始化P0,P1口,寫入高電平。 MOV P0 , A MOV P1 , AMAIN: LCALL AD_SUB ;調(diào)用A/D轉(zhuǎn)換子程序,開始采樣并且轉(zhuǎn)換。 LCALL TURN_SUB ;調(diào)用數(shù)碼轉(zhuǎn)換子程序,將采樣轉(zhuǎn)換來的0

36、-255轉(zhuǎn)換成一一對(duì)應(yīng)的;0.00-5.00LCALL DISP_SUB ;調(diào)用顯示子程序。LJMP MAIN= AD_SUB: CLR AMOV P2 , A ;初始化P2口,清除對(duì)ADC0832的控制信號(hào)。MOV R0 , #70H LCALL AD_ST ;調(diào)用采樣轉(zhuǎn)換子程序WAIT: JB P3.7 , DATASAVE ;判斷采樣轉(zhuǎn)換是否完畢,完畢則跳轉(zhuǎn)到DATASAVE進(jìn)行存儲(chǔ)。 AJMP WAIT ;否則繼續(xù)等待。;啟動(dòng)采樣,送脈沖時(shí)序AD_ST: SETB P2.3 ;ALE 脈沖時(shí)序NOPNOPCLR P2.3SETB P2.4 ;START 脈沖時(shí)序(上跳清零,下跳開始轉(zhuǎn)換

37、)NOPNOPCLR P2.4NOPNOPRET;采樣轉(zhuǎn)換的數(shù)據(jù)存儲(chǔ)DATASAVE: SETB P2.5 ;置位OE端,允許ADC0832輸出數(shù)據(jù)MOV A , P0 ;將轉(zhuǎn)換的數(shù)據(jù)存儲(chǔ)到70H中MOV R0 , ACLR P2.5 CLR A ;初始化P0,P1,P2口(P0,P1高電平,P2低電平)MOV P2 , AMOV A , #0FFHMOV P0 , AMOV P1 , A大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-15-RET;將0255轉(zhuǎn)換為0.005.00TURN_SUB: MOV A , R0 MOV B , #51DIV AB MOV 78H , A ;以上這一段是整數(shù)

38、部分(個(gè)位)放入78H MOV A , B ;余數(shù)部分放入ACLR F0SUBB A , #1AH ;余數(shù)和51的一半即1AH比較,以便四舍五入MOV F0 , CMOV A , #10MUL AB ;余數(shù)乘以10,以便再除以51 MOV B , #51DIV ABJB F0 , LOOP1 ;判斷四舍五入,跳到LOOP1是“四舍”ADD A , #5 ;這是“五入”LOOP1: MOV 79H , A ;十分位MOV A , BCLR F0SUBB A , #1AHMOV F0,CMOV A , #10MUL ABMOV B , #51DIV ABJB F0 , LOOP2ADD A , #

39、5LOOP2: MOV 7AH , A ;百分位RET;= ;顯示子程序 DISP_SUB: MOV R1 , #78H ;R1輔助寄存器,用于存放要顯示的數(shù)據(jù)的地址(初始為最高位78H)CLR AMOV P1 , #0FFH ;初始化P1,P2口(P1高電平,P2低電平)ANL P2 , A LCALL PLAY ;調(diào)用顯示位碼子程序CLR P1.7 ;顯示最高位(個(gè)位)后的小數(shù)點(diǎn)SETB P3.0 ;選中最高位LED數(shù)碼管LCALL DELAY ;調(diào)用延遲子程序CLR P3.0 ;取消最高位位選INC R1 ;提取第二位有效數(shù)字(十分位)的數(shù)據(jù)地址(79H)LCALL PLAY ;調(diào)用顯示

40、位碼子程序SETB P3.1 ;選中第二位LED數(shù)碼管大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-16-LCALL DELAY ;調(diào)用延遲子程序CLR P3.1 ;取消第二位位選INC R1 ;提取最低位(百分位)的數(shù)據(jù)地址(7AH)LCALL PLAY ;調(diào)用顯示位碼子程序SETB P3.2 ;選中最低位LED數(shù)碼管LCALL DELAY ;調(diào)用延遲子程序CLR P3.2 ;取消最低位位選RET;位碼顯示 PLAY: MOV A , R1 ;送偏移量MOV DPTR , #TAB ;送表首地址MOVC A , A+DPTR ;查表得出相應(yīng)LED段碼 MOV P1 , A ;輸出顯示RET ;=

41、 ;延時(shí)程序DELAY: MOV R6 , #10HDL1: MOV R7 , #10HDL2: DJNZ R7 , DL2DJNZ R6 , DL1RET;= ;09段碼 TAB: DB 0C0H , 0F9H , 0A4H , 0B0H , 99H , 92H , 82H , 0F8H , 80H , 90H END我們?cè)诔绦蚓帉懲瓿珊螅湍苡梅抡嫫鬟M(jìn)行初步調(diào)試,觀察在計(jì)算機(jī)里能否通過編譯與運(yùn)行并且達(dá)到設(shè)計(jì)的基本要求。在基本符合的情況下,利用仿真器與工作正常的硬件連接進(jìn)行仿真調(diào)試;或用編程器把程序燒寫到芯片中,直接觀察能否正常運(yùn)行。如果達(dá)不到設(shè)計(jì)要求或者不能正常運(yùn)行,能直接在程序中進(jìn)行修改

42、。4.3 硬成果物硬成果物如圖 3.6 所示大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-17-圖 3.6 硬件成果大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-18-4.4 硬件調(diào)試硬件調(diào)試在系統(tǒng)上電開始測(cè)量前,要用萬用表的電壓檔對(duì)被測(cè)電壓進(jìn)行估測(cè),然后以此選擇適當(dāng)?shù)牧砍?,防止過大電壓燒壞 A/D 轉(zhuǎn)換器。首先用萬用表按照原理圖逐步檢查中各器件的電源及各引腳的連接是否正確,有否斷路、短路或者虛焊,尤其是給電路供電的電源部分需重點(diǎn)檢查,用數(shù)字萬用表測(cè)量 7805 輸出端的電壓是否是+5V,是否穩(wěn)定,能夠輸出+5V,且穩(wěn)定即可說明電源電路的設(shè)計(jì)基本達(dá)到目的要求。如果電壓沒有達(dá)到預(yù)期要求,要及時(shí)排查解決,

43、以免燒壞芯片和其他元器件。軟件調(diào)試時(shí)先進(jìn)行單元測(cè)試,分別對(duì)各個(gè)代碼模塊進(jìn)行測(cè)試,看其是否實(shí)現(xiàn)了規(guī)定功能,再把已經(jīng)測(cè)試過的模塊組合起來進(jìn)行調(diào)試,一旦不能正確運(yùn)行,要找出程序中的代碼錯(cuò)誤,確定大致的錯(cuò)誤位置,研究有關(guān)部分的錯(cuò)誤程序,找出錯(cuò)誤的原因,修改設(shè)計(jì)和代碼,以排除故障。我們?cè)诔绦蚓帉懲瓿珊?,就能利用仿真器初步調(diào)試,觀察在計(jì)算機(jī)里能否通過編譯與運(yùn)行并且達(dá)到設(shè)計(jì)的基本要求。在基本符合的情況下,利用仿真器和工作正常的硬件連接進(jìn)行仿真調(diào)試;或用編程器把程序燒寫到芯片中,直接觀察能否正常運(yùn)行。如果達(dá)不到設(shè)計(jì)要求或者不能正常運(yùn)行,能直接在程序中進(jìn)行編譯和修改。系統(tǒng)調(diào)試中遇到的問題及解決的方法:1)在應(yīng)用

44、濾波電容的過程中,開始時(shí)是把電容串聯(lián)在電路中,導(dǎo)致電路無法導(dǎo)通,而后我們短路電容,解決了問題。2)電源指示燈上,一開始發(fā)現(xiàn)接上電源,指示燈不亮,經(jīng)過儀器測(cè)量發(fā)現(xiàn)正負(fù)極接反,后重新焊接。3)由于源程序的多處錯(cuò)誤,使得仿真無法通過,后經(jīng)過單步調(diào)試,把存在的錯(cuò)誤一一排除,通過了軟件仿真。4)在燒錄芯片的過程中,由于選擇燒錄文件的錯(cuò)及芯片質(zhì)量的問題(因多次燒錄,無法再次燒錄)使得燒錄失敗,后經(jīng)過老師指導(dǎo)并且更換了 AT89C51 芯片,解決了問題。大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-19-參考文獻(xiàn)參考文獻(xiàn)1 魏立峰,單片機(jī)原理及應(yīng)用技術(shù)M,北京大學(xué)出版社20062 陳光絨,單片機(jī)技術(shù)應(yīng)用教程M,

45、北京大學(xué)出版社20053 李廣弟, 單片機(jī)基礎(chǔ)M,北京航空航天大學(xué)出版社20074 劉樹林,低頻電子線路M,電子工業(yè)出版社20035 何宏,單片機(jī)原理與接口技術(shù)M,國(guó)防工業(yè)出版社20066 張志良,單片機(jī)原理與控制技術(shù)M,機(jī)械工業(yè)出版社20017 郭強(qiáng),液晶顯示器件應(yīng)用技術(shù)M,北京郵電學(xué)院出版社19938 王辛之,AT89系列單片機(jī)原理與接口技術(shù)M,北京航空航天大學(xué)出版社2004大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)-20-致致 謝謝本次設(shè)計(jì)由于使用的是高效單片機(jī)作為核心的測(cè)量系統(tǒng),和靈敏度和精度較高的A/D轉(zhuǎn)換器,使本電壓表具有精度高、靈敏度強(qiáng)、性能可靠、電路簡(jiǎn)單成本低的特點(diǎn),使其有很高的

46、智能化水平。由本次設(shè)計(jì),我對(duì)單片機(jī)這門課程有了更進(jìn)一步的了解。無論是在其硬件連接方面還是在軟件編程方面,都取得了新的收獲。本次實(shí)驗(yàn)采用了 STC89C52RC 單片機(jī)芯片,與以往我們所熟悉的 C51 芯片有許多不同之處,通過本次設(shè)計(jì)及查閱相關(guān)資料,我對(duì)其之間的區(qū)別有了一定的認(rèn)識(shí),在本設(shè)計(jì)報(bào)告的硬件介紹部分也對(duì)其作了詳細(xì)的論述。S51 在 C51 的基礎(chǔ)上增加了許多新的功能,使其功能更為完善,應(yīng)用領(lǐng)域也更為廣泛。在畢業(yè)設(shè)計(jì)的整個(gè)過程中我發(fā)現(xiàn)了自己對(duì)單片機(jī)認(rèn)知的一些不足之處。在對(duì)單片機(jī)編程方面,我又掌握了一些新的編程思想,使得程序更為簡(jiǎn)練、易懂,而且更為嚴(yán)謹(jǐn),程序執(zhí)行的穩(wěn)定性得到了提高。在基于單片機(jī)的數(shù)字電壓表的設(shè)計(jì)過程中也找到了一些關(guān)于單片機(jī)開發(fā)的規(guī)律:先了解所有元件的具體內(nèi)容,使數(shù)字電壓表從簡(jiǎn)易變?yōu)槎喙δ艿姆绞?,雖然沒有

溫馨提示

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

評(píng)論

0/150

提交評(píng)論