版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
35/36目錄摘要……………11引言……………22硬件系統設計………………42.1功能要求…………………42.2方案論證…………………42.3系統硬件電路設計………42.3.1系統核心單片機部分-閃電存儲器型器件AT89S51……………52.3.2數模轉換器DAC0832的介紹及應用………………102.3.3功率放大模塊ULN2008介紹及應用………………142.3.4運算放大器LM324的作用…………152.3.5供電電源電路設計…………………163軟件設計………………………173.1主程序流程圖……………173.2部分程序流程圖…………173.3軟件的設計主要完成三方面功能………193.4程序清單…………………194總結……………20參考文獻…………21致謝………………22附錄1主電路圖…………………23附錄2程序清單…………………24數控電壓源的設計摘要:目前所使用的直流可調電源中,幾乎都為旋鈕開關調節(jié)電壓,調節(jié)精度不高,而且經常跳變,使用麻煩。數控電壓源具有操作方便,電壓穩(wěn)定度高的特點。本文以AT89S51為控制芯片,通過鍵盤輸入給定值,以數模轉換器DAC0832將數字量轉換成模擬量,輸出參考電壓,通過運放LM324將DAC0832輸出的模擬電壓值放大,以該參考電壓控制功率放大模塊ULN2008的輸出電壓。此設計輸出電壓范圍為0-9.9V,可以達到每步0.1V的精度,電流可以達到2A,并可由數碼管顯示實際輸出電壓值。該電路硬件具有設計簡單,應用廣泛,精度較高,使用方便等特點。關鍵詞:AT89S51D/A轉換器數控電源1引言電源技術尤其是數控電源技術是一門實踐性很強的工程技術,服于各行各業(yè)。電力電子技術是電能的最佳應用技術之一。當今電源技術融合了電氣、電子、系統集成、控制理論、材料等諸多學科領域。隨著計算機和通訊技術發(fā)展而來的現代信息技術革命,給電力電子技術提供了廣闊的發(fā)展前景,同時也給電源提出了更高的要求。隨著數控電源在電子裝置中的普遍使用,普通電源在工作時產生的誤差,會影響整個系統的精確度。電源在使用時會造成很多不良后果,世界各國紛紛對電源產品提出了不同要求并制定了一系列的產品精度標準。只有滿足產品標準,才能夠進入市場。隨著經濟全球化的發(fā)展,滿足國際標準的產品才能獲得進出的通行證。數控電源是從80年代才真正的發(fā)展起來的,期間系統的電力電子理論開始建立。這些理論為其后來的發(fā)展提供了一個良好的基礎。在以后的一段時間里,數控電源技術有了長足的發(fā)展。但其產品存在數控程度達不到要求、分辨率不高、功率密度比較低、可靠性較差的缺點。因此數控電源主要的發(fā)展方向,是針對上述缺點不斷加以改善。單片機技術及電壓轉換模塊的出現為精確數控電源的發(fā)展提供了有利的條件。新的變換技術和控制理論的不斷發(fā)展,各種類型專用集成電路、數字信號處理器件的研制應用,到90年代,己出現了數控精度達到0.05V的數控電源,功率密度達到每立方英寸50W的數控電源。從組成上,數控電源可分成器件、主電路與控制等三部分。目前在電力電子器件方面,幾乎都為旋紐開關調節(jié)電壓,調節(jié)精度不高,而且經常跳變,使用麻煩。數字化智能電源模塊是針對傳統智能電源模塊的不足提出的,數字化能夠少生產過程中的不確定因素和人為參與的環(huán)節(jié)數,有效地解決電源模塊中諸如可靠性、智能化和產品一致性等工程問題,極大地提高生產效率和產品的可維護性。隨著科學技術的不斷發(fā)展,特別是計算機技術的突飛猛進,現代工業(yè)應用的工控產品均需要有低紋波、寬調整范圍的高壓電源,特別是在一些高能物理領域,急需電腦或單片機控制的低紋波、寬調整范圍的電源。電源采用數字控制,具有以下明顯優(yōu)點:1)易于采用先進的控制方法和智能控制策略,使電源模塊的智能化程度更高,性能更完美。2)控制靈活,系統升級方便,甚至可以在線修改控制算法,而不必改動硬件線路。3)控制系統的可靠性提高,易于標準化,可以針對不同的系統(或不同型號的產品),采用統一的控制板,而只是對控制軟件做一些調整即可。4)系統維護方便。一旦出現故障,可以很方便地通過RS232接口或RS485接口或USB接口進行調試,故障查詢,歷史記錄查詢,故障診斷,軟件修復,甚至控制參數的在線修改、調試,也可以通過MODEM進行遠程操作。5)系統的一致性好,成本低,生產制造方便。由于控制軟件不同于模擬器件那樣存在差異,因此,數控電源的一致性很好。由于采用軟件控制,控制板的體積將大大減小,生產成本下降。6)易組成高可靠性的多模塊逆變電源并聯運行系統。為了得到高性能的并聯運行逆變電源系統,每個并聯運行的逆變電源單元模塊都采用全數字化控制,易于在模塊之間更好地進行均流控制和通訊或者在模塊中實現復雜的均流控制算法(不需要通訊),從而實現高可靠性、高冗余度的逆變電源并聯運行系統。2硬件系統設計2.1功能要求設計一個數字控制電壓源,利用鍵盤來控制,要求輸出電壓為0-9.9V,步進0.1V,并用數碼管顯示出來。2.2方案論證本設計采用AT89S51為控制單元,與數模轉換器DAC0832數據接口相連,并使DAC工作在單緩沖方式下。DAC的8腳接參考電壓,參考電壓為5V。所以在DAC的輸出電壓的分辨率為5V/256=0.02V,也就是說DAC輸入數據端每增加1,電壓增加0.02V。DAC的電壓輸出端接放大器LM324的輸入端,放大器的放大倍數為5。輸出到功率放大模塊ULN2008的電壓分辨率=0.02V×5=0.1V。所以,當AT89S51輸出數據增加1的時候,最終輸出電壓增加0.1V,當調節(jié)電壓的時候,可以以每次0.1V的梯度增加或者降低電壓。本電路設計三個按鍵,KEY1、KEY2和KEY3,KEY1為電壓+,KEY2為電壓-,KEY3為確認鍵,即當KEY3鍵按下時才輸出電壓。主電路的原理是通過AT89S51控制DAC的輸出電壓大小,通過放大器放大,給功率放大模塊作為最終輸出的參考電壓,真正的電壓是由功率放大模塊ULN2008輸出的。2.3系統硬件電路的設計系統硬件電路圖如圖2-1所示:單片機AT89S51單片機AT89S51 電壓控制單元電壓控制單元兩位數碼管顯示部分兩位數碼管顯示部分按鍵電路按鍵電路圖2-1系統硬件電路圖2.3.1系統核心單片機部分-閃電存儲器型器件AT89S51單片機概述單片機因將其主要組成部分集成在一個芯片上而得名,具體說就是把中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、中斷系統、定時器/計數器以及I/O口電路等主要微型機部件,集成在一塊芯片上。雖然單片機只是一個芯片,但從組成和功能上看,它已經具有了計算機系統的屬性,為此稱它單片微型計算機SCMC(SingleChipMicroComputer),簡稱單片機。單片機主要應用于控制領域,用以實現各種測試和控制功能,由于單片機在應用時處于被控系統的核心地位并融入其中,所以我們也常稱單片機為嵌入式微控制器EMCU(EmbeddedMicrocontrollerUnit)。(1)MCS-51單片機簡介MCS-51是一個單片機系列產品,具有多種芯片型號。具體說,按其內資源配置的不同,MCS-51可分為兩個子系列。按資源配置數量,MCS-51系列分為51和52兩個子系列,其中51子系列是基本型,而52子系列則是增強型,以芯片型號的最末位數字的“1”和“2”作標志。52作為增強型子系列,由于資源數量的增加,使其芯片的功能也有所增強。例如片內ROM容量從4KB增加到8KB,片內RAM單元數從128字節(jié)增加到256字節(jié),定時器/計數器的數目從2個增加到3個,中斷源從5個增加到6個等。單片機內部程序存儲器(ROM)的配置共有:不含有內部程序存儲器、掩模型只讀存儲器、紫外線擦除可編程只讀存儲器、電擦除可編程存儲器4種類型,所對應的(51子系列)芯片名稱依次為:8031、8051、8751和8951。到目前為止,盡管計算機科學和技術得到了充分的發(fā)展,但計算機的體系結構仍然沒能突破有計算機的開拓者、數字家約翰.馮諾曼最先提出來的經典體系結構框架,即一臺計算機是由運算器、控制器、存儲器、輸入設備以及輸出設備共五個基本部分組成的。微型機是這樣,單片機也不例外。因此我們要從計算機五個基本組成部分的觀點來理解單片機的系統結構,所不同的只是單片機是把那些作為控制應用所必需的內容,包括運算器、控制器、少量的存儲器、最基本的輸入/輸出口電路、串行口電路、中斷和定時電路等都集成在一個尺寸有限的芯片上。AT89系列單片機是ATMEL公司生產的。這是當前最新的一種電擦寫8位單片機,與MCS-51系列完全兼容,有超強的加密功能,可完全替代87C51/52和8751/52。它物美價廉,深受用戶歡迎。與87C51相比,AT89系列的優(yōu)越性在于,其片內閃電存儲器的編程與擦除完全用電實現;數據不易揮發(fā),可保存10年;編程/擦除速度快,全4K字節(jié)編程只需時3s,擦除時間約用10ms;AT89系列了實現在線編程;也可借助電話線進行遠距離編程。(2)AT89S51是一種低功耗、具有4KB在線可編程Flash存儲器的單片機。它與通用的80S51系列單片機的指令系統和引腳兼容。片內閃電存儲器可允許在線重新編程,也可使用通用非易失性存儲器編程。它將通用CPU和在線可編程Flash集成在一個芯片上,形成了功能強大、使用靈活和具有較高性價比的微控制器。(3)AT89S51具有下列主要性能:.4KB可改編程序Flash存儲器(可經受1,000次的寫入/擦除周期).全靜態(tài)工作:0Hz~24MHz;.三級程序存儲器保密;.128X8字節(jié)內部RAM;.32條可編程I/O線;.2個16位可編程定時器;.中斷系統具有6個中斷源、5個中斷矢量、2個中斷優(yōu)先級;.串行口是一個全雙工的串行通信口。.具有兩個數據指針DPTR0和DPTR1;.低功耗節(jié)電模式;.片內時鐘振蕩器頻率:0—33M;.具有片內看門狗定時器;.靈活的在線編程方式;.具有斷電標志POF;.具有斷電狀態(tài)下的中斷恢復模式。另外,AT89S51是用靜態(tài)邏輯來設計的,其工作頻率可下降到0Hz,并提供兩種可用軟件來選擇的省電方式——空閑方式(IdleMode)和掉電方式(PowerDownMode)。在空閑方式中,CPU停止工作,而RAM、定時器/計數器、串行口和中斷系統都繼續(xù)工作。在掉電方式中,片內振蕩器停止工作,由于時鐘被“凍結”,使一切功能都暫停,只保存片內RAM中的內容,直到下一次硬件復位為止。(4)主電源引腳1)Vcc電源端2)GND接地端(5)接晶體引腳XTAL1和XTAL21)XTAL1接外部晶體的一個引腳。在單片機內部,它是構成片內振蕩器的反相放大器的輸入端。當采用外部振蕩器時,該引腳接收振蕩器的信號,既把此信號直接接到內部時鐘發(fā)生器的輸入端。2)XTAL2接外部晶體的另一個引腳。在單片機內部,它是上述振蕩器的反相放大器的輸出端。采用外部振蕩器時,此引腳應懸浮不連接。(6)控制或與其它電源復用引腳RST、ALE/PROG、PSEN和EA/Vpp1)RES復位輸入端。當振蕩器運行時,在該引腳上出現兩個機器周期的高電平將使單片機復位。2)ALE/PROG當訪問外部存儲器時,ALE(位置鎖存允許)的輸出用于鎖存位置的低位字節(jié)。即使不訪問外部存儲器,ALE端仍以不變的頻率(此頻率為振蕩器頻率的1/6)周期性地出現正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。然而要注意的是:每當訪問外部數據存儲器時,將跳過一個ALE脈沖。在對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如果需要的話,通過對專用寄存器(SFR)區(qū)中8EH單元的D0位置數,可禁止ALE操作。該位置數后,只有在執(zhí)行一條MOVX或MOVC指令期間,ALE才會被激活。另外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,該設定禁止ALE位無效。3)PSEN程序存儲允許(PSEN)輸出是外部程序存儲器的讀選通信號。當AT89S51/LV51由外部程序存儲器取指令(或常數)時,每個機器周期兩次PSEN有效(既輸出2個脈沖)。但在此期間內,每當訪問外部數據存儲器時,這兩次有效的PSEN信號將不出現。4)EA/Vpp外部訪問允許端。要使CPU只訪問外部程序存儲器(位置為0000H~FFFFH),則EA端必須保持低電平(接到GND端)。然而要注意的是,如果保密位LB1被編程,復位時在內部會鎖存/EA端的狀態(tài)。當EA端保持高電平(接Vcc端)時,CPU則執(zhí)行內部程序存儲器中的程序。在Flash存儲器編程期間,該引腳也用于施加12V的編程允許電源Vpp(如果選用12V編程)。(7)輸入/輸出引腳P0.0~P0.7、P10.~P1.7、P2.0~P2.7和P3.0~P3.71)P0端口(P0.0~P0.7)P0是一個8位漏極開路型雙向I/O端口。作為輸出口用時,每位能以吸收電流的方式驅動8個TTL輸入,對端口寫1時,又可作高阻抗輸入端用。在訪問外部程序和數據存儲器時,它是分時多路轉換的位置(低8位)/數據總線,在訪問期間激活了內部的上拉電阻。在Flash編程時,P0端口接收指令字節(jié);而在驗證程序時,則輸出指令字節(jié)。驗證時,要求外接上拉電阻。2)P1端口(P1.0~P1.7)P1是一個帶有內部上拉電阻的8位雙向I/O端口。P1的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內部的上拉電阻把端口拉到高電位,這時可用作輸入口。作輸入口時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。在對Flash編程和程序驗證時,P1接收低8位位置。3)P2端口(P2.0~P2.7)P2是一個帶有內部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內部的上拉電阻把端口拉到高電位,這時可用作輸入口。P2作輸入口使用時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。在訪問外部程序存儲器和16位位置的外部數據存儲器(如執(zhí)行MOVX@DPTR指令)時,P2送出高8位位置。在訪問8位位置的外部數據存儲器(如執(zhí)行MOVX@Ri指令)時,P2口引腳上的內容(就是專用寄存器(SFR)區(qū)中P2寄存器的內容),在整個訪問期間不會改變。在對Flash編程和程序驗證期間,P2也接收高位位置和一些控制信號。4)P3端口(P3.0~P3.7)P3是一個帶有內部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內部的上拉電阻把端口拉到高電位,這時可用作輸入口。P3作輸入口使用時,有內部的上拉電阻。在AT89S51中,P3端口還用于一些專門功能,這些兼用功能見表2-1P3口兼用功能:表2-1P3口兼用功能端口引腳兼用功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(定時器0的外部輸入)P3.5T1(定時器1的外部輸入)P3.6/WR(外部數據存儲器寫選通)P3.7/RD(外部數據存儲器讀選通)在對Flash編程和程序驗證時,P3還接收一些控制信號。(8)Flash存儲器的編程和程序校驗:AT89S51單片機內部有一個4K字節(jié)的FlashPEROM。這個Flash存儲陣列通常是處于已擦除狀態(tài)(既存儲單元的內容為FFH),隨時可對它進行編程。編程接口可接收高電壓(12V)或低電壓(Vcc)的允許編程信號。低電壓編程方式可很方便地對AT89S51內的用戶系統進行編程;而高電壓編程方式則可與通用的EPROM編程器兼容。AT89S51的程序存儲器陣列是采用字節(jié)寫入方式編程的,既每次寫入一個字節(jié)。要對片內的PEROM程序存儲器寫入任何一個非空字節(jié),都必須用片擦除方式將整個存儲器的內容清除。(9)對Flash存儲器編程編程前,必須建立好位置、數據和相應的控制信號。編程單元的位置加在P1端口和P2端口的P2.0~P2.3(11位位置為0000H~0FFFH),數據從P0端口輸入。PSEN應保持低電平,而RST應保持高電平。EA/Vpp是編程電源的輸入端,按要求加入編程電壓。ALE/PROG端輸入編程脈沖(應為負脈沖信號)。編程時,采用4~20MHz的振蕩器。對AT89S51編程的步驟如下:1)在位置線上輸入要編程單元的位置。2)在數據線上輸入要寫入的數據字節(jié)。3)激活相應的控制信號。4)在采用高電壓編程方式時,將EA/Vpp端的電壓加到12V。5)每對Flash存儲陣列寫入一個字節(jié)或每寫入一個程序加密位,加一個ALE/PROG編程脈沖。改變編程單元的位置和要寫入的數據,重復步驟a~e,直到全部文件編程完畢。每個字節(jié)寫入周期是自動定時的,通常不大于1.5ms。(10)數據查詢方式AT89S51單片機用數據查詢方式來檢測一個寫周期是否結束。在一個寫周期期間,如果想讀出最后寫入的哪個字,則讀出數據的最高位(P0.7)是原來寫入字節(jié)最高位的反碼。寫周期一旦完成后,有效的數據就會出現在所有輸出端上,這時可開始下一個寫周期。一個寫周期開始后,可在任何時間開始進行數據查詢。2.3.2數模轉換器DAC0832的介紹及應用DAC0832是一個8位乘法型D/A轉換芯片,除具有一般的D/A轉換特性外,其內部采用雙緩沖寄存器,能很方便地用于多個D/A轉換器同時工作的場合,且在精度允許的情況下,又可作為12位D/A轉換器使用。它可以與12位D/A轉換器DAC1230互換,引腳也是兼容的。另外,該器件可以作四象限乘法器使用;雖然是電流開關,也可以利用電壓開關方式工作。其主要特性參數如下:·分辨率為8位;·電流穩(wěn)定時間1us;·可單緩沖、雙緩沖或直接數字輸入;·只需在滿量程下調整其線形度;·單一電源供電;·低功耗,200mV。芯片為20引腳,雙列直插式封裝。其引腳圖如圖2-2:(a)管腳分布圖(b)運算放大器圖2-2DAC0832引腳圖(1)各引腳說明如下:1)~:8位數字信號輸入端,與單片機的數據總線相連,用于接收單片機送來的待轉換的數字量,DI7為最高位,輸入為TTL電平,有效時間應大于90ns(否則鎖存器的數據會出錯)。2):片選信號(輸入),低電平有效。同ILE組合選通WR1。3)ILE:數據所存允許信號(輸入),高電平有效。與CS組合選通WR1。4):第1寫信號(輸入),低電平有效,用來將輸入數據送到鎖存器中。該信號與ILE信號共同控制輸入寄存器是數據直通方式還是數據鎖存方式:當ILE=1和=0時,為輸入寄存器直通方式;當ILE=1和=1時,為輸入寄存器鎖存方式。5):數據傳送控制信號(輸入),低電平有效,它將選通。6):第2寫信號(輸入),低電平有效。該信號與信號合在一起控制DAC寄存器是數據直通方式還是數據鎖存方式:當=0和=0時,為DAC寄存器直通方式;當=1和=0時,為DAC寄存器鎖存方式。7):電流輸出“1”,它是D/A寄存器中為“1”的各位權電流匯集輸出端。當D/A寄存器中全為“1”時,輸出電流是最大;當D/A寄存器中全為“0”時,輸出電流為0。8):電流輸出2,它是D/A寄存器中為“0”的各位權電流匯集輸出端。當D/A寄存器中各位全為“0”時,輸出電流最大;反之電流為0,即滿足-=常數或+=常數。(式2-1)DAC轉換器的特性之一是:+=常數。(式2-2)9):反饋電阻端。即運算放大器的反饋電阻端,電阻(15kΩ)已固化在芯片中。因為DAC0832是電流輸出型D/A轉換器,為得到電壓的轉換輸出,使用時需在兩個電流輸出端接運算放大器(見圖2-3),即為運算放大器的反饋電阻。10):基準電壓輸入引腳,是外加高精度電壓源,與芯片內的電阻網絡相連接,該電壓可正可負,范圍為-10V-+10V。對于四象限乘法型D/A轉換的應用,它也是模擬輸入端。11):數字電源端??梢栽?5V-+15V范圍內選用,用+15V工作最佳。12)DGND:數字地。13)AGND:模擬地。(2)應用特性:1)DAC0832是微處理器兼容型D/A轉換器,可以充分利用微處理器的控制能力實現對D/A轉換的控制。有許多控制引腳,可以和微處理器的控制線相連,接受微處理器的控制。2)有兩級鎖存控制功能,能夠實現多通道D/A的同步轉換輸出。3)內部無參考電壓源;須外接參考電壓源。4)DAC0832為電流輸出型D/A轉換器,要獲得模擬電壓輸出時需要外加轉換電路。(3)DAC0832內部結構芯片內的D/A轉換電路是一個R-2R(4)DAC0832與單片機的接口方法1)單緩沖器方式接口在一個系統中只有一路D/A轉換,或雖有多路轉換但不要求同步輸出時,可采用單緩沖器方式接口,如圖2-3所示為單緩沖方式接口:(圖中略去了模擬輸出電路)P08031CPUP2.7WRILEP08031CPUP2.7WRILEDI7~DI0VCCDAC0832CSXEFRWR1DGNDWR22011721018圖2-3DAC0832與單片機單緩沖方式口此時,讓ILE接+5V,CS及XFER接位置選擇線P2.7,兩級數據寄存器的寫信號WR1、WR2都與8031的WR端相連接。當位置線選擇好DAC0832后,只要輸出WR控制信號,DAC0832就能完成數字量的輸入鎖存和D/A轉換輸出。執(zhí)行下面幾個指令就能軟硬結合完成一次D/A轉換:MOVDPTR,#7FFF;指向0832MOVA,#data;數字量裝入AMOVX@DPTR,A;使P2.7和/WR有效,并進行D/A轉換2)雙緩沖同步方式接口對于多路D/A轉換接口,要求同步進行D/A輸出時,必須采用雙緩沖同步方式。在這種情況下,數字量的輸入鎖存和D/A轉換是分兩步完成的,即CPU的數據總線分時地向各路D/A轉換器輸入要轉換的數字量,并鎖存在各自的輸入寄存器中,然后CPU對所有的D/A轉換器發(fā)出控制信號,使各個D/A轉換器輸入寄存器中的數據打入D/A寄存器,實現同步轉換輸出。(5)DAC0832的輸出方式在采用單級性模擬電壓環(huán)境下,由于DAC0832是8位的D/A轉換器,由轉換器原理可得輸出電壓與輸入數字量的關系為:=-B(/256),(式2-3)--式中/256為一常數B=,(式2-4)2.3.3功率放大模塊ULN2008的介紹及應用功率放大模塊ULN2008用于電路功率的放大,其前一級和后一級的電壓幾乎保持不變,既電壓增益接近1,但其電流增益卻很大,輸出電流可達到2-3A。它的內部結構是達林頓的,專門用來驅動繼電器的芯片,甚至在芯片內部做了一個小線圈反電動勢的二極管。ULN2008的輸入端允許通過IC的電流200mA,飽和壓降VCE約為輸入電壓的2%左右。用戶輸出口的外接負載可根據以上參數估算。采用集電極開路輸出,輸出電流大,故可以直接驅動繼電器或固體繼電器(SSR)等外接控制器件,也可直接驅動低壓燈泡。ULN2008是高耐壓、大電流達林頓陣列,由七個硅NPN達林頓管組成。該電路的特點如下所示:ULN2008的每個達林頓管都串聯一個2.7K的基極電阻,在5V的工作電壓下它能與TTL和CMOS電路直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數據。ULN2008工作電壓高,工作電流大,灌電流可達500mA,并且能夠在關態(tài)時承受50V的電壓,輸出還可以在高負載電流并行運行。ULN2008采用DIP-16或SOP-16塑料封裝。其內部結構及封裝如圖2-3和2-4所示。圖2-3ULN2008引腳及內部結構圖2-4ULN2008封裝形式2.3.4運算放大器LM324的作用第一級運算放大器的作用第一級運算放大器的輸入端與DAC0832的電流輸出端相連,構成單極性模擬電壓輸出方式。在單極性方式下,輸出的電壓值只與DAC的參考電壓值及DAC輸入的數字量B有關。本設計中參考電壓的值為+5V,因此,由式2-3可得,第一級運放的輸出電壓值Vout1為負并且與輸入的數字量B成正比關系,即Vout1=-B*(5/256)=-0.02B(式2-6)第一級運放電路如圖2-7所示:圖2-7第一級運放電路DAC的反饋電阻與運放輸出1腳之間接一可變電阻,用于在輸入數字量為0時調節(jié)第一級運放的輸出為0,即調零。(2)第二級運算放大器的作用第二級運算放大器為反相放大器,它的作用是將前級輸出的電壓值放大5倍并且反相。因此,第二級輸出電壓Vout2為0.1B。第二級運放電路如圖2-8所示:圖2-8第二級運放電路2.3.5供電電源電路設計本設計需要15V以及+5V的電壓,其供給電壓電路如圖2-10所示:圖2-10供電電源電路3軟件系統的設計3.1主程序流程圖如圖3-1所示為主程序流程圖:開始開始系統初始化系統初始化 鍵盤掃描鍵盤掃描有鍵按下?有鍵按下?返回N返回逐行掃描,按P口值查鍵號逐行掃描,按P口值查鍵號調用DA轉換子程序調用DA轉換子程序圖3-1主程序流程圖3.2部分程序流程圖如圖3-2所示為部分程序流程圖(1):鍵盤處理子程序鍵盤處理子程序KEY1鍵按下?KEY1鍵按下?NYBJF=1BJF=0BJF=1BJF=0返回返回圖3-2部分程序流程圖(1)如圖3-3所示為部分程序流程圖(2):主程序主程序系統初始化系統初始化有鍵按下?有鍵按下?Y鍵盤處理子程序鍵盤處理子程序BJF=1?BJF=1?步進減子程序步進加子程序YN步進減子程序步進加子程序根據TABF的值查得數字量B根據TABF的值查得數字量B傳輸子程序,送出傳輸子程序,送出B,進行D/A轉換顯示子程序顯示子程序圖3-3部分程序流程圖(2)對軟件流程做一下說明:本程序設定KEY1為電壓+,當按住KEY1鍵不松開時,輸出電壓以0.1V連續(xù)步進,直至KEY1鍵松開。當以一定的時間間隔點動KEY1鍵時,輸出電壓也為點動步進。KEY2為電壓-,與KEY1功能基本相同;同時輸出電壓的值顯示在2個數碼管上。通過這種人機交換互設置,可以方便對電壓源輸出進行控制。源程序的工作過程是:系統初始化后,默認輸出0V電壓,此時,2個數碼管顯示0.0V;然后掃描KEY1,KEY2鍵,當KEY1或KEY2有鍵按下時,程序跳轉至相應的按鍵處理子程序;經過按鍵處理子程序處理后,置相應的標志位,并處理相應的寄存器的值;再回到主程序中,依據不同的標志位送出相應的數字量給DAC0832,并把相應的數據送入顯示緩沖區(qū),最后顯示電源輸出的電壓值;程序繼續(xù)掃描KEY1,KEY2鍵,再循環(huán)執(zhí)行前面的步驟。在編程過程中R1,R2分別存放2個數碼管上顯示的數字;寄存器內存儲待轉換的數字量B,BJF為增減標志位。3.3軟件的設計主要完成三方面的功能:(1)KEY1,KEY2鍵分別控制電壓的增大與減小(2)把設置的電壓送到DA,主要是對DA的操作。(3)中斷顯示,把設置的電壓顯示到LED數碼管上。3.4程序清單見附錄24總結我的畢業(yè)設計是以AT89S51為控制芯片,通過鍵盤輸入給定值,以數模轉換器DAC0832輸出參考電壓,以該參考電壓控制電壓轉換模塊LM350的輸出電壓大小的數控電壓源。主電路的原理是通過AT89S51控制DAC的輸出電壓大小,通過放大器放大,給電壓模塊作為最終輸出的參考電壓,真正的電壓是由電壓模塊LM350輸出??傠娐穲D見附錄1。在設計過程中,通過大量的查閱資料,認真研究教材,并向指導老師請教很多問題,我也深知自己的畢業(yè)設計還不是很完美,存在一定的不足,但是整個過程使自己對單片機有了更為深刻的理解,在做軟件時,仔細的分析硬件電路,畫出程序流程圖,培養(yǎng)了我的耐性和刻苦鉆研的精神。此設計進入實做階段是在開題報告和中期報告結束通過,電路原理經反復論證合格后開始的,雖然在焊接過程中加倍小心,但是在調試階段還是出現了許多沒有預料到的困難和問題。第一次調試時將運放LM324的1腳與后級電路斷開,測試1腳輸出電壓,發(fā)現萬用表指針往回打,在仔細檢查電路焊接之后發(fā)現電路連接沒有問題,然后我去查了DAC0832的相關資料,發(fā)現當DAC的參考電壓為正時,輸出的電壓值為負,于是我就在這級運放后又加了一個反相器,即得到了理想的輸出值。將第一級運放的輸出調整好后,開始統調。在此過程中發(fā)現,最后的穩(wěn)壓電源輸出無法根據指標所規(guī)定的那樣從0調起,最小的電壓輸出為1V左右,經過反復的查資料,與同學研究,我知道了穩(wěn)壓電源的輸出端電壓值始終比電壓調節(jié)端高1.25V,要想從0V起調就必須解決這個問題,于是我在前級電路中加入一個加法器,利用這個加法器使輸入穩(wěn)壓電源調節(jié)端的電壓降低1.25V。經多次調試后,穩(wěn)壓電源終于可以從0V開始起調了。參考文獻[1]張毅剛.單片機原理及應用,第一版,高等教育出版社,2003.10-36,100-145,281-287[2]康華光.模擬電子技術基礎,第四版,高等教育出版社,2004.7-39,[3]康華光.數字電子技術基礎,第四版,高等教育出版社,2004.431-458[4]李軍.51系列單片機高級實例開發(fā)指南,第一版,北京航空航天大學出版社,2004,35-150[5]高偉.單片機AT89單片機原理及應用,國防工業(yè)出版社,2008[6]李光飛,樓然苗,胡佳文,謝象佐.單片機課程設計實例指導,第一版,北京航空航天大學出版社,2004,10-135[7]張義和.例說51單片機(C語言版),人民郵電出版社,2008[8]劉和平.PIC18Fxxx單片機原理及接口程序設計,第一版,北京航空航天大學出版社,2004,59-142[9]劉和平,PIC18Fxxx單片機程序設計及應用,第一版,北京航空航天大學出版,2005[10]吳賀謙.用集成運放裝置設計的穩(wěn)壓穩(wěn)流源,電子應用技術,1986年第2期,47[11]劉和平.PIC16F87X數據手冊——28/40腳8位FLASH單片機,北京航空航天大學出版社,2001[12]邊春元,李文濤.C51單片機典型模塊設計與應用,第一版,機械工業(yè)出版社,2008[13]謝維成,楊加國.單片機原理與應用及C51程序設計,第一版,清華大學出版社,2006[14]胡燁,姚鵬翼,江思敏.Protel99SE電路設計與仿真教程,第一版,機械工業(yè)出版社,2008.16-111[15]鄭宏軍,黎昕,楊少卿.幾中典型運放的應用技術,電子技術應用,1999年第8期,56-58[16]王彥朋.大學生電子設計與應用,第一版,中國電力出版社,2007.106-145附錄1主電路圖附錄2程序清單#include<reg51.h>#include<absacc.h>#defineucharunsignedchar#deficneunitunsignedintunsignedintDAdata,step_data=1,ch;volatileunsignedintkey_value;unsignedintADC_value;unsignedcharrouteway;unsignedintnc,flag;signedinttemp_1;volatileunsignedintcount;volatileunsignedcharold_key;unsignedchari,j,k;typedefstructxxxx{intSetPoint;intLastError;intPrevError;intSumError;}voidCalc(xxxx*pp,intNextPoint){intError;intx,y;Error=pp->SetPoint-NextPoint;x=pp->SumError;pp->SumError+=Error;if(pp->SumError>32000)pp->SumError=32000;elseif(pp->SumError<-30000)pp->SumError=-30000;y=pp->SumError;temp_1=Error/10+pp->SumError/7;if(temp_1>4094)temp_1=4095;elseif(temp_1<=0)temp_1=0;}//unsignedchari2c_Write(unsignedcharAddress,unsignedcharWdata){Start();//I2C啟動Wait();Write8Bit(XX7299A_Write_DeviceAddr);//寫I2C從器件位置和寫方式Wait();Write8Bit(Address);//寫子位置Wait();Write8Bit(Wdata);//寫數據Wait();Stop();//I2C停止return0;}unsignedchari2c_WriteN(unsignedcharAddr,unsignedchar*p,unsignedcharN){unsignedchari;Start();//I2C啟動Wait();Write8Bit(XX7299A_Write_DeviceAddr);//寫I2C從器件位置和寫方式Wait();Write8Bit(Addr);//寫子位置Wait();for(i=0;i<N;i++){Write8Bit(*p++);//寫數據Wait();}Stop();//I2C停止return0;}unsignedchari2c_Read(unsignedcharAddress){unsignedchartemp;Start();//I2C啟動Wait();Write8Bit(XX7299A_Write_DeviceAddr);//寫I2C從器件位置和寫方式Wait();if(TestAck()!=MT_SLA_ACK)return0;//ACKWrite8Bit(Address);//寫子位置Wait();if(TestAck()!=MT_DATA_ACK)return0;Start();//I2C重新啟動Wait();if(TestAck()!=RE_START)return0;Write8Bit(XX7299A_Read_DeviceAddr);//寫I2C從器件位置和讀方式Wait();if(TestAck()!=MR_SLA_ACK)return0;//ACKTwi();//啟動主I2C讀方式Wait();if(TestAck()!=MR_DATA_NOACK)return0;//ACKtemp=TWDR;//讀取I2C接收數據Stop();//I2C停止returntemp;}////****************************************////DA轉換程序//****************************************//typedefstructxxx{unsignedcharbit0:1;unsignedcharbit1:1;unsignedcharbit2:1;unsignedcharbit3:1;unsignedcharbit4:1;unsignedcharbit5:1;unsignedcharbit6:1;unsignedcharbit7:1;}bit_field;#definePORTA_addr0x3B#definePORTB_addr0x38#definePORTC_addr0x35#defineDA5618_SS(*((volatilebit_field*)(PORTB_addr))).bit4#defineDA5618_MOSI(*((volatilebit_field*)(PORTB_addr))).bit5#defineDA5618_SCLK(*((volatilebit_field*)(PORTB_addr))).bit7voidDA5618(unsignedintDAdata)//DA{unsignedinttemp;unsignedchari;temp=DAdata|0x8000;DA5618_SCLK=1;DA5618_SS=0;for(i=0;i<16;i++){DA5618_SCLK=1;DA5618_MOSI=(temp&0x8000)==0?0:1;DA5618_SCLK=0;temp<<=1;}DA5618_SS=1;DA5618_SCLK=1;}unsignedintread_ad(unsignedcharanx){unsignedintad_v;unsignedcharan,i,j,x;DDRB=DDRB|0X0F;DDRB=DDRB&0XFB;anx=anx<<4;adclkl;//for(k=0;k<100;k++);adcsh;adcsl;for(i=0;i<2;i++){an=anx;ad_v=0;for(k=0;k<255;k++);for(j=0;j<12;j++){if(an&0x80){adinh;//for(k=0;k<100;k++);}else{adinl;//for(k=0;k<100;k++);}an=an<<1;adclkh;//for(k=0;k<100;k++);ad_v=ad_v<<1;x=(PINB&0X04)>>2;//for(k=0;k<100;k++);ad_v+=x;adclkl;//for(k=0;k<100;k++);}}return(ad_v);}unsignedintreadKey(void){unsignedchark;k=i2c_Read(Reg7299_KeyValue);//讀按鍵值if((key_value&0x80)==0)return0xff;elsereturnk;}voidgensort(unsignedinta[],unsignedcharn)//排序{unsignedintk;unsignedinti,j;for(i=1;i<n;i++){for(j=0;j<n-i;j++){if(a[j]>a[j+1]){k=a[j];a[j]=a[j+1];a[j+1]=k;}}}}unsignedintyouxiao(unsignedchartongdao){unsignedchari;unsignedintad;unsignedintADC_value[10];for(i=0;i<10;i++){ADC_value[i]=read_ad(tongdao);}gensort(ADC_value,10);ad=(ADC_value[4]+ADC_value[5]+ADC_value[6]+ADC_value[7])/4;returnad;}intmain(void){unsignedintadvalue,da,adfanhui,guoliuad[2];unsignedcharcount,count1,zhengfu,guoliu;i=0;DDRC=0x00;//IIC上拉PORTC=0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全生產管理會計制度
- 工程安全生產培訓制度
- 安全生產工作三檢查制度
- 安全生產宣傳排班制度范本
- 掘進副隊長生產責任制度
- 護欄生產成品審核制度
- 家具廠生產品質管理制度
- 居委會安全生產管理制度
- 安全生產聯鎖報警制度
- 加氣站安全生產費用制度
- 高中期末家長會
- 2023年度國家社科基金一般項目申請書(語言學)立項成功范本,特珍貴
- 風機系統巡檢內容及標準
- 新生兒高血糖護理課件
- 熱食類食品制售管理制度
- 五金件外觀檢驗標準
- 香精概論第四章-芳香療法課件
- 電梯安裝調試工地EHS管理要求和交底
- 車輛考核制度6篇
- JJF 1487-2014超聲波探傷試塊校準規(guī)范
- GB/T 39253-2020增材制造金屬材料定向能量沉積工藝規(guī)范
評論
0/150
提交評論