基于單片機(jī)的多路數(shù)字電壓表設(shè)計(jì)_本科畢業(yè)論文1.doc_第1頁
基于單片機(jī)的多路數(shù)字電壓表設(shè)計(jì)_本科畢業(yè)論文1.doc_第2頁
基于單片機(jī)的多路數(shù)字電壓表設(shè)計(jì)_本科畢業(yè)論文1.doc_第3頁
基于單片機(jī)的多路數(shù)字電壓表設(shè)計(jì)_本科畢業(yè)論文1.doc_第4頁
基于單片機(jī)的多路數(shù)字電壓表設(shè)計(jì)_本科畢業(yè)論文1.doc_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于單片機(jī)的多路數(shù)字電壓表設(shè)計(jì)學(xué)號(hào)學(xué)校代碼密級(jí)分類號(hào)本科畢業(yè)論文基于單片機(jī)的多路數(shù)字電壓表設(shè)計(jì)題 目(中、英文)design of multi-channel digital voltage meter based on mcu作者姓名電氣工程及其自動(dòng)化專業(yè)名稱工 學(xué)學(xué)科門類成績(jī)?cè)u(píng)定提交論文日期指導(dǎo)教師 摘 要近十幾年來,單片機(jī)技術(shù)的發(fā)展極為迅速,廣泛應(yīng)用于生產(chǎn)、生活的各個(gè)領(lǐng)域。從測(cè)量領(lǐng)域來看,一部分電子測(cè)量?jī)x表在高速化、精確化方面有了明顯的進(jìn)步。電子測(cè)量?jī)x表精確度的高低,直接影響著企業(yè)的經(jīng)濟(jì)效益。在我國(guó)現(xiàn)有經(jīng)濟(jì)水平下,使用單片機(jī)開發(fā)的電子測(cè)量?jī)x表,測(cè)量精確而且性價(jià)比極高,不僅適用于電壓、電流、電阻等的測(cè)量,還廣泛適用于溫度、濕度等測(cè)量場(chǎng)合。本課題設(shè)計(jì)的多路數(shù)字電壓表具有性能穩(wěn)定、攜帶方便、顯示清晰直觀、讀數(shù)準(zhǔn)確,大大地減少了因人為因素所造成的測(cè)量誤差事件,大大的提高了測(cè)量的精確度。關(guān)鍵詞:數(shù)字電壓表;at89c51;adc0808abstractin recent years,the technology of scm has got a jolly rapid development and been widely used in every field of our life and production.judging from the measure realm,some electronical measuring instruments have remarkable improvments in its speed and accuracy.the accuracy of electronical measuring instruments directly affect enterprises economic effectiveness.in the current economic level of our country,electronical measuring instruments developed by scm have high accuracy as well as high cost performance,not only can be used to measure voltage、current and resistance,but also be widely used in measuring temperature、humidity or some other measurement situations.this topic design of multi-channel digital voltage meter has the advantages of stable performance, easy to carry, shows the clear and intuitive, accurate readings, greatly reducing the measurement error events caused by human factors, greatly improves the precision of measurement. key words: digital voltage;at89c51;adc0808目 錄1 引言12 多路數(shù)字電壓表的總體設(shè)計(jì)12.1 設(shè)計(jì)內(nèi)容12.2 設(shè)計(jì)方案23 硬件設(shè)計(jì)3.1 單片機(jī)控制模塊33.2 振蕩電路模塊53.3 a/d轉(zhuǎn)換模塊53.4 顯示模塊93.5 按鍵模塊104 軟件設(shè)計(jì)114.1 c語言與匯編語言114.2 主流程圖設(shè)計(jì)114.3 a/d轉(zhuǎn)換子程序125 軟件調(diào)試135.1 仿真電路圖145.2 顯示結(jié)果及誤差分析145.21 顯示結(jié)果145.22 誤差分析166. 結(jié)論17元件清單17參考文獻(xiàn)18謝 辭18程序附錄19基于單片機(jī)的多路數(shù)字電壓表設(shè)計(jì)咸陽師范學(xué)院2013屆本科畢業(yè)畢業(yè)論文(設(shè)計(jì)) 1 引言 單片機(jī)是一種集成電路芯片,采用超大規(guī)模技術(shù)把具有數(shù)據(jù)處理能力(如算術(shù)運(yùn)算,邏輯運(yùn)算、數(shù)據(jù)傳送、中斷處理)的微處理器(cpu)。隨著單片機(jī)技術(shù)的飛速發(fā)展,各種單片機(jī)蜂擁而至,單片機(jī)技術(shù)已成為一個(gè)國(guó)家現(xiàn)代化科技水平的重要標(biāo)志。單片機(jī)可單獨(dú)地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機(jī)最大的特征。單片機(jī)控制系統(tǒng)能夠取代以前利用復(fù)雜電子線路或數(shù)字電路構(gòu)成的控制系統(tǒng),可以軟件控制來實(shí)現(xiàn),并能夠?qū)崿F(xiàn)智能化?,F(xiàn)在單片機(jī)控制范疇無所不在,例如通信產(chǎn)品、家用電器、智能儀器儀表、過程控制和專用控制裝置等等,單片機(jī)的應(yīng)用領(lǐng)域越來越廣泛。本次課程設(shè)計(jì)的課題是“基于單片機(jī)的多路數(shù)字電壓表的設(shè)計(jì)”。主要考核我們對(duì)單片機(jī)技術(shù),編程能力等方面的情況。觀察獨(dú)立分析、設(shè)計(jì)單片機(jī)的能力,以及實(shí)際編程技能。 傳統(tǒng)的指針式電壓表功能單一、精度低,不能滿足數(shù)字化時(shí)代的需求,采用單片機(jī)的數(shù)字電壓表,由精度高、抗干擾能力強(qiáng),可擴(kuò)展性強(qiáng)、集成方便。通過單片機(jī),采用數(shù)字化測(cè)量技術(shù),把連續(xù)的模擬量轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表,使測(cè)得的結(jié)果更為精準(zhǔn)。 2 多路數(shù)字電壓表的總體設(shè)計(jì)2.1 設(shè)計(jì)內(nèi)容 設(shè)計(jì)和調(diào)試一種基于單片機(jī)的多路數(shù)字電壓表。要求具有如下功能: (1) 輸入電壓為4路; (2) 電壓測(cè)量范圍為0-5v; (3) 測(cè)量的最小分標(biāo)率為0.0196v,測(cè)量誤差為0.02v; (4) 能通過顯示器顯示當(dāng)前通道和通道電壓值,有效位數(shù)為小數(shù)點(diǎn)后兩位;2.2 設(shè)計(jì)方案本課題設(shè)計(jì)的數(shù)字電壓表的實(shí)現(xiàn)是基于單片機(jī)原理。首先,在proteus軟件環(huán)境中進(jìn)行硬件電路圖的設(shè)計(jì),然后在keil軟件環(huán)境中進(jìn)行系統(tǒng)的軟件編程,并進(jìn)行程序源文件的編譯和調(diào)試,最后生成.hex文件。此.hex文件是硬件電路運(yùn)行實(shí)現(xiàn)的源代碼來源。把.hex文件加載到at80c51單片機(jī)芯片,然后在proteus軟件環(huán)境中運(yùn)行硬件電路,數(shù)字多用表就可以正常顯示了。本課題設(shè)計(jì)的數(shù)字多用表主要由: 時(shí)鐘模塊、a/d轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊、按鍵模塊顯示模塊,這四大模塊組成。總體結(jié)構(gòu)如圖1所示,先用a/d轉(zhuǎn)換器對(duì)各路電壓值進(jìn)行采樣,得到相應(yīng)的數(shù)字量,再按數(shù)字量與模擬量成正比關(guān)系運(yùn)算得到對(duì)應(yīng)的模擬電壓值,然后通過單片機(jī)進(jìn)行數(shù)據(jù)處理,最后通過顯示器顯示出被測(cè)電壓值,另外可以通過按鍵選擇通道。顯示電路 at89c51 單片機(jī) 時(shí)鐘電路 輸入電路轉(zhuǎn)換電路 復(fù)位電路 按鍵電路 圖1 基于單片機(jī)的多路數(shù)字電壓表電路的原總體結(jié)構(gòu)圖根據(jù)設(shè)計(jì)要求,采用的方案如下:硬件部分實(shí)現(xiàn)數(shù)據(jù)的采集、編譯,a/d轉(zhuǎn)換以及顯示的功能,包括單片機(jī)電 路模塊、a/d轉(zhuǎn)換器模塊、顯示模塊、按鍵電路模塊;軟件部分實(shí)現(xiàn)控制芯片,使各部件能夠正常的運(yùn)行,同時(shí)實(shí)現(xiàn)仿真的功能,主要設(shè)計(jì)思想是利用軟件進(jìn)行仿真,通過仿真得到實(shí)驗(yàn)的結(jié)果。多路數(shù)字式電壓表應(yīng)用系統(tǒng)主要利用a/d轉(zhuǎn)換器,先用a/d轉(zhuǎn)換器對(duì)各路電壓值進(jìn)行采樣,得到相應(yīng)的數(shù)字量,再按數(shù)字量與模擬量成正比關(guān)系運(yùn)算得到對(duì)應(yīng)的模擬電壓值,然后把模擬值通過顯示器顯示出來。通過按鍵選擇循環(huán)顯示,也可單路顯示,單路顯示可通過按鍵選擇顯示通道數(shù)。 3 硬件設(shè)計(jì)3.1 單片機(jī)控制模塊單片機(jī)是集成在一個(gè)芯片上的計(jì)算機(jī),又稱單片微控制。單片機(jī)是計(jì)算機(jī)、自動(dòng)控制和大規(guī)模集成電路技術(shù)相結(jié)合的產(chǎn)物,融計(jì)算機(jī)結(jié)構(gòu)和控制功能于一體。它盡管他的大部分功能集成在一塊小芯片上,但是它具有一個(gè)完整計(jì)算機(jī)所需要的大部分部件:具有數(shù)據(jù)處理能力的cpu、只讀存儲(chǔ)器rom、隨機(jī)存儲(chǔ)器ram、多種輸入輸出電路(i/o口)、定時(shí)器/計(jì)時(shí)器等功能。隨著技術(shù)的發(fā)展,單片機(jī)片內(nèi)集成的功能越來越強(qiáng)大,并朝著soc(system on chip)方向發(fā)展。本次論文設(shè)計(jì)單片機(jī)采用高性能的at89c51系列芯片,at89c51是8位單片機(jī)中一個(gè)最基本,最典型的芯片型號(hào)。它主要由以下幾部分組成:中央處理器;內(nèi)部數(shù)據(jù)存儲(chǔ)器; 內(nèi)部程序存儲(chǔ)器;并行i/o口;定時(shí)/計(jì)數(shù)器;中斷控制電路;振蕩器和時(shí)鐘電路。這些部件通過內(nèi)部總線連接起來,構(gòu)成了一個(gè)完整的微型計(jì)算機(jī)。如圖2所示: 圖2 at89c51單片機(jī)引腳p0口:p0口地址為80h,位地址為80h87h。各位口線是有完全相同但又相互獨(dú)立的邏輯電路。p0口的邏輯電路主要由d觸發(fā)器構(gòu)成的鎖存器,fet(場(chǎng)效應(yīng)管)構(gòu)成的輸出驅(qū)動(dòng)電路,用于引腳數(shù)據(jù)輸入緩沖的緩沖器,一個(gè)多路轉(zhuǎn)接開關(guān)(mux)構(gòu)成。8位口線的鎖存器位構(gòu)成一個(gè)口的鎖存器,所謂的口地址就是鎖存器的地址。鎖存器的功能是使數(shù)據(jù)在口中保留一段時(shí)間。mux的一個(gè)輸入來自鎖存器,另一個(gè)輸入為“數(shù)據(jù)/地址” 。輸入轉(zhuǎn)接由控制信號(hào)控制,設(shè)置多路轉(zhuǎn)接開關(guān)的原因是p0口既可以作為通用i/o口進(jìn)行數(shù)據(jù)輸入/輸出,又可以作為單片機(jī)系統(tǒng)的地址/數(shù)據(jù)線使用。設(shè)置多路轉(zhuǎn)接開關(guān)可以方便的實(shí)現(xiàn)轉(zhuǎn)換。 p1口:p1是一個(gè)帶有內(nèi)部上拉電阻的8位雙向i/o口。p1口地址為90h,位地址為90h97h。p1口只能作為通用數(shù)據(jù)i/o口使用所以在電路結(jié)構(gòu)上與p0口有些不同。第一,因?yàn)樗荒軅魉蛿?shù)據(jù),所以不再需要多路轉(zhuǎn)接開關(guān)(mux);第二,驅(qū)動(dòng)電路中有上拉電阻。其上拉電阻并不是真正的電阻,而是一個(gè)能起到上拉電阻作用的有兩個(gè)場(chǎng)效應(yīng)管構(gòu)成的電路。p2口:p2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向i/o口,p2口地址為a0h,位地址為a0ha7h。p2口既可作為系統(tǒng)高位地址線使用,也可作為通用i/o口使用,所以p2口的電路邏輯與p0口類似,也有一個(gè)多路轉(zhuǎn)接開關(guān)。但多路轉(zhuǎn)接開關(guān)的一個(gè)輸入端不再是地址/數(shù)據(jù),而是單一的地址,因?yàn)樵跇?gòu)造系統(tǒng)總線時(shí),p2口只能作為高位地址而不能作為數(shù)據(jù)線使用。當(dāng)p2口作為高位地址線使用時(shí),多了開關(guān)倒向地址端;而當(dāng)通用i/o口使用時(shí),多路開關(guān)倒向鎖存器的q端。p3口:p3口是一組帶有內(nèi)部上拉電阻的8位雙向i/o口。p3口的地址為b0h,位地址為bohb7h。雖然p3口可以作為通用i/o口使用,但在實(shí)際應(yīng)用中我們更多的使用的是他的第二功能信號(hào)。rst:當(dāng)輸入的復(fù)位信號(hào)延續(xù)2個(gè)機(jī)器周期以上高電平時(shí)即為有效,用于完成單片機(jī)的復(fù)位操作。ale(地址鎖存控制信號(hào)):在系統(tǒng)擴(kuò)展時(shí),ale用于控制把p0口輸出的低8位地址送入鎖存器鎖存起來,以實(shí)現(xiàn)低位地址和數(shù)據(jù)的分時(shí)傳送。此外由于ale是以1/6晶振頻率的固定頻率輸出的正脈沖,因此,可作為外部時(shí)鐘或外部定時(shí)脈沖使用。/psen(外部程序存儲(chǔ)器讀選通信號(hào)):程序存儲(chǔ)允許輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)at89c51由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩個(gè)psen有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,這兩次有效的psen信號(hào)不出現(xiàn)。/ea(訪問程序存儲(chǔ)器控制信號(hào)):當(dāng)ea信號(hào)為低電平時(shí),對(duì)rom的讀操作是針對(duì)外部程序存儲(chǔ)器的;當(dāng)ea信號(hào)為高電平時(shí),對(duì)rom的操作是從內(nèi)部程序存儲(chǔ)器開始,并可延續(xù)至外部程序存儲(chǔ)器。xtal1和xtal2(外接晶體引線端):當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),xtal1和xtal2用于外接石英晶體諧振器和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接入外部時(shí)鐘脈沖信號(hào)。3.2 振蕩電路模塊at89c51芯片中的高增益反相放大器。其輸入端為引腳xtal1,輸出端為引腳xtal2。通過兩個(gè)引腳在芯片外并接石英晶體振蕩器和兩只電容器,c1和c2一般取30pf左右.石英晶體為一感性元件,與電容構(gòu)成振蕩回路,為片內(nèi)放大器提供正反饋和振蕩所需的相移條件,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。本文中c1和c2各取1nf,晶體的振蕩頻率取12mhz,電路圖如下圖所示: 3.3 a/d轉(zhuǎn)換模塊 本設(shè)計(jì)采用的a/d轉(zhuǎn)換器為8位的adc0808轉(zhuǎn)換器。adc0808是8位逐次逼近式,可實(shí)現(xiàn)8路模擬信號(hào)的分時(shí)采用,片內(nèi)有8路模擬選通開關(guān),以及相應(yīng)的選通地址鎖存與譯碼電路。地址鎖存與譯碼電路完成對(duì)a、b、c3個(gè)地址位進(jìn)行所存和譯碼,其譯碼輸出用于通道選擇。8位a/d轉(zhuǎn)換器是逐漸逼近式,有控制與時(shí)序電路、逐次逼近寄存器、樹狀開關(guān)以及256r電阻階梯網(wǎng)絡(luò)等組成。輸出鎖存器用于存放和輸出轉(zhuǎn)換得到的數(shù)字量。其主要性能如下:(1)分辨率為8位(2)精度小于1/2lsb(3)單一+5v供電,模擬輸入電壓范圍為05v(4)具有鎖存控制的8路輸入模擬開關(guān)(5)可鎖存三態(tài)輸出,輸出與ttl電平兼容(6)功耗為15mw(7)不必進(jìn)行零點(diǎn)和滿度調(diào)整(8)轉(zhuǎn)換速度取決于芯片外接的時(shí)鐘頻率(9)時(shí)鐘頻率范圍101280khz,典型值為640khz,約為1002) 內(nèi)部結(jié)構(gòu)和外部引腳adc0808的內(nèi)部結(jié)構(gòu)和外部引腳分別如圖3和圖4所示。圖2 adc0808內(nèi)部結(jié)構(gòu)框圖圖3 adc0808外部引腳圖1)in0in78:8位模擬量輸入引腳,通過3根地址譯碼線adda、addb、addc來選通in0in7中的一路。2)d7d0:8位模擬量輸入引腳,為三態(tài)可控輸出,可直接和cpu數(shù)據(jù)線連接。8位排列順序是d7為最高位,d0為最低位。(3)adda、addb、addc:模擬通道選擇地址信號(hào),adda為低位,addc為高位。地址信號(hào)與選中通道對(duì)應(yīng)關(guān)系如圖5所示。地 址選中通道addcaddbadda000011110011001101010101in0in1in2in3in4in5in6in7 圖5 地址信號(hào)與選中通道的關(guān)系(4)vr(+)、vr(-):正、負(fù)參考電壓輸入端,用于提供片內(nèi)dac電阻網(wǎng)絡(luò)的基準(zhǔn)電壓。在單極性輸入時(shí),vr(+)=5v,vr(-)=0v;雙極性輸入時(shí),vr(+)、vr(-)分別接正、負(fù)極性的參考電壓。 (5)ale:地址鎖存允許信號(hào)輸入端,當(dāng)輸入為高電平時(shí),對(duì)地址信號(hào)進(jìn)行鎖存。在使用時(shí),該信號(hào)通常常和start信號(hào)連在一起,以便同時(shí)鎖存通道地址和啟動(dòng)a/d轉(zhuǎn)換。 (6)start:a/d轉(zhuǎn)換啟動(dòng)信號(hào)輸入端,正脈沖有效。加于該端的脈沖的上升沿使逐次逼近寄存器清零,下降沿開始a/d轉(zhuǎn)換。如正在進(jìn)行轉(zhuǎn)換時(shí)又接到新的啟動(dòng)脈沖,則原來的轉(zhuǎn)換進(jìn)程被中止,重新從頭開始轉(zhuǎn)換。(7)eoc:a/d轉(zhuǎn)換結(jié)束信號(hào)輸出引腳,高電平有效。該信號(hào)在a/d轉(zhuǎn)換過程中為低電平,其余時(shí)間為高電平。該信號(hào)可作為被cpu查詢的狀態(tài)信號(hào),也可作為對(duì)cpu的中斷請(qǐng)求信號(hào)。如果需要對(duì)某個(gè)模擬量進(jìn)行不斷采樣、轉(zhuǎn)換的情況下,eoc也可作為啟動(dòng)信號(hào)反饋接到start端,但是要在剛加電時(shí)需由外電路第一次啟動(dòng)。(8)oe:輸出允許控制端,高電平有效,用以打開三態(tài)數(shù)據(jù)輸出鎖存器。在中斷工作方式下,該信號(hào)通常是cpu發(fā)出的中斷請(qǐng)求響應(yīng)信號(hào)。(9):clock:時(shí)鐘信號(hào)輸入端。3)工作時(shí)序與使用說明adc0808的工作時(shí)序如圖6所示。當(dāng)通道選擇地址有效時(shí),ale信號(hào)一出現(xiàn),地址便被鎖存,這時(shí)轉(zhuǎn)換啟動(dòng)信號(hào)緊隨ale之后(或與ale同時(shí))出現(xiàn)。start的上升沿將逐次逼近寄存器sar復(fù)位,在該上升沿之后的2s加8個(gè)時(shí)鐘周期內(nèi)(不定),eoc信號(hào)將變低電平,以指示轉(zhuǎn)換操作正在進(jìn)行中,直到轉(zhuǎn)換結(jié)束后eoc才變成高電平。微處理器收到變?yōu)楦唠娖降膃oc信號(hào)后,便馬上送出oe信號(hào),打開三態(tài)門,讀取轉(zhuǎn)換結(jié)果。圖6 adc0808工作時(shí)序 模擬輸入通道的選擇可以相對(duì)于轉(zhuǎn)換開始操作獨(dú)立地進(jìn)行,不能在轉(zhuǎn)換過程中進(jìn)行,因此往往是把通道選擇和啟動(dòng)轉(zhuǎn)換結(jié)合起來使用。這樣可以用一條寫指令把選擇模擬通道又啟動(dòng)轉(zhuǎn)換。在與微機(jī)接口時(shí),輸入通道的選擇可有兩種方法:一種是通過地址總線選擇,另一種是通過數(shù)據(jù)總線選擇。如果用eoc信號(hào)去產(chǎn)生中斷請(qǐng)求,要特別注意eoc的變低相對(duì)于啟動(dòng)信號(hào)有2s+8個(gè)時(shí)鐘周期的延遲,要設(shè)法使它不要產(chǎn)生虛假的中斷請(qǐng)求。因此,最好利用eoc上升沿產(chǎn)生中斷請(qǐng)求,而不是靠高電平產(chǎn)生中斷請(qǐng)求。3.4 顯示模塊 本設(shè)計(jì)采用1602字符型lcd液晶顯示屏來顯示電壓值,具有體積小、功耗低、界面美觀大方、使用方便等優(yōu)點(diǎn),它具有16個(gè)引腳,如圖7所示: 圖 7 lm016l外部引腳圖 vss:為地電源。 vdd:接5v正電源。 vee: 為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10k的電位器調(diào)整對(duì)比度。 rs:寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。 r/w:為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)rs 和r/w 共 同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)rs 為低電平r/w 為高電平時(shí)可以讀忙信號(hào),當(dāng)rs 為高電平r/w 為低電平時(shí)可以寫入數(shù)據(jù)。 e :端為使能端,當(dāng)e端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。 d0d7:8 位雙向數(shù)據(jù)線。3.5 按鍵模塊k1是一個(gè)按鍵開關(guān),如圖8所示,與單片機(jī)的p1.0相接,用于進(jìn)行通道選擇,當(dāng)按下一次,通道加1,顯示下一通道。 圖8 按鍵處理電路圖4 軟件設(shè)計(jì)4.1 c語言與匯編語言 匯編語言和c語言各有特點(diǎn)。簡(jiǎn)單的說就是匯編語言的本質(zhì)是機(jī)器碼,是直接和單片機(jī)對(duì)話的唯一途徑。優(yōu)點(diǎn)是效率高,缺點(diǎn)是難以駕馭。c語言的邏輯性更強(qiáng),優(yōu)點(diǎn)是只要掌握了語言本身編程就變得簡(jiǎn)單,而且移植性好。缺點(diǎn)就是即使你寫出了程序,完成了功能,但是你對(duì)單片機(jī)本身的了解還是很少。實(shí)際開發(fā)中大多會(huì)使用c語言,匯編語言在較為復(fù)雜的工程面前還是顯得很繁瑣,往往讓人望而卻步。但是匯編語言在學(xué)習(xí)單片機(jī)的過程中卻是一條捷徑,想要真正懂得單片機(jī)的內(nèi)部奧妙,就必須認(rèn)真學(xué)習(xí)匯編語言。因此,我們?cè)趯W(xué)習(xí)單片機(jī)的過程中應(yīng)先通過匯編語言將單片機(jī)硬件資源掌握透徹,在對(duì)硬件了解清楚的基礎(chǔ)之上再學(xué)習(xí)c語言,就能達(dá)到一個(gè)比較好的效果。4.2 主流程圖設(shè)計(jì) 主程序流程圖如圖9所示。首先對(duì)定時(shí)/計(jì)數(shù)器和lcd進(jìn)行初始化,在lcd上顯示信息,然后進(jìn)行循環(huán),在循環(huán)中以此位:調(diào)用a/d轉(zhuǎn)換子程序?qū)?個(gè)通道轉(zhuǎn)換一次,判斷k1鍵是否按下,當(dāng)按下則當(dāng)前通道地址加1,當(dāng)前通道值轉(zhuǎn)換成電壓值,顯示當(dāng)前通道值。 開始 定時(shí)/計(jì)數(shù)器初始化lcd初始化lcd顯示提示信息調(diào)用a/d轉(zhuǎn)換子程序判斷通道鍵是否按下,按下加1當(dāng)前通道數(shù)字量 轉(zhuǎn)換成電壓顯示當(dāng)前通道值 圖 9 主程序流程圖4.3 a/d轉(zhuǎn)換子程序 a/d轉(zhuǎn)換子程序用于對(duì)adc0808的4路輸入模擬電壓進(jìn)行一次a/d轉(zhuǎn)換,并將轉(zhuǎn)換的數(shù)值存入4個(gè)相應(yīng)的存儲(chǔ)單元中,流程圖如圖10所示。a/d子轉(zhuǎn)換程序每隔一定時(shí)間調(diào)用一次。開始啟動(dòng)一次轉(zhuǎn)換否a/d轉(zhuǎn)換結(jié)束eoc=1?) 取數(shù)據(jù)(oe=0)0808地址通道加1地址數(shù)小于8否返回 圖 10 a/d轉(zhuǎn)換子程序流程圖5 軟件調(diào)試軟件調(diào)試的主要任務(wù)是排查錯(cuò)誤,錯(cuò)誤主要包括邏輯和功能錯(cuò)誤,這些錯(cuò)誤有些是顯性的,而有些是隱形的,可以通過仿真開發(fā)系統(tǒng)發(fā)現(xiàn)逐步改正。本系統(tǒng)的調(diào)試主要以軟件為主,其中,系統(tǒng)電路圖的繪制和仿真我采用的是proteus軟件,而程序方面,采用的是c語言,用kiel軟件將程序?qū)懭雴纹瑱C(jī)。5.1 仿真電路圖仿真電路圖如圖11 所示 圖11 仿真電路圖5.2 顯示結(jié)果及誤差分析5.21 顯示結(jié)果 1. 當(dāng)輸入電壓值為0v時(shí),顯示結(jié)果如圖12所示,測(cè)量誤差為0v。 圖12 輸入電壓為0v時(shí),lcd顯示結(jié)果2.當(dāng)輸入電壓值為1.64v時(shí),顯示結(jié)果如圖13所示,測(cè)量誤差為+0.1v。 圖13 輸入電壓為1.64v時(shí),lcd顯示結(jié)果3.當(dāng)輸入電壓值為3.84v時(shí),顯示結(jié)果如圖14所示,測(cè)量誤差為+0.1v。 圖14 輸入電壓為3.84v時(shí),lcd顯示結(jié)果4.當(dāng)輸入電壓值為5v時(shí),顯示結(jié)果如圖15所示,測(cè)量誤差為0v。 圖15 輸入電壓為5v時(shí),lcd顯示結(jié)果5.22 誤差分析 通過以上仿真測(cè)量結(jié)果可得到簡(jiǎn)易數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對(duì)比測(cè)試表,如下表1所示: 標(biāo)準(zhǔn)電壓值/v電壓表測(cè)量值/v絕對(duì)誤差/v 0.00 0.00 0.00 0.50 0.51 0.01 1.12 1.13 0.01 2.18 2.17 0.01 3.00 3.00 0.00 0.25 0.26 0.01 4.00 4.00 0.00 4.36 4.37 0.01 5.00 5.00 0.00 表1 數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對(duì)比測(cè)試表 由于單片機(jī)at89c51為8位處理器,當(dāng)輸入電壓為5.00v時(shí),adc0808輸出數(shù)據(jù)值為255(ffh),因此單片機(jī)最高的數(shù)值分辨率為0.0196v(5/255)。這就決定了電壓表的最高分辨率只能到0.0196v,從上表可看到,測(cè)試電壓一般以0.01v的幅度變化。從上表可以看出,數(shù)字電壓表測(cè)得的值基本上比標(biāo)準(zhǔn)電壓值偏大0-0.01v,這可以通過校正adc0808的基準(zhǔn)電壓來解決。因?yàn)樵撾妷罕碓O(shè)計(jì)時(shí)直接用5v的。6. 結(jié)論經(jīng)過本次為期數(shù)月的畢業(yè)課題設(shè)計(jì),使我真正有機(jī)會(huì)對(duì)大學(xué)期間所學(xué)的專業(yè)知識(shí)進(jìn)行了系統(tǒng)的分析總結(jié),從課題的分析設(shè)計(jì)到最后的硬件電路設(shè)計(jì)和軟件編程設(shè)計(jì)的實(shí)現(xiàn),都是在老師的指導(dǎo)下,逐漸完成的。本課題設(shè)計(jì)了一個(gè)數(shù)字多用表,這種數(shù)字多用表以單片機(jī)80c51作為數(shù)據(jù)處理主控芯片,并以模數(shù)轉(zhuǎn)換芯片adc0808、液晶顯示模塊作為外圍電路,構(gòu)成了整個(gè)的硬件電路。待測(cè)的模擬量首先經(jīng)過a/d轉(zhuǎn)換模塊,轉(zhuǎn)換成為單片機(jī)能夠識(shí)別和處理的數(shù)字信號(hào);然后,單片機(jī)對(duì)此數(shù)字信號(hào)進(jìn)行數(shù)據(jù)處理;最后,測(cè)量結(jié)果通過顯示模塊顯示出來??梢杂脕頊y(cè)量電壓、電流、電阻,而且還可以進(jìn)行功能的擴(kuò)展。由于能力和時(shí)間有限,系統(tǒng)還有一些地方不盡如人意。比如,本系統(tǒng)能直接測(cè)量的電壓范圍為比較小,要想測(cè)量大電壓必須先進(jìn)行分壓處理。因?yàn)閍/d轉(zhuǎn)換器adc0808有8個(gè)輸入端口,所以,理論上講本系統(tǒng)能夠分時(shí)地對(duì)8路信號(hào)進(jìn)行測(cè)量;如果接上濕度傳感器本系統(tǒng)還能象測(cè)量溫度那樣來測(cè)量濕度,而這些工作還有待今后一一地去解決。 元件清單 序號(hào)產(chǎn)品名稱規(guī)格型號(hào)數(shù)量備 注1單片機(jī)at89c5112晶振12mhz13ad轉(zhuǎn)換器adc080814電容1nf35按鈕26rj電阻10 k17排阻510 x 718rj電阻20019lm016l111滑動(dòng)電阻器1k212總線1注:1、電源可用5v開關(guān)電源,也可用usb電源,也可用手機(jī)充電器電源等。 參考文獻(xiàn)1.李廣弟.單片機(jī)基礎(chǔ)(第三版)【m】.北京航空航天大學(xué)出版社,20072.于永,戴佳,常江.51單片機(jī)c語言常用模塊與綜合系統(tǒng)設(shè)計(jì)實(shí)例精講【m】.電子工業(yè)出版社3.侯玉寶.陳忠平,李成群等.基于proteus的51系列單片機(jī)設(shè)計(jì)與仿真【m】.北京:電子工業(yè)出版社,20084.戴佳,戴衛(wèi)恒.51單片機(jī)c語言應(yīng)用程序設(shè)計(jì)【m】.北京:電子工業(yè)出版社,20065.林志琦,郎建軍等. 基于proteus的單片機(jī)可視化硬件仿真【m】. 北京航空航天大學(xué)出版社,20066.耿永剛.單片機(jī)c51應(yīng)用技術(shù)【m】.電子工業(yè)出版社,2011謝 辭本文從擬定題目到定稿,歷時(shí)數(shù)月。在本論文完成之際,首先要向我的指導(dǎo)老師郝海燕老師致以誠(chéng)摯的謝意。在論文的寫作過程中,她給了我許許多多的幫助和關(guān)懷。在郝老師的悉心指導(dǎo)中,我不僅學(xué)到了扎實(shí)的專業(yè)知識(shí),也在怎樣處人處事等方面收益很多;同時(shí)她對(duì)工作的積極熱情、認(rèn)真負(fù)責(zé)、有條不紊、實(shí)事求是的態(tài)度,給我留下了深刻的印象,使我受益非淺。在此我謹(jǐn)向郝海燕老師表示衷心的感謝和深深的敬意。 同時(shí),我要感謝物理與電子工程學(xué)院給我們授課的各位老師,正是由于他們的傳道、授業(yè)、解惑,讓我學(xué)到了專業(yè)知識(shí),并從他們身上學(xué)到了如何求知治學(xué)、如何為人處事。我也要感謝我的母校咸陽師范學(xué)院,是她提供了良好的學(xué)習(xí)環(huán)境和生活環(huán)境,讓我的大學(xué)生活豐富多姿,為我的人生留下精彩的一筆。 另外,我要衷心感謝我的同學(xué)們對(duì)我的幫助和指點(diǎn)。沒有他們的幫助,對(duì)于我來說要想在短短的幾個(gè)月的時(shí)間里完成畢業(yè)論文幾乎是不可能的事情。在畢業(yè)論文的寫作過程中,與他們的探討交流使我受益頗多。同時(shí),他們也給了我很多無私的幫助和支持,在此深表謝意。 程序附錄#include #include #include #define uchar unsigned char#define uint unsigned intsbit rs=p17;sbit rw=p16;sbit en=p15;sbit st=p37;sbit oe=p36;sbit eoc=p13;sbit clk=p14;sbit key1=p10;uchar data chnumber;uchar disbuffer4=0,

溫馨提示

  • 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. 人人文庫(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)論