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

下載本文檔

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

文檔簡介

1、-. z.東軟信息技術(shù)職業(yè)學(xué)院高職畢業(yè)設(shè)計(jì)論文論文題目:基于51單片機(jī)數(shù)字電壓表的設(shè)計(jì)與實(shí)現(xiàn)系 所:電子工程系專 業(yè):嵌入式系統(tǒng)工程學(xué)生:學(xué)生*:指導(dǎo)教師:導(dǎo)師職稱:完成日期:2013年04月22日 東軟信息技術(shù)職業(yè)學(xué)院Dalian Neusoft Institute of Information Technology-. z.基于51單片機(jī)數(shù)字電壓表的設(shè)計(jì)與實(shí)現(xiàn)摘 要數(shù)字電壓表簡稱DVM,它是采用數(shù)字化測(cè)量技術(shù),把連續(xù)的模擬量直流輸入電壓轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并且加以顯示的儀表。數(shù)字電壓表自從一九五二年以來,隨著電子技術(shù)的飛躍開展,尤其是目前,做成測(cè)量儀表、模擬指示儀表的數(shù)字化和自動(dòng)測(cè)

2、量的系統(tǒng),而得到了很大的開展。數(shù)字電壓表是從電位差計(jì)的自動(dòng)化這種想法研制出來的,因此即便是最初的數(shù)字電壓表,其精度也要比模擬式儀表高,而其本錢比電位差計(jì)也高。以后,DVM的開展就著眼在高精度和低本錢兩個(gè)方面。單片機(jī)可單獨(dú)地完成工業(yè)控制所要求的智能化控制功能,這是單片機(jī)最大的特征。本電路主要采用STC89C52RC芯片和ADC0832芯片來完成一個(gè)簡易的數(shù)字電壓表,可以夠?qū)斎氲?5 V的模擬直流電壓進(jìn)展測(cè)量,并且通過一個(gè)4位一體的7段LED數(shù)碼管進(jìn)展顯示。該電壓表的測(cè)量電路由三個(gè)模塊組成:A/D轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示控制模塊。A/D轉(zhuǎn)換主要由芯片ADC0832來完成,它負(fù)責(zé)把采集到的模擬

3、量轉(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)鍵詞:單片機(jī),數(shù)字電壓表,A/D轉(zhuǎn)換,ADC0832-. z.Based on 51 Single Chip MicroputerDigital Voltmeter Design and ImplementationAbstractReferred to as the digital voltmeter DVM, it is the use of digital measuri

4、ng technology, continuous analog (DC input voltage) is converted into a discontinuous, discrete digital form and the display of the instrument. Digital voltmeter since its inception in 1952, with the rapid development of electronic technology, especially as the measuring instruments, the digitizatio

5、n of analog indicating instrument and automatic measurement system, and has been a great development. Digital voltmeter is developed out of this idea from the potential difference of automation, so even if the initial digital voltmeter, its accuracy than analog instrumentation, and its cost is also

6、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 can be used alone to plete the requirements of modern industrial control intelligent control function, which is the biggest features of the micr

7、ocontroller. The present circuit the STC89C52RC chip and ADC0832 chip to plete a simple digital voltmeter, 05V analog input DC voltage to be measured and integrated by a four 7-segment LED display. The voltmeter measuring circuit mainly consists of three modules: A/D converter module, the data proce

8、ssing module and the display control module. The A/D converter chip ADC0832 to plete, it sends it to the data processing module is responsible for the acquisition to analog conversion for the corresponding digital. STC89C52RC to plete the data processing by the chip, which is responsible for the ADC

9、0832 transferred to digital by a certain data processing to produce the corresponding display code to the display module for display; addition, it also controls the ADC0832 chip.Key words:Singlechip, digital Display voltmeter, A/D conversionADC0832-. z.目 錄 TOC o 1-3 u 摘要 PAGEREF _Toc356493682 h IAbs

10、tract PAGEREF _Toc356493683 h II第1章工程概述 PAGEREF _Toc356493684 h 11.1設(shè)計(jì)的目的 PAGEREF _Toc356493685 h 11.2產(chǎn)品要求 PAGEREF _Toc356493686 h 11.3各模塊方案選擇及論證 PAGEREF _Toc356493687 h 1第2章工程實(shí)施方案 PAGEREF _Toc356493688 h 32.1概述模數(shù)轉(zhuǎn)換芯片ADC0832 PAGEREF _Toc356493689 h 32.2.1ADC0832部邏輯構(gòu)造 PAGEREF _Toc356493690 h 32.2.2工作

11、原理 PAGEREF _Toc356493691 h 32.2控制芯片STC89C52RC PAGEREF _Toc356493692 h 32.3 LED數(shù)碼管的控制顯示 PAGEREF _Toc356493693 h 4第3章電壓表原理 PAGEREF _Toc356493694 h 53.1電壓表的原理 PAGEREF _Toc356493695 h 53.2電源局部 PAGEREF _Toc356493696 h 53.3A/D轉(zhuǎn)換電路 PAGEREF _Toc356493697 h 63.4單片機(jī)最小系統(tǒng)電路局部 PAGEREF _Toc356493698 h 63.5顯示電路局部

12、PAGEREF _Toc356493699 h 6第4章工程成果 PAGEREF _Toc356493700 h 84.1軟件成果物 PAGEREF _Toc356493701 h 84.2程序設(shè)計(jì) PAGEREF _Toc356493702 h 8主程序設(shè)計(jì) PAGEREF _Toc356493703 h 84.2.2 中斷顯示程序 PAGEREF _Toc356493704 h 9調(diào)試與測(cè)試 PAGEREF _Toc356493705 h 10軟件介紹 PAGEREF _Toc356493706 h 104.3源程序代碼 PAGEREF _Toc356493707 h 114.3硬成果物

13、PAGEREF _Toc356493708 h 144.4硬件調(diào)試 PAGEREF _Toc356493709 h 15參考文獻(xiàn) PAGEREF _Toc356493710 h 16致 PAGEREF _Toc356493711 h 17-. z.第1章工程概述1.1設(shè)計(jì)的目的通過制作簡易數(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)品要求根本功能:能用數(shù)碼管顯示電壓值測(cè)量準(zhǔn)確度達(dá)0.5V自制的直流穩(wěn)壓電源系統(tǒng)應(yīng)具備復(fù)位功能1.3各模塊方案選擇及

14、論證根據(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轉(zhuǎ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/

15、D轉(zhuǎn)換器,轉(zhuǎn)換時(shí)間成100s,模擬輸入電壓圍為0V+5V,不需零點(diǎn)和滿刻度校準(zhǔn),功耗低,約15mW。由于模擬轉(zhuǎn)換電路的種類很多,通過對(duì)轉(zhuǎn)換速度,精度和價(jià)格方面考慮,所以選擇方案二采用ADC0832為本次設(shè)計(jì)的轉(zhuǎn)換芯片。接口模塊:方案一:用數(shù)字電路實(shí)現(xiàn),采用譯碼芯片CD4543作為接口芯片,這種方案能實(shí)現(xiàn)功能,但穩(wěn)定性不高,構(gòu)造復(fù)雜。方案二:采用STC89C52RC單片機(jī)作為系統(tǒng)的控制單元,通過A/D轉(zhuǎn)換將被測(cè)值轉(zhuǎn)換為數(shù)字量送入單片機(jī)中,再由單片機(jī)來送顯。此方案各類功能易于實(shí)現(xiàn),本錢低、功耗低,顯示穩(wěn)定。通過比擬,我選擇方案二。-. z.第2章工程實(shí)施方案2.1概述模數(shù)轉(zhuǎn)換芯片ADC0832AD

16、C0832是典型的8位8通道逐次逼近式A/D轉(zhuǎn)換器,它能和微型計(jì)算機(jī)直接接。ADC0832轉(zhuǎn)換器的系列芯片是ADC0808,能相互替換。2.2.1 ADC0832部邏輯構(gòu)造如圖3.1所示圖2.1 ADC0832部邏輯構(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)楦唠娖剑甘続/D轉(zhuǎn)換完畢,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可用作中斷申請(qǐng)。當(dāng)OE輸入高電平時(shí),輸出三態(tài)門翻開,轉(zhuǎn)換結(jié)果的數(shù)字

17、量輸出到數(shù)據(jù)總線上2.2控制芯片STC89C52RCSTC89C52RC是美國ATMEL公司生產(chǎn)的低功耗、高性能CMOS 8位單片機(jī)。STC89C52RC片含有4k字節(jié)Flash閃速存儲(chǔ)器,128字節(jié)部 RAM,32個(gè)I/O 口線,看門狗(WDT),兩個(gè)數(shù)據(jù)指針,兩個(gè)16 位定時(shí)/計(jì)數(shù)器,一個(gè)5向量兩級(jí)中斷構(gòu)造,一個(gè)全雙工串行通信口,片振蕩器及時(shí)鐘電路。并且支持兩種軟件可選的節(jié)電工作模式??臻e方式停頓CPU的工作,但允許 RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM中的容,但振蕩器停頓工作并且制止其它所有部件工作直到下一個(gè)硬件復(fù)位。由于將多功能8位CPU和閃爍存儲(chǔ)器

18、組合在單個(gè)芯片中,ATMEL的STC89C52RC是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。2.3 LED數(shù)碼管的控制顯示圖2.2 LED數(shù)碼管模型LED數(shù)碼管模型如圖2.4圖2.3 LED與AT89C51的硬件連線LED 的段碼端口AG分別接至AT89C51的P1.0P1.7口,位選端14分別接至P3.5、P3.4、P3.1、P3.0,如圖2.4-. z.第3章電壓表原理3.1電壓表的原理本設(shè)計(jì)采用STC89C52RC單片機(jī)芯片配合ADC0832模/數(shù)轉(zhuǎn)換芯片組成一個(gè)簡易的數(shù)字電壓表,電路通過ADC0832芯片采樣輸入口IN0輸入的05 V的模擬量電壓,經(jīng)過模/

19、數(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ù)碼管。同時(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控制ADC08

20、32的轉(zhuǎn)換完畢信號(hào)(EOC)。3.2電源局部電源局部電路主要是要求能提供穩(wěn)定可靠的電壓,使整個(gè)系統(tǒng)能正常的工作。采用220V的工頻交流電壓,而單片機(jī)的工作電壓是直流+5V,因此,先通過一個(gè)普通的變壓器降低電壓,再通過橋式整流,然后再通過7805芯片的進(jìn)一步穩(wěn)壓,確保+5V電源的穩(wěn)定、。而且7805集成穩(wěn)壓器是常用的固定輸出+5V電壓的集成穩(wěn)壓器。其部含有限流保護(hù)、過熱保護(hù)和過壓保護(hù)電路,采用了噪聲低、溫度漂移小的基準(zhǔn)電壓源,工作穩(wěn)定可靠。1腳為輸入端,2腳為接地端,3腳為輸出端,用十分方便,能在任何有交流電壓的地方用,不需另帶電池。通過整流濾波以后輸出直流電壓,為確保整個(gè)電路能正常工作,考慮到

21、不接負(fù)載或電源電壓有波動(dòng)時(shí)電容能承受的耐壓,必須加電容。發(fā)光二極管D2點(diǎn)亮表示電源電路正常工作,其電源電路如圖3.1所示:圖3.1電源局部3.3 A/D轉(zhuǎn)換電路隨著數(shù)字技術(shù),尤其是信息技術(shù)的飛速開展與普及,在現(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)換器

22、。將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)的電路,稱為模數(shù)轉(zhuǎn)換器(簡稱a/d轉(zhuǎn)換器);將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)的電路稱為數(shù)模轉(zhuǎn)換器(簡稱d/a轉(zhuǎn)換器或);a/d轉(zhuǎn)換器和d/a轉(zhuǎn)換器已成為信息系統(tǒng)中不可缺的組成局部,為確保系統(tǒng)處理結(jié)果的準(zhǔn)確,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ù)的開展,現(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)換器把輸入模擬量

23、變成數(shù)字量再處理。隨著大規(guī)模集成電路的開展,目前不同廠家已經(jīng)生產(chǎn)出了多種型號(hào)的A/D轉(zhuǎn)換器,以滿足不同應(yīng)用場(chǎng)合的需要。如果按照工作原理劃分,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ī)部每個(gè)部件要想?yún)f(xié)調(diào)一致地工作,必須在統(tǒng)一口令時(shí)鐘信號(hào)的控制下工作。單片機(jī)工作所需要的時(shí)鐘信號(hào)有兩種產(chǎn)生方式,部時(shí)鐘方式和外部時(shí)鐘。部時(shí)鐘方式:單片機(jī)部有一個(gè)構(gòu)成振蕩器的增益反相放大器,引腳*TAL1和*TAL2分別是此放大器的輸入端和輸入端,這個(gè)放大器與反應(yīng)元件的片外晶振一起構(gòu)成自

24、激振蕩器。電容C1和C2取20PF,晶體的振蕩頻率取12MHz,晶體振蕩頻率高,則系統(tǒng)的時(shí)鐘頻率也高,單片機(jī)運(yùn)行速度也比擬快。3.5 顯示電路局部本電路的顯示模塊主要由一個(gè)4位一體的7段LED數(shù)碼管組成,用于顯示測(cè)量到的電壓值。它是一個(gè)共陽極的數(shù)碼管,每一位數(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ù)碼管的公共極各自獨(dú)立地受I/O線控制。CU

25、P從字段輸出口送出字型碼時(shí),所有數(shù)碼管接收到一樣的字型碼,取決于端。端與單片機(jī)的I/O接口相連接,由單片機(jī)輸出位位選碼到IO接口,控制何時(shí)哪一位數(shù)碼管被點(diǎn)亮。在輪流點(diǎn)亮數(shù)碼管的位掃描過程中,每位數(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所示。圖3.2顯示局部-. z.第4章工程成果4.1軟件成果物如圖3.3所示圖3.3軟件成果圖4.2程序設(shè)計(jì)4.2.1主程序設(shè)計(jì)開場(chǎng)顯示子程序A/D轉(zhuǎn)換子程序初始化圖3.4主程序流程圖主程序包含初始化局部、

26、調(diào)用A/D轉(zhuǎn)換子程序和相應(yīng)外部0中斷顯示電壓數(shù)值程序,初始化局部包含存放通道的緩沖區(qū)初始化和顯示緩沖區(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)換子程序用于對(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)整開場(chǎng)A/D轉(zhuǎn)換調(diào)用延時(shí)存轉(zhuǎn)換后的十六進(jìn)制數(shù)數(shù)據(jù)指針加一入棧保護(hù)4路轉(zhuǎn)換次數(shù)減一顯示電壓值

27、NY圖3.5轉(zhuǎn)換子程序流程圖過程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)展顯示。每路數(shù)據(jù)顯示時(shí)需經(jīng)過轉(zhuǎn)換變成十進(jìn)制BCD碼,放于4個(gè)數(shù)碼管顯示緩沖區(qū)中。單路或多路循環(huán)顯示通過標(biāo)志位00H控制。在顯示控制程序中參加了對(duì)單路或多路循環(huán)按鍵的判

28、斷。4.2.3調(diào)試與測(cè)試本設(shè)計(jì)應(yīng)用Proteus6及KEIL51軟件,首先根據(jù)自己設(shè)計(jì)的電路圖用Proteus6軟件畫出電路模型,關(guān)于這個(gè)軟件的用通過查一些資料和自己的摸索學(xué)習(xí);然后我們用KEIL51軟件對(duì)所編寫的程序進(jìn)展編譯、,如果沒有錯(cuò)誤和警告便可生成程序的he*文件,將此文件加到電路圖上使軟硬件結(jié)合運(yùn)行,最后進(jìn)展端口電壓的比照測(cè)試。4.2.4軟件介紹proteus6.0是目前最好的模擬單片機(jī)外圍器件的工具,真的很不錯(cuò)。能仿真51系列、AVR,PIC等常用的MCU及其外圍電路如LCD,RAM,ROM,鍵盤,馬達(dá),LED,AD/DA,局部SPI器件,局部IIC器件。其實(shí)proteus 與 m

29、ultisim比擬類似,只不過它能仿真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)試程序,一般而言,微機(jī)實(shí)驗(yàn)中用萬利仿真器+電工系自己做的實(shí)驗(yàn)板的實(shí)驗(yàn)都能做得到。當(dāng)然,硬件實(shí)踐還是必不可少的。本方案只是在沒有硬件的情況下讓你能像pspice 仿真模擬/數(shù)字電路那樣仿真MCU及外圍電路。另外,即使有硬件,在程序編寫早期用軟件仿真一下也不錯(cuò)的。1、安裝

30、keil c51 v7.20 與 proteus 6.02、把proteus安裝目錄下 VDM51.dll文件復(fù)制到Keil安裝目錄的 C51BIN目錄中。3、修改keil安裝目錄下 Tools.ini文件,在C51字段參加TDRV5=BINVDM51.DLL(Proteus VSM Monitor-51 Driver),保存。注意:不一定要用TDRV5,根據(jù)原來字段選用一個(gè)不重復(fù)的數(shù)值就能了。引號(hào)的名字隨意。4、翻開proteus,畫出相應(yīng)電路。在proteus的tools菜單中選中use remote debug monitor。5、在keil中編寫MCU的程序。6、進(jìn)入KEIL的proj

31、ect菜單option for target 工程名。在DEBUG選項(xiàng)中右欄上部的下拉菜選中 Proteus VSM Monitor-51 Driver。在進(jìn)入seting,如果同一臺(tái)機(jī)IP 名為127.0.0.1,如不是同一臺(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 002

32、3HRETIORG 002BHRETIORG 0030HSTART: CLR A SETB P3.7 ;初始化EOC CLR P3.0 ;初始化LED位選,全不選中。 CLR P3.1 CLR P3.2 MOV P2 , A ;初始化P2口,去除對(duì)ADC0832的控制信號(hào)。 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: LCA

33、LL AD_SUB ;調(diào)用A/D轉(zhuǎn)換子程序,開場(chǎng)采樣并且轉(zhuǎn)換。 LCALL TURN_SUB ;調(diào)用數(shù)碼轉(zhuǎn)換子程序,將采樣轉(zhuǎn)換來的0-255轉(zhuǎn)換成一一對(duì)應(yīng)的LCALL 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: P3.7 , DATASAVE ;判斷采樣轉(zhuǎn)換是否完畢,完畢則跳轉(zhuǎn)到DATASAVE進(jìn)展存儲(chǔ)。 AJMP WAIT ;否則繼續(xù)等待。;啟動(dòng)采樣,送脈沖時(shí)序AD_ST: SETB P2.3 ;AL

34、E 脈沖時(shí)序NOPNOPCLR P2.3SETB P2.4 ;START 脈沖時(shí)序(上跳清零,下跳開場(chǎng)轉(zhuǎn)換)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 , ARET;將0255轉(zhuǎn)換為0.005.00TURN_SUB: MOV A , R0 MOV B , #51D

35、IV AB MOV 78H , A ;以上這一段是整數(shù)局部(個(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 AB F0 , LOOP1 ;判斷四舍五入,跳到LOOP1是四舍ADD A , #5 ;這是五入LOOP1: MOV 79H , A ;十分位MOV A , BCLR F0SUBB A , #1AHMOV F0,CMOV A , #10MUL ABMOV B , #51DIV AB

36、F0 , LOOP2ADD A , #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ù)地址(7

37、9H)LCALL PLAY ;調(diào)用顯示位碼子程序SETB P3.1 ;選中第二位LED數(shù)碼管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 ;= ;延時(shí)程

38、序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)展修改。4.3硬

39、成果物如圖3.6所示圖3.6硬件成果-. z.4.4硬件調(diào)試在系統(tǒng)上電開場(chǎ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í)排查解決,以免燒壞芯片和其他元器件。軟件調(diào)試時(shí)先進(jìn)展單元測(cè)試,分別對(duì)各個(gè)代碼模塊進(jìn)展測(cè)試,看其是否實(shí)現(xiàn)了規(guī)定功能,再把已經(jīng)測(cè)試過的模塊組合起來

40、進(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)用濾波電容的過程中,開場(chǎng)時(shí)是把電容串聯(lián)在電路中,導(dǎo)致電路無法導(dǎo)通,而后我們短路電容,解決了問題。2電源指示燈上,一開場(chǎng)發(fā)現(xiàn)接上電源,指示

41、燈不亮,經(jīng)過儀器測(cè)量發(fā)現(xiàn)正負(fù)極接反,后重新焊接。3由于源程序的多處錯(cuò)誤,使得仿真無法通過,后經(jīng)過單步調(diào)試,把存在的錯(cuò)誤一一排除,通過了軟件仿真。4在燒錄芯片的過程中,由于選擇燒錄文件的錯(cuò)及芯片質(zhì)量的問題因?qū)掖螣?,無法再次燒錄使得燒錄失敗,后經(jīng)過教師指導(dǎo)并且更換了AT89C51芯片,解決了問題。-. z.參考文獻(xiàn)1 立峰,單片機(jī)原理及應(yīng)用技術(shù)M,大學(xué)20062光絨,單片機(jī)技術(shù)應(yīng)用教程M,大學(xué)20053 廣弟,單片機(jī)根底M,航空航天大學(xué)20074 樹林,低頻電子線路M,電子工業(yè)20035 何宏,單片機(jī)原理與接口技術(shù)M,國防工業(yè)20066 志良,單片機(jī)原理與控制技術(shù)M,機(jī)械工業(yè)20017 郭強(qiáng),液

42、晶顯示器件應(yīng)用技術(shù)M,郵電學(xué)院19938 王辛之,AT89系列單片機(jī)原理與接口技術(shù)M,航空航天大學(xué)2004-. z.致 本次設(shè)計(jì)由于使用的是高效單片機(jī)作為核心的測(cè)量系統(tǒng),和靈敏度和精度較高的A/D轉(zhuǎn)換器,使本電壓表具有精度高、靈敏度強(qiáng)、性能可靠、電路簡單本錢低的特點(diǎn),使其有很高的智能化水平。由本次設(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的根底上增加了許多新的功能,使其功能更為完善,應(yīng)用領(lǐng)域也更為廣泛。在畢業(yè)設(shè)計(jì)的整個(gè)過程中我發(fā)現(xiàn)了自己對(duì)單片機(jī)認(rèn)知的一些缺乏之處。在對(duì)單片機(jī)編程方面,我又掌握了一些新的編程思想,使得程序更為簡練、易懂,而且更為嚴(yán)謹(jǐn),程序執(zhí)行的穩(wěn)定性得到了提高。在基于單片機(jī)的數(shù)字電壓表的設(shè)計(jì)過程中也找到了一些關(guān)于單片機(jī)開發(fā)的規(guī)律:先了解所有元件的具體容,使數(shù)字電壓表從簡易變?yōu)槎喙δ艿姆绞?,雖然沒有做多功能的電壓表,確切了解了一些方法。單片機(jī)的畢業(yè)設(shè)計(jì)是一門很實(shí)

溫馨提示

  • 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)論