數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與制作_第1頁(yè)
數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與制作_第2頁(yè)
數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與制作_第3頁(yè)
數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與制作_第4頁(yè)
數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與制作_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、湖北理工學(xué)院 畢業(yè)設(shè)計(jì)(論文)摘 要本論文介紹了一種基于單片機(jī)的簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì)。該設(shè)計(jì)主要由三個(gè)模塊組成:A/D轉(zhuǎn)換模塊,數(shù)據(jù)處理模塊及顯示模塊。A/D轉(zhuǎn)換主要由芯片ADC0809來(lái)完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量在傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片STC89C52來(lái)完成,其負(fù)責(zé)把ADC0809傳送來(lái)的數(shù)字量經(jīng)過(guò)一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進(jìn)行顯示;此外,它還控制著ADC0809芯片工作。該系統(tǒng)的數(shù)字電壓表電路簡(jiǎn)單,所用的元件較少,成本低,且測(cè)量精度和可靠性較高。此數(shù)字電壓表可以測(cè)量0-5V的0-7路模擬直流輸入電壓值,并通過(guò)一個(gè)四位一體的7段數(shù)碼管顯示出

2、來(lái)。 關(guān)鍵詞 單片機(jī);數(shù)字電壓表;A/D轉(zhuǎn)換;STC89C52ABSTRACTThis paper which introduces a kind of simple digital voltmeter is based on single-chip microcontroller design. The circuit of the voltage meter is mainly consisted of three mould pieces: A/D converting mould piece, A/D converting is mainly completed by the ADC0

3、809, it converts the collected analog data into the digital data and transmits the outcome to the manifestation controlling mould piece. Data processing is mainly completed by the STC89C52 chip, it processes the data produced by the ADC0809 chip and generates the right manifestation codes, also tran

4、smits the codes to the manifestation controlling mould piece. Also, the STC89C52 chip controls the ADC0809 chip to work. The voltmeter features in simple electrical circuit, lower use of elements, low cost, moreover, its measuring precision and reliability. The voltmeter is capable of measuring volt

5、age inputs from zero to seven route ranging from 0 to 5 volt, and displaying the measurements though a digital code tube of 7 pieces of LED.Keywords Single-chip microcontroller; Digital voltmeter; A/D converter; STC89C52目 錄摘要1 緒論11.1 研究背景及其意義11.2 該課題研究的主要內(nèi)容11.3系統(tǒng)總體設(shè)計(jì)方案的確定22 數(shù)據(jù)采集顯示系統(tǒng)的硬件設(shè)計(jì)32.1單片機(jī)最小系統(tǒng)3

6、2.1.1單片機(jī)概述32.1.2單片機(jī)引腳介紹32.1.3時(shí)鐘電路52.1.4復(fù)位電路52.2數(shù)據(jù)采集電路72.2.1 ADC0809的介紹72.2.2 ADC0809工作過(guò)程82.3顯示電路102.4 按鍵電路及總體硬件電路的確定113 數(shù)據(jù)采集顯示系統(tǒng)的軟件設(shè)計(jì)133.1 系統(tǒng)主程序設(shè)計(jì)133.2顯示子程序設(shè)計(jì)153.3 按鍵子程序設(shè)計(jì)163.4 A/D轉(zhuǎn)換子程序設(shè)計(jì)174 仿真與制作194.1 系統(tǒng)的仿真194.1.1 系統(tǒng)原理圖的繪制194.1.2 程序調(diào)試214.1.3顯示結(jié)果及誤差分析214.2 實(shí)物制作234.2.1 材料準(zhǔn)備244.2.2 制作過(guò)程254.3 本系統(tǒng)優(yōu)化分析27

7、總 結(jié)28致 謝29參 考 文 獻(xiàn)30附錄一31附錄二35371 緒論1.1 研究背景及其意義數(shù)據(jù)采集顯示系統(tǒng)起始于20世紀(jì)50年代,隨著其不斷的應(yīng)用和發(fā)展,受到了人們?cè)絹?lái)越廣泛的關(guān)注,尤其是單片機(jī)數(shù)據(jù)采集顯示系統(tǒng)技術(shù)發(fā)展,在各個(gè)領(lǐng)域中得到了廣泛應(yīng)用。上個(gè)世紀(jì)中后期,微型計(jì)算機(jī)有了長(zhǎng)足的發(fā)展,數(shù)據(jù)采集系統(tǒng)與采集器和各種儀表儀器有了更緊密的聯(lián)系。為此通過(guò)改良后數(shù)據(jù)采集系統(tǒng)不僅有著優(yōu)良的性能,更是超越了傳統(tǒng)的專用數(shù)據(jù)采集系統(tǒng)和單純的自動(dòng)檢測(cè)儀表,并獲得較快的發(fā)展。盡管現(xiàn)在以微機(jī)為核心的可編程數(shù)據(jù)采集與處理采集技術(shù)的發(fā)展方向得到了迅速的發(fā)展,而且組成一個(gè)數(shù)據(jù)采集系統(tǒng)只需要一塊數(shù)據(jù)采集卡,把它插在微機(jī)

8、的擴(kuò)展槽內(nèi)并輔以應(yīng)用軟件,就能實(shí)現(xiàn)數(shù)據(jù)采集功能,但這并不會(huì)對(duì)基于單片機(jī)為核心的數(shù)據(jù)采集系統(tǒng)產(chǎn)生影響。相對(duì)于數(shù)據(jù)采集板卡成本和功能的限制,單片機(jī)具多功能、高效率、高性能、低電壓、低功耗、低價(jià)格等優(yōu)點(diǎn),而雙單片機(jī)又具有精度較高、轉(zhuǎn)換速度快、能夠?qū)Χ帱c(diǎn)同時(shí)進(jìn)行采集,因此能夠開(kāi)發(fā)出能滿足實(shí)際應(yīng)用要求的、電路結(jié)構(gòu)簡(jiǎn)單的、可靠性高的數(shù)據(jù)采集系統(tǒng)。這就使得以單片機(jī)為核心的數(shù)據(jù)采集系統(tǒng)在許多領(lǐng)域得到了廣泛的應(yīng)用。1.2 該課題研究的主要內(nèi)容數(shù)據(jù)采集技術(shù)是信息科學(xué)的重要分支之一, 它研究信息數(shù)據(jù)的采集、存儲(chǔ)、處理以及控制等問(wèn)題。它是對(duì)傳感器信號(hào)的測(cè)量與處理, 以微型計(jì)算機(jī)等高技術(shù)為基礎(chǔ)而形成的一門綜合應(yīng)用技術(shù)。

9、數(shù)據(jù)采集是從若干個(gè)對(duì)象中獲取信號(hào)信息的過(guò)程。數(shù)據(jù)采集監(jiān)測(cè)技術(shù)越來(lái)越成為一門重要的檢測(cè)技術(shù), 并隨著微型計(jì)算機(jī)技術(shù)的普及和快速發(fā)展,主要在工農(nóng)業(yè)等場(chǎng)合需要同時(shí)監(jiān)控壓力、溫度以及壓力等領(lǐng)域得到廣泛應(yīng)用。數(shù)據(jù)采集系統(tǒng)是各個(gè)工業(yè)控制以及生產(chǎn)中必不可缺的環(huán)節(jié)之一,并應(yīng)用該系統(tǒng)的一些相對(duì)獨(dú)立的單片機(jī)系統(tǒng)功能來(lái)實(shí)現(xiàn)其性能,這是測(cè)控系統(tǒng)不可或缺的組成部分,整個(gè)性能的優(yōu)劣將受到數(shù)據(jù)采集的性能特點(diǎn)直接影響,足可見(jiàn)數(shù)據(jù)采集系統(tǒng)的重要性。在溫度、壓力、流量的計(jì)算機(jī)控制系統(tǒng)中,必須進(jìn)行數(shù)據(jù)采集,因此本設(shè)計(jì)采用MCS-51單片機(jī)作為控制器核心設(shè)計(jì)數(shù)據(jù)采集顯示系統(tǒng),采集的模擬信號(hào)可以是0-5V的8路電壓,并在四位LED數(shù)碼

10、管上輪流顯示或者單路顯示,測(cè)量最小分辨率為0.019V,測(cè)量誤差約為+-0.02V。具有自動(dòng)檢測(cè)功能、零點(diǎn)調(diào)整功能、具有抗干擾措施。利用MCS-51系列單片機(jī)設(shè)計(jì)簡(jiǎn)易數(shù)字電壓表測(cè)量05v的8路輸入電壓值,并在四位LED數(shù)碼管上輪流顯示或單路選擇顯示。測(cè)量誤差約為±0.02V。1.3系統(tǒng)總體設(shè)計(jì)方案的確定根據(jù)設(shè)計(jì)要求,可以選擇型號(hào)為STC89C52RC的單片機(jī)為系統(tǒng)核心控制器件,A/D轉(zhuǎn)換采用ADC0809實(shí)現(xiàn),各引腳分別與單片機(jī)的P1口和P3口相連,電壓顯示采用4位一體的共陰極LED數(shù)碼管顯示,LED數(shù)碼管的段碼輸入由并行端口P0產(chǎn)生,位碼輸入由并行端口P2低四位產(chǎn)生。硬件電路設(shè)計(jì)由

11、6個(gè)部分組成: A/D轉(zhuǎn)換電路,STC89C52單片機(jī)系統(tǒng),LED顯示系統(tǒng)、時(shí)鐘電路、復(fù)位電路以及測(cè)量電壓輸入電路。硬件電路設(shè)計(jì)框圖如圖2-1所示。時(shí)鐘電路 復(fù)位電路A/D轉(zhuǎn)換電路測(cè)量電壓輸入顯示系統(tǒng)STC89C52 P1 P3 P0 P2圖1-1 系統(tǒng)總體硬件設(shè)計(jì)框圖2 數(shù)據(jù)采集顯示系統(tǒng)的硬件設(shè)計(jì)單片機(jī)數(shù)據(jù)采集顯示系統(tǒng)的硬件電路由時(shí)鐘電路、復(fù)位電路、A/D轉(zhuǎn)換器電路、單片機(jī)處理系統(tǒng)、及顯示控制系統(tǒng)等組成。在各個(gè)硬件正確工作的前提下,通過(guò)單片機(jī)用軟件程序的方式控制整個(gè)系統(tǒng)有條不紊的工作,從而達(dá)到預(yù)期的設(shè)計(jì)目的。2.1單片機(jī)最小系統(tǒng)2.1.1單片機(jī)概述單片機(jī)是一種集成的電路芯片塊將各種微處理器和

12、具有隨機(jī)存取數(shù)據(jù)能力的數(shù)據(jù)存儲(chǔ)器,以及各種電路集成到一塊單片機(jī)上,構(gòu)成一個(gè)最小然而很完善的計(jì)算機(jī)系統(tǒng)。這些電路能在軟件的控制下準(zhǔn)確快速的完成程序設(shè)計(jì)者事先規(guī)定的任務(wù)。總的而言單片機(jī)的特點(diǎn)可以歸納為以下幾個(gè)方面:集成度高、存儲(chǔ)容量大、外部擴(kuò)展能力強(qiáng)、控制功能強(qiáng)、低電壓、低功耗、性能價(jià)格比高、可靠性高這幾個(gè)方面。單片機(jī)按內(nèi)部數(shù)據(jù)通道的寬度,可分為4位單片機(jī)、8位單片機(jī)、16位單片機(jī)以及32位單片機(jī)。它們被應(yīng)用在不同領(lǐng)域里,8位單片機(jī)由于功能強(qiáng)大,被廣泛的應(yīng)用在工業(yè)控制、智能接口、儀表儀器等各個(gè)領(lǐng)域。8位單片機(jī)在中、小規(guī)模應(yīng)用場(chǎng)合仍占主流地位,代表了單片機(jī)的主要發(fā)展趨勢(shì),在應(yīng)用單片機(jī)領(lǐng)域發(fā)揮越來(lái)越大

13、的作用。隨著網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)和通訊技術(shù)等現(xiàn)代高科技產(chǎn)品不斷進(jìn)入家庭,單片機(jī)中的32位系列將是未來(lái)單片機(jī)發(fā)展的主要方向。縱觀單片機(jī)的發(fā)展過(guò)程,可以預(yù)示單片機(jī)的發(fā)展趨勢(shì):1.微型單片化2. 低功耗CMOS3、與多品種共存4、可靠性和應(yīng)用水平越來(lái)越高2.1.2單片機(jī)引腳介紹在本設(shè)計(jì)中所使用的單片機(jī)型號(hào)為STC89C52,該單片機(jī)是一種具有8K可編程并具有可擦除功能Flash存儲(chǔ)器,并具有低功耗和功能強(qiáng)大的微控制器芯片。STC公司生產(chǎn)的51系列單片機(jī)中主要具有以下標(biāo)準(zhǔn)功能: 4k、8k、16k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/

14、計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,STC89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。其引腳圖,如圖2-1所示圖2-1 STC89C52引腳圖由上圖可以,此型號(hào)的單片機(jī)繼承了傳統(tǒng)的80C51一切功能和引腳外觀,它一共有40個(gè)引腳,引腳又分為四類,其中有四個(gè)電源引腳,用來(lái)接入單片機(jī)的工作電源,工作電源又分主電源、備用電源和編程電源;還有兩個(gè)時(shí)鐘引腳XTAL1、XTA

15、L2;還有由P0口、P1口、P2口、P3口的所有引腳構(gòu)成的單片機(jī)的輸入/輸出(IO)引腳;最后一種是控制引腳,控制引腳有四條,部分引腳具有復(fù)位功能。綜上所述,單片機(jī)的引腳特點(diǎn)是:1.單片機(jī)多功能,少引腳,使得引腳復(fù)用現(xiàn)象較多。2.單片機(jī)具有四種總線形式:P0和P2組成的16位地址地址總線,P0分時(shí)復(fù)用為8位數(shù)據(jù)總線;ALE、PSEN、RST、EA和P3口的INT0、INT1、T0、T1、WR、RD以及P1口的T2、T2EX組成控制總線;而P3口的RXD、TXD組成串行通信總線。在單片機(jī)最小系統(tǒng)中,若使單片機(jī)能夠正常工作,時(shí)鐘電路和復(fù)位電路是必不可少的,因此在設(shè)計(jì)硬件電路時(shí)對(duì)系統(tǒng)的時(shí)鐘電路和復(fù)位

16、電路進(jìn)行合理設(shè)計(jì)也是非常重要的。2.1.3時(shí)鐘電路單片機(jī)時(shí)鐘內(nèi)部有一個(gè)高增益反向放大器,用于構(gòu)成時(shí)鐘震蕩電路,XTAL1為該放大器的輸入端,XTAL2為放大器的輸出端,但要形成時(shí)鐘還需附加其他的電路;因此可以說(shuō)時(shí)鐘電路是單片機(jī)工作必要條件,時(shí)鐘方式主要有內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式兩種。(1) 內(nèi)部時(shí)鐘方式利用單片機(jī)內(nèi)部的高增益反相放大器,在XTAL1和XTAL2引腳上外接定時(shí)元件,內(nèi)部振蕩電路便產(chǎn)生自激振蕩。定時(shí)元件一般采用石英晶體和電容組成的并聯(lián)諧振回路。晶體可在1.212MHz之間任選,電容可在530pF之間選擇,電容C1和C2的大小可起頻率微調(diào)的作用,電容大小要和晶體的容性負(fù)載阻抗相匹配

17、,否則不易起振。(2) 外部時(shí)鐘方式外部時(shí)鐘方式常用于多機(jī)系統(tǒng),以便各個(gè)單片機(jī)能夠同步工作。對(duì)外部振蕩信號(hào)無(wú)特殊要求,但需保證脈沖寬度不小于20ns,且頻率應(yīng)低于單片機(jī)所支持的最高頻率。由此在設(shè)計(jì)本系統(tǒng)的時(shí)鐘電路時(shí),我選擇了內(nèi)部時(shí)鐘方式,將單片機(jī)的XTAL1和XTAL2分別接12M Hz晶振,并選用兩片33pf瓷片電容一端接晶振一端接地的方式起頻率微調(diào)的作用,時(shí)鐘電路設(shè)計(jì)如圖2-2所示圖2-2時(shí)鐘電路圖2.1.4復(fù)位電路單片機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,使CPU和系統(tǒng)中的其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作。MCS-51單片機(jī)有一個(gè)復(fù)位引腳RST,采用施密特觸發(fā)輸入,對(duì)于CHMO

18、S單片機(jī),RST引腳的內(nèi)部有一個(gè)低拉電路。當(dāng)振蕩器起振后,只要該引腳上出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí)即可確保使器件復(fù)位。復(fù)位完成后,如果RST端繼續(xù)保持高電平,單片機(jī)就一直處于復(fù)位狀態(tài),只有RST端恢復(fù)低電平后,單片機(jī)才能進(jìn)入其他工作狀態(tài)。RST端的外部復(fù)位電路有兩種復(fù)位操作形式:上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位。(1)上電自動(dòng)復(fù)位電路對(duì)于HMOS型單片機(jī),只要在RST復(fù)位端接一個(gè)電容至VCC和一個(gè)電阻至VSS(地),就能實(shí)現(xiàn)上電自動(dòng)復(fù)位。在加電瞬間,電容通過(guò)電阻充電,就在RST端出現(xiàn)一定寬度的高電平,只要高電平時(shí)間足夠長(zhǎng),就可以使單片機(jī)有效復(fù)位。RST端在加電時(shí)應(yīng)保持的高電平時(shí)間包括VCC的上升時(shí)

19、間和振蕩器起振的時(shí)間。VCC上升時(shí)間約為10ms,振蕩器起振時(shí)間和頻率有關(guān)。10MHz時(shí)約為1ms.1MHz時(shí)約為10ms,所以一般為了可靠的復(fù)位,RST在上電時(shí)應(yīng)保持20ms以上的高電平。當(dāng)振蕩頻率為12MHz時(shí),典型值為C=10Uf,R=8.2K。(2)按鍵手動(dòng)復(fù)位按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。按鍵電平復(fù)位是通過(guò)使復(fù)位端經(jīng)電阻與VCC接通而實(shí)現(xiàn)的;按鍵脈沖復(fù)位則是利用RC微分電路產(chǎn)生正脈沖來(lái)實(shí)現(xiàn)的??紤]到本系統(tǒng)設(shè)計(jì)并不是很復(fù)雜,而且系統(tǒng)工作環(huán)境良好,并沒(méi)有較多的干擾,因此單片機(jī)在工作的過(guò)程中死機(jī)或程序執(zhí)行出錯(cuò)的可能性幾乎不存在,即使程序出錯(cuò),需要單片機(jī)進(jìn)行復(fù)位,斷電對(duì)系統(tǒng)運(yùn)行和其他

20、外圍設(shè)施沒(méi)有影響,則可以使單片機(jī)斷電自動(dòng)復(fù)位,綜合這些在本設(shè)計(jì)的電路中采用單片機(jī)上電自動(dòng)復(fù)位電路,選用極性電容正極接電源,RST端接極性電容下極板,同時(shí)RST與一個(gè)8.2k電阻相連,復(fù)位電路如下圖2-3所示圖2-3復(fù)位電路圖結(jié)合單片機(jī)的特性和上述對(duì)時(shí)鐘電路和復(fù)位電路的設(shè)計(jì)過(guò)程,在本課題研究中,單片機(jī)作為系統(tǒng)的主控芯片,要完成A/D轉(zhuǎn)換控制信號(hào),數(shù)據(jù)處理,以及顯示模塊等功能,最后確定本系統(tǒng)中單片機(jī)最小系統(tǒng)如下圖2-4所示:圖2-4 單片機(jī)最小系統(tǒng)2.2數(shù)據(jù)采集電路在我們所測(cè)控的信號(hào)中均是連續(xù)變化的物理量,而要對(duì)這些信號(hào)進(jìn)行處理,則需要將其轉(zhuǎn)換為數(shù)字量,A/D轉(zhuǎn)換器就是為了將連續(xù)變化的模擬量轉(zhuǎn)換成

21、計(jì)算機(jī)能接受的數(shù)字量。按模擬量轉(zhuǎn)換成數(shù)字量的原理可以分為3種:雙積分式、逐次逼近式及并行式A/D轉(zhuǎn)換器。而該系統(tǒng)選用的是ADC0809,下面就具體的介紹一下ADC0809的工作原理。2.2.1 ADC0809的介紹ADC0809是八通道的八位逐次逼近式A/D轉(zhuǎn)換器,由單一的5V電源供電,片內(nèi)帶有鎖存功能的8選1的模擬開(kāi)關(guān),由C、B、A的編碼來(lái)決定所選的模擬通道,轉(zhuǎn)換時(shí)間為100us,轉(zhuǎn)換誤差為1/2LSB;其引腳圖見(jiàn)圖2-5所示,引腳特性如下所示:IN7IN0 :八個(gè)通道的模擬輸入量。ADDA、ADDB、ADDC:模擬通道地址線。當(dāng)CBA=000時(shí),IN0輸入,當(dāng)CBA=111時(shí),IN7輸入。

22、ALE:地址鎖存信號(hào)。START:轉(zhuǎn)換啟動(dòng)信號(hào),高電平有效。D7D0:數(shù)據(jù)輸出線。三態(tài)輸出,D7是最高位,D0是最低位。OE:輸出允許信號(hào),高電平有效。CLK:時(shí)鐘信號(hào),最高頻率為 640KHZ。EOC:轉(zhuǎn)換結(jié)束狀態(tài)信號(hào)。上升沿后高電平有效。圖2-5 ADC0809的引腳圖2.2.2 ADC0809工作過(guò)程ADC0809的工作過(guò)程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中,此地址經(jīng)譯碼選通8路模擬輸入之一到比較器;START上升沿將逐次逼近寄存器復(fù)位,下降沿啟動(dòng) AD轉(zhuǎn)換,之后EOC輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行,直到AD轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示AD轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)

23、已存入鎖存器,這個(gè)信號(hào)可用作中斷申請(qǐng),當(dāng)OE輸入高電平時(shí),輸出三態(tài)門打開(kāi),轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。 ADC0809對(duì)輸入模擬量要求:信號(hào)單極性,電壓范圍是05V,若信號(hào)太小,必須進(jìn)行放大;輸入的模擬量在轉(zhuǎn)換過(guò)程中應(yīng)該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。ALE為地址鎖存允許輸入線,高電平有效,當(dāng)ALE線為高電平時(shí),地址鎖存與譯碼器將A,B,C三條地址線的地址信號(hào)進(jìn)行鎖存,經(jīng)譯碼后被選中的通道的模擬量進(jìn)轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,A,B和C為地址輸入線,用于選通IN0IN7上的一路模擬量輸入,通道選擇表如下表2-1所示。表2-1 通道選擇表CBA選擇的通道000IN0001I

24、N1010IN2011IN3100IN4101IN5110IN6111IN7ST為轉(zhuǎn)換啟動(dòng)信號(hào),當(dāng)ST上跳沿時(shí),所有內(nèi)部寄存器清零;下跳沿時(shí),開(kāi)始進(jìn)行A/D轉(zhuǎn)換;在轉(zhuǎn)換期間,ST應(yīng)保持低電平,EOC為轉(zhuǎn)換結(jié)束信號(hào);當(dāng) EOC為高電平時(shí),表明轉(zhuǎn)換結(jié)束;否則,表明正在進(jìn)行A/D轉(zhuǎn)換,OE為輸出允許信號(hào),用于控制三條輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù),OE1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE0,輸出數(shù)據(jù)線呈高阻狀態(tài),D7D0為數(shù)字量輸出線,VREF(),VREF()為參考電壓輸入;CLK為時(shí)鐘輸入信號(hào)線,因ADC0809的內(nèi)部沒(méi)有時(shí)鐘電路,所需時(shí)鐘信號(hào)必須由外界提供,通常使用頻率為500KHZ,在本設(shè)計(jì)中

25、未采用分頻器,而是通過(guò)軟件來(lái)提供時(shí)鐘信號(hào)。結(jié)合ADC0809使用方法的基礎(chǔ)上,對(duì)A/D轉(zhuǎn)換器硬件電路設(shè)計(jì)如圖2-6所示:圖2-6 ADC0809硬件接線圖從圖2-6可以看出本設(shè)計(jì)的A/D轉(zhuǎn)換電路主要分為兩部分,其一為單片機(jī)控制ADC0809工作,其二就是ADC0809輸入端與產(chǎn)生模擬信號(hào)電路連接。本部分的電路設(shè)計(jì)最大限度的利用了單片機(jī)I/O口和內(nèi)部資源。2.3顯示電路簡(jiǎn)單的講,LED數(shù)碼顯示器就是由發(fā)光二極管組成的,其內(nèi)部結(jié)構(gòu)如圖2-8(a)所示,LED數(shù)碼顯示器有兩種連接方式:(1)共陰極接法:把發(fā)光二極管的陰極連在一起構(gòu)成公共陰極,使用時(shí)公共陰極接地。每個(gè)發(fā)光二極管的陽(yáng)極與輸入端相連。如圖

26、2-8(b)所示(2)共陽(yáng)極接法。把發(fā)光二極管的陽(yáng)極連在一起構(gòu)成公共陽(yáng)極,使用時(shí)公共陽(yáng)極接+5V,每個(gè)發(fā)光二極管的陰極通過(guò)電阻與輸入端相連。如圖2-8(c)所示圖2-7 數(shù)碼管內(nèi)部原理圖為此本系統(tǒng)顯示部分選用的是4位一體共陰極數(shù)碼管和相應(yīng)的外圍電路來(lái)實(shí)現(xiàn)。而此類四位一體數(shù)碼管也可以分為共陽(yáng)極與共陰極兩種,共陽(yáng)極就是把所有LED的陽(yáng)極連接到共同接點(diǎn)com,如圖2-8中,而每個(gè)LED的陰極分別為a、b、c、d、e、f、g及dp(小數(shù)點(diǎn));共陰極則是把所有LED的陰極連接到共同接點(diǎn)com,而每個(gè)LED的陽(yáng)極分別為a、b、c、d、e、f、g及dp(小數(shù)點(diǎn)),而共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管的管腳對(duì)應(yīng)斷碼是

27、相同的。對(duì)于這次設(shè)計(jì)的系統(tǒng)所用的四位一體共陰極數(shù)碼管作如下說(shuō)明:在仿真圖中所使用的四位一體共陰極數(shù)碼管很容易識(shí)別其各個(gè)引腳,但是在實(shí)際實(shí)物面前如何準(zhǔn)確的識(shí)別各個(gè)引腳也是需要了解的知識(shí)。在實(shí)際實(shí)物面前可通過(guò)圖2-8的方法來(lái)區(qū)別各個(gè)引腳,首先正向面對(duì)數(shù)碼管,以數(shù)碼管左上角為第一管腳,按照順時(shí)針順序排列,則左下角為第12管腳,對(duì)應(yīng)的管腳序號(hào)可作如下解釋,第1,4,5和7管腳為該數(shù)碼管從左往右各個(gè)數(shù)碼管的位選端,則第2,6,9,11,12,3,8,10管腳對(duì)應(yīng)的段選端分別為a,b,c,d,e,f,g和dp,值得注意的是四個(gè)數(shù)碼管的相同段選端內(nèi)部是連在一起的。圖2-8 數(shù)碼管引腳圖在本設(shè)計(jì)中只用到一個(gè)四

28、位一體共陰極數(shù)碼管作為主要顯示LED,顯示電路顯示模塊需要實(shí)時(shí)顯示當(dāng)前的通道數(shù)和當(dāng)前測(cè)得的電壓值, LED顯示器的顯示控制方式按驅(qū)動(dòng)方式可分成靜態(tài)顯示方式和動(dòng)態(tài)顯示方式兩種,對(duì)于多位LED顯示器,通常都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,本設(shè)計(jì)亦是采用動(dòng)態(tài)顯示的方式進(jìn)行掃描顯示,第一位顯示通道數(shù),后三位顯示測(cè)得的電壓值,具體是從左到右顯示范圍在0到5v電壓,硬件連接方式如圖2-9所示:圖2-9顯示電路圖2.4 按鍵電路及總體硬件電路的確定通過(guò)前文對(duì)單片機(jī)最小系統(tǒng)硬件電路、數(shù)據(jù)采集電路和系統(tǒng)顯示電路的設(shè)計(jì)完成,接下來(lái)就是對(duì)按鍵通道選擇電路進(jìn)行設(shè)計(jì),此次設(shè)計(jì)用到的按鍵共兩個(gè),分別命名為K1和K2,K1按

29、鍵一段接單片機(jī)P2.5口另一端接地,按鍵K2一端接單片機(jī)P2.7口另一端接地,由于此電路較為簡(jiǎn)單,電路原理圖可參見(jiàn)總體硬件原理圖2-10所示。自此系統(tǒng)總體電路就全部設(shè)計(jì)完成,系統(tǒng)總體硬件電路設(shè)計(jì)見(jiàn)圖2-10所示:圖2-10 總體硬件電路圖3 數(shù)據(jù)采集顯示系統(tǒng)的軟件設(shè)計(jì)軟件的設(shè)計(jì)的最終目的就是要寫出滿足要求的程序,但在編寫程序前必須理清自己的思路,使用程序流程圖可以事半功倍;因此,此次的軟件設(shè)計(jì)首先應(yīng)繪制軟件流程圖,程序流程圖是人們對(duì)解決問(wèn)題的方法、思路或算法的一種描述。流程圖主要有以下優(yōu)點(diǎn):1.采用簡(jiǎn)單規(guī)范的符號(hào),畫法簡(jiǎn)單;2.結(jié)構(gòu)清晰,邏輯性強(qiáng);3.便于描述,容易理解;軟件流程圖可以簡(jiǎn)單名了

30、的展現(xiàn)自己的編程思想。然后必須明確自己要實(shí)現(xiàn)的目標(biāo),根據(jù)要求編寫相應(yīng)的子程序,只有做到思路清晰才能又快又好的編寫出相應(yīng)的程序。3.1 系統(tǒng)主程序設(shè)計(jì)在剛上電時(shí),系統(tǒng)默認(rèn)為只顯示當(dāng)前通道的電壓值狀態(tài)。每當(dāng)按下K1鍵后則通道數(shù)加一并進(jìn)行一次測(cè)量后顯示在四位數(shù)碼管上,當(dāng)通道數(shù)到達(dá)第八路時(shí),下一次按鍵將自動(dòng)回到第一通道。若按下K2鍵時(shí)將啟動(dòng)循環(huán)顯示各路測(cè)量結(jié)果,每個(gè)通道的數(shù)據(jù)顯示時(shí)間可由軟件調(diào)整,主程序在調(diào)用顯示子程序和轉(zhuǎn)換子程序之間循環(huán),主程序流程圖如圖3-1所示: 開(kāi)始 顯示子程序 A/D轉(zhuǎn)換子程序 初始化圖3-1主程序流程圖對(duì)于主函數(shù)C語(yǔ)言編程函數(shù)如下所示:void main()unsigned

31、 char I; /設(shè)置變量ixun1=0; /初始化為手動(dòng)通道選擇ch=0; /初始化通道數(shù)while(1) /無(wú)窮循環(huán) display(); /調(diào)用顯示子函數(shù)keyscan(); /調(diào)用按鍵子函數(shù)if(xun1=1) /檢測(cè)是否為自動(dòng)循環(huán) ch+;if(ch=8)ch=0;for(i=5;i>0;i-) /自動(dòng)循環(huán)時(shí)延時(shí)每路顯示時(shí)間 keyscan(); /調(diào)用按鍵子函數(shù)AD(); /調(diào)用A/D轉(zhuǎn)換子函數(shù) AD(); /調(diào)用A/D轉(zhuǎn)換子函數(shù)對(duì)于主函數(shù)中須有如下說(shuō)明,當(dāng)檢測(cè)為自動(dòng)循環(huán)顯示各通道測(cè)量值時(shí)用了for語(yǔ)句來(lái)延時(shí)各路顯示的時(shí)間,但在這里我加上了按鍵檢測(cè)子函數(shù)調(diào)用,原因是當(dāng)不加此

32、語(yǔ)句時(shí)會(huì)出現(xiàn)以下bug,當(dāng)函數(shù)正在執(zhí)行if語(yǔ)句時(shí),有按鍵被按下后但不能及時(shí)檢測(cè)出來(lái),從而使按鍵不準(zhǔn)照成失真現(xiàn)象,在此加上此條語(yǔ)句既可以完美解決此問(wèn)題,可以讓程序在手動(dòng)循環(huán)和自動(dòng)循環(huán)之間來(lái)回切換自如。3.2顯示子程序設(shè)計(jì)顯示子程序的功能就是在四位數(shù)碼管上顯示當(dāng)前通道測(cè)量的電壓值,并采用動(dòng)態(tài)掃描法完成數(shù)碼管的數(shù)值顯示。通過(guò)ADC0809測(cè)量的數(shù)據(jù)通過(guò)硬件電路傳人P1口,由程序?qū)?shù)據(jù)由從P1傳遞到P0口,進(jìn)而通過(guò)P2的第四位控制哪個(gè)數(shù)碼管顯示。在采用動(dòng)態(tài)掃描顯示方式時(shí),要使得LED顯示的比較均勻,又有足夠的亮度,需要設(shè)置適當(dāng)?shù)膾呙桀l率,一般可以采用間隔10ms對(duì)LED進(jìn)行動(dòng)態(tài)掃描一次,每一位LED的

33、顯示時(shí)間為2ms。在本設(shè)計(jì)中,為了簡(jiǎn)化硬件設(shè)計(jì),主要采用軟件定時(shí)的方式,通過(guò)軟件延時(shí)程序來(lái)實(shí)現(xiàn)2ms的延時(shí)。為此對(duì)顯示子函數(shù)的程序設(shè)計(jì)如下所示:void display()char code table = /共陰段碼 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, /07 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71; /8FP0 = 0; P2 = 0xfe; P0 = tablech; delay(2);/通道號(hào)碼P0 = 0; P2 = 0xfd; P0 = tablenum / 100 +

34、 128; delay(2);/百位加上小數(shù)點(diǎn)P0 = 0; P2 = 0xfb; P0 = tablenum % 100 / 10; delay(2);/十位P0 = 0; P2 = 0xf7; P0 = tablenum % 10; delay(2);/個(gè)位P0 = 0; /關(guān)閉顯示器在顯示子函數(shù)中可以看出,我在設(shè)計(jì)的過(guò)程中雖用的是動(dòng)態(tài)顯示掃描過(guò)程,由先送位碼讓哪個(gè)數(shù)碼管亮,在送段碼讓改數(shù)碼管顯示什么數(shù)字,亮2ms后關(guān)閉數(shù)碼管,即起到消影作用,再進(jìn)行下輪顯示,整個(gè)過(guò)程并沒(méi)有應(yīng)用鎖存器,主要原因分析如下:選用的是共陰極四位一體數(shù)碼管,當(dāng)斷碼送高電平,位碼送低電平時(shí)對(duì)應(yīng)的LED數(shù)碼管即發(fā)光,由

35、于段碼由P0口送給,且P0口有上拉電阻的作用故具有驅(qū)動(dòng)LED發(fā)光的能力,因此通過(guò)這種編程是非常合理的。3.3 按鍵子程序設(shè)計(jì)由于按鍵的硬件設(shè)計(jì)采用的是獨(dú)立按鍵的形式,因此在程序設(shè)計(jì)時(shí)只需要分出兩個(gè)單片機(jī)引腳進(jìn)行控制,按鍵子函數(shù)主要可以分為兩部分,第一部分是在循環(huán)標(biāo)志變量xun1=0時(shí),即是此時(shí)是手動(dòng)循環(huán)選擇通道數(shù),此時(shí)按下k1按鍵,則通道數(shù)變量ch自加1,若ch大于等于8時(shí)即變?yōu)?;當(dāng)xun1=1時(shí),此時(shí)按下k1鍵不起作用,此時(shí)通道選擇切換為自動(dòng)循環(huán)狀態(tài),若此時(shí)檢測(cè)到按鍵k2被按下,則xun1變?yōu)?,停止自動(dòng)循環(huán)狀態(tài),切換到手動(dòng)選擇通道狀態(tài),若再次檢測(cè)到k2鍵被按下時(shí)則再次進(jìn)入自動(dòng)循環(huán)選擇通道

36、的狀態(tài),需要注意的是在每次檢測(cè)按鍵的時(shí)候都要進(jìn)行消抖動(dòng)處理和等待按鍵釋放的處理。按鍵子函數(shù)如下所示:void keyscan() if(xun1=0&dan=0) /若處在手動(dòng)循環(huán)檢測(cè)到k1鍵按下 delay(2); /延時(shí)兩毫秒 消抖動(dòng) if(dan=0) /檢測(cè)到k1確實(shí)被按下 ch+; /通道數(shù)加1if(ch=8) /若通道數(shù)到達(dá)8則取0ch=0;while(!dan); /等待按鍵釋放 if(xun=0) /檢測(cè)到按鍵k2被按下delay(2); /延時(shí)兩毫秒消抖動(dòng)if(xun=0) /檢測(cè)到按鍵k2確實(shí)被按下xun1+; /xun1自加1if(xun1>=2) /若xu

37、n1大于等于2則取0xun1=0;while(!xun); /等待按鍵釋放 3.4 A/D轉(zhuǎn)換子程序設(shè)計(jì)A/D轉(zhuǎn)換是本系統(tǒng)設(shè)計(jì)的核心部分,在已經(jīng)設(shè)計(jì)好的硬件電路中能否編寫出高效率執(zhí)行程序是本設(shè)計(jì)取得成功的關(guān)鍵。由于在本系統(tǒng)中讀取數(shù)模轉(zhuǎn)換器數(shù)值并將其顯示出來(lái)是單片機(jī)執(zhí)行程序的主要任務(wù),因此在A/D轉(zhuǎn)換器的轉(zhuǎn)換過(guò)程中可以調(diào)用顯示函數(shù),一方面可以讓顯示數(shù)碼管顯示上一次采集到的電壓繼續(xù)顯示,另一方面通過(guò)執(zhí)行顯示子函數(shù)可以為P3.7口送去時(shí)鐘頻率,為轉(zhuǎn)換器提供時(shí)鐘頻率,中只需要不斷的A/D轉(zhuǎn)換子程序流程圖,如圖3-2所示:開(kāi)始選擇轉(zhuǎn)換通道啟動(dòng)一次轉(zhuǎn)換A/D轉(zhuǎn)換結(jié)束EOC=1?)否 取數(shù)據(jù)(OE=1)結(jié)束

38、圖3-2 A/D轉(zhuǎn)換子程序流程圖由A/D轉(zhuǎn)換子程序流程圖可以將AD轉(zhuǎn)換子函數(shù)程序編寫如下:void AD() P3 = ch+0XF8 ; /送給ADC0809 ALE = 1; _nop_(); ALE = 0; /地址鎖存 STA = 1;_nop_(); _nop_(); STA = 0; /開(kāi)始轉(zhuǎn)換,稍候,才可讀EOC display(); /顯示,既做延時(shí),又輸出CLK while(EOC = 0) display(); /等待轉(zhuǎn)換結(jié)束 OE=1; /允許單片機(jī)P1口讀取數(shù)據(jù) num = P1; /取出轉(zhuǎn)換結(jié)果 num = num * 100 /51; /比例變換:255 ->

39、 500對(duì)AD轉(zhuǎn)換子程序可做如下說(shuō)明:此AD轉(zhuǎn)換子函數(shù)編寫很簡(jiǎn)練,在滿足數(shù)據(jù)轉(zhuǎn)換的同時(shí)解決了硬件電路沒(méi)有分頻器件的問(wèn)題,通過(guò)在等待轉(zhuǎn)換結(jié)束的同時(shí),調(diào)用延時(shí)子函數(shù),而延時(shí)子函數(shù)中對(duì)轉(zhuǎn)換器的clock引腳不斷通過(guò)軟件方式取非,從而通過(guò)此種方法為轉(zhuǎn)換器提供時(shí)鐘頻率,這在AD轉(zhuǎn)換器的使用上是一大創(chuàng)新。在程序的最后通過(guò)對(duì)數(shù)據(jù)的轉(zhuǎn)換使輸出的數(shù)據(jù)與電壓值相吻合,達(dá)到數(shù)據(jù)處理的要求。4 仿真與制作4.1 系統(tǒng)的仿真Proteus是世界上著名的仿真軟件,從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,尤其是在編譯方面,完美支持Keil等多種編譯器。在本系統(tǒng)的設(shè)計(jì)過(guò)程中,所有的電路設(shè)計(jì)和程序調(diào)試均是在prote

40、us中進(jìn)行。具體說(shuō)來(lái)就是在Proteus中繪制單片機(jī)最小系統(tǒng),A/D轉(zhuǎn)換電路,按鍵電路以及數(shù)據(jù)顯示電路等模塊,并通過(guò)合理的連接方式將各個(gè)模塊有機(jī)地聯(lián)系在一起,構(gòu)成系統(tǒng)總體電路圖,通過(guò)對(duì)硬件電路進(jìn)行合理分析后在keil軟件中應(yīng)用C語(yǔ)言編程、編譯生成hex文件,在將hex文件導(dǎo)入到仿真電路的單片機(jī)中進(jìn)行仿真,通過(guò)觀察程序執(zhí)行情況對(duì)程序修改,通過(guò)反復(fù)不斷的調(diào)試編寫出高效率的程序代碼,完成設(shè)計(jì)目的。4.1.1 系統(tǒng)原理圖的繪制電路原理圖的設(shè)計(jì)與繪制是整個(gè)系統(tǒng)設(shè)計(jì)的基礎(chǔ),任何高質(zhì)量的程序代碼都需要與之相適應(yīng)的硬件電路為載體才能發(fā)揮出其功能,而應(yīng)用電路原理圖的設(shè)計(jì)與繪制的流程主要包括設(shè)置電路圖紙、放置元器

41、件、調(diào)整元器件的布局、放置導(dǎo)線等步驟。在本次系統(tǒng)設(shè)計(jì)中主要利用Proteus軟件進(jìn)行系統(tǒng)電路圖的設(shè)計(jì)、繪制以及仿真,下面將著重講述系統(tǒng)硬件電路的繪制過(guò)程。打開(kāi)Proteus軟件,在原理圖編輯窗口繪制電路圖。在該界面環(huán)境下,有預(yù)覽窗口和元件列表區(qū),編輯窗口主要用于放置元器件,進(jìn)行連線,繪制硬件電路圖;而預(yù)覽窗口可以顯示全部原理圖,在左側(cè)工具箱中,有供使用的工具。首先要建立設(shè)計(jì)文件,選擇合適的模板,并保存在預(yù)先建立好的文件夾中。選擇圖紙,由于本次設(shè)計(jì)并不是很復(fù)雜,所以選用的是A4圖紙,然后就開(kāi)始在A4圖紙中進(jìn)行硬件電路圖的繪制了。利用軟件的搜索功能在元件庫(kù)中找到所需要的各個(gè)元件,并放置到圖紙中的合

42、適位置,并分別設(shè)置好各個(gè)元器件的參數(shù),再設(shè)置好各個(gè)元器件的參數(shù),最后將各個(gè)元器件連接起來(lái),這樣電路原理圖就初步繪制完成了。最后是對(duì)所繪制的電路原理圖進(jìn)行檢查,如有錯(cuò)誤就要作進(jìn)一步的調(diào)整與修改,以保證原理圖準(zhǔn)確無(wú)誤,并在繪制原理圖結(jié)束后,保存電路圖文件根據(jù)設(shè)計(jì)任務(wù)書(shū)的要求,本系統(tǒng)電路原理圖主要包含數(shù)單片機(jī)最小系統(tǒng)電路、數(shù)據(jù)采集轉(zhuǎn)換電路,數(shù)據(jù)顯示電路和按鍵電路四個(gè)部分,下面分這四個(gè)部分對(duì)原理圖的繪制進(jìn)行說(shuō)明。(一)單片機(jī)最小系統(tǒng)電路由于Proteus中對(duì)單片機(jī)元件有對(duì)應(yīng)的仿真模型,所以單片機(jī)的電源(VCC和GND)、時(shí)鐘電路以及復(fù)位電路可以繪制出也可以不用繪制,但值得注意的是在單片機(jī)的P0口一定要

43、接上拉電阻,由于本系統(tǒng)設(shè)計(jì)并不是很復(fù)雜且為了設(shè)計(jì)電路的嚴(yán)謹(jǐn)性,因此本系統(tǒng)中將單片機(jī)最小系統(tǒng)所需要的硬件條件全部繪制出來(lái),其詳細(xì)硬件圖可參見(jiàn)第2章圖2-4。(二)數(shù)據(jù)采集轉(zhuǎn)換電路 本部分電路主要以ADC0809為核心進(jìn)行展開(kāi),通過(guò)ADC0809將采集到的模擬電壓量轉(zhuǎn)換成數(shù)字電壓量,而本部分電路就是要完成將模擬電壓送人AD轉(zhuǎn)換器,通過(guò)AD轉(zhuǎn)換器轉(zhuǎn)換后在將數(shù)字電壓送人單片機(jī)中的任務(wù)。ADC0809是一個(gè)有8路輸入的AD轉(zhuǎn)換器,可以根據(jù)需要來(lái)選擇使用的輸入通道個(gè)數(shù),用ABC三個(gè)端口可以控制通道的選擇,這里因?yàn)樾枰獙?duì)八路數(shù)據(jù)進(jìn)行采集轉(zhuǎn)換,所以,這里需要使用ADC0809所有的輸入通道,為了簡(jiǎn)化模型將通道

44、0到7分為兩組,將0、2、4、6通道的輸入口與電壓源RV1連接,其它幾路則與電壓源RV2連接。通道選擇端控制端ABC分別用單片機(jī)的P3.0,P3.1和P3.2三個(gè)端口來(lái)控制,轉(zhuǎn)換啟動(dòng)信號(hào)START 和地址所存信號(hào)ALE都是用單片機(jī)的 P3.6和P3.3口連接來(lái)控制,允許輸出信號(hào)OE由P3.4口連接控制,轉(zhuǎn)換結(jié)束狀態(tài)信號(hào)EOC與單片機(jī)P3.5口連接控制,時(shí)鐘信號(hào)CLK與單片機(jī)P3.7口控制,轉(zhuǎn)換結(jié)果輸出端(OUT0到OUT7)通過(guò)總線分別與單片機(jī)的P1.7到P1.0口連接。具體連接方式見(jiàn)第2章圖2-6所示。(三)數(shù)據(jù)顯示電路本部分電路主要由STC89C52單片機(jī)和一個(gè)四位一體的共陰極數(shù)碼管構(gòu)成。

45、其中,第一個(gè)數(shù)碼管用來(lái)顯示當(dāng)前數(shù)據(jù)采集來(lái)自于哪路通道,后三個(gè)數(shù)碼管用來(lái)顯示采集到的電壓值。單片機(jī)的P2.0,P2.1,P2.2,P2.3口分別用來(lái)控制四位一體數(shù)碼管的位選,用P0口來(lái)送數(shù)碼管的段選,具體連接方式可見(jiàn)第2章圖2-9所示:(四)按鍵電路本系統(tǒng)的按鍵電路較為簡(jiǎn)單,知識(shí)將兩個(gè)按鍵分別與單片機(jī)P2.5和P2.7口相連接,具體電路圖見(jiàn)第2章圖2-10 所示在繪制完成了所有模塊的電路圖后,系統(tǒng)的總體電路圖也就繪制出來(lái)了,總體歸納起來(lái)總體電路圖由單片機(jī)模塊,數(shù)據(jù)轉(zhuǎn)換模塊,按鍵模塊和數(shù)據(jù)顯示模塊組成,系統(tǒng)總體原理圖見(jiàn)第2章圖2-10所示:4.1.2 程序調(diào)試編寫完程序后就進(jìn)入程序調(diào)試階段,調(diào)試程

46、序就是驗(yàn)證程序的正確性。程序調(diào)試主要有兩種方法,即靜態(tài)調(diào)試和動(dòng)態(tài)調(diào)試。程序的靜態(tài)調(diào)試就是在程序編寫完以后,由人工“代替”“模擬”計(jì)算機(jī),對(duì)程序進(jìn)行仔細(xì)檢查,主要檢查程序中的語(yǔ)法規(guī)則和邏輯結(jié)構(gòu)的正確性。程序的動(dòng)態(tài)調(diào)試就是實(shí)際上機(jī)調(diào)試,它貫穿在編譯、連接和運(yùn)行的整個(gè)過(guò)程中。根據(jù)程序編譯、連接和運(yùn)行時(shí)計(jì)算機(jī)給出的錯(cuò)誤信息進(jìn)行程序調(diào)試,這是程序調(diào)試中最常用的方法,也是最初步的動(dòng)態(tài)調(diào)試。在此基礎(chǔ)上,通過(guò)“分段隔離”、“設(shè)置斷點(diǎn)”、“跟蹤打印”進(jìn)行程序的調(diào)試。在本次設(shè)計(jì)中我同時(shí)兼顧程序的靜態(tài)調(diào)試和程序的動(dòng)態(tài)調(diào)試。應(yīng)用單片機(jī)C語(yǔ)言編程并在keil編譯軟件中寫程序和編譯程序,生產(chǎn)hex文件后導(dǎo)入proteus

47、中進(jìn)行仿真,通過(guò)這種結(jié)合方式進(jìn)行程序調(diào)試。具體調(diào)試過(guò)程如下:首先在keil軟件中對(duì)程序要實(shí)現(xiàn)的某個(gè)功能進(jìn)行編寫,完成后進(jìn)行編譯,通過(guò)編譯解決語(yǔ)法錯(cuò)誤以及一些邏輯錯(cuò)誤,在沒(méi)有編譯問(wèn)題后生產(chǎn)相應(yīng)的hex文件,再在Proteus將生成的hex文件導(dǎo)入到單片機(jī)中,在進(jìn)行實(shí)時(shí)仿真,通過(guò)仿真現(xiàn)象找出所需要實(shí)現(xiàn)功能能夠?qū)崿F(xiàn)多少,并通過(guò)運(yùn)行中的現(xiàn)象找出錯(cuò)誤所在位置,這里面的錯(cuò)誤一般都是邏輯錯(cuò)誤,只有通過(guò)仿真現(xiàn)象來(lái)找錯(cuò)誤才是高效的,在調(diào)試的過(guò)程中需要對(duì)實(shí)驗(yàn)現(xiàn)象仔細(xì)分析后才能得到錯(cuò)誤所在,有些錯(cuò)誤是很隱秘的需要長(zhǎng)時(shí)間的不懈努力才能夠解決。在實(shí)現(xiàn)當(dāng)前所要實(shí)現(xiàn)的功能后進(jìn)而在程序中編寫函數(shù)在滿足上面調(diào)試成功功能的同時(shí)加

48、上將要實(shí)現(xiàn)的功能語(yǔ)句,這就需要對(duì)單片機(jī)C語(yǔ)言有較熟練的掌握,在通過(guò)上述調(diào)試過(guò)程將調(diào)試出高效率的優(yōu)質(zhì)程序。程序調(diào)試是軟件設(shè)計(jì)中最為耗時(shí)的過(guò)程,在很多情況下,為了尋找一個(gè)錯(cuò)誤需要好幾天的時(shí)間。程序調(diào)試需要耐心細(xì)致的工作作風(fēng),本系統(tǒng)正是由于結(jié)合Proteus仿真軟件才能夠快速高效的結(jié)束程序調(diào)試過(guò)程。4.1.3顯示結(jié)果及誤差分析程序調(diào)試固然枯燥,但完成任務(wù)的喜悅更能給人以動(dòng)力不斷去努力解決問(wèn)題,在經(jīng)過(guò)悉心程序編寫和調(diào)試后,終于實(shí)現(xiàn)了任務(wù)書(shū)中的各個(gè)功能,系統(tǒng)總體仿真圖見(jiàn)圖4-1所示:圖4-1 系統(tǒng)總體仿真圖完成系統(tǒng)設(shè)計(jì)后就是對(duì)系統(tǒng)性能進(jìn)行評(píng)估了,在本設(shè)計(jì)中主要考察指標(biāo)就是數(shù)字電壓表的測(cè)量精度,因此對(duì)自己

49、設(shè)計(jì)的系統(tǒng)進(jìn)行誤差分析是必不可少的,可以通過(guò)仿真測(cè)量任一路(以IN0路為例)結(jié)果可與“標(biāo)準(zhǔn)”數(shù)字電壓表對(duì)比測(cè)試表,如下表4-1所示:表4-1 測(cè)量電壓與“標(biāo)準(zhǔn)”數(shù)字電壓表對(duì)比測(cè)試表標(biāo)準(zhǔn)電壓值/V簡(jiǎn)易電壓表測(cè)量值/V絕對(duì)誤差/V0.000.000.000.550.540.011.001.000.001.551.540.012.002.000.002.502.500.003.103.090.013.503.500.004.054.050.005.005.000.00可以從上表知,在測(cè)量的過(guò)程中絕對(duì)誤差均在-0.01v電壓,滿足任務(wù)書(shū)中要求的測(cè)量誤差在±0.02v范圍內(nèi),因此本設(shè)計(jì)滿足設(shè)計(jì)

50、要求。為什么會(huì)有0.01v的誤差呢?這是因?yàn)閱纹瑱C(jī)STC89C52為8位處理器,當(dāng)輸入電壓為5.00V時(shí),ADC0809輸出數(shù)據(jù)值為255(FFH),因此單片機(jī)最高的數(shù)值分辨率為0.0196V(5/255)。這就決定了電壓表的最高分辨率只能到0.0196V,從上表可看到,測(cè)試電壓也就在0.01V的幅度變化。這個(gè)問(wèn)題可以通過(guò)校正ADC0809的基準(zhǔn)電壓來(lái)解決。該系統(tǒng)設(shè)計(jì)時(shí)直接用5V的供電電源作為電壓,所以電壓可能有偏差,若當(dāng)要測(cè)量大于5V的電壓時(shí),可在輸入口使用分壓電阻,而程序中只要將計(jì)算程序的除數(shù)進(jìn)行調(diào)整就可以了。4.2 實(shí)物制作通過(guò)不懈努力自己設(shè)計(jì)的系統(tǒng)終于在proteus中調(diào)試并仿真成功,

51、接下來(lái)就是實(shí)物制作了,雖然系統(tǒng)并不是很復(fù)雜,但之前并沒(méi)有獨(dú)立制作過(guò)什么東西,所以這對(duì)我來(lái)說(shuō)還是有難度的,同時(shí)我也要通過(guò)利用這次難得的機(jī)會(huì)來(lái)鍛煉自己。我始終相信只有自己肯學(xué)肯鉆研,才一定會(huì)有所收獲,也許結(jié)果很重要,但最重要的是自己親自動(dòng)手嘗試的過(guò)程。4.2.1 材料準(zhǔn)備系統(tǒng)硬件電路設(shè)計(jì)完成,程序調(diào)試成功,整個(gè)系統(tǒng)在Proteus中仿真也達(dá)到了設(shè)計(jì)的要求,接下來(lái)就是實(shí)物制作了。考慮到實(shí)物制作與應(yīng)用電腦軟件仿真是有很大差異的,所以在制作實(shí)物的過(guò)程中盡量購(gòu)買與仿真中應(yīng)用相同的元器件,使用到的元器件見(jiàn)下表5-1所示:表5-1 元器件列表序號(hào)名稱型號(hào)/大小數(shù)量用途1單片機(jī)STC89C52RC1主控芯片2極

52、數(shù)碼管四位一體共陰極1顯示3按鍵四腳2通道選擇4排阻1k歐姆1P0口上拉電阻5轉(zhuǎn)換器ADC08091轉(zhuǎn)換芯片6極性電容10uf1上電復(fù)位電路7電阻8.2k歐姆1上電復(fù)位電路8晶振12M Hz1產(chǎn)生時(shí)鐘頻率9瓷片電容30pf2晶振電路10電位器10k歐姆2分壓1140p單排座2插電位器和數(shù)碼管1240p IC座1插單片機(jī)1328p IC座1插轉(zhuǎn)換器14USB母口1電源接口15洞洞板9X15厘米1系統(tǒng)板16跳線若干連線17焊錫若干焊接18USB數(shù)據(jù)線雙公頭1電源線19電烙鐵1焊接20細(xì)銅線若干跳線4.2.2 制作過(guò)程在準(zhǔn)備好必需的元器件后,首先就是要對(duì)一些大的元器件進(jìn)行合理的布局,在本設(shè)計(jì)中主要就

53、是對(duì)單片機(jī)、ADC0809、四位一體共陰極數(shù)碼等大的元器件布局,主要元器件具有合理的布局才能使其他小的元器件布局更合理,為后面的工序提供方便。我的布局如下,考慮到ADC0809將要向單片機(jī)的P1口傳輸數(shù)據(jù),因此將單片機(jī)適當(dāng)往板子的右方挪動(dòng),ADC0809在其左側(cè),四位一體共陰極數(shù)碼管在單片機(jī)的右上方,兩個(gè)按鍵在單片機(jī)右下方適當(dāng)位置,兩個(gè)高精度電位器在ADC0809左上方,電源USB在系統(tǒng)板的左下方,這是整個(gè)系統(tǒng)的元件布局。布局完成后就是對(duì)照原理圖進(jìn)行焊接了,對(duì)各個(gè)元器件進(jìn)行焊接也是非常重要的步驟,此步驟將直接影響實(shí)物的制作結(jié)果。因此我在焊接的過(guò)程中很嚴(yán)格地遵循了以下幾個(gè)原則:1、對(duì)電源和地線進(jìn)

54、行合理布局:整個(gè)系統(tǒng)的運(yùn)行都需要電源的參與,對(duì)電源布局合理可以使整個(gè)系統(tǒng)電路簡(jiǎn)潔合理且可以提高電路的工作效率,比如有些面包板在其內(nèi)部有貫穿整塊板子的銅箔,應(yīng)該利用其特性,將這些銅箔作為系統(tǒng)地線和電源線;如若所用的面包板沒(méi)有這樣的銅箔,就要對(duì)地線、電源線的布局有個(gè)合理恰當(dāng)?shù)囊?guī)劃。2、要善于利用各種元器件被剪下無(wú)用的引腳;面包板的焊接需要很多的跨接線、跳線等,因此在焊接完元器件后不要急于剪斷元器件多余的引腳,此時(shí)我們可以利用這些不用的長(zhǎng)引腳跨接到其旁邊待連接的元器件引腳上進(jìn)行焊接,即滿足了系統(tǒng)的要求又節(jié)約了材料,從而使有百利而無(wú)一害。因此我們可以把剪斷的元器件引腳收集起來(lái)作為跳線用材料。3、善于設(shè)置跳線:多設(shè)置跳線不僅可以簡(jiǎn)化連線,而且要美觀得多(見(jiàn)下圖橫臥的跳線)。4、善于利用排針:排針有許多靈活的用法,例如兩塊板子相連,就可以將排座和排針按照一定方式插在兩塊板子上,這樣排針既可以將兩塊板子連接起來(lái)又可以在兩塊板子間架起電氣連接的橋梁。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論