數(shù)字電壓表的課程設(shè)計報告-3_第1頁
數(shù)字電壓表的課程設(shè)計報告-3_第2頁
數(shù)字電壓表的課程設(shè)計報告-3_第3頁
數(shù)字電壓表的課程設(shè)計報告-3_第4頁
數(shù)字電壓表的課程設(shè)計報告-3_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

數(shù)字式電壓表的設(shè)計PAGEPAGE11TOC\o"1-3"\p""\h\z\u摘要………………………..2第一章硬件介紹…………..41.1AT89C51單片機(jī)的介紹………………….………………..41.2ADC0809芯片的介紹……………………...51.3LED動態(tài)數(shù)碼管的介紹…………………...6第二章系統(tǒng)設(shè)計和理論分析……………..72.1系統(tǒng)的設(shè)計思路…………..72.2系統(tǒng)的設(shè)計目標(biāo)…………...72.3實(shí)現(xiàn)功能…………………...72.4理論分析…………………..72.5程序流程圖………………...7第三章程序設(shè)計與電路……….………….93.1主程序……………….…….93.2AD模數(shù)轉(zhuǎn)換子程序模塊…………….…...93.3BCD碼轉(zhuǎn)換子程序模塊…………………103.4顯示子程序模塊………….113.5延時子程序和字節(jié)數(shù)據(jù)表模塊………….123.6PROTEUS仿真……………………...…...13第四章仿真結(jié)果分析……………………144.1仿真結(jié)果…………………14第五章課程設(shè)計總結(jié)……………………17參考文獻(xiàn)…………………..18摘要本次課程設(shè)計的主要目的,就是通過應(yīng)用8位并行模數(shù)轉(zhuǎn)換器ADC0809采集電壓信號,并進(jìn)行AD轉(zhuǎn)換,轉(zhuǎn)換成數(shù)字信號傳送給51單片機(jī),在單片機(jī)內(nèi)部通過編寫程序進(jìn)行數(shù)據(jù)處理,最后通過單片機(jī)的I/O口控制LED顯示出所采集的電壓大小,量程為0—10伏;另外利用集成運(yùn)放放大10毫伏電壓的大小顯示在LED上,即設(shè)有毫伏檔可測10毫伏以下電壓。關(guān)鍵字:ADC0809AT89C51LED電壓量程AbstractTheaimofthistextistousethe8bitparallelanalogyconverterADC0809collectthevoltagesignal.Andtransfertheanalogysignalintothedigtalsignal.ThethedigtalsignalpassedtotheSingle-chip..ThethedigtalsignaloprratedintheSingle-chipbytheprogramewhichsetbytheprogrammerinadvance.AtlastthroughtheinputandtheoutputportcontroltheLEDlights.Andshowtheresultofthevoltagesignal.Therangeofthevoltagefrom0—10volt.Theusetheampliferamplifythe10milivoltsignal.AndshowtheresultwhichhavebeenamplifiedonthedynamicLEDlights.Whichmeansthatthedigtalvoltmetercanmeasurethesmallvoltagesignal.Keywords:ADC0809AT89C51LightEmittingDioxidetherangeofthevoltmeter第一章硬件介紹1.1AT89C51單片機(jī)的介紹AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),可提供以下標(biāo)準(zhǔn)功能:4K字節(jié)閃存,128字節(jié)內(nèi)部RAM,32個I/O口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89C51可降至0HZ的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位。圖1AT89C51引腳圖引腳功能說明Vcc:電源電壓GND:地P0口:P0口是一組8位漏極開路型雙向I/O口,即地址/數(shù)據(jù)總線復(fù)位口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,此時P0激活內(nèi)部的上拉電阻。P1口:P1是一個帶有內(nèi)部上拉電阻的8位雙向I/O口。P1的輸出緩沖級可驅(qū)動(輸入或輸出)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可做輸入口。因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。P2口:P2是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(輸入或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作為輸入口。因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器獲16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX@RI指令)時,P2口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中R2寄存器的內(nèi)容),在整個訪問期間不改變。P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動(輸入或輸出)4個TTL邏輯門電路。對P3口寫入“1”時,他們被內(nèi)部上拉電阻拉高并可作為輸入口。此時,被外部拉低的P3口將用上拉電阻輸出電流。RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的1/6輸出固定的正脈沖信號,因此它可對輸出時鐘信號或用于定時。要注意的是:當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。閃存編程期時,該引腳還用于輸入編程脈沖。PSEN:程序存儲允許輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩個PSEN有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,這兩次有效的PSEN信號不出現(xiàn)。EA/VPP:外部訪問允許。要使CPU僅訪問外部程序存儲器(地址為0000HFFFFH),EA端必須保持低電平(接地)。需注意的是;如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。1.2ADC0809芯片的介紹 ADC0809模數(shù)轉(zhuǎn)換器,ADC0809是8通道8位CMOS逐次逼近式A/D轉(zhuǎn)換芯片,片內(nèi)有模擬量通道選擇開關(guān)及相應(yīng)的通道鎖存、譯碼電路,A/D轉(zhuǎn)換后的數(shù)據(jù)由三態(tài)鎖存器輸出,由于片內(nèi)沒有時鐘需外接時鐘信號。 圖2ADC0809引腳圖芯片引腳功能說明:IN0~I(xiàn)N7:八路模擬信號輸入端。ADD-A、ADD-B、ADD-C:三位地址碼輸入端。CLOCK:外部時鐘輸入端。CLOCK輸入頻率范圍在10~1280KHz,典型值為640KHz,此時A/D轉(zhuǎn)換時間為100us。51單片機(jī)ALE直接或分頻后可與CLOCK相連。D0~D7:數(shù)字量輸出端。OE:A/D轉(zhuǎn)換結(jié)果輸出允許控制端。當(dāng)OE為高電平時,允許A/D轉(zhuǎn)換結(jié)果從D0~D7端輸出。ALE:地址鎖存允許信號輸入端。八路模擬通道地址由A、B、C輸入,在ALE信號有效時將該八路地址鎖存。START:啟動A/D轉(zhuǎn)換信號輸入端。當(dāng)START端輸入一個正脈沖時,將進(jìn)行A/D轉(zhuǎn)換。EOC:A/D轉(zhuǎn)換結(jié)束信號輸出端。當(dāng)A/D轉(zhuǎn)換結(jié)束后,EOC輸出高電平。Vref(+)、Vref(-):正負(fù)基準(zhǔn)電壓輸入端。基準(zhǔn)正電壓的典型值為+5V。1.3LED動態(tài)數(shù)碼管的介紹本次課程設(shè)計使用LED動態(tài)數(shù)碼管,動態(tài)數(shù)碼顯示電路原理參考下圖3.圖3動態(tài)數(shù)碼管顯示電路本次課程設(shè)計用到80C51MCU模塊(C區(qū)),動態(tài)數(shù)碼顯示模塊(A5區(qū)),電路原理圖如上。第二章系統(tǒng)設(shè)計和理論分析2.1系統(tǒng)的設(shè)計思路利用模擬分壓電路產(chǎn)生電壓值,用ADC0809完成對模擬電路電壓值信號進(jìn)行模擬轉(zhuǎn)換,并將其轉(zhuǎn)換成數(shù)字信號,通過51單片機(jī)的處理在LED數(shù)碼管上顯示出來方便單片機(jī)的操作并可以讀出其電壓值。2.2系統(tǒng)的設(shè)計目標(biāo)本次課程設(shè)計的目標(biāo)是實(shí)現(xiàn)對模擬分壓電路電壓值的采集,并實(shí)現(xiàn)電壓值準(zhǔn)確的即時顯示。通過本次課程設(shè)計,提升自身對單片機(jī)這門課程的認(rèn)識以及加深對單片機(jī)知識的學(xué)習(xí)和芯片的熟悉和了解。2.3實(shí)現(xiàn)功能實(shí)現(xiàn)從0伏到10伏的電壓值的采集,并設(shè)有10毫伏電壓檔。2.4理論分析首先要設(shè)計分壓電路,因?yàn)锳DC0809智能檢測的最大電壓值是5伏,而要設(shè)計的數(shù)字電壓表量程是0—10伏,要測量電壓值,先要認(rèn)識ADC0809,ADC0809是CMOS單片型逐次逼近型A/D轉(zhuǎn)換器,具有8路模擬量輸入通道,有轉(zhuǎn)換起??刂?,模擬輸入電壓范疇0—+5伏,轉(zhuǎn)換時間為100us,設(shè)定電壓為0伏時電路送出的模擬量為0V,此時A/D輸出的數(shù)字量為00H;LED數(shù)碼管顯示為0伏;當(dāng)電壓為10伏時分壓電路送出5伏,A/D輸出的數(shù)字量為0FFH,將此模擬數(shù)字量送入AT89C51芯片中,當(dāng)AT89C51接收到數(shù)據(jù)時,存入內(nèi)存中,接收完畢后,進(jìn)行BCD碼轉(zhuǎn)換,將轉(zhuǎn)換后數(shù)據(jù)送入四顯示的LED數(shù)碼管顯示電路,在數(shù)碼管上顯示出電壓值為10伏,若為0-10伏之間的電壓值,則轉(zhuǎn)換成相應(yīng)的BCD碼輸出到LED中顯示,這就是整個數(shù)字電壓表采集系統(tǒng)的工作思路和原理。2.5程序流程圖主程序流程圖圖4如下:初始化開始調(diào)用AD轉(zhuǎn)換子程序調(diào)用BCD碼轉(zhuǎn)換子程序初始化開始調(diào)用AD轉(zhuǎn)換子程序調(diào)用BCD碼轉(zhuǎn)換子程序調(diào)用顯示子程序A/D轉(zhuǎn)換子程序流程圖圖5如下:啟動BDC碼轉(zhuǎn)換DING啟動BDC碼轉(zhuǎn)換DING開始選擇IN0通道A/D轉(zhuǎn)換結(jié)束EOC=1?否是去數(shù)據(jù)(OE=0)結(jié)束 第三章程序設(shè)計與電路在程序設(shè)計中,我們主要分五個模塊來完成,分別是主程序,AD模數(shù)轉(zhuǎn)換子程序,BCD碼轉(zhuǎn)換子程序,顯示程序和延時子程序這五大塊,下面將分別對每一個模塊的功能進(jìn)行分析3.1主程序各個子程序都是通過這個主程序調(diào)用進(jìn)來,再執(zhí)行各模塊的功能的。在主程序中首先對一些下面要用到的I/0口,數(shù)據(jù)存儲地址等進(jìn)行設(shè)置,接下來在進(jìn)行子程序的調(diào)用,進(jìn)而完成整個程序的功能。 主程序如下:ORG0000H LJMPSTART ORG0100HSTART:CLRA ;對儲存單元清零 MOVR0,#70H MOVR2,#05HL0:MOV@R0,A INCR0 DJNZR2,L0 MOVP0,#0FFH MOVSP,#50H MAIN:LCALLTEST ;調(diào)用轉(zhuǎn)換程序 LCALLTUNBCD ;調(diào)用BCD碼轉(zhuǎn)換程序 LCALLDISPLAY ;調(diào)用顯示程序 AJMPMAIN NOP NOP NOP LJMPSTART3.2AD模數(shù)轉(zhuǎn)換子程序模塊這個模塊主要是利用8位并行模數(shù)轉(zhuǎn)換器AD0809采集電壓信號,然后轉(zhuǎn)換成數(shù)字信號存在相應(yīng)的數(shù)據(jù)貯存地址中。AD模數(shù)轉(zhuǎn)換子程序如下:TEST: CLRP2.0 ;選擇通道為IN0 CLRP2.1 CLRP2.2 CLRP2.3 ;啟動AD轉(zhuǎn)換 SETBP2.3 CLRP2.3 L1:JBP2.4,MOVD ;等待轉(zhuǎn)換結(jié)束 AJMPL1 MOVD:MOVR0,#75H ;讀取AD轉(zhuǎn)換結(jié)果 SETBP2.5 MOVA,P0 MOV@R0,A CLRP2.5 RET3.3BCD碼轉(zhuǎn)換子程序模塊這個模塊的主要功能就是對轉(zhuǎn)換成的數(shù)字信號進(jìn)行處理成LED能顯示的BCD碼,并把處理好的數(shù)據(jù)存放在相應(yīng)的地址存儲器中。 BCD碼轉(zhuǎn)換子程序如下: TUNBCD: MOVR0,#75H ;轉(zhuǎn)換成BCD碼 MOVA,@R0 MOVB,#51 DIVAB MOV73H,A MOVA,B CLRF0 SUBBA,#1AH MOVF0,C MOVA,#10 MULAB MOVB,#51 DIVAB JBF0,L2 ADDA,#5 L2:MOV72H,A MOVA,B CLRF0 SUBBA,#1AH MOVF0,C MOVA,#10 MULAB MOVB,#51 DIVAB JBF0,L3 ADDA,#5 L3: MOV71H,A CLRC MOVA,71H MOVB,#2 MULAB MOVB,#10 DIVAB MOV71H,B MOV70H,A MOVA,72H MOVB,#2 MULAB ADDA,70H MOVB,#10 DIVAB MOV72H,B MOV70H,A MOVA,73H MOVB,#2 MULAB ADDA,70H MOVB,#10 DIVAB MOV74H,A MOV73H,B RET3.4顯示子程序模塊主要功能是把上一個模塊所處理得到的數(shù)據(jù),通過AT89C51單片機(jī)的I/O口輸出到LED上并顯示出來。顯示子程序如下:DISPLAY: MOVDPTR,#TAB ;顯示子程序MOVA,74H MOVC A,@A+DPTR;從高位到低位以此顯示MOV P1,AMOV P3,#0F7HLCALL D1msMOV P1,#00HMOV A,73HMOVC A,@A+DPTRMOV P1,ASETB P1.7MOV P3,#0FBHLCALL D1msMOV P1,#00HMOV A,72HMOVC A,@A+DPTRMOV P1,AMOV P3,#0FDHLCALL D1msMOV P1,#00HMOV A,71HMOVC A,@A+DPTRMOV P1,A MOV P3,#0FEHLCALL D1msMOV P1,#00HRET3.5延時子程序和字節(jié)數(shù)據(jù)表模塊這主要是為了顯示子程序模塊所需要用到的延時模塊,從此調(diào)用可在數(shù)碼管的顯示上輸出的電壓值。 延時子程序如下: D1ms:MOVR6,#249 ;1ms延時DL:NOP NOP DJNZR6,DL RET 共陰極LED數(shù)碼管從0到9的字節(jié)數(shù)據(jù)表如下:TAB:DB3FH,06H,05BH,04FH,66H,6DH,7DH,07H,7FH,6FH END3.6PROTEUS仿真Proteus仿真時單片機(jī)需要加載程序,加載程序?yàn)?HEX文件。本設(shè)計利用KeilμVision2,在新建Keil項(xiàng)目時選擇AT89C51單片機(jī)作為CPU,將源程序?qū)耄凇癘ptionsForTarget”對話窗口中,選中“Output”選項(xiàng)中的“CreateHEXFile”,編譯鏈接后就可以生成.HEX文件。在ProteusISIS中,選中AT89C51并單擊鼠標(biāo)左鍵,對AT89C51進(jìn)行設(shè)置,設(shè)置單片機(jī)時鐘頻率為12MHz,按照正確的文件路徑加載.HEX文件。對單片機(jī)設(shè)置完畢后就可以開始仿真了。仿真過程中如有硬件問題可在ProteusISIS中直接修改,如有軟件問題可在KeilμVision2中直接修改,通過Keil與Proteus的聯(lián)合調(diào)試就可以得到滿意的結(jié)果。利用Proteus實(shí)現(xiàn)了LED動態(tài)數(shù)碼管仿真,說明程序和電路圖都沒有問題。由于Proteus元件庫中仿真芯片ADC0809,在仿真中用和ADC0809功能相同的ADC0808代替。,仿真電路圖圖6如下:第四章仿真結(jié)果分析4.1仿真結(jié)果以下為電壓值不同時的仿真結(jié)果:當(dāng)電壓值為10伏時的仿真結(jié)果圖7如下:電壓值為5.17伏時的仿真結(jié)果圖8如下:當(dāng)電壓值為10毫伏時,用集成運(yùn)放放大一千倍在LED數(shù)碼管上顯示10毫伏仿真結(jié)果圖9如下:結(jié)果分析:由于ADC0809進(jìn)行模數(shù)轉(zhuǎn)換時存在誤差,測量的電壓值范疇時0-10伏電壓值時,最小分辨率為0.0392伏,測量誤差為±0.04伏,所以當(dāng)測量有些電壓值時存在少許誤差。當(dāng)測量電壓值為0-10伏時,把開關(guān)SW2閉合,SW1、SW3斷開,把數(shù)據(jù)送入ADC0809中進(jìn)行模數(shù)轉(zhuǎn)換,再通過AT89C51進(jìn)行數(shù)據(jù)處理,把電壓值顯示在LED數(shù)碼管上;當(dāng)測量10mv電壓值時,把開關(guān)SW1、SW3閉合,SW2斷開,經(jīng)過同樣的數(shù)據(jù)轉(zhuǎn)換和處理,把電壓值顯示在LED數(shù)碼管上,顯示結(jié)果是正確的。第五章課程設(shè)計總結(jié)兩周的單片機(jī)課程設(shè)計結(jié)束了,在此次課程設(shè)計中受益非淺,把之前學(xué)習(xí)的理論知識和實(shí)際操作結(jié)合起來,應(yīng)用在一項(xiàng)實(shí)踐設(shè)計中,能更進(jìn)一步的掌握的所學(xué)的知識。在這兩周的設(shè)計過程中,遇到了很多的問題和困難,在老師和同學(xué)的幫助下,我和搭檔都一步一步的去克服了。在此我衷心的感謝我的老師和同學(xué)。在還沒開始課程設(shè)計時,我已經(jīng)從圖書館找了好多關(guān)于課程設(shè)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論