基于proteus的數(shù)控恒流源的仿真研究_第1頁(yè)
基于proteus的數(shù)控恒流源的仿真研究_第2頁(yè)
基于proteus的數(shù)控恒流源的仿真研究_第3頁(yè)
基于proteus的數(shù)控恒流源的仿真研究_第4頁(yè)
基于proteus的數(shù)控恒流源的仿真研究_第5頁(yè)
已閱讀5頁(yè),還剩37頁(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、摘 要隨著電子技術(shù)的發(fā)展、數(shù)字電路應(yīng)用領(lǐng)域的擴(kuò)展,人們對(duì)數(shù)控恒定電流器件的需求越來(lái)越高。應(yīng)社會(huì)發(fā)展的需求,對(duì)基于單片機(jī)控制的“數(shù)控恒流電流源”進(jìn)行研究論證,并運(yùn)用Proteus軟件進(jìn)行仿真。設(shè)計(jì)由兩大模塊組成:?jiǎn)纹瑱C(jī)應(yīng)用系統(tǒng)模塊; 大功率壓控電流源模塊。設(shè)計(jì)采用AT89C52單片機(jī)應(yīng)用系統(tǒng),由TLC2543對(duì)精密電阻康銅絲的電壓進(jìn)行監(jiān)控,由LTC1456直接控制輸出電壓,單片機(jī)、A/D、D/A三者組成控制系統(tǒng),形成閉環(huán)回路,保持恒流。電流源采用44矩陣鍵盤(pán)進(jìn)行設(shè)定,并采用LCD顯示界面。運(yùn)用Proteus軟件仿真,實(shí)現(xiàn)輸出電流圍為200mA2000mA,滿足步進(jìn)10mA,誤差的絕對(duì)值 1% +

2、10mA,可以同時(shí)顯示電流的給定值、仿真測(cè)試值、負(fù)載電壓值、負(fù)載電阻值。關(guān)鍵詞:電流源,穩(wěn)壓電源,AT89C52,LCD顯示,ProteusABSTRACTThe requiements of numerical controlling constant current devices is increasing as development of electronic technology and expanding of digital circuit applicational field. As to satisfy society development, do a study ba

3、sed on numerical controlling constant current power of SCM controlling and apply Proteus to simulating software. This design includes two module: SCM application system module; superpower voltage controls current power module. This design adopts AT89C52 SCM application system, monitoried by precisio

4、n resistance constantan wire voltage corresponding of TLC2543 and controlled and putout voltage directly by LTC1456, which three aspects consist of controlling system and being closed loop circuit to keep constant cuurent. Current souce adopts 44 matrix keyboard to set and LCD display interface. App

5、lying Proteus simulation software to realizing the range of output current as 200mA2000mA satisfies stepping 10mA, the errors absolute value 1% +10mA and displaying set-value, simulation values, load voltage value and load load resistance value of current simultaneously.Keywords:current source ,mano

6、stat ,AT89C52,LCD display,Proteus目 錄摘要IABSTRACTII第1章總體方案設(shè)計(jì)11.1設(shè)計(jì)任務(wù)11.2設(shè)計(jì)思路11.3總體方案的比較與論證1第2章硬件模塊的設(shè)計(jì)32.1 穩(wěn)壓電源電路的設(shè)計(jì)32.2恒流源電路的設(shè)計(jì)42.3負(fù)載電壓、電流電路的設(shè)計(jì)52.4A/D、D/A轉(zhuǎn)換器模塊62.4.1 D/A轉(zhuǎn)換器62.4.2A.D轉(zhuǎn)換器72.4.3D/A、A/D連接電路72.5AT89C52控制模塊82.5.1 AT89C52的引腳與其功能介紹82.5.2 AT89C52連接電路92.6鍵盤(pán)的硬件設(shè)計(jì)102.7顯示的硬件設(shè)計(jì)11第3章軟件設(shè)計(jì)123.1 程序說(shuō)明123

7、.2程序流程圖13第4章系統(tǒng)仿真與數(shù)據(jù)分析144.1 系統(tǒng)仿真方法144.2系統(tǒng)仿真數(shù)據(jù)154.2.1 輸出電流圍仿真154.2.2步進(jìn)調(diào)整仿真154.2.3輸出電流仿真154.3仿真結(jié)果與誤差分析16結(jié)論18參考文獻(xiàn)19附錄20致35- 42 - / 42第1章 總體方案設(shè)計(jì)1.1設(shè)計(jì)任務(wù)輸入交流電壓200240V,50Hz;輸出直流電壓10V。1、輸出電流圍:200mA2000mA;2、可設(shè)置并顯示輸出電流給定值,要求輸出電流與給定值偏差的絕對(duì)值給定值的1+10 mA;3、具有“+”、“-”步進(jìn)調(diào)整功能,步進(jìn)10mA;4、改變負(fù)載電阻,輸出電壓在10V以變化時(shí),要求輸出電流變化的絕對(duì)值輸出

8、電流值的1+10 mA;5、利用proteus軟件對(duì)整體電路進(jìn)行仿真驗(yàn)證。1.2 設(shè)計(jì)思路采用改進(jìn)型的單輸出端單向電流源電路來(lái)產(chǎn)生恒定電流。該方法是用精密電阻取樣得到反饋電壓,將反饋電壓與高精度的參考電壓比較得到誤差電壓,此誤差電壓經(jīng)放大后輸出控制調(diào)整管的導(dǎo)通程度,使預(yù)設(shè)電流值和實(shí)測(cè)電流值的逐步逼近,直至相等,從而達(dá)到數(shù)控的目的。從題目的要求來(lái)分析,該題目最大的難點(diǎn)在于大電流輸出和高精度控制,所以在具體的方案確定中,大電流、功耗,以與精度、誤差等都是我們所必須要考慮和克服的。1.3 總體方案的設(shè)計(jì)根據(jù)題目要求以與設(shè)計(jì)思路,我們要先確定總體的設(shè)計(jì)方案,參閱大量資料后,我們確定了設(shè)計(jì)中必有的各個(gè)模

9、塊,其中有單片機(jī),A/D轉(zhuǎn)換。D/A轉(zhuǎn)換,V/I轉(zhuǎn)換等,最終確定的系統(tǒng)框圖如圖1.1所示 :圖1.1 系統(tǒng)框圖此方案采用保持電阻恒定而改變輸入電壓的方法來(lái)改變電流的大小。利用高精度D/A轉(zhuǎn)換器在單片機(jī)程序控制下提供可變的高精度的基準(zhǔn)電壓,該基準(zhǔn)電壓經(jīng)過(guò)V/I轉(zhuǎn)換電路得到電流,再通過(guò)A/D轉(zhuǎn)換器將輸出電流反饋至單片機(jī)進(jìn)行比較,調(diào)整D/A的輸入電壓,從而達(dá)到數(shù)控的目的。該方案的難點(diǎn)在于穩(wěn)定恒流源的設(shè)計(jì)和高精度電流檢測(cè)電路的設(shè)計(jì)。特點(diǎn)是可精確的控制電流的步進(jìn)量,負(fù)載變化對(duì)電流輸出的影響較小。第2章 硬件模塊的設(shè)計(jì)硬件的設(shè)計(jì)關(guān)系著系統(tǒng)的簡(jiǎn)單和穩(wěn)定與否,在此,運(yùn)用專(zhuān)業(yè)的知識(shí)進(jìn)行硬件設(shè)計(jì),逐步完成系統(tǒng)的骨

10、架。 2.1 穩(wěn)壓電源電路的設(shè)計(jì)本系統(tǒng)需要多個(gè)電源,單片機(jī)使用+穩(wěn)壓電源,A/D轉(zhuǎn)換器,D/A轉(zhuǎn)換器,運(yùn)放等需要穩(wěn)壓電源。電源雖簡(jiǎn)單,但在高精度的系統(tǒng)中,穩(wěn)壓電源有著非常重要的作用。在進(jìn)行研究后得出以下方案。如圖2.1所示,本電源先通過(guò)變壓器電壓變換隔離,橋式全波整流,電容濾波,再通過(guò)三端固定輸出集成穩(wěn)壓器產(chǎn)生穩(wěn)定電壓+15V,-15V,+5V,穩(wěn)壓器部電路由恒流源,基準(zhǔn)電壓,取樣電阻,比較放大,調(diào)整管,保護(hù)電路,溫度補(bǔ)償電路等組成。為了改善紋波特性,在輸入端加接電容。為了改善負(fù)載的瞬態(tài)響應(yīng),在輸出端加接電容。采用三端集成穩(wěn)壓器7805、7815、7915分別得到+5V和15V的穩(wěn)定電壓,再外

11、對(duì)OP07加大功率場(chǎng)效應(yīng)管構(gòu)成擴(kuò)流電路,可以提供2000mA的上限電流。利用該方法實(shí)現(xiàn)的電源電路簡(jiǎn)單,工作穩(wěn)定可靠。穩(wěn)壓電源在實(shí)物上設(shè)計(jì)上是必不可少的部分,但在運(yùn)用Proteus仿真時(shí)為了簡(jiǎn)化電路,此模塊用軟件自帶的勵(lì)磁電壓代替。圖2.1 穩(wěn)壓電源電路2.2 恒流源電路的設(shè)計(jì) 方案一:采用集成穩(wěn)壓器運(yùn)放構(gòu)成的線性恒流源。如圖2.2所示,D/A輸出電壓作為恒流源的參考電壓,運(yùn)算放大器U1與晶體管Q1,Q2組成的達(dá)林頓電路構(gòu)成電壓跟隨器。利用晶體管平坦的輸出特性即可得到恒流輸出。由于跟隨器是一種深度的電壓負(fù)擔(dān)虧電路,因此電流源具有較好的穩(wěn)定性。本電流源的穩(wěn)定度優(yōu)于0.5%。為了提高穩(wěn)定度,Rs采用

12、大線徑康銅絲制作,康銅絲溫度系數(shù)很小,大線徑可以使其溫度影響減至最小。U1采用精密運(yùn)算放大器OP37A,該放大器有調(diào)節(jié)零點(diǎn)漂移的功能,Q1采用9014大倍數(shù)大約為400.Q2采用低頻功率管3DD15,他的放大倍數(shù)為1020倍,漏電流很小。Q1的加入是為了增加復(fù)合管的放大倍數(shù)。圖2.2 穩(wěn)壓器運(yùn)放線性恒流源原理圖方案二:采用運(yùn)放和場(chǎng)效應(yīng)管的壓控恒流源。電路原理圖如圖2.3所示。該恒流源電路由運(yùn)算放大器、大功率場(chǎng)效應(yīng)管Q1、采樣電阻R2、負(fù)載電阻RL等組成硬件設(shè)計(jì)。采用場(chǎng)效應(yīng)管,更易于實(shí)現(xiàn)電壓線性控制電流,既能滿足輸出電流最大達(dá)到2A的要求,電路簡(jiǎn)潔也能較好地實(shí)現(xiàn)電壓近似線性地控制電流。此電路中,

13、為了滿足題目的設(shè)計(jì)要求,調(diào)整管采用大功率場(chǎng)效應(yīng)管IRF640。當(dāng)場(chǎng)效應(yīng)管工作于飽和區(qū)時(shí),漏電流Id近似為電壓Ugs控制的電流。即當(dāng)Ud為常數(shù)時(shí),滿足:Id=f(Ugs),只要Ugs不變,Id就不變。在此電路中,R2為取樣電阻,采用康銅絲繞制(阻值隨溫度的變化較小)阻值為1。運(yùn)放OP07作為電壓跟隨器,Uin=Up=Un,場(chǎng)效應(yīng)管Id=Is(柵極電流相對(duì)很小,可忽略不計(jì)) 所以Iout=Is= Un/R2= Uin/R2。正因?yàn)镮out=Uin/R2,電路輸入電壓UI控制電流Iout,即Iout不隨RL的變化而變化,從而實(shí)現(xiàn)壓控恒流。圖2.3 壓控恒流源原理圖綜上所述,進(jìn)行綜合比較,方案二電路較

14、簡(jiǎn)單,穩(wěn)定性較高,故采用方案二,使用高精度運(yùn)放和大功率場(chǎng)效應(yīng)管等構(gòu)成一個(gè)恒流源電路。2.3 負(fù)載電壓、電流電路的設(shè)計(jì) 根據(jù)題目要求,設(shè)計(jì)了如圖2.4所示的電路圖。電路綜合各方面的考慮因素在里面,由于TLC2543所測(cè)電壓值在5V,而負(fù)載一端接15V電壓源另一端接功率管,因此采用差分增益電路采樣負(fù)載電壓,當(dāng)Rb/Rc=Rd/Ra時(shí),OP07輸出電壓ADin=Rb/Rc(Va-Vb),硬件設(shè)置Rb/Rc=1/4,軟件還原負(fù)載電壓,保證測(cè)量精度。而采樣精密電阻R1為1,通過(guò)采樣R1兩端電壓值換算成電流值即可得到輸出電流。圖2.4 負(fù)載電流、電壓測(cè)量電路2.4 D/A、A/D轉(zhuǎn)換器模塊D/A、A/D模

15、塊是單片機(jī)與外部數(shù)據(jù)連接的通道,因此這兩個(gè)模塊的選擇與使用應(yīng)當(dāng)合理。2.4.1 D/A轉(zhuǎn)換器本設(shè)計(jì)中應(yīng)采用DAC模塊提供高精度的基準(zhǔn)電壓,即通過(guò)CPU發(fā)出的二進(jìn)制轉(zhuǎn)換為的模擬電壓,送給誤差放大器,實(shí)現(xiàn)步進(jìn)要求。根據(jù)題目擴(kuò)展功能要求輸出,以1mA為步進(jìn),需要的級(jí)數(shù)為: (2.1),故應(yīng)采用12位D/A轉(zhuǎn)換器為DA轉(zhuǎn)換芯片,供選擇的很多,在此選用proteus元件庫(kù)中的LTC1456芯片。2.4.2 A/D轉(zhuǎn)換器A/D模塊的是反饋的核心,我們采用Proteus元件庫(kù)中的TLC2543芯片實(shí)現(xiàn)。TLC2543是一種低功耗、低電壓的12位串行開(kāi)關(guān)電容型AD轉(zhuǎn)換器。它使用逐次逼近技術(shù)完成A/D轉(zhuǎn)換過(guò)程。

16、最大非線性誤差小于1LSB,轉(zhuǎn)換時(shí)間9s。它具有三個(gè)控制器輸入端,采用簡(jiǎn)單的3線SPI串行接口可方便與微機(jī)進(jìn)行連接,是12位數(shù)據(jù)采集系統(tǒng)的最佳選擇器件之一。2.4.3 D/A、A/D連接電路D/A 、A/D連接電路如下圖2.5所示。圖2.5 D/A 、A/D連接電路2.5 AT89C52控制模塊在此設(shè)計(jì)中,單片機(jī)最小系統(tǒng)是數(shù)控的核心,可以滿足設(shè)計(jì)要求的控制器核心單片機(jī)有很多種,比如AT89S52,AT89C52,Atmgae16,PIC16F877A等。仔細(xì)的研究論證后設(shè)計(jì)選擇AT89C52單片機(jī)。2.5.1 AT89C52主要功能的簡(jiǎn)單介紹AT89C52為8位通用微處理器,其主要用于會(huì)聚調(diào)整

17、時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC 部寄存器、數(shù)據(jù)RAM與外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IR的接收解碼與與主板CPU通信等。主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負(fù)端。P0P3 為可編程通用I/O 腳,其功能用途由軟件定義。AT89C52的主要功能特性如下:1、兼容MCS51指令系統(tǒng) 2、8k可反復(fù)擦寫(xiě)(大于1000次)Flash ROM; 3、32個(gè)雙向

18、I/O口; 4、256x8bit部RAM; 5、3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷; 6、時(shí)鐘頻率0-24MHz; 7、2個(gè)串行中斷,可編程UART串行通道; 8、2個(gè)外部中斷源,共8個(gè)中斷源; 9、2個(gè)讀寫(xiě)中斷口線,3級(jí)加密位; 10、低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能; 11、有PDIP、PQFP、TQFP與PLCC幾種封裝形式,以適應(yīng)不同產(chǎn)品的需求。2.5.2 AT89C52連接電路AT89C52與各個(gè)模塊構(gòu)成控制器的電路連接圖如下圖2.7所示。.P0口和P3.0P3.2是LCD接口; P1.0P1.3是A/D轉(zhuǎn)換器的接口;P3.3P3.5是D/A轉(zhuǎn)換器的接口;P2口為鍵盤(pán)接口。

19、電路連接圖如圖2.6所示,圖中有連接晶振,這是為了方便擴(kuò)展做實(shí)物,題目只要求用Proteus仿真,由于系統(tǒng)自帶晶振,所以仿真電路圖中可以不畫(huà)晶振。圖2.6 AT89C52電路連接圖2.6 鍵盤(pán)硬件的設(shè)計(jì)方案一:采用獨(dú)立式按鍵電路,每個(gè)按鍵單獨(dú)占有一根I/O接口線,每個(gè)I/O口的工作狀態(tài)互不影響,此類(lèi)鍵盤(pán)采用端口直接掃描方式。缺點(diǎn)為當(dāng)按鍵較多時(shí)占用單片機(jī)的I/O口數(shù)目較多。方案二:采用標(biāo)準(zhǔn)44鍵盤(pán),此類(lèi)鍵盤(pán)采用矩陣式行列掃描方式,優(yōu)點(diǎn)是當(dāng)按鍵較多時(shí)可降低占用單片機(jī)的I/O口數(shù)目,而且可以做到直接輸入電流值而不必步進(jìn)。題目要求可進(jìn)行電流給定值的設(shè)置和步進(jìn)調(diào)整,需要的按鍵比較多。綜合考慮兩種方案與題

20、目要求,采用方案二,使用標(biāo)準(zhǔn)的4x4鍵盤(pán),可以實(shí)現(xiàn)09數(shù)字輸入、“+”、“-”、“OK”、“SET”、“DEL”、“RESET/ON”這些功能按鍵。其電路圖如圖2.7所示圖2.7 鍵盤(pán)電路2.7 顯示硬件的設(shè)計(jì)方案一:使用LED數(shù)碼管顯示。數(shù)碼管采用BCD編碼顯示數(shù)字,對(duì)外界環(huán)境要求低,易于維護(hù)。但根據(jù)題目要求,如果需要同時(shí)顯示給定值和測(cè)量值,以與其他輸出特性值,需顯示的容較多,要使用多個(gè)數(shù)碼管動(dòng)態(tài)顯示,使電路變得復(fù)雜,加大了編程工作量。方案二:使用LCD顯示。LCD具有輕薄短小,可視面積大,方便的顯示數(shù)字,分辨率高,抗干擾能力強(qiáng),功耗小,且設(shè)計(jì)簡(jiǎn)單等特點(diǎn)。綜上所述,選擇方案二。采用LM016

21、L液晶顯示模塊同時(shí)顯示電流給定值和實(shí)測(cè)值以與負(fù)載阻。連接電路圖如下圖2.8所示。圖2.8 LM016L顯示器連接圖總體研究過(guò)程中,硬件的選型和電路的設(shè)計(jì)是重中之重,至此,系統(tǒng)各個(gè)硬件設(shè)計(jì)完成,均滿足設(shè)計(jì)要求。第3章 軟件設(shè)計(jì)軟件程序是實(shí)現(xiàn)數(shù)控的核心,經(jīng)過(guò)專(zhuān)業(yè)研究設(shè)計(jì),采用C語(yǔ)言編程,運(yùn)用KEIL軟件進(jìn)行編譯。3.1 程序說(shuō)明軟件部分需要解決的主要難點(diǎn)是根據(jù)鍵盤(pán)輸入的預(yù)置電流值轉(zhuǎn)換為誤差放大器的高精度基準(zhǔn)電壓,并跟蹤顯示。本設(shè)計(jì)采用C語(yǔ)言,對(duì)AT89C52進(jìn)行編程實(shí)現(xiàn)各種功能。 軟件實(shí)現(xiàn)的功能是: 電流步進(jìn)調(diào)整 電流給定值的設(shè)置 測(cè)量輸出電流值 控制TLC2543工作 控制LTC1456工作 對(duì)

22、反饋回單片機(jī)的電流值進(jìn)行補(bǔ)償處理 驅(qū)動(dòng)液晶顯示器顯示相關(guān)數(shù)值編程是個(gè)復(fù)雜的步驟,不斷的仿真研究后,具體程序見(jiàn)附錄二。3.2 程序流程圖軟件總體流程圖如下圖3.1所示。 圖3.1 軟件總體流程圖按照流程圖的思路編程,程序運(yùn)用KEIL軟件進(jìn)行編譯,在符合要求后寫(xiě)入單片機(jī)不斷的進(jìn)行仿真調(diào)試,直至達(dá)到設(shè)計(jì)要求。第4章 系統(tǒng)仿真與數(shù)據(jù)分析Proteus軟件一款強(qiáng)大的仿真軟件,運(yùn)用于多個(gè)仿真領(lǐng)域。它的電路仿真是互動(dòng)的,它在對(duì)微處理器的應(yīng)用時(shí),可以直接在基于原理圖的虛擬原型上編程,并實(shí)現(xiàn)軟件源碼級(jí)的實(shí)時(shí)調(diào)試?;赑roteus的優(yōu)越性,此設(shè)計(jì)運(yùn)用Proteus軟件仿真各種狀態(tài),并記錄仿真的實(shí)驗(yàn)數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)

23、行理論分析。4.1 系統(tǒng)仿真方法打開(kāi)Proteus軟件,打開(kāi)設(shè)計(jì)的電路文件,然后輸入通過(guò)KEIL軟件編好的程序,點(diǎn)擊開(kāi)始按鈕即可以進(jìn)行測(cè)試。具體操作說(shuō)明:按下RESET/ON鍵顯示四項(xiàng)值,電流設(shè)定初始值為200mA??梢园?,-鍵實(shí)現(xiàn)步進(jìn),數(shù)據(jù)實(shí)時(shí)顯示。要設(shè)置電流直接按數(shù)字鍵無(wú)效。此時(shí)需按SET鍵進(jìn)入電流設(shè)置,之后屏幕顯示 “Are you sure to set?”,按下OK鍵即可設(shè)定,如果不需要設(shè)定,按RESET/ON返回。在設(shè)定電流的過(guò)程中,需要有效按四次數(shù)字鍵,如果在設(shè)置的過(guò)程中想放棄修改,按下RESET/ON鍵,如果需要修改已經(jīng)按下的數(shù)值,可以按DEL鍵,光標(biāo)返回到上一個(gè)數(shù),重新按某

24、一個(gè)數(shù)字鍵即完成修改。設(shè)置完成后屏幕顯示相應(yīng)值。操作顯示界面如圖4.1所示。圖4.1 仿真顯示器顯示界面4.2 系統(tǒng)仿真數(shù)據(jù)4.2.1輸出電流圍仿真由于在程序設(shè)計(jì)上限制了電流輸出圍是202000mA,限定了電壓值小于10V,當(dāng)給定值在量程時(shí)顯示“OK!”;當(dāng)給定值超過(guò)量程時(shí)將顯示“ERROR! RESET!”,如下圖4.2所示。圖4.2 仿真報(bào)錯(cuò)顯示界面若需要設(shè)定輸出電流值,當(dāng)按下SET鍵時(shí),出現(xiàn)如圖4.3所示界面,顯示器顯示“Are you sure to set?”,此時(shí)按下OK鍵,出現(xiàn)如圖4.4所示界面,這是可自由輸入一個(gè)4位數(shù),若滿足2002000mA,則顯示各種數(shù)據(jù),若不滿足2002

25、000mA,則顯示器出現(xiàn)“ERROR!RESET!”報(bào)警畫(huà)面。若發(fā)現(xiàn)輸入數(shù)字超出電流允許圍,可以按DEL刪除輸入值,再次輸入數(shù)值。圖4.3 輸出電流值確認(rèn)SET顯示界面圖4.4 輸出電流值SET顯示界面4.2.2步進(jìn)調(diào)整仿真在量程圍,通過(guò)“”、“”按鈕可實(shí)現(xiàn)1mA步進(jìn),通過(guò)顯示器可觀察到效果。4.2.3輸出電流仿真下圖4.5所示是仿真最低電流200mA負(fù)載電阻為2.0時(shí)的狀態(tài),根據(jù)顯示器顯示容可知,設(shè)定輸出電流值為200mA,實(shí)測(cè)電流值為201mA,輸出電壓為0.419V,負(fù)載電阻為2.0,都滿足設(shè)計(jì)要求。然后,通過(guò)改變?cè)O(shè)定輸出電流值進(jìn)行仿真,記錄的仿真數(shù)據(jù)如表4.1所示。圖4.5 負(fù)載電阻為

26、2.0仿真狀態(tài)圖表4.1 負(fù)載RL=2.0的數(shù)據(jù)表格給定值(mA)200300400500800100015001980電流AD測(cè)值(mA)201301401501800100015001980誤差絕對(duì)值11110010負(fù)載電壓(V)0.4190.6290.8391.4091.6792.0993.1494.155負(fù)載阻值()2.02.02.02.02.02.02.12.0運(yùn)用同樣的仿真步驟,依次仿真負(fù)載電阻為3.0、4.3時(shí)這兩種狀態(tài),記錄仿真數(shù)據(jù)。表4.2 負(fù)載RL=3.0的數(shù)據(jù)表格給定值(mA)200300400500800100015001980電流AD測(cè)值(mA)20130040150

27、1800100015001980誤差絕對(duì)值10110000負(fù)載電壓(V)0.6000.8981.2011.4992.3972.9984.4975.937負(fù)載阻值()3.03.03.03.03.02.93.03.0表4.3 負(fù)載RL=4.3的數(shù)據(jù)表格給定值(mA)200300400500800100015001980電流AD測(cè)值(mA)201301400501800100015001980誤差絕對(duì)值11010010負(fù)載電壓(V)0.8591.2891.7184.1483.4374.2966.4508.510負(fù)載阻值()4.24.34.24.34.34.24.34.24.3 仿真結(jié)果與誤差分析測(cè)量

28、結(jié)果分析:步進(jìn)1mA時(shí)設(shè)定值與實(shí)測(cè)值在2002000mA之間,誤差在5mA以下。步進(jìn)10mA時(shí)設(shè)定值與實(shí)測(cè)值在2001000mA之間,誤差在5mA以下。在10002000mA之間時(shí),誤差在10mA以下。在改變負(fù)載時(shí),誤差在10mA以下。在改變輸出電壓時(shí),誤差在10mA以下。綜上所述,系統(tǒng)仿真實(shí)測(cè)數(shù)據(jù)滿足題目的基本要求,能滿足輸出電流與給定值偏差的絕對(duì)值給定值的1+10 mA。說(shuō)明本電路有較高的精度和穩(wěn)定性。誤差分析:1 由于普通運(yùn)算放大器的運(yùn)放零點(diǎn)漂移,溫度漂移等帶來(lái)的誤差。2 由于采樣電阻在溫度上升時(shí)阻值會(huì)變化,是電流發(fā)生改變。3 受D/A轉(zhuǎn)換器精度,A/D轉(zhuǎn)換器精度,基準(zhǔn)源穩(wěn)定程度等硬件本

29、身的限制, 不可避免地帶來(lái)一定程度的誤差。結(jié)論系統(tǒng)以單片機(jī)AT89C52為核心部件,利用A/D進(jìn)行數(shù)據(jù)輸入,D/A進(jìn)行數(shù)值采集,反饋補(bǔ)償?shù)燃夹g(shù)結(jié)合并配合補(bǔ)償算法實(shí)現(xiàn)了題目中要求的精度。在系統(tǒng)設(shè)計(jì)過(guò)程中,力求硬件電路參數(shù)合理,線路簡(jiǎn)單。發(fā)揮軟件編程靈活的特點(diǎn),調(diào)節(jié)系統(tǒng)的精度。通過(guò)仿真實(shí)驗(yàn)數(shù)據(jù)表明此設(shè)計(jì)完全滿足題目要求,仿真能得出以下結(jié)果:1、輸出電流圍:200mA2000mA;2、可設(shè)置并顯示輸出電流給定值,要求輸出電流與給定值偏差的絕對(duì)值給定值的1+10 mA;3、具有“+”、“-”步進(jìn)調(diào)整功能,步進(jìn)10mA;4、改變負(fù)載電阻,輸出電壓在10V以變化時(shí),要求輸出電流變化的絕對(duì)值輸出電流值的1+

30、10 mA。參考文獻(xiàn)1 唐爽全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽獲獎(jiǎng)作品選編:理工大學(xué),2006:201-241.2 曾屹單片機(jī)原理與應(yīng)用:中南大學(xué),2009:159-1713 立微型計(jì)算機(jī)原理與接口技術(shù):中國(guó)水利水電,2008:278-2864 王新微型計(jì)算機(jī)控制技術(shù):中國(guó)電力,2009:206-215.5 高吉祥全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽培訓(xùn)系列教程.:電子工業(yè),2007:43-65.6 華林,周小方電子設(shè)計(jì)競(jìng)賽實(shí)訓(xùn)教程:航空航天大學(xué),2007:105-168.7 康華光.電子技術(shù)基礎(chǔ)(數(shù)字部分).:高等教育,2007:430-456.附 錄 附錄 一 系統(tǒng)電路總圖附錄 三 系統(tǒng)軟件程序#include#d

31、efine uchar unsigned char #define uint unsigned intsbit rs=P30; sbit rw=P31; sbit lcden=P32; /液晶顯示屏相關(guān)位定義sbit AD_OUT=P10;sbit AD_IN=P11;sbit AD_CS=P12;sbit AD_CLOCK=P13;sbit DA_IN=P33;sbit DA_CK=P34;sbit DA_CS=P35;sbit x=P14;uchar code table1=Are you sure ;uchar code table2= to set I? ;uchar code tab

32、le3= ERROR!RESET! ;unsigned long int temp0,temp1;uint ADCdat,i,AD_DAstart;float Voltage1,Voltage2,r;int vol,rtt;uchar set,volarry04,volarry14,rt2;char iset5=0,0,2,0,0,;void led_init(); /函數(shù)聲明void delayms(uint z);void delay(uint t);void write_(uchar );void write_date(uchar date);void display_AD();uint

33、 read2543(uchar port);void Send1456(uint DACdat);void keyscan();main()led_init();i=20;display_AD();Send1456(20);while(1)keyscan();if(AD_DAstart=1)display_AD();Send1456(iset1*1000+iset2*100+iset3*10+iset4);void delayms(uint z) /延時(shí)函數(shù),參數(shù)為zuint x,y; for(x=z;x0;x-) for(y=110;y0;y-); /z=1測(cè)試為大約1微秒void dela

34、y(uint t) /極短延時(shí) while(t-);void write_(uchar ) /寫(xiě)命令函數(shù)rs=0; /rs置0表示寫(xiě)命令lcden=0; /按時(shí)序圖置低P0=; /位聲明,按原理圖接P0口,輸入數(shù)據(jù)lcden=1; /置高delayms(5); /時(shí)序圖中須有thd2時(shí)間延時(shí)lcden=0; /按時(shí)序圖置低void write_date(uchar date) /寫(xiě)數(shù)據(jù)函數(shù)rs=1; /rs置1表示寫(xiě)數(shù)據(jù)lcden=0; P0=date; /將數(shù)據(jù)賦到P0口delayms(5); lcden=1; delayms(5); lcden=0; void led_init() /初始

35、化函數(shù)lcden=0;rw=0;write_(0x38); /顯示模式設(shè)置:16X2顯示,5X7點(diǎn)陣,8位數(shù)據(jù)write_(0x0c); / 開(kāi)顯示,關(guān)光標(biāo),光標(biāo)不閃爍write_(0x06); / 寫(xiě)一個(gè)數(shù)據(jù)后地址指針加一,光標(biāo)加一write_(0x01); / 數(shù)據(jù)指針與數(shù)據(jù)清0write_(0x80); / 設(shè)置數(shù)據(jù)地址指針,第一行write_(0x80+5);write_date(0x6d);write_date(0x41);write_(0x80); write_date(0x53);write_date(0x30+iset1);write_date(0x30+iset2);writ

36、e_date(0x30+iset3);write_date(0x30+iset4);void display_AD()uchar num;temp0+= read2543(0x00);/進(jìn)行AD轉(zhuǎn)換temp1+= read2543(0x01);i-;/取20次AD轉(zhuǎn)換的結(jié)果,求平均值if(i=0)ADCdat=temp1/20;temp1=0;Voltage2=(ADCdat*5.0)/4096; /基準(zhǔn)電壓為5.0V vol=(int)(Voltage2*4)*1000);/ 擴(kuò)大1000倍volarry13=vol/1000;volarry12=vol%1000/100; volarry1

37、1=vol%100/10;volarry10=vol%10;ADCdat=temp0/20;temp0=0;i=20;Voltage1=(ADCdat*5.0)/4096; /基準(zhǔn)電壓為5.0V vol=(int)(Voltage1*1000+1);/ 擴(kuò)大1000倍 volarry03=vol/1000; volarry02=vol%1000/100; volarry01=vol%100/10;volarry00=vol%10;write_(0x80+0x40);write_date(0x54);write_date(0x30+volarry03);write_date(0x30+volar

38、ry02);write_date(0x30+volarry01);write_date(0x30+volarry00);write_date(0x6d);write_date(0x41);if(vol2000|vol10|volarry13=10)write_(0x01); / 數(shù)據(jù)指針與數(shù)據(jù)清0write_(0x80); / 設(shè)置數(shù)據(jù)地址指針,第一行for(num=0;num16;num+)write_date(table3num);delayms(1); /循環(huán)方式寫(xiě)第一行數(shù)據(jù)set=1;AD_DAstart=0;else write_(0x80+0x40+13); write_date(

39、0x4f); write_date(0x4b); write_date(0x21); write_(0x80+9); write_date(0x30+volarry13); write_date(0x2e); write_date(0x30+volarry12); write_date(0x30+volarry11); write_date(0x30+volarry10); write_date(0x56); r=Voltage2*4/Voltage1; rtt=(int)(r*10); rt1=rtt/10; rt0=rtt%10; write_(0x80+0x49); write_date

40、(0x30+rt1); write_date(0x52); write_date(0x30+rt0);uint read2543(uchar port)uint ad=0,j; AD_CLOCK=0; AD_CS=0; port=4; delay(50); for(j=0;j12;j+) if(AD_OUT) ad|=0x01; AD_IN=(bit)(port&0x80); AD_CLOCK=1; delay(6); AD_CLOCK=0; delay(3); port=1; ad=1; return(ad);void Send1456(uint DACdat)uchar i=0;DA_CK

41、=0;delay(2);DA_CS=0;delay(2);for(i=0;i12;i+)DA_IN=(bit)(DACdat&0x800);DA_CK=1;DACdat=1;DA_CK=0;DA_CS=1;DA_CS=0;void keyscan() /矩陣鍵盤(pán)uchar temp,keycount,num; / 定義局部變量P2=0xfe; / 檢測(cè)最上面一行各鍵是否有按鍵按下 temp=P2; / 將P2口的值賦給temp temp=temp&0xf0; / 位與 if(temp!=0xf0) delayms(100); temp=P2; temp=temp&0xf0; if(temp!=

42、0xf0) /確認(rèn)被按下,防止抖動(dòng) temp=P2; switch(temp) case 0xee: /檢測(cè)到7被按下 if(keycount!=0) write_date(0x30+7); isetkeycount+=7; break; case 0xde: /檢測(cè)到8被按下 if(keycount!=0) write_date(0x30+8); isetkeycount+=8; break; case 0xbe: /檢測(cè)到9被按下 if(keycount!=0) write_date(0x30+9); isetkeycount+=9; break;case 0x7e: /檢測(cè)到取消鍵被按下

43、 write_(0x01); / 數(shù)據(jù)指針與數(shù)據(jù)清0 write_(0x0c); write_(0x80+5); write_date(0x6d); write_date(0x41); write_(0x80); write_date(0x53); write_date(0x30+iset1); write_date(0x30+iset2); write_date(0x30+iset3); write_date(0x30+iset4); AD_DAstart=1; while(temp!=0xf0) /松手檢測(cè) temp=P2; temp=P2&0xf0; P2=0xfd; / 檢測(cè)最二行各鍵

44、是否有按鍵按下 temp=P2; / 將P2口的值賦給temp temp=temp&0xf0; / 位與 if(temp!=0xf0) delayms(100); temp=P2; temp=temp&0xf0; if(temp!=0xf0) /確認(rèn)被按下,防止抖動(dòng) temp=P2; switch(temp) case 0xed: /檢測(cè)到4被按下 if(keycount!=0) write_date(0x30+4); isetkeycount+=4; break; case 0xdd: /檢測(cè)到5被按下 if(keycount!=0) write_date(0x30+5); isetkeyc

45、ount+=5; break; case 0xbd: /檢測(cè)到6被按下 if(keycount!=0) write_date(0x30+6); isetkeycount+=6; break;case 0x7d: /檢測(cè)到+被按下 iset4+; if(iset4=10) iset4=0; iset3+; if(iset3=10) iset3=0;iset2+;if(iset2=10)iset2=0;iset1+; write_(0x80+5); write_date(0x6d); write_date(0x41); write_(0x80); write_date(0x53); write_date(0x30+iset1); write_da

溫馨提示

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