版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于數(shù)控直流電流源系統(tǒng)的設(shè)計(jì) </p><p> 宜春學(xué)院 物理科學(xué)與工程技術(shù)學(xué)院 電子信息科學(xué)與技術(shù)專業(yè) 李偉</p><p><b> 指導(dǎo)老師:胡振平</b></p><p> 摘要:隨著電子技術(shù)的發(fā)展、數(shù)字電路應(yīng)用領(lǐng)域的擴(kuò)展,人們對(duì)數(shù)控恒定電流器件的需求越來越高。應(yīng)社會(huì)發(fā)展的需求,對(duì)基于單
2、片機(jī)控制的“數(shù)控直流電流源的設(shè)計(jì)”進(jìn)行研究論證,并運(yùn)用Proteus軟件進(jìn)行仿真。以直流穩(wěn)壓電源和穩(wěn)流電源為核心,結(jié)合單片機(jī)最小系統(tǒng)實(shí)現(xiàn)對(duì)輸出電流的控制。首先采用了單片集成穩(wěn)壓芯片實(shí)現(xiàn)直流穩(wěn)壓,然后采用了分立元件實(shí)現(xiàn)穩(wěn)流。為實(shí)現(xiàn)對(duì)輸出電流的精確控制:一方面,通過D/A輸出實(shí)現(xiàn)電流的預(yù)置,再通過運(yùn)算放大器控制晶體管的輸出電流;另一方面,運(yùn)用A/D轉(zhuǎn)換器件將輸出電流的采樣值送入單片機(jī),與預(yù)置值進(jìn)行比較,將誤差值通過D/A轉(zhuǎn)換芯片添加到調(diào)整電
3、路,從而進(jìn)一步降低了輸出電流的紋波。 </p><p> Abstract:The requiements of numerical controlling constant current devices is increasing as development of electronic technology and expanding of di
4、gital circuit applicational field. As to satisfy society development, do a study based on " Numerical control dc current source design " of SCM controlling and</p><p> apply Proteus to simulating
5、software.DC(digital current )Voltage regulator and DC current regulator is the key part of the design,its output current is controlled by single chip microprocessor,Firstly,single chip IC(integrated circuit)Voltage regul
6、ator LM338K is used to generate stable voltage, and then desperate devices is used to generate stabilize current . Tocontrol the output current ,on one hand ,system sets output current by D/A(digital/analogue converter
7、and controls current of transist</p><p><b> 目錄</b></p><p><b> 1 引言1</b></p><p> 1.1 數(shù)控直流電流源的發(fā)展現(xiàn)狀1</p><p> 1.2 數(shù)控直流電流源的研究意義1</p>
8、<p> 1.3 該研究解決的主要內(nèi)容1</p><p> 2 設(shè)計(jì)任務(wù)及要求1</p><p><b> 2.1任務(wù)1</b></p><p> 2.2 設(shè)計(jì)思路2</p><p> 2.3 方案論證2</p><p> 2.4 總體方案設(shè)計(jì)2</p&
9、gt;<p> 3 硬件系統(tǒng)的設(shè)計(jì)3</p><p> 3.1 硬件系統(tǒng)的模塊3</p><p> 3.1.1 單片機(jī)最小系統(tǒng)3</p><p> 3.1.2 自制電源模塊6</p><p> 3.1.3 顯示模塊6</p><p> 3.1.4 鍵盤模塊8</p
10、><p> 3.1.5 電流源模塊8</p><p> 3.1.6 負(fù)載模塊9</p><p> 3.1.4 D/A、A/D轉(zhuǎn)換模塊9</p><p> 3.2 系統(tǒng)的原理圖10</p><p> 4 軟件系統(tǒng)的設(shè)計(jì)11</p><p> 4.1 單片機(jī)資源使用情況
11、11</p><p> 4.2 軟件系統(tǒng)的模塊11</p><p> 4.3 程序流程圖12</p><p> 4.4 程序清單16</p><p> 5 仿真測(cè)試及結(jié)果16</p><p> 5.1 設(shè)計(jì)結(jié)論及使用方法16</p><p> 5.2 仿真結(jié)果
12、16</p><p> 5.2.1 輸出電流范圍仿真16</p><p> 5.2.2 步進(jìn)調(diào)整仿真17</p><p> 5.2.3 輸出電流仿真18</p><p> 5.3 誤差分析19</p><p><b> 6 總結(jié)20</b></p>&l
13、t;p><b> 參考文獻(xiàn)21</b></p><p><b> 謝辭22</b></p><p><b> 附 錄23</b></p><p><b> 1 引言</b></p><p> 1.1 數(shù)控直流電流源的發(fā)展現(xiàn)狀<
14、;/p><p> 電源技術(shù)尤其是數(shù)控電源技術(shù)是一門實(shí)踐性很強(qiáng)的工程技術(shù),服務(wù)于各行各業(yè)。電子電力技術(shù)是電能的最佳應(yīng)用技術(shù)之一?,F(xiàn)在電源技術(shù)融合了電子、電氣、系統(tǒng)集成、控制理論、材料等眾多領(lǐng)域。隨著數(shù)控電源在電子設(shè)備中的普遍使用,普通電源在工作時(shí)產(chǎn)生的誤差,會(huì)影響整個(gè)系統(tǒng)的精確度。電源在使用時(shí)會(huì)產(chǎn)生很多不良后果,世界各國(guó)紛紛對(duì)電源產(chǎn)品提出了不同要求并制定了一系列的產(chǎn)品精度標(biāo)準(zhǔn)。隨著經(jīng)濟(jì)全球化的發(fā)展,恒流源是電路中廣泛
15、使用的一種電路,恒流源的實(shí)質(zhì)是利用器件對(duì)電流進(jìn)行反饋,動(dòng)態(tài)調(diào)節(jié)設(shè)備的供電狀態(tài),從而使得所輸出的電流趨于恒定。本課題對(duì)恒流源進(jìn)行研究,設(shè)計(jì)出所需要的符合標(biāo)準(zhǔn)的數(shù)控制流電流源。</p><p> 1.2 數(shù)控直流電流源的研究意義</p><p> 數(shù)控直流電流源是我們生活中比較常見的設(shè)備,這次設(shè)計(jì)就是基于單片機(jī)為主體所設(shè)計(jì)的微機(jī)數(shù)字觸發(fā)式直流電流源,相比其他以往的電源設(shè)計(jì),此次的課題更新
16、穎,更符合技術(shù)發(fā)展的潮流。設(shè)計(jì)中,對(duì)整體電源進(jìn)行了硬件、軟件總體設(shè)計(jì),從兩方面滿足設(shè)計(jì)的基本要求的同時(shí),對(duì)整個(gè)微機(jī)控制的系統(tǒng)有了比較全面的了解。</p><p> 1.3 該研究解決的主要內(nèi)容</p><p> 本次對(duì)數(shù)控直流電流源的設(shè)計(jì)主要是針對(duì)以下方面:如何實(shí)現(xiàn)對(duì)電源的輸出控制,該系統(tǒng)主要是應(yīng)用單片機(jī),用微處理器來替代傳統(tǒng)直流穩(wěn)壓電源中手動(dòng)旋轉(zhuǎn)電位器,實(shí)現(xiàn)輸出電壓的連續(xù)可調(diào),精度
17、要求高。實(shí)現(xiàn)的途徑很多,可以用DAC的模擬輸出控制電源的基準(zhǔn)電壓或分壓電阻,或者用其它更有效的方法,因此如何選擇簡(jiǎn)單有效的方法是本課題需要解決的首要問題;數(shù)控直流電流源要實(shí)現(xiàn)電流的鍵盤化輸出控制,同時(shí)對(duì)于輸出的電流的精度也具有相應(yīng)的要求,如何有效的實(shí)現(xiàn)這些功能也是課題所需研究解決的問題。</p><p> 2 設(shè)計(jì)任務(wù)及要求</p><p><b> 2.1任務(wù)</b
18、></p><p> 設(shè)計(jì)并制作數(shù)控直流電流源。輸入交流200~240V,50Hz;輸出直流電壓≤10V。其原理示意圖如下所示。</p><p><b> 2.2 設(shè)計(jì)思路</b></p><p> 采用改進(jìn)型單輸出端單向電流源電路來產(chǎn)生恒定的電流。此方法是利用精密電阻取樣得到反饋電壓,將反饋電壓和高精度的參考電壓比較得到誤差電壓,
19、該誤差電壓經(jīng)放大后輸出控制調(diào)整管的導(dǎo)通程度,使預(yù)設(shè)電流值和實(shí)測(cè)電流值的步步逼近,直到相等,從而達(dá)到數(shù)控的目的。</p><p><b> 2.3 方案論證</b></p><p> 對(duì)于數(shù)控直流電流源的設(shè)計(jì)有很多方案,下面做一下介紹:</p><p> 方案一:方框圖如圖1所示,數(shù)控直流電流源由鍵盤、控制器、顯示器、數(shù)模轉(zhuǎn)換、電壓電流轉(zhuǎn)換
20、和模數(shù)轉(zhuǎn)換等部分組成,鍵盤的作用是設(shè)定電流值和確定電流步進(jìn)值;控制器的作用是將設(shè)定電流值的8位(或12位)二進(jìn)制輸出;顯示器的作用是顯示設(shè)定電流值;數(shù)模轉(zhuǎn)換的作用是設(shè)定電流值的數(shù)字量轉(zhuǎn)換為模擬量;電壓電流轉(zhuǎn)換的作用是將電壓轉(zhuǎn)換成恒定電流輸出;模數(shù)轉(zhuǎn)換的作用是將輸出的模擬量再轉(zhuǎn)換為數(shù)字量反饋到控制器,使實(shí)際輸出電流值與設(shè)定電流值一致。</p><p> 圖1 方案一的方框圖</p><p&g
21、t; 方案二:方框圖如圖2所示,采用改進(jìn)型的單輸出端單向電流源電路來產(chǎn)生恒定電流。該方法是用精密電阻取樣得到反饋電壓,將反饋電壓與高精度的參考電壓比較得到誤差電壓,此誤差電壓經(jīng)放大后輸出控制調(diào)整管的導(dǎo)通程度,使預(yù)設(shè)電流值和實(shí)測(cè)電流值的逐步逼近,直至相等,從而達(dá)到數(shù)控的目的。從題目的要求來分析,該題目最大的難點(diǎn)在于大電流輸出和高精度控制,所以在具體的方案確定中,大電流、功耗,以及精度、誤差等都是我們所必須要考慮和克服的。</p&g
22、t;<p> 2.4 總體方案設(shè)計(jì)</p><p> 方案一的數(shù)控直流電流源設(shè)計(jì)較簡(jiǎn)單,對(duì)于電流的變化是用相比而言使用可編程芯片,如CPLD或FPGA等和DAC控制,采用LED數(shù)碼管進(jìn)行實(shí)時(shí)顯示,操作也較方便。</p><p> 方案二的數(shù)控直流電源設(shè)計(jì)采用單片機(jī)作為核心控制,基本原理簡(jiǎn)單,實(shí)現(xiàn)比較方便,電源的電流值也可以調(diào)整到較精確的數(shù)值,同樣的也是采用LCD進(jìn)行顯示
23、。此方案采用保持電阻恒定而改變輸入電壓的方法來改變電流的大小。利用高精度D/A轉(zhuǎn)換器在單片機(jī)程序控制下提供可變的高精度的基準(zhǔn)電壓,該基準(zhǔn)電壓經(jīng)過V/I轉(zhuǎn)換電路得到電流,再通過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ì)電流輸出的影響較小。</p><p> 根據(jù)題目要求
24、以及設(shè)計(jì)思路,比較之后,基于以上優(yōu)點(diǎn)以及對(duì)于單片機(jī)的成熟應(yīng)用,因此我決定用單片機(jī)來作為控制器,我所采用的是第二種方案</p><p> 圖2 方案二方框圖</p><p> 3 硬件系統(tǒng)的設(shè)計(jì)</p><p> 3.1 硬件系統(tǒng)的模塊</p><p> 3.1.1 單片機(jī)最小系統(tǒng)</p><p><
25、;b> ?。?) 時(shí)鐘電路</b></p><p> 單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作.在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路,只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元,決定單片機(jī)的工作速度。</p><p> 一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶
26、振的頻率確定。電路中石英晶體振蕩器的頻率為12MHz,兩個(gè)電容 C1、C2的作用有兩個(gè):一是幫助振蕩器起振;二是對(duì)振蕩器的頻率進(jìn)行微調(diào)。C1、C2的典型值為33PF。單片機(jī)的時(shí)鐘電路如圖3所示。</p><p><b> ?。?) 復(fù)位電路</b></p><p> 單片機(jī)的第9腳RST為硬件復(fù)位端,只要將該端持續(xù)4個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀
27、態(tài)都恢復(fù)到初始化狀態(tài)。</p><p> 復(fù)位電路用于產(chǎn)生復(fù)位信號(hào),通過RST引腳送入單片機(jī),進(jìn)行復(fù)位。因?yàn)锳T89S52單片機(jī)的復(fù)位是靠外部電路實(shí)現(xiàn)的。復(fù)位電路的好壞直接影響單片機(jī)系統(tǒng)工作的可靠性,因此,要重視復(fù)位電路的設(shè)計(jì)和研究。只要RST端保持10ms以上的高電平,就能使單片機(jī)有效地復(fù)位。AT89S52單片機(jī)通常采用上電自動(dòng)復(fù)位、按鍵復(fù)位、以及上電加按鍵復(fù)位等,我們采用的是上電加按鍵復(fù)位方式,這樣做的優(yōu)點(diǎn)
28、是上電后可以直接進(jìn)入復(fù)位狀態(tài),當(dāng)程序出現(xiàn)錯(cuò)誤時(shí),可以隨時(shí)使電路復(fù)位。則復(fù)位電路圖如圖4所示。</p><p> (3) AT89C52單片機(jī)</p><p> AT89C52是一種帶8K字節(jié)閃爍可擦除可編程只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器,簡(jiǎn)稱單片機(jī)。AT89C52單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p> AT
29、89C52共有4個(gè)8位的并行雙向I/O口,分別記作P0、P1、P2、P3,這4個(gè)口除可按字節(jié)尋址以外,還可按位尋址。P0口地址為80H,位地址為80H~87H。各位口線具有完全相同但又相互獨(dú)立的邏輯電路。P1口地址為90H,位地址為90H~97H。P1口只能作為通用數(shù)據(jù)I/O口使用,所以在電路結(jié)構(gòu)上與P0口有些不同。P2口地址為A0H,位地址為A0H~A7H。P2口既可以作為系統(tǒng)高位地址線使用,也可以為通用I/O口使用,所以P2口電路邏
30、輯與P0口類似。P3口地址為B0H,位地址為B0H~B7H。雖然P3口可以作為通用I/O口使用,但在實(shí)際應(yīng)用中它的第二功能信號(hào)更為重要。</p><p> AT89C52單片機(jī)還有一個(gè)地址鎖存控制信號(hào)ALE,外部程序存儲(chǔ)器讀選通信號(hào),訪問程序存儲(chǔ)器控制信號(hào),復(fù)位信號(hào)RST,地線和+5V的電源。單片機(jī)最小系統(tǒng)圖如圖5所示.</p><p> 圖3 單片機(jī)的時(shí)鐘電路圖</p>
31、<p> 圖4 單片機(jī)復(fù)位電路圖</p><p> 圖5 單片機(jī)最小系統(tǒng)圖</p><p> 3.1.2 自制電源模塊</p><p> 這次設(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)行研究后得出以下方案。</p>
32、;<p> 如圖6所示,本電源先通過變壓器電壓變換隔離,橋式全波整流,電容濾波,再通過三端固定輸出集成穩(wěn)壓器產(chǎn)生穩(wěn)定電壓+15V,-15V,+5V,穩(wěn)壓器內(nèi)部電路由恒流源,基準(zhǔn)電壓,取樣電阻,比較放大,調(diào)整管,保護(hù)電路,溫度補(bǔ)償電路等組成。為了改善紋波特性,在輸入端加接電容。為了改善負(fù)載的瞬態(tài)響應(yīng),在輸出端加接電容。</p><p> 采用三端集成穩(wěn)壓器7805、7815、7915分別得到+5V
33、和±15V的穩(wěn)定電壓,再外對(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ì)磁電壓代替。</p><p> 3.1.3 顯示模塊</p><p> 方案一:使用LED數(shù)碼管顯示。數(shù)碼管采用BCD編碼顯示數(shù)字,
34、對(duì)外界環(huán)境要求低,易于維護(hù)。但根據(jù)題目要求,如果需要同時(shí)顯示給定值和測(cè)量值,以及其他輸出特性值,需顯示的內(nèi)容較多,要使用多個(gè)數(shù)碼管動(dòng)態(tài)顯示,使電路變得復(fù)雜,加大了編程工作量。</p><p> 方案二:使用LCD液晶顯示。LCD具有輕薄短小,可視面積大,方便的顯示數(shù)字,分辨率高,抗干擾能力強(qiáng),功耗小,且設(shè)計(jì)簡(jiǎn)單等特點(diǎn)。</p><p> LM016L液晶模塊采用HD44780控制器,H
35、D44780具有簡(jiǎn)單而功能較強(qiáng)的指令集,可以實(shí)現(xiàn)字符移動(dòng),閃爍等功能,LM016L與單片機(jī)MCU通訊能采用4位或者8位并行傳輸?shù)膬煞N方式,HD44780控制器由兩個(gè)8位寄存器,指令寄存器(IR)和數(shù)據(jù)寄存器(DR)忙標(biāo)志(BF),顯示數(shù)RAM(DDRAM),字符發(fā)生器ROMA(CGOROM)字符發(fā)生器RAM(CGRAM),地址計(jì)數(shù)器RAM(AC)。LM016L液晶模塊的引腳功能如下表1所示。</p><p>
36、圖6 穩(wěn)壓電源電路圖</p><p> 表1 LM016L引腳功能</p><p> 綜上所述,選擇方案二。采用LM016L液晶顯示模塊同時(shí)顯示電流給定值和實(shí)測(cè)值以及負(fù)載內(nèi)阻。連接電路圖如圖7所示。</p><p> 圖7 LM016L與單片機(jī)的接線圖</p><p> 3.1.4 鍵盤模塊</p><p&
37、gt; 采用標(biāo)準(zhǔn)4×4鍵盤,此類鍵盤采用矩陣式行列掃描方式,優(yōu)點(diǎn)是當(dāng)按鍵較多時(shí)可降低占用單片機(jī)的I/O口數(shù)目,而且可以做到直接輸入電流值而不必步進(jìn)。</p><p> 使用標(biāo)準(zhǔn)的4x4鍵盤,可以實(shí)現(xiàn)0~9數(shù)字輸入、“+”、“-”、“OK”、“SET”、“DEL”、“RESET/ON”這些功能按鍵。其電路圖如圖8所示。</p><p> 圖8 鍵盤與單片機(jī)的接線圖</
38、p><p> 3.1.5 電流源模塊</p><p> 采用運(yùn)放和場(chǎng)效應(yīng)管的壓控恒流源。該恒流源電路由運(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)電壓近似線性地控制電流。該電路中,為了滿足題目的設(shè)計(jì)要求,調(diào)整管用大功率場(chǎng)效應(yīng)管IRF640。當(dāng)場(chǎng)效應(yīng)管工作到飽和
39、區(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 所以Iout=Is= Un/R2= Uin/R2。正因?yàn)镮out=Uin/R2,電流Iout被輸入電壓UI控制,即Iout不會(huì)隨RL的變化而變化,從而實(shí)現(xiàn)壓控恒流。電路原理圖如圖9所示</p>
40、;<p> 圖9 壓控恒流源模塊電路圖</p><p> 3.1.6 負(fù)載模塊</p><p> 根據(jù)題目要求,設(shè)計(jì)了如圖10所示的電路圖。電路綜合各方面的考慮因素在里面,由于TLC2543所測(cè)電壓值在5V內(nèi),而負(fù)載一端接15V電壓源另一端接功率管,因此采用差分增益電路采樣負(fù)載電壓,當(dāng)Rb/Rc=Rd/Ra時(shí),OP07輸出電壓ADin=Rb/Rc(Va-Vb),硬件
41、設(shè)置Rb/Rc=1/4,軟件還原負(fù)載電壓,保證測(cè)量精度。而采樣精密電阻R1為1Ω,通過采樣R1兩端電壓值換算成電流值即可得到輸出電流。</p><p> 3.1.4 D/A、A/D轉(zhuǎn)換模塊</p><p> D/A、A/D模塊是單片機(jī)與外部數(shù)據(jù)連接的通道,因此這兩個(gè)模塊的選擇與使用應(yīng)當(dāng)合理。</p><p> ?。?)D/A轉(zhuǎn)換器 </p&g
42、t;<p> 采用DAC模塊提供高精度的基準(zhǔn)電壓,即通過CPU發(fā)出的二進(jìn)制轉(zhuǎn)換為的模擬電壓,送給誤差放大器,實(shí)現(xiàn)步進(jìn)要求。</p><p> 根據(jù)題目擴(kuò)展功能要求輸出,以1mA為步進(jìn),需要的級(jí)數(shù)由公式(1)可見。</p><p><b> ?。?)</b></p><p> ,故應(yīng)采用12位D/A轉(zhuǎn)換器為D/A轉(zhuǎn)換芯片,供選
43、擇的很多,在此選LTC1456芯片。</p><p><b> ?。?)A/D轉(zhuǎn)換器</b></p><p> A/D模塊的是反饋的核心,我采用Proteus元件庫(kù)中的TLC2543芯片實(shí)現(xiàn)。TLC2543是一種低功耗、低電壓的12位串行開關(guān)電容型AD轉(zhuǎn)換器。它使用逐次逼近技術(shù)完成A/D轉(zhuǎn)換過程。最大非線性誤差小于1LSB,轉(zhuǎn)換時(shí)間9µs。它具有三個(gè)控制器
44、輸入端,采用簡(jiǎn)單的3線SPI串行接口可方便與微機(jī)進(jìn)行連接,是12位數(shù)據(jù)采集系統(tǒng)的最佳選擇器件之一。</p><p> (3)D/A、A/D連接電路</p><p> D/A 、A/D連接電路如圖11所示。</p><p> 圖10 負(fù)載電流、電壓測(cè)量電路圖</p><p> 。3.2 系統(tǒng)的原理圖</p><p
45、> 所繪制的系統(tǒng)原理圖采用的是Proteus軟件。其系統(tǒng)原理圖見附錄所示。</p><p> 圖11 D/A、A/D連接電路圖</p><p> 4 軟件系統(tǒng)的設(shè)計(jì)</p><p> 4.1 單片機(jī)資源使用情況</p><p> 本設(shè)計(jì)用到了單片機(jī)控制DA和AD轉(zhuǎn)換功能,另外用到了單片機(jī)的中斷功能,在數(shù)據(jù)的顯示時(shí)所采用的
46、是查表的方法,因此需要將表格、數(shù)據(jù)存到單片機(jī)的程序存儲(chǔ)器中去。數(shù)控直流電流源的數(shù)據(jù)要存儲(chǔ)到數(shù)據(jù)存儲(chǔ)器中去,用到了30H到50H之間的單元。</p><p> 由于數(shù)控直流電流源需要可以進(jìn)行調(diào)節(jié),因此,需要在單片機(jī)的P口上加上按鍵,采用行列式鍵盤,直接接在P2口上。用到的液晶顯示器接到了單片機(jī)的P0口線上,液晶顯示器的使能端用到了P3口線。</p><p> 4.2 軟件系統(tǒng)的模塊&l
47、t;/p><p><b> ?。?)定時(shí)模塊</b></p><p> 在本設(shè)計(jì)中用到了幾個(gè)定時(shí)模塊,第一個(gè)定時(shí)是用于定時(shí)按鍵的抖動(dòng)時(shí)間,因?yàn)楫?dāng)按鍵時(shí)都會(huì)出現(xiàn)電壓抖動(dòng),但對(duì)鍵盤工作有影響的是鍵閉合時(shí)的抖動(dòng),所以為了確保鍵掃描的正確性,每當(dāng)掃描到有閉合鍵時(shí),都要進(jìn)行去抖動(dòng)處理。本設(shè)計(jì)中采用的是軟件去抖動(dòng)的方法,抖動(dòng)的定時(shí)采用的軟件的延時(shí)進(jìn)行定時(shí)的。</p>
48、<p> 第二個(gè)定時(shí)的功能是在數(shù)碼管顯示時(shí)的延時(shí)時(shí)間,即在數(shù)碼管顯示時(shí)是采用查表的方法進(jìn)行顯示的,因此需要用到一定的延時(shí),使得我們能夠看的清楚所顯示的內(nèi)容,在這里用到的延時(shí)也是采用軟件的延時(shí)。</p><p><b> ?。?)按鍵操作模塊</b></p><p> 我用到了三個(gè)獨(dú)立式鍵盤進(jìn)行按鍵的操作。因?yàn)楸緮?shù)控直流電流源的操作簡(jiǎn)單,而只用到了三個(gè)鍵,
49、因此在鍵盤的操作時(shí)采用的是一步步遞進(jìn)的方法,一步一步往下操作的,設(shè)置了鍵的名稱為ON/OFF鍵、ADD鍵、DEC鍵,在軟件設(shè)計(jì)中是在ON/OFF鍵按下了之后才會(huì)有ADD鍵、DEC鍵的操作,鍵與鍵之間的功能采用層層套用使得程序看起來更加清晰明了。</p><p> 采用查詢的方法對(duì)按鍵進(jìn)行操作,當(dāng)查詢到按鍵有動(dòng)作時(shí),則執(zhí)行相應(yīng)的操作。獨(dú)立式鍵盤的程序設(shè)計(jì)一般把鍵盤掃描程序設(shè)計(jì)成子程序,以便其它各程序調(diào)用。鍵盤掃描
50、子程序KEY應(yīng)具有以下功能:判定有無按鍵動(dòng)作;去抖動(dòng);確認(rèn)是否真正有閉合鍵;計(jì)算并保存閉合鍵鍵碼;判定閉合鍵是否釋放;恢復(fù)閉合鍵鍵碼。</p><p> ?。?) D/A轉(zhuǎn)換模塊</p><p> 主要是利用單片機(jī)做處理器,然后經(jīng)過數(shù)模轉(zhuǎn)換模塊進(jìn)行轉(zhuǎn)換,將單片輸出的二進(jìn)制代碼轉(zhuǎn)換成相應(yīng)的模擬電壓輸出,這樣使得所設(shè)計(jì)的電流源更加精確。在此模塊中,因?yàn)檫M(jìn)行換擋的轉(zhuǎn)換,在這里我所采用的是做除
51、法,然后再存儲(chǔ)除法得到的商和余數(shù),這里面我用到了兩個(gè)子程序,一個(gè)是將十進(jìn)制轉(zhuǎn)換為十六進(jìn)制數(shù),二個(gè)是采用移位相減的方法做除法。</p><p> ?。?)A/D轉(zhuǎn)換模塊</p><p> 當(dāng)所設(shè)定的二進(jìn)制代碼經(jīng)過數(shù)模轉(zhuǎn)換模塊輸出之后,經(jīng)過A/D轉(zhuǎn)換模塊進(jìn)行采樣之后,由單片機(jī)進(jìn)行處理。然后輸出相應(yīng)的電流值大小。</p><p> ?。?) LCD顯示模塊</p
52、><p> 寄存器選擇控制表如表2所示。</p><p> 表2 寄存器選擇控制表</p><p> 注:關(guān)于E=H脈沖——開始時(shí)初始化E為0,然后置E為1,再清0。</p><p> busy flag(DB7):在此位為被清除為0時(shí),LCD將無法再處理其他的指令要求。</p><p> 1602液晶模塊內(nèi)部的
53、字符發(fā)生存儲(chǔ)器已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,每一個(gè)字符都有一個(gè)固定的代碼,顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。因?yàn)?602識(shí)別的是ASCII碼,試驗(yàn)可以用ASCII碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量賦值,</p><p> 4.3 程序流程圖</p><p><b> ?。?)主控制流程圖</b><
54、/p><p> 在此次設(shè)計(jì)的過程中,我是采用模塊的設(shè)計(jì)方法,一個(gè)一個(gè)實(shí)現(xiàn)功能,在本次課程設(shè)計(jì)的過程中,我都是采用這種思想進(jìn)行數(shù)控直流電流源的設(shè)計(jì)的。因此,在設(shè)計(jì)的過程,讓我能夠很輕易的就抓住了主要的設(shè)計(jì)核心。主控制流程圖如圖12所示。</p><p> ?。?)按鍵操作流程圖</p><p> 對(duì)于鍵盤的設(shè)計(jì),我專門設(shè)計(jì)了一個(gè)鍵盤掃描子程序,它的功能是,首先對(duì)鍵盤進(jìn)
55、行處理,給每一個(gè)鍵都設(shè)置了一個(gè)鍵碼,那么只要判斷鍵盤的鍵碼就可以知道是否有鍵按下,如若有鍵按下也可以判斷是哪一個(gè)鍵按下了。</p><p> 這次設(shè)計(jì)中,鍵盤掃描子程序的代號(hào)為KEY,其鍵盤掃描程序設(shè)計(jì)的流程框圖如圖13所示。</p><p> ?。?)D/A轉(zhuǎn)換、A/D轉(zhuǎn)換流程圖</p><p> 本設(shè)計(jì)主要是用到LTC1456進(jìn)行數(shù)模轉(zhuǎn)換,用到TLC2543
56、進(jìn)行模數(shù)轉(zhuǎn)換,其轉(zhuǎn)換的流程圖如圖14所示。</p><p> (4) 數(shù)制轉(zhuǎn)換流程</p><p> 由于使用的十進(jìn)制數(shù),而在做除法的時(shí)候,要進(jìn)行數(shù)制的轉(zhuǎn)換,其轉(zhuǎn)換的流程圖如圖15所示。</p><p> 圖12 主控制流程圖</p><p> 圖13 按鍵掃描子程序流程圖</p><p> 圖14 D
57、/A轉(zhuǎn)換、A/D轉(zhuǎn)換流程圖</p><p> 圖15 數(shù)制轉(zhuǎn)換流程圖</p><p><b> 4.4 程序清單</b></p><p> 所設(shè)計(jì)的程序清單見附錄。</p><p> 5 仿真測(cè)試及結(jié)果</p><p> 5.1 設(shè)計(jì)結(jié)論及使用方法</p><
58、p> 本次通過對(duì)數(shù)控直流電流源的設(shè)計(jì),知道了利用單片機(jī)處理之后,進(jìn)行數(shù)控直流電流源的顯示。本次設(shè)計(jì)比較成功,在按鍵操作中能夠按照預(yù)先給定的功能進(jìn)行操縱。</p><p> 打開Proteus軟件,打開設(shè)計(jì)的電路文件,然后輸入通過KEIL軟件編好的程序,點(diǎn)擊開始按鈕即可以進(jìn)行測(cè)試。按了復(fù)位鍵之后,液晶顯示屏上也能顯示“S0200mA"。按下RESET/ON鍵顯示四項(xiàng)值。電流設(shè)定初始值為200mA
59、??梢园?,-鍵實(shí)現(xiàn)步進(jìn),數(shù)據(jù)實(shí)時(shí)顯示。要設(shè)置電流直接按數(shù)字鍵無效。此時(shí)需按SET鍵進(jìn)入電流設(shè)置,之后屏幕顯示 “yichun xueyuan huan ying ni!”,按下OK鍵即可設(shè)定,如果不需要設(shè)定,按RESET/ON返回。在設(shè)定電流的過程中,需要有效按四次數(shù)字鍵,如果在設(shè)置的過程中想放棄修改,按下RESET/ON鍵,按DEL鍵可以修改已經(jīng)按下的數(shù)值,光標(biāo)返回到上一個(gè)數(shù),重新按某一個(gè)數(shù)字鍵即完成修改。設(shè)置完成后屏幕顯示相應(yīng)值。
60、操作顯示界面如圖16所示。如果設(shè)定的電流值不在200mA~2000mA內(nèi)屏幕顯示 “ERROR! RESET”。</p><p> 圖16 仿真顯示器顯示界面圖</p><p><b> 5.2 仿真結(jié)果</b></p><p> 5.2.1 輸出電流范圍仿真</p><p> 在程序設(shè)計(jì)上限制了電流輸出范圍
61、是20~2000mA,限定了電壓值小于10V,當(dāng)給定值在量程內(nèi)時(shí)顯示“OK!”;當(dāng)給定值超過量程時(shí)將顯示“ERROR! RESET”,如下圖17所示。</p><p> 若需要設(shè)定輸出電流值,當(dāng)按下SET鍵時(shí),出現(xiàn)如圖18所示界面,顯示器顯示“yichun xueyuan huan ying ni!”,此時(shí)按下OK鍵,出現(xiàn)如圖19所示界面,這是可隨意輸入一個(gè)4位數(shù),如果滿足200~2000mA,則顯示各種數(shù)據(jù),
62、若不滿足200~2000mA,則顯示器出現(xiàn)“ERROR!RESET!”報(bào)警畫面。如果發(fā)現(xiàn)輸入數(shù)字不在電流允許范圍,可以按SET鍵再次輸入數(shù)值。</p><p> 圖17 仿真報(bào)錯(cuò)顯示界面圖</p><p> 圖18 輸出電流值確認(rèn)SET顯示界面圖</p><p> 圖19 輸出電流值SET顯示界面圖</p><p> 5.2.2
63、 步進(jìn)調(diào)整仿真</p><p> 在量程范圍內(nèi),通過“+”、“-”按鈕可實(shí)現(xiàn)1mA步進(jìn),通過顯示器可觀察到效果。通過鍵盤DEL鍵可以修改上一步輸錯(cuò)的數(shù)字。如圖20所示。</p><p> 圖20 修改設(shè)定的輸出電流值界面圖</p><p> 5.2.3 輸出電流仿真</p><p> 下圖21所示是仿真最低電流200mA負(fù)載電阻為
64、2.0時(shí)候的狀態(tài),依據(jù)LED顯示內(nèi)容可知,設(shè)定輸出電流值為200mA,實(shí)測(cè)電流值為201mA,輸出電壓為0.400V,負(fù)載電阻為2.0,都滿足設(shè)計(jì)要求。然后,通過改變?cè)O(shè)定輸出電流值進(jìn)行仿真,記錄的仿真數(shù)據(jù)如表3所示。</p><p> 圖21 負(fù)載電阻為2.0仿真狀態(tài)圖</p><p> 表3 負(fù)載RL=2.0Ω的數(shù)據(jù)表格</p><p> 運(yùn)用同樣的仿真步
65、驟,依次仿真負(fù)載電阻為3.0、4.3時(shí)這兩種狀態(tài),記錄的仿真數(shù)據(jù)分別如表4、表5所示。</p><p> 表4 負(fù)載RL=3.0Ω的數(shù)據(jù)表格</p><p> 表5 負(fù)載RL=4.3Ω的數(shù)據(jù)表格</p><p><b> 5.3 誤差分析</b></p><p><b> 測(cè)量結(jié)果分析:</
66、b></p><p> 步進(jìn)1mA時(shí)設(shè)定值與實(shí)測(cè)值在200~2000mA之間,誤差在5mA以下。</p><p> 步進(jìn)10mA時(shí)設(shè)定值與實(shí)測(cè)值在200~1000mA之間,誤差在5mA以下。在1000~2000mA之間時(shí),誤差在10mA以下。</p><p> 在改變負(fù)載時(shí),誤差在10mA以下。</p><p> 在改變輸出電壓
67、時(shí),誤差在10mA以下。</p><p> 綜上所述,系統(tǒng)仿真實(shí)測(cè)數(shù)據(jù)滿足題目的基本要求,能滿足輸出電流與給定值偏差的絕對(duì)值≤給定值的1%+10 mA。說明本電路有較高的精度和穩(wěn)定性。</p><p><b> 誤差分析:</b></p><p> 紋波對(duì)電流輸出的影響,采用屏蔽的方法,遠(yuǎn)離容易產(chǎn)生脈沖工作方式的器件,減少供電電源的紋波等
68、,對(duì)于選擇低噪聲的運(yùn)放是解決問題的一種方法。另外在輸出接近低頻直流時(shí),運(yùn)放的失調(diào)電壓和失調(diào)電流也是產(chǎn)生低頻噪聲的源泉,在這里的解決方法是在運(yùn)放前加一級(jí)晶體管或者場(chǎng)效應(yīng)管的差分級(jí)。</p><p> 誤差可能出現(xiàn)的2種情況,第一個(gè)就是換擋電路的電壓基準(zhǔn)值是否十分標(biāo)準(zhǔn),能夠按照所理想設(shè)定的電壓值輸出。采用高標(biāo)準(zhǔn)測(cè)量電路,先將換擋電路的輸出電壓標(biāo)準(zhǔn)化。第二個(gè)就是達(dá)林管的是否能夠按照理想的工作狀態(tài)進(jìn)行相應(yīng)的工作,解決方
69、法可以產(chǎn)生一個(gè)相應(yīng)的PWM信號(hào)控制。具體如下分析:</p><p> (1)、由于普通運(yùn)算放大器的運(yùn)放零點(diǎn)漂移,溫度漂移等帶來的誤差??梢酝ㄟ^溫度補(bǔ)償措施來解決此誤差。</p><p> (2)、由于采樣電阻在溫度上升時(shí)阻值會(huì)變化,因此會(huì)引起溫度漂移,給系統(tǒng)帶來測(cè)量的誤差。</p><p> ?。?)、受D/A轉(zhuǎn)換器精度,A/D轉(zhuǎn)換器精度,基準(zhǔn)源穩(wěn)定程度等硬件本
70、身的限制,不可避免地帶來一定程度的誤差。</p><p><b> 6 總結(jié)</b></p><p> 在本次數(shù)控直流電流源的設(shè)計(jì)過程中,有許多感觸,首先對(duì)C語(yǔ)言,我覺得這是一門邏輯性很強(qiáng)的語(yǔ)言,但同時(shí)也是一門比較容易掌握的語(yǔ)言。這門語(yǔ)言和我們的實(shí)際聯(lián)系很機(jī)密,比如說里面很多傳送指令,都是根據(jù)實(shí)際存在的硬件而存在的,還有你面的與或指令、乘法、除法指令,其實(shí)都是和我
71、們從小就學(xué)的數(shù)學(xué)息息相關(guān)的。就C語(yǔ)言而言,對(duì)于同一種效果可以采用不同的指令完成,也可以采用相同的指令完成,但因?yàn)槟闼x用的方案不同使得所產(chǎn)生的效果也就有所不同,因此這也鍛煉了我們?cè)谒伎纪粋€(gè)問題,如果能夠采用發(fā)散思維的話,往往會(huì)得到意想不到的結(jié)果。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 沈國(guó)琴,51單片機(jī)C語(yǔ)言開發(fā)與實(shí)例 人民郵電
72、出版社2008 2月第一版.</p><p> [2] 林敏等.74LSl64在5l單片機(jī)LED顯示電路中的應(yīng)用.大連輕工業(yè)學(xué)院學(xué)報(bào),20(2)2001.</p><p> [3] 李群芳,肖看《單片機(jī)原理.接口及應(yīng)用》[M]北京:青華大學(xué)出版社 2005年</p><p> [4] 龔尚福,朱宇《微機(jī)原理與接口技術(shù)》[M]西安:西安電子科技大學(xué)出版社
73、2003年 </p><p> [5] 戴佳,戴衛(wèi)恒《51單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講 》北京:電子工業(yè)出版 2006 年 </p><p> [6] 單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航 人民郵電出版社,2005第四版</p><p> [7] 胡漢才 單片機(jī)原理及接口技術(shù) 清華大學(xué)出版社 2004年2月第二版</p><p&
74、gt; [8] 張毅坤 《單片微型計(jì)算機(jī)原理及應(yīng)用》 西安電子科技大學(xué)出版社 1998 </p><p> [9] 余錫存 曹國(guó)華《單片機(jī)原理及接口技術(shù)》[M].陜西:西安電子科技大學(xué)出版社,2000.7 [10] 雷麗文 《微機(jī)原理與接口技術(shù)》[M].北京:電子工業(yè)出版社,1997.2.</p><p><b> 謝辭</b></p>
75、<p> 走的最快的總是時(shí)間,來不及感嘆,大學(xué)生活已近尾聲,四年多的努力與付出,隨著本次論文的完成,將要?jiǎng)澤贤昝赖木涮?hào)。</p><p> 本論文是在胡振平導(dǎo)師的悉心指導(dǎo)下完成的,感謝余志核院長(zhǎng)、李平書記、胡紅武書記、李小平主任等各位教導(dǎo)過我的老師。</p><p> 最后感謝母校四年來對(duì)我的培養(yǎng),為我的大學(xué)學(xué)習(xí)和生活提供一個(gè)美好的平臺(tái)和舒適的環(huán)境!</p>
76、<p><b> 附 錄</b></p><p><b> 系統(tǒng)原理圖A</b></p><p><b> 程序清單B:</b></p><p> #include<reg52.h></p><p> #define uchar unsign
77、ed char </p><p> #define uint unsigned int</p><p> sbit rs=P3^0; </p><p> sbit rw=P3^1; </p><p> sbit lcden=P3^2; //液晶顯示屏相關(guān)位定義</p><p>
78、sbit AD_OUT=P1^0;</p><p> sbit AD_IN=P1^1;</p><p> sbit AD_CS=P1^2;</p><p> sbit AD_CLOCK=P1^3;</p><p> sbit DA_IN=P3^3;</p><p> sbit DA_CK=P3^4;</
79、p><p> sbit DA_CS=P3^5;</p><p> sbit x=P1^4;</p><p> uchar code table1[]="yichun xueyuan ";</p><p> uchar code table2[]=" huan ying ni!";</p
80、><p> uchar code table3[]=" ERROR!RESET ";</p><p> unsigned long int temp0,temp1;</p><p> uint ADCdat,i,AD_DAstart;</p><p> float Voltage1,Voltage2,r;</
81、p><p> int vol,rtt;</p><p> uchar set,volarry0[4],volarry1[4],rt[2];</p><p> char iset[5]={0,0,2,0,0,};</p><p> void led_init(); //函數(shù)聲明</p><p&
82、gt; void delayms(uint z);</p><p> void delay(uint t);</p><p> void write_com(uchar com);</p><p> void write_date(uchar date);</p><p> void display_AD();</p>
83、<p> uint read2543(uchar port);</p><p> void Send1456(uint DACdat);</p><p> void keyscan();</p><p> ;************************************************************</p>
84、<p> ;****; 主程序 ****</p><p> ;************************************************************</p><p><b> main()</b></p><p>&l
85、t;b> {</b></p><p> led_init();</p><p><b> i=20;</b></p><p> display_AD();</p><p> Send1456(20);</p><p><b> while(1)</b&
86、gt;</p><p><b> {</b></p><p> keyscan();</p><p> if(AD_DAstart==1)</p><p><b> {</b></p><p> display_AD();</p><p>
87、 Send1456(iset[1]*1000+iset[2]*100+iset[3]*10+iset[4]);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void delayms(
88、uint z) //延時(shí)函數(shù),參數(shù)為z</p><p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=z;x>0;x--)</p><p> for(y=110;y>0;y--); //z=1測(cè)試為大約1微秒<
89、/p><p><b> }</b></p><p> void delay(uint t) //極短延時(shí)</p><p><b> {</b></p><p> while(t--);</p><p><b> }</b></p>
90、<p> void write_com(uchar com) //寫命令函數(shù)</p><p><b> {</b></p><p> rs=0; //rs置0表示寫命令</p><p> lcden=0; //按時(shí)序圖置低</p><p> P0=com;
91、 //位聲明,按原理圖接P0口,輸入數(shù)據(jù)</p><p> lcden=1; //置高</p><p> delayms(5); //時(shí)序圖中須有thd2時(shí)間延時(shí)</p><p> lcden=0; //按時(shí)序圖置低</p><p><b> }</b></p>&l
92、t;p> void write_date(uchar date) //寫數(shù)據(jù)函數(shù)</p><p><b> {</b></p><p> rs=1; //rs置1表示寫數(shù)據(jù)</p><p> lcden=0; </p><p> P0=date; //將數(shù)據(jù)賦到P0口</
93、p><p> delayms(5); </p><p> lcden=1; </p><p> delayms(5); </p><p> lcden=0; </p><p><b> }</b></p><p> void led_
94、init() //初始化函數(shù)</p><p><b> {</b></p><p><b> lcden=0;</b></p><p><b> rw=0;</b></p><p> write_com(0x38); //顯示模式設(shè)置:16X2顯示,5X
95、7點(diǎn)陣,8位數(shù)據(jù)</p><p> write_com(0x0c); // 開顯示,關(guān)光標(biāo),光標(biāo)不閃爍</p><p> write_com(0x06); // 寫一個(gè)數(shù)據(jù)后地址指針加一,光標(biāo)加一</p><p> write_com(0x01); // 數(shù)據(jù)指針及數(shù)據(jù)清0</p><p> write_com(0x
96、80); // 設(shè)置數(shù)據(jù)地址指針,第一行</p><p> write_com(0x80+5);</p><p> write_date(0x6d);</p><p> write_date(0x41);</p><p> write_com(0x80); </p><p> write_date
97、(0x53);</p><p> write_date(0x30+iset[1]);</p><p> write_date(0x30+iset[2]);</p><p> write_date(0x30+iset[3]);</p><p> write_date(0x30+iset[4]);</p><p>
98、<b> }</b></p><p> ;************************************************************</p><p> ;****; A/D轉(zhuǎn)換子程序 ****</p><p> ;*******************
99、*****************************************</p><p> void display_AD()</p><p><b> {</b></p><p> uchar num;</p><p> temp0+= read2543(0x00);//進(jìn)行AD轉(zhuǎn)換</p&g
100、t;<p> temp1+= read2543(0x01);</p><p> i--;//取20次AD轉(zhuǎn)換的結(jié)果,求平均值</p><p><b> if(i==0)</b></p><p><b> {</b></p><p> ADCdat=temp1/2
101、0;</p><p><b> temp1=0;</b></p><p> Voltage2=(ADCdat*5.0)/4096; //基準(zhǔn)電壓為5.0V</p><p> vol=(int)((Voltage2*4)*1000);// 擴(kuò)大1000倍</p><p> volarry1[3]=vol/1000;
102、</p><p> volarry1[2]=vol%1000/100;</p><p> volarry1[1]=vol%100/10;</p><p> volarry1[0]=vol%10;</p><p> ADCdat=temp0/20;</p><p><b> temp0=0;</
103、b></p><p><b> i=20;</b></p><p> Voltage1=(ADCdat*5.0)/4096; //基準(zhǔn)電壓為5.0V</p><p> vol=(int)(Voltage1*1000+1);// 擴(kuò)大1000倍</p><p> volarry0[3]=vol/1000;&l
104、t;/p><p> volarry0[2]=vol%1000/100;</p><p> volarry0[1]=vol%100/10;</p><p> volarry0[0]=vol%10;</p><p> write_com(0x80+0x40);</p><p> write_date(0x54);&l
105、t;/p><p> write_date(0x30+volarry0[3]);</p><p> write_date(0x30+volarry0[2]);</p><p> write_date(0x30+volarry0[1]);</p><p> write_date(0x30+volarry0[0]);</p>&l
106、t;p> write_date(0x6d);</p><p> write_date(0x41);</p><p> if(vol>2000||vol<200||volarry1[3]>10||volarry1[3]==10)</p><p><b> {</b></p><p> wr
107、ite_com(0x01); // 數(shù)據(jù)指針及數(shù)據(jù)清0</p><p> write_com(0x80); // 設(shè)置數(shù)據(jù)地址指針,第一行</p><p> for(num=0;num<16;num++)</p><p><b> {</b></p><p> write_date(table3
108、[num]);</p><p> delayms(1); //循環(huán)方式寫第一行數(shù)據(jù)</p><p><b> }</b></p><p><b> set=1;</b></p><p> AD_DAstart=0;</p><p><b> }&
109、lt;/b></p><p><b> else</b></p><p><b> {</b></p><p> write_com(0x80+0x40+13);</p><p> write_date(0x4f);</p><p> write_date(0
110、x4b);</p><p> write_date(0x21);</p><p> write_com(0x80+9);</p><p> write_date(0x30+volarry1[3]);</p><p> write_date(0x2e);</p><p> write_date(0x30+vol
111、arry1[2]);</p><p> write_date(0x30+volarry1[1]);</p><p> write_date(0x30+volarry1[0]);</p><p> write_date(0x56);</p><p> r=Voltage2*4/Voltage1;</p><p>
112、 rtt=(int)(r*10);</p><p> rt[1]=rtt/10;</p><p> rt[0]=rtt%10;</p><p> write_com(0x80+0x49);</p><p> write_date(0x30+rt[1]);</p><p> write_date(0x52);
113、</p><p> write_date(0x30+rt[0]);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> ;********************
114、****************************************</p><p> ;****; D/A轉(zhuǎn)換子程序 ****</p><p> ;************************************************************</p><p> u
115、int read2543(uchar port) //DA轉(zhuǎn)換子程序</p><p><b> {</b></p><p> uint ad=0,j;</p><p> AD_CLOCK=0;</p><p><b> AD_CS=0;</b></p><p>&
116、lt;b> port<<=4;</b></p><p> delay(50); </p><p> for(j=0;j<12;j++)</p><p><b> {</b></p><p> if(AD_OUT) </p><p><b>
117、 {</b></p><p><b> ad|=0x01;</b></p><p><b> }</b></p><p> AD_IN=(bit)(port&0x80);</p><p> AD_CLOCK=1;</p><p><b>
118、 delay(6);</b></p><p> AD_CLOCK=0;</p><p><b> delay(3);</b></p><p><b> port<<=1;</b></p><p><b> ad<<=1;</b>&l
119、t;/p><p><b> }</b></p><p><b> AD_CS=1;</b></p><p><b> ad>>=1;</b></p><p> return(ad);</p><p><b> }</b&
120、gt;</p><p> void Send1456(uint DACdat)</p><p><b> {</b></p><p> uchar i=0;</p><p><b> DA_CK=0;</b></p><p><b> delay(2);&
121、lt;/b></p><p><b> DA_CS=0;</b></p><p><b> delay(2);</b></p><p> for(i=0;i<12;i++)</p><p><b> {</b></p><p> D
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于數(shù)控直流電流源系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于數(shù)控直流電流源系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----數(shù)控直流電流源
- 數(shù)控直流電流源畢業(yè)設(shè)計(jì)
- 簡(jiǎn)易數(shù)控直流電流源畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---數(shù)控直流電壓源的設(shè)計(jì)
- 數(shù)控直流電流源
- 數(shù)控直流電流源硬件設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)172數(shù)控直流電流源(電子設(shè)計(jì)大賽論文)
- 畢業(yè)設(shè)計(jì)172數(shù)控直流電流源(電子設(shè)計(jì)大賽論文)
- 課程設(shè)計(jì)—數(shù)控直流電流源的設(shè)計(jì)
- 基于單片機(jī)的數(shù)控直流電流源設(shè)計(jì)
- 數(shù)控直流電流源畢業(yè)論文
- 畢業(yè)設(shè)計(jì)172數(shù)控直流電流源(電子設(shè)計(jì)大賽論文).doc
- 畢業(yè)設(shè)計(jì)172數(shù)控直流電流源(電子設(shè)計(jì)大賽論文).doc
- 數(shù)控直流電流源 (2)
- 基于單片機(jī)的數(shù)控直流電流源的設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文范文——數(shù)控直流電流源
- 步進(jìn)直流電壓源畢業(yè)設(shè)計(jì)
- 數(shù)控直流電源畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論