基于單片機(jī)的數(shù)控恒流源設(shè)計(jì)_第1頁
基于單片機(jī)的數(shù)控恒流源設(shè)計(jì)_第2頁
基于單片機(jī)的數(shù)控恒流源設(shè)計(jì)_第3頁
基于單片機(jī)的數(shù)控恒流源設(shè)計(jì)_第4頁
基于單片機(jī)的數(shù)控恒流源設(shè)計(jì)_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

-.z.本科畢業(yè)論文〔設(shè)計(jì)〕題目〔中文〕基于單片機(jī)的數(shù)控恒流源設(shè)計(jì)〔英文〕DesignofconstantcurrentvoltagesourcebasedonSCM完成日期2016年4月摘要恒流源是一種高精度的電源,具有響應(yīng)速度快,恒流精度高,能長期穩(wěn)定工作,適合各種性質(zhì)負(fù)載等優(yōu)點(diǎn),而具有了越來越廣泛的應(yīng)用。本文主要論述了一種基于51單片機(jī)為控制核心的數(shù)控直流源的設(shè)計(jì)與實(shí)現(xiàn)。本電源具有可預(yù)設(shè)電流,電流步進(jìn),顯示電流的功能。主要由單片機(jī)控制模塊、鍵盤輸入模塊、A/D轉(zhuǎn)換模塊、恒流源模塊、D/A轉(zhuǎn)換模塊和顯示模塊六局部組成。系統(tǒng)由單片機(jī)設(shè)定預(yù)置電流信號(hào),經(jīng)過D/A轉(zhuǎn)換器TLC5615輸出模擬電壓信號(hào),該信號(hào)控制達(dá)林頓管的基極,使其集電極輸出相應(yīng)的電流。再通過A/D轉(zhuǎn)換芯片,實(shí)時(shí)把采樣電路上的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),形成反應(yīng),顯示出實(shí)際的輸出電流。關(guān)鍵詞:壓控恒流源;單片機(jī);數(shù)控電源AbstractConstantcurrentsourceisakindofmonpowersourcewithhighprecisionwithfastresponse,highprecisionofconstantcurrent.Itcanalsoworkstablyforalongtimeandhasvariouspropertiesoftheload.Sonowitisusedmoreandmorewidely.Thispapermainlydiscussesthedesignandimplementationofadigitalconstantcurrentsourcebasedon51MCUasthecontrolcoreofthesystem.Thepowersupplyhasapresetcurrent,currentstep,currentdisplayfunction.Ithas6parts:Controlmodule,keyboardinputmodule,A/Dtransformmodule,D/Atransformmodule,displaymoduleandconstantcurrentsourcemodule.ThecurrentsignalsetbytheSCM.ThenitthroughD/AconverterTLC5615,whichoutputtothevoltageanalogsignalandcontroltheDarlingtontubebase,andoutputthecorrespondingcurrent.FinallythroughtheA/Dconversionchip,real-timesamplingcircuitanalogsignalisconvertedintodigitalquantity,feedbackform,showtheactualoutputcurrent.Keywords:voltagecontrolledconstantcurrentsource;singlechipmicroputer;digitalpowersupply目錄師大學(xué)本科畢業(yè)論文〔設(shè)計(jì)〕誠信聲明…………………=1\*ROMANI師大學(xué)本科畢業(yè)論文〔設(shè)計(jì)〕選題登記表…………………=2\*ROMANII師大學(xué)本科畢業(yè)論文〔設(shè)計(jì)〕指導(dǎo)記錄表…………………Ⅳ中文摘要及關(guān)鍵詞………………Ⅴ英文摘要及關(guān)鍵詞………………Ⅵ1前言…………………11.1研究背景及意義………………11.2國外研究現(xiàn)狀………………12根本原理與方案比照………………22.1總體框圖………………………22.2恒流源方案比照………………32.2.1晶體管恒流源……………32.2.2場效應(yīng)管恒流源…………42.2.3集成電路恒流源…………52.2.4總結(jié)………………………52.3單片機(jī)簡介……………………62.4液晶顯示屏簡介………………82.5數(shù)模轉(zhuǎn)換芯片…………………92.6模數(shù)轉(zhuǎn)換芯片…………………93各模塊實(shí)現(xiàn)………………………103.1鍵盤模塊……………………103.2液晶顯示模塊………………113.3D/A轉(zhuǎn)換模塊…………………123.4A/D轉(zhuǎn)換模塊…………………123.5恒流源模塊…………………133.6電路整體工作原理…………144系統(tǒng)軟件實(shí)現(xiàn)……………………154.1綜述…………154.2鍵盤輸入流程圖……………164.3A/D轉(zhuǎn)換流程圖………………174.4D/A轉(zhuǎn)換流程圖………………184.5液晶顯示流程圖……………195整體測試與分析…………………206總結(jié)與展望………………………22參考文獻(xiàn)……………23附錄A仿真原理圖…………………24附錄B程序局部……………………25-.z.1前言1.1研究背景及意義隨著電子技術(shù)的開展,我們身邊出現(xiàn)了越來越多的智能化數(shù)字化的精細(xì)電子設(shè)備,消費(fèi)者在關(guān)注設(shè)備的性能、價(jià)格、功能、設(shè)計(jì)的同時(shí),設(shè)備的質(zhì)量和穩(wěn)定性越來越成為人們關(guān)注的重點(diǎn)。而設(shè)備的穩(wěn)定性的最關(guān)鍵局部之一便是電源的穩(wěn)定性。劣質(zhì)電源的危害時(shí)有發(fā)生,如大到特斯拉電動(dòng)車電池爆炸門,小到身邊的劣質(zhì)手機(jī)電源導(dǎo)致的火災(zāi)、爆炸,均可造成巨大財(cái)產(chǎn)損失甚至危害人們的平安。所以一個(gè)優(yōu)質(zhì)平安的電源是智能化數(shù)字化電子設(shè)備不可或缺的重要局部。1.2國外研究現(xiàn)狀目前而言,生活中乃至局部實(shí)驗(yàn)室使用的電源多采用電位器來調(diào)整輸出的電壓及電流值搭配指針式顯示。存在著非線性,調(diào)整誤差較大,顯示讀數(shù)誤差,可靠性低等較大缺陷。數(shù)字化智能電源應(yīng)運(yùn)而生,它針對(duì)傳統(tǒng)電源的缺乏,有效減少了各種器件等不確定因素和人為因素而引起的誤差,從而極大提高了電源模塊的穩(wěn)定性,縮小了電源的誤差。從20世紀(jì)90年代以來,人們對(duì)于系統(tǒng)的效率越來越高,功耗要求越來越低,隨著電子技術(shù)和數(shù)據(jù)通信設(shè)備的技術(shù)開展更新,電源行業(yè)開場由以前的分立元件和集成電路控制轉(zhuǎn)變?yōu)橛晌C(jī)的控制趨勢,開場了電源行業(yè)的智能化。20多年的開展之后,數(shù)控恒壓技術(shù)已經(jīng)較為成熟,但是恒流源的開展特別是數(shù)控恒流源還較為落后,高性能的數(shù)控恒流源的開展和應(yīng)用都還存在著較為巨大的開展空間。本次畢設(shè)設(shè)計(jì)的數(shù)控直流源可以輸出穩(wěn)定電流的直流恒流源,不隨外界負(fù)載等因素影響。輸出穩(wěn)定度好,誤差小,可以直接數(shù)字設(shè)定電流大小,具有較好的應(yīng)用價(jià)值。2根本原理與方案比照2.1總體框圖圖1總體框圖本設(shè)計(jì)共分6個(gè)模塊〔見圖1〕:1.鍵盤輸入模塊:通過4*4矩陣鍵盤設(shè)置輸入電流,步進(jìn)為1mA,輸入電流圍為20-2000mA。并可通過“+〞“-〞進(jìn)展微調(diào)。2.液晶顯示模塊顯示預(yù)置電流與實(shí)際的輸出電流。3.D/A轉(zhuǎn)換模塊:將單片機(jī)輸出的數(shù)字量轉(zhuǎn)換成模擬量,送入恒流源模塊。4.A/D轉(zhuǎn)換模塊將實(shí)際輸出的電流轉(zhuǎn)化為數(shù)字量,送入單片機(jī)5.恒流源模塊實(shí)現(xiàn)電流的輸出。6.單片機(jī)主控模塊整個(gè)設(shè)計(jì)的控制局部。連接電源,鍵盤模塊,D/A轉(zhuǎn)換模塊,A/D轉(zhuǎn)換模塊及液晶顯示模塊。2.2恒流源方案比照根本的恒流源電路按照組成器件的不同,主要可以分為晶體管恒流源,場效應(yīng)管恒流源和集成電路恒流源三類。2.2.1晶體管恒流源以晶體管為主要組成,因?yàn)榫w三極管集電極電壓變化對(duì)電流的影響很小,所以可以根本到達(dá)輸出電流恒流的要求,但是通常還需要一定的溫度補(bǔ)償和穩(wěn)壓措施,否則會(huì)存在較大的誤差,其根本電路如下:圖2晶體管恒流源的根本形式如圖2,電阻R1、R2分壓,b點(diǎn)的電位為VB,RE形成電流負(fù)反應(yīng),可以計(jì)算輸出電流QUOTE圖2中的電路的缺乏在于晶體管的集電級(jí)和射極間電阻一般在幾十千歐以上,當(dāng)只需幾伏的工作電壓,這種恒流源電路的等效阻很大,功耗很大,并且精度不高。場效應(yīng)管恒流源由場效應(yīng)晶體管作為主要組成器件構(gòu)成的恒流源電路如圖2所示:b圖3場效應(yīng)管恒流源b圖3中,R1,R2分壓,使b點(diǎn)的電位穩(wěn)定,QUOTE;QUOTEQUOTE表示為夾斷電壓,QUOTE為飽和漏極電流。這種恒流源電路使用的場效應(yīng)管為JEFT,具有超低噪聲的有點(diǎn),輸出的電流由JEFT決定,檢測的電壓與JEFT有關(guān)。集成電路恒流源為了能夠準(zhǔn)確的控制輸出電流,通常會(huì)使用一個(gè)運(yùn)放作為反應(yīng),再使用場效應(yīng)管減小三極管的BE電流導(dǎo)致的誤差。常用的運(yùn)放恒流源如圖4所示,在工作時(shí),輸入電壓Vref與輸出電流成比例的檢測電壓,QUOTE相等,其中QUOTE為誤差。圖4集成電路恒流源圖4這個(gè)電路通??梢宰鳛楹懔髟吹臉?biāo)準(zhǔn)電路,不但具有足夠的精度,易于調(diào)節(jié)的優(yōu)勢,而且使用到的期間也很普遍,便于應(yīng)用。缺點(diǎn)是運(yùn)放局部需要額外的供電電源。2.2.4總結(jié)從上面的電路中我們可以發(fā)現(xiàn),恒流源就是利用一個(gè)參考電壓,然后在電阻上形成固定電流。恒流源的搭建就可以擴(kuò)展到所有可以提供這個(gè)"電壓基準(zhǔn)"的器件上。所以三端穩(wěn)壓芯片也通常會(huì)應(yīng)用于恒流源,這些三端穩(wěn)壓芯片本身就具有很高的精度,需要維持的電流也很小所以具有很好的性價(jià)比,如圖5:圖5穩(wěn)壓芯片組成的恒流源電路該電路的電流計(jì)算公式為:,其中V是三端穩(wěn)壓的穩(wěn)壓數(shù)值。但是這種構(gòu)造的恒流源,不適合太小的電流,因?yàn)檫@個(gè)時(shí)候,三端穩(wěn)壓自身的維持電流會(huì)導(dǎo)致較大的誤差。恒流源的實(shí)質(zhì)是利用器件對(duì)電流進(jìn)展反應(yīng),動(dòng)態(tài)調(diào)節(jié)設(shè)備的供電狀態(tài),從而使得電流趨于恒定。只要能夠得到電流,就可以有效形成反應(yīng),從而建立恒流源。從上面四種常見電路分析后,本次畢設(shè)我選擇了方案3。2.3單片機(jī)簡介作為控制核心的單片機(jī),本設(shè)計(jì)選擇了ATMEL的AT89C51,這是一款高效微控制器,具有高度的靈活性,同時(shí)價(jià)格低廉。這是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓、高性能CMOS8位微處理器:它包括一個(gè)8位的微型處理器cpu;1個(gè)256K的RAM存儲(chǔ)器;1個(gè)片存儲(chǔ)器rom;4個(gè)8位雙向輸入輸出的并行IO接口,5個(gè)中斷;2個(gè)定時(shí)/計(jì)數(shù)器;片振蕩器和時(shí)鐘產(chǎn)生電路,最高振蕩頻率12MHZ。一個(gè)單片機(jī)可以看做是一個(gè)完整的微型計(jì)算機(jī)。當(dāng)我們配上適當(dāng)?shù)耐鈬骷拖鄳?yīng)的軟件時(shí),就能成為一個(gè)獨(dú)立的應(yīng)用系統(tǒng)。本設(shè)計(jì)中,我們也以其為核心,進(jìn)展了相應(yīng)的配置。89c51的管腳說明如圖6:圖6AT89C51管腳示意圖P0口〔32-39〕:8位漏級(jí)開路雙向io口,輸出高電平大電流時(shí)需要被外部拉高。P1口〔1-8〕:一個(gè)部可以提供上拉電阻的8位雙向IO口P2口〔21-28〕:一個(gè)部可以提供上拉電阻的8位雙向IO口,當(dāng)在給出地址“1〞時(shí),它利用部上拉的優(yōu)勢,對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)展讀寫時(shí),輸出特殊功能存放器的容。P3口〔10-17〕:一個(gè)部可以提供上拉電阻的雙向IO口,也可以作為一些特殊的功能口如下所示:P3.0R*D串行輸入口P3.1T*D串行輸出口P3.2/INT0外部中斷0P3.3/INT1外部中斷1P3.4T0記時(shí)器0外部輸入P3.5T1記時(shí)器1外部輸入P3.6/WR外部數(shù)據(jù)存儲(chǔ)器寫選通P3.7/RD外部數(shù)據(jù)存儲(chǔ)器讀選通RST〔9〕:復(fù)位輸入。*TAL1〔19〕:反向振蕩放大器的輸入及部時(shí)鐘工作電路的輸入。*TAL2〔18〕:來自反向振蕩器的輸出。2.4液晶顯示屏簡介液晶顯示模塊選用了LCD1602,它是一種工業(yè)字符型液晶,能夠同時(shí)顯示16*02個(gè)字符。是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。市面上的字符液晶通常基于HD44780液晶芯片,控制原理一樣,移植性較好方便應(yīng)用。LCD1602通常需要5V電壓供電,可以調(diào)節(jié)比照度。部自帶復(fù)位電路。提供了各種如清屏、字符閃爍、顯示移位等功能。具有80字節(jié)的顯示數(shù)據(jù)存儲(chǔ)器的DDRAM,具有微功耗,顯示容豐富,方便靈活的特點(diǎn)而常被應(yīng)用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。(如圖7)圖7LCD16022.5數(shù)模轉(zhuǎn)換芯片本設(shè)計(jì)數(shù)模轉(zhuǎn)換芯片選用的是美國儀器公司生產(chǎn)的TLC5615,它是一個(gè)具有串行接口的數(shù)模轉(zhuǎn)換器,輸出為電壓型,輸出的最大電壓是基準(zhǔn)電壓值的兩倍,帶有上電復(fù)位功能。具有易和工業(yè)標(biāo)準(zhǔn)的微控制器相連接的優(yōu)點(diǎn),常用語電池供電的測試儀表,也適用于數(shù)字失調(diào)與增益調(diào)整以及工業(yè)控制場合。(如圖8)圖8TLC56152.6模數(shù)轉(zhuǎn)換芯片本次畢設(shè)選用了儀器公司的數(shù)模轉(zhuǎn)換器TLC2543,它是使用開關(guān)電容逐次逼近的方法完成A/D的轉(zhuǎn)換,分辨率較高,且價(jià)格較為廉價(jià),因此在儀表儀器中使用較為常見。該芯片的分辨率為12位,具有11個(gè)模擬輸入通道,轉(zhuǎn)換時(shí)間是10us。(如圖9)圖9TLC25433各模塊實(shí)現(xiàn)3.1輸入電路圖10鍵盤模塊輸入采用4*4鍵盤,鍵盤橫向連接分別接入單片機(jī)AT89c51的口,縱向連接接入單片機(jī)P1.4口-P1.7口。依圖10所示,各鍵作用如下:3.2液晶顯示電路圖11LCD顯示模塊LCD1602可以在LCD顯示屏上完整,清晰顯示32個(gè)英文字符,這方便我們?cè)谄渖巷@示出電流單位“mA〞。在設(shè)計(jì)過程過單片機(jī)編程控制第4腳RS〔數(shù)據(jù)/命令選擇端〕,第5腳R/W〔讀寫選擇端〕,第6腳E〔使能端〕,從而實(shí)現(xiàn)顯示效果。其顯示運(yùn)行原理如下:寫指令:RS=L,RW=L,D0~D7=指令碼,E=H→L寫數(shù)據(jù):RS=H,RW=L,D0~D7=數(shù)據(jù),E=H→L讀忙狀態(tài):RS=L,RW=H,E=H→L讀數(shù)據(jù):RL=H,RW=H,E=H→L3.3D/A轉(zhuǎn)換電路選擇D/A芯片為TLC5615,它的轉(zhuǎn)換精度為10位,為了計(jì)算方便,我們選擇參考電壓為2.048v。又因?yàn)樽畲筝敵鲭妷簽閰⒖茧妷旱膬杀?,所以最小輸出電壓的分辨率為:圖12D/A轉(zhuǎn)換模塊3.4A/D轉(zhuǎn)換電路我們由前面的分析得tlc2543是串行輸入的12位模數(shù)轉(zhuǎn)換器,有節(jié)約Io資源,分辨率較高且價(jià)格較低的優(yōu)點(diǎn)而選用。具體電路如圖13分辨率為:QUOTE圖13A/D轉(zhuǎn)換模塊3.5恒流源模塊圖14恒流源模塊穩(wěn)定的恒流源電路是本次設(shè)計(jì)的關(guān)鍵局部,經(jīng)過前面的分析,我們這次選擇了集成運(yùn)放組成的恒流源作為整個(gè)系統(tǒng)的恒流源局部。其中運(yùn)算放大器選擇TL084,它的電源電壓圍在8v到36伏之間,屬于JFET運(yùn)放,輸入偏移電壓最大5.5mv,額定電源電壓36v。另外選擇了達(dá)林頓管TIP142以輸出需要的恒流。TIP142存在的關(guān)鍵指標(biāo)有最大集電極--發(fā)射集電壓為100v。最大集電極--基極電壓100v。最大發(fā)射極--基極電壓為5v,最大承受功率125w。完全符合設(shè)計(jì)的要求。3.6電路整體工作原理如附錄1所示。電路接通電源后。通過輸入電路〔4*4矩陣鍵盤〕將預(yù)置電流輸入單片機(jī)控制電路〔單片機(jī)AT89C51〕。單片機(jī)將預(yù)置的電流信號(hào),經(jīng)過D/A轉(zhuǎn)換電路〔芯片TLC5615〕輸出模擬電壓信號(hào),進(jìn)入恒流源模塊。該信號(hào)控制達(dá)林頓管的基極,輸出相應(yīng)的電流。同時(shí),通過A/D轉(zhuǎn)換電路〔芯片TLC2543〕,實(shí)時(shí)把采樣電路上的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),反應(yīng)給單片機(jī)控制電路。單片機(jī)主控電路將預(yù)置電流及反應(yīng)回的實(shí)際電流信號(hào),輸入液晶顯示電路〔芯片LCD1602〕,顯示輸入與輸出的電流值,單位為mA,顯示精度為1mA。4系統(tǒng)軟件實(shí)現(xiàn)4.1綜述本次畢設(shè)的軟件局部主要配合硬件來完成以下功能設(shè)定恒流源數(shù)值控制tlc5615的工作控制tlc2543的工作控制液晶顯示設(shè)定與實(shí)際輸出電流值為了完成以上功能,我們選擇了c語言來對(duì)89c51芯片進(jìn)展編程,使用keil4軟件。整個(gè)軟件分為鍵盤掃描模塊,液晶顯示模塊,數(shù)模轉(zhuǎn)換模塊,模數(shù)轉(zhuǎn)換模塊。單片機(jī)微機(jī)控制D/A轉(zhuǎn)換處理液晶D/A轉(zhuǎn)換處理液晶顯示模塊A/D轉(zhuǎn)換處理鍵盤輸入圖15軟件局部框圖4.2鍵盤輸入流程圖是是否開場逐行掃描有鍵按下保存行號(hào)逐列掃描保存列號(hào)根據(jù)行號(hào)和列號(hào)計(jì)算鍵值根據(jù)鍵值查表得到對(duì)應(yīng)段碼輸出段碼顯示圖16鍵盤輸入流程圖圖16鍵盤輸入流程圖否是讀取完畢否是讀取完畢返回A/D轉(zhuǎn)換開場初始化A/D轉(zhuǎn)換讀取電壓圖17A/D轉(zhuǎn)換流程圖4.4D/A轉(zhuǎn)換流程圖讀取完畢讀取完畢返回讀取數(shù)據(jù)D/A轉(zhuǎn)換開場初始化D/A轉(zhuǎn)換轉(zhuǎn)換否是圖18D/A轉(zhuǎn)換流程圖4.5液晶顯示流程圖否否開場初始化LCD有鍵按下LCD1602寫命令顯示延遲完畢是圖19D/A轉(zhuǎn)換流程圖5整體測試與分析設(shè)計(jì)完成后,用……對(duì)電路進(jìn)展了仿真,其結(jié)果如下局部仿真截圖〔第一行為鍵盤輸入值,第二行為實(shí)際值〕:20mA時(shí):50mA時(shí):100mA時(shí):500mA時(shí):1000mA時(shí):2000mA時(shí):表1輸入/輸出誤差表經(jīng)檢驗(yàn),總體誤差較小,尤其是當(dāng)輸出電流較大時(shí),符合設(shè)計(jì)要求。誤差分析:恒流源電路中達(dá)林頓管需要一定的導(dǎo)通電壓,假設(shè)在實(shí)際應(yīng)用中還要考慮器件由于工藝以及溫度而產(chǎn)生的誤差A(yù)/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器因?yàn)榉直媛试蚨嬖诠逃械恼`差。6總結(jié)與展望本次畢設(shè)根本完成了一個(gè)較為簡易,相對(duì)準(zhǔn)確的數(shù)控恒流源的目標(biāo),但是還存在著較多需要改善的地方。因?yàn)闀r(shí)間和個(gè)人能力因素,在硬件局部,恒流源模塊的設(shè)計(jì)還有較大的改善空間,可以從功耗,以及輸出電流電壓圍可以進(jìn)一步的優(yōu)化。軟件方面,我考慮了可以充分利用A/D模塊采集的電壓從而引入PID控制算法,與預(yù)設(shè)的電流相比擬,假設(shè)存在差距,可以通過微處理器進(jìn)一步進(jìn)展調(diào)整,從而可以進(jìn)一步控制輸出恒流的精度以及穩(wěn)定程度。在這次畢設(shè)的過程中,我的收獲要遠(yuǎn)大于遺憾。通過這次的實(shí)際應(yīng)用,我充分感受到了電子專業(yè)的魅力所在。完成這份畢設(shè)同時(shí),我綜合了運(yùn)用了所學(xué)的數(shù)電,模電,微機(jī)原理,C語言編程等多種課程,在穩(wěn)固大學(xué)所學(xué)專業(yè)知識(shí)的同時(shí),更進(jìn)一步梳理了知識(shí)網(wǎng)絡(luò),提高了我對(duì)于電子信息這個(gè)專業(yè)的認(rèn)識(shí)。最后我要向我的導(dǎo)師與四年學(xué)習(xí)中教誨我的各位教師致以最崇高的敬意。也陪伴我四年成長和生活、學(xué)習(xí)各位同學(xué)。感師大學(xué)提供了我這樣一個(gè)美好學(xué)習(xí)成長的平臺(tái)。參考文獻(xiàn)[1]康光華電子技術(shù)根底數(shù)字局部〔第五版〕:高等教育,2006年1月.[2]康光華電子技術(shù)根底模擬局部〔第五版〕:高等教育,2008年1月[3]林占江,林放電子測量技術(shù)〔第3版〕:電子工業(yè),2012年5月[4]邱關(guān)源,羅先覺電路〔第五版〕:高等教育,2011年5月[5]胡漢才單片機(jī)原理與接口技術(shù):清華大學(xué),2008年2月[6]齊,朱寧西,畢盛單片機(jī)原理與嵌入式系統(tǒng)設(shè)計(jì)——原理、應(yīng)用、Protues仿真、實(shí)驗(yàn)設(shè)計(jì):電子工業(yè)2011年9月;[7]周明德微型計(jì)算機(jī)系統(tǒng)原理及應(yīng)用〔第五版〕:清華大學(xué)2007莫按摩1月[8]Ayala,KennethJ,The8051MicrocontrollerandEmbeddedSystemsUsingAssembly:ThomsonLearning,2005年7月[9]NewnesDesigningEmbeddedSystemswithPICMicrocontrollers2003.11[10]Ma*imintegratedProductsIncSpecifyingQuartzCrystal2000.2附錄A仿真原理圖附錄B程序局部*include<reg52.h>*include<stdio.h>*include<intrins.h>*include<absacc.h>*defineucharunsignedchar*defineuintunsignedint*defineVref2.048//tlc5615sbitcs=P2^4;//片選sbitclk=P2^3;//時(shí)鐘sbitdin=P2^5;//SPI口//tlc2543sbitclock=P3^1;//輸入、輸出時(shí)鐘端sbitinput=P2^7;//數(shù)據(jù)輸入端sbitoutput=P2^6;//數(shù)據(jù)輸出端sbitCS1=P3^0;//片選端,負(fù)電平有效//lcdsbitRS=P2^0;sbitRW=P2^1;sbitEn=P2^2;//ucharcodetable[16]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};//數(shù)字staticuchardis_buf[4]={0,0,0,0};//顯示緩存ucharn,temp1;intout_temp=0;ucharkey;//鍵順序碼ucharkey_cli=0;//數(shù)字鍵被按下的次/****************************************函數(shù)聲明*****************************************/keyscan();voidTLC56(unsignedlongdav);voiddelay56();voidWrite(ucharaddress,uchardat);voiddelayms(unsignedint*);voidjianz(ucharkey);voidADCchu(unsignedlongaa);voidDispCharacter(uint*,uinty,uintdata1);voidLCDReset();voidShortDelay(uchari);voidLongDelay(uinti);voidSetRS(biti);voidSetRW(biti);voidSetE(biti);voidInitP0(biti);voidWriteInstruc(uintInstruc);uintRead_BF_AC();voidWriteData(uintdata1);uintReadData(void);bitStatusCheck();voidInitLCD();voidjianchu(ucharjianz,uintr);/*****************************************鍵盤程序*******************************************/keyscan(){P1=0*ef;if((P1&0*0f)!=0*0f){ShortDelay(100);//函數(shù)調(diào)用消抖動(dòng)if((P1&0*0f)!=0*0f){temp1=P1;switch(temp1){case0*ee:key=0;break;case0*ed:key=4;break;case0*eb:key=8;break;case0*e7:key=12;break;}while((P1&0*0f)!=0*0f);jianz(key);//函數(shù)調(diào)用}}P1=0*df;if((P1&0*0f)!=0*0f){ShortDelay(100);//函數(shù)調(diào)用消抖動(dòng)if((P1&0*0f)!=0*0f){temp1=P1;switch(temp1){case0*de:key=1;break;case0*dd:key=5;break;case0*db:key=9;break;case0*d7:key=13;break;}while((P1&0*0f)!=0*0f);jianz(key);//函數(shù)調(diào)用}}P1=0*bf;if((P1&0*0f)!=0*0f){ShortDelay(100);//函數(shù)調(diào)用消抖動(dòng)if((P1&0*0f)!=0*0f){temp1=P1;switch(temp1){case0*be:key=2;break;case0*bd:key=6;break;case0*bb:key=10;break;case0*b7:key=14;break;}while((P1&0*0f)!=0*0f);jianz(key);//函數(shù)調(diào)用}}P1=0*7f;if((P1&0*0f)!=0*0f){ShortDelay(100);//函數(shù)調(diào)用消抖動(dòng)if((P1&0*0f)!=0*0f){temp1=P1;switch(temp1){case0*7e:break;case0*7d:key=7; break;case0*7b:key=11;break;case0*77:key=15;break;}while((P1&0*0f)!=0*0f);jianz(key);}}}/***************************************鍵盤按鍵功能函數(shù)***************************************/voidjianz(ucharkey)//鍵盤值處理中調(diào)用lcd顯示{if(key<=9){dis_buf[key_cli]=key;//得鍵值存儲(chǔ)在其中key_cli++;}if(key==12)//確定鍵送數(shù){unsignedlongout_set=0;//十六位uintj,i;uchardis_buf1[4]={0,0,0,0};for(j=0;j<4;j++)dis_buf1[j]=dis_buf[j];jianchu(dis_buf1[0],0);jianchu(dis_buf1[1],1);jianchu(dis_buf1[2],2);jianchu(dis_buf1[3],3);for(i=0;i<key_cli;i++){out_set=out_set*10+(dis_buf[i]);//給out-temp賦值為整數(shù)}TLC56((out_temp+5)/2); ////〔重點(diǎn)地方〕數(shù)字信號(hào)從單片機(jī)來,這里可以傳鍵盤值和鍵盤聯(lián)系TLC5615DAC的鍵盤值 ShortDelay(1); }if(key==13)//取消鍵{uintj;uchardis_buf2[4]={0,0,0,0};for(j=0;j<4;j++)dis_buf[j]=dis_buf2[j];jianchu(dis_buf2[0],0);jianchu(dis_buf2[1],1);jianchu(dis_buf2[2],2);jianchu(dis_buf2[3],3);TLC56(0*0000);//〔重點(diǎn)地方〕數(shù)字信號(hào)從單片機(jī)來,這里可以傳鍵盤值和鍵盤聯(lián)系TLC5615DAC的鍵盤值ShortDelay(1);key_cli=0;}if(key==10)//步進(jìn)+鍵{uintj;uchardis_buf3[4];for(j=0;j<4;j++){dis_buf3[j]=dis_buf[j];//是保護(hù)dis_buf[]中的數(shù)據(jù)}n=3;//向前一兩位來改變dis_buf的值dis_buf3[n]=dis_buf3[n]+0*02;//步進(jìn)值為0*02if(dis_buf3[n]>=0*09)//輸入值滿十進(jìn)位{dis_buf3[n]=0;n=2;dis_buf3[n]=dis_buf3[n]+0*01;}for(j=0;j<4;j++){dis_buf[j]=dis_buf3[j];//將修改后的值傳到dis_buf[]中}jianchu(dis_buf3[0],0);jianchu(dis_buf3[1],1);jianchu(dis_buf3[2],2);jianchu(dis_buf3[3],3);}if(key==11)//步進(jìn)-鍵{uintj;uchardis_buf4[4];for(j=0;j<4;j++){dis_buf4[j]=dis_buf[j];}n=3;dis_buf4[n]=dis_buf4[n]-0*02;if(dis_buf4[n]<=0*01){n=2;dis_buf4[n]=dis_buf4[n]-0*01;n=3;dis_buf4[n]=0*09;}for(j=0;j<4;j++)dis_buf[j]=dis_buf4[j];jianchu(dis_buf4[0],0);jianchu(dis_buf4[1],1);jianchu(dis_buf4[2],2);jianchu(dis_buf4[3],3);}}//LCD初始化voidInitLCD(){WriteInstruc(0*06);LCDReset();//InputMode(0*06);//增量方式,不移位WriteInstruc(0*0c);//DispControl(0*0c);//顯示開,光標(biāo)關(guān),閃爍關(guān)WriteInstruc(0*38);//FunctionSet(0*38);//8位,2行,5×7}//短延時(shí)函數(shù):ShortDelay()voidShortDelay(uchari){for(;i>0;i--);}//存放器選擇信號(hào):SetRS()voidSetRS(biti){if(i==1)RS=1;elseRS=0;}//讀寫操作控制信號(hào):SetRW()voidSetRW(biti){if(i==1)RW=1;elseRW=0;}//使能信號(hào):SetE()voidSetE(biti){if(i==1)En=1;elseEn=0;}//IO輸入輸出控制voidInitP0(biti){if(i==1)P0=0*ff;elseP0=0*00;}//寫指令函數(shù):WriteInstruc()voidWriteInstruc(uintInstruc){while(StatusCheck());InitP0(0);SetRS(0);SetRW(0);//ShortDelay(1);SetE(0);P0=Instruc;//ShortDelay(1);SetE(1);ShortDelay(10);SetE(0);//ShortDelay(1);SetRW(1);SetRS(1);}//讀BF以及AC的值函數(shù):Read_BF_AC()uintRead_BF_AC() {uinttemp;InitP0(1);SetRS(0);SetRW(1);//ShortDelay(1);SetE(0);//ShortDelay(1);SetE(1);ShortDelay(1);temp=P0;ShortDelay(10);SetE(0);//ShortDelay(1);SetRW(0);SetRS(1);return(temp);}//寫數(shù)據(jù)到RAM函數(shù):WriteData()voidWriteData(uintdata1){InitP0(0);SetRS(1);SetRW(0);//ShortDelay(1);SetE(0);P0=data1;//ShortDelay(1);SetE(1);ShortDelay(10);SetE(0);//ShortDelay(1);SetRW(1);SetRS(0);}//檢測LCD控制器狀態(tài)函數(shù):StatusCheck()//返回一bit數(shù):1--忙;0--閑bitStatusCheck(){return((bit)(Read_BF_AC()&0*80));}//在指定位置顯示字符函數(shù):DispCharacter()//*為行號(hào),y為列號(hào),//data為顯示字符的碼字?jǐn)?shù)據(jù)voidDispCharacter(uint*,uinty,uintdata1){uinttemp;while(StatusCheck());//假設(shè)LCD控制器忙,則等待temp=y&0*0f;*&=0*01;if(*)temp|=0*40;WriteInstruc(0*80|temp);//設(shè)置顯示位置WriteData(data1);}//LCD復(fù)位函數(shù):LCDReset()voidLCDReset(){WriteInstruc(0*01);WriteInstruc(0*02);}/******************************************LCD1062顯示函數(shù)*******************************************/voidjianchu(unsignedcharjianz,uintr)//鍵盤值處理并顯示{if(r<4)switch(jianz){case0:DispCharacter(0,7+r,'0');break;case1:DispCharacter(0,7+r,'1');break;case2:DispCharacter(0,7+r,'2');break;case3:DispCharacter(0,7+r,'3');break;case4:DispCharacter(0,7+r,'4');break;case5:DispCharacter(0,7+r,'5');break;case6:DispCharacter(0,7+r,'6');break;case7:DispCharacter(0,7+r,'7');break;case8:DispCharacter(0,7+r,'8');break;case9:DispCharacter(0,7+r,'9');break;}elseswitch(jianz){case0:DispCharacter(1,3+r,'0');break;case1:DispCharacter(1,3+r,'1');break;case2:DispCharacter(1,3+r,'2');break;case3:DispCharacter(1,3+r,'3');break;case4:DispCharacter(1,3+r,'4');break;case5:DispCharacter(1,3+r,'5');break;case6:DispCharacter(1,3+r,'6');break;case7:DispCharacter(1,3+r,'7');break;case8:DispCharacter(1,3+r,'8');break;case9:DispCharacter(1,3+r,'9');break;}}/*****************************************TLC5615串口接收數(shù)據(jù)*****************************************/voidTLC56(unsignedlongdav){uchari;dav<<=6;//數(shù)據(jù)移位使高位在前cs=0;clk=0;for(i=0;i<12;i++){din=(bit)(dav&0*8000);//位位發(fā)送dav<<

溫馨提示

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