欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 基于單片機(jī)控制的開(kāi)關(guān)電源論文資料 [打印本頁(yè)]

作者: xing1    時(shí)間: 2018-5-1 20:14
標(biāo)題: 基于單片機(jī)控制的開(kāi)關(guān)電源論文資料
引言
     許多科學(xué)實(shí)驗(yàn)都離不開(kāi)電,并且在這些實(shí)驗(yàn)中經(jīng)常會(huì)對(duì)通電時(shí)間、電壓高低、電流大小以及動(dòng)態(tài)指標(biāo)有著特殊的要求,因此,如果實(shí)驗(yàn)電源不僅具有良好的輸出質(zhì)量而且還具有多功能以及一定的智能化,那么就省去了許多不精確的人為操作,取而代之的是精確的微機(jī)控制,而我們所要做的就是在實(shí)驗(yàn)開(kāi)始前對(duì)一些參數(shù)進(jìn)行預(yù)設(shè)。這將會(huì)給各個(gè)領(lǐng)域中的實(shí)驗(yàn)研究帶來(lái)不同程度的便捷與高效。因此,直流電源今后的發(fā)展目標(biāo)之一就是不僅要在性能上做到效率高、噪聲低、高次諧波低、既節(jié)能又不干擾環(huán)境,還要在功能上力求實(shí)現(xiàn)數(shù)控化、多功能化與智能化。本文所介紹的就是一個(gè)數(shù)控可調(diào)電源,這是一個(gè)高性能的直流穩(wěn)壓電源。由于在該電源中引入了單片機(jī)控制,故該電源還具有一定的智能化,可實(shí)現(xiàn)變壓,顯示輸出電壓、電流,預(yù)置輸出電壓值等功能。
本文中研究的單片機(jī)控制的線性電源,可以通過(guò)鍵盤(pán)預(yù)置期望輸出電壓值,模/數(shù)轉(zhuǎn)換器對(duì)輸出電壓進(jìn)行采樣并顯示在數(shù)碼管上。該系統(tǒng)還采用了溫度傳感器對(duì)輸出電壓進(jìn)行校正,使得輸出電壓更穩(wěn)定精確度也更高。并且該系統(tǒng)可以給芯片提供+12V,+5V及-12V的工作電壓。
  由單片機(jī)控制的數(shù)控電源主要由三部分所構(gòu)成,主要是電源電路,控制電路和校正電路。以LM317三端電壓可調(diào)器來(lái)調(diào)節(jié)電壓,其具有輸出電壓穩(wěn)定,可調(diào)范圍較大,但其缺點(diǎn)是輸出的電流較小,所以在設(shè)計(jì)的時(shí)候還加入了擴(kuò)展電流電路。
1. 概述
1.1課題來(lái)源及意義
電源技術(shù)是一種應(yīng)用功率半導(dǎo)體器件,綜合電力變換技術(shù)、現(xiàn)代電子技術(shù)、自動(dòng)控制技術(shù)的多學(xué)科的邊緣交叉技術(shù)。隨著科學(xué)技術(shù)的發(fā)展,電源技術(shù)又與現(xiàn)代控制理論、材料科學(xué)、電機(jī)工程、微電子技術(shù)等許多領(lǐng)域密切相關(guān)。目前電源技術(shù)已逐步發(fā)展成為一門(mén)多學(xué)科互相滲透的綜合性技術(shù)學(xué)科。他對(duì)現(xiàn)代通訊、電子儀器、計(jì)算機(jī)、工業(yè)自動(dòng)化、電力工程、國(guó)防及某些高新技術(shù)提供高質(zhì)量、高效率、高可靠性的電源起著關(guān)鍵作用。
--  由于國(guó)內(nèi)微電子技術(shù)、阻容器件生產(chǎn)技術(shù)以及磁性材料技術(shù)與一些技術(shù)先進(jìn)國(guó)家還有一定的差距,因而造價(jià)不能進(jìn)一步降低,也影響到可靠性的進(jìn)一步提高。所以在我國(guó)的電子儀器以及機(jī)電一體化儀器中,開(kāi)關(guān)穩(wěn)壓電源還不能得到十分廣泛的普及及使用。特別是對(duì)于無(wú)工頻變壓器開(kāi)關(guān)穩(wěn)壓電源中的高壓電解電容器、高反壓大功率開(kāi)關(guān)管、開(kāi)關(guān)變壓器的磁芯材料等器件,在我國(guó)還處于研究、開(kāi)發(fā)階段。在一些技術(shù)先進(jìn)國(guó)家,開(kāi)關(guān)穩(wěn)壓電源雖然有了一定的發(fā)展,但在實(shí)際應(yīng)用中也還存在一些問(wèn)題,不能十分令人滿(mǎn)意。這暴露出開(kāi)關(guān)穩(wěn)壓電源的又一個(gè)缺點(diǎn),那就是電路結(jié)構(gòu)復(fù)雜,故障率高,維修麻煩。對(duì)此,如果設(shè)計(jì)者和制造者不予以充分重視,則它將直接影響到開(kāi)關(guān)穩(wěn)壓電源的推廣應(yīng)用。當(dāng)今,開(kāi)關(guān)穩(wěn)壓電源推廣應(yīng)用比較困難的主要原因就是它的制作技術(shù)難度大、維修麻煩和造價(jià)成本較高。所以選擇由單片機(jī)控制的線性電源具有成本低,故障少,簡(jiǎn)單實(shí)用等特點(diǎn),適合推廣和應(yīng)用。
1.2 課題基本要求
(1)設(shè)計(jì)、制作精密數(shù)控直流電源;
(2)使用單片機(jī)構(gòu)成控制系統(tǒng),通過(guò)鍵盤(pán)預(yù)置輸入電壓,可顯示預(yù)置電壓和輸出電壓;
(3)掌握A/D及D/A轉(zhuǎn)換及芯片使用方法;
(4)掌握數(shù)控電源的設(shè)計(jì)方法;
(5)掌握單片機(jī)軟件編程方法;
(6)掌握傳感器的基本原理和模擬電子電路基本原理等。
1.3相關(guān)背景介紹
     直流穩(wěn)壓電源按習(xí)慣可分為化學(xué)電源,線性穩(wěn)定電源和開(kāi)關(guān)型穩(wěn)定電源,它們又分別具有各種不同類(lèi)型:
化學(xué)電源:
我們平常所用的干電池、鉛酸蓄電池、鎳鎘、鎳氫、鋰離子電池均屬于這一類(lèi),各有其優(yōu)缺點(diǎn)。隨著科學(xué)技術(shù)的發(fā)展,又產(chǎn)生了智能化電池;在充電電池材料方面,美國(guó)研制人員發(fā)現(xiàn)錳的一種碘化物,用它可以制造出便宜、小巧、放電時(shí)間長(zhǎng),多次充電后仍保持性能良好的環(huán)保型充電電池。
線性穩(wěn)壓電源 :
線性穩(wěn)定電源有一個(gè)共同的特點(diǎn)就是它的功率器件調(diào)整管工作在線性區(qū),靠調(diào)整管之間的電壓降來(lái)穩(wěn)定輸出。由于調(diào)整管靜態(tài)損耗大,需要安裝一個(gè)很大的散熱器給它散熱。而且由于變壓器工作在工頻(50Hz)上,所以重量較大。該類(lèi)電源優(yōu)點(diǎn)是穩(wěn)定性高,紋波小,可靠性高,易做成多路,輸出連續(xù)可調(diào)的成品。缺點(diǎn)是體積大、較笨重、效率相對(duì)較低。這類(lèi)直流穩(wěn)壓電源又有很多種,從輸出性質(zhì)可分為穩(wěn)壓電源和穩(wěn)流電源及集穩(wěn)壓、穩(wěn)流于一身的穩(wěn)壓穩(wěn)流(雙穩(wěn))電源。從輸出值來(lái)看可分定點(diǎn)輸出電源、波段開(kāi)關(guān)調(diào)整式和電位器連續(xù)可調(diào)式幾種。從輸出指示上可分指針指示型和數(shù)字顯示式型等等。
開(kāi)關(guān)型直流穩(wěn)壓電源:
與線性穩(wěn)壓電源不同的一類(lèi)穩(wěn)電源就是開(kāi)關(guān)型直流穩(wěn)壓電源, 開(kāi)關(guān)型直流穩(wěn)壓電源的電路型式主要有單端反激式,單端正激式、半橋式、推挽式和全橋式。它和線性電源的根本區(qū)別在于它變壓器不工作在工頻而是工作在幾十千赫茲到幾兆赫茲。功能管不是工作在飽和及截止區(qū)即開(kāi)關(guān)狀態(tài);開(kāi)關(guān)電源因此而得名。開(kāi)關(guān)電源的優(yōu)點(diǎn)是體積小,重量輕,穩(wěn)定可靠;缺點(diǎn)相對(duì)于線性電源來(lái)說(shuō)紋波較大(一般≤1%VO(P-P),好的可做到十幾mV(P-P)或更小)。
上述三種電源中,化學(xué)電源對(duì)環(huán)境會(huì)產(chǎn)生影響,開(kāi)關(guān)電源的制作成本相對(duì)較高并且電路設(shè)計(jì)也較復(fù)雜。相對(duì)這兩種而言,線性電源實(shí)用性更高,成本也較低,輸出更穩(wěn)定。下文中將會(huì)詳細(xì)介紹基于AT89C51單片機(jī)的精密數(shù)字控制直流電源設(shè)計(jì)制作。
2    基于單片機(jī)的數(shù)控直流電源方案設(shè)計(jì)
     基于單片機(jī)控制的數(shù)控直流電源主要由電源部分、控制部分和校正部分組成。其基本原理如圖2.1所示:
            圖2.1 基于單片機(jī)控制的數(shù)控直流電源系統(tǒng)原理圖
其基本工作原理為:電壓通過(guò)鍵盤(pán)預(yù)置后由單片機(jī)控制并調(diào)節(jié)輸出電壓,輸出電壓經(jīng)過(guò)A/D采樣校正后送數(shù)碼管顯示。
基于單片機(jī)的數(shù)字控制直流電源的制作需要考慮以下兩個(gè)問(wèn)題:一是制作成本及工藝。在現(xiàn)在的商業(yè)化中,產(chǎn)品的成本和工藝往往是倍受重視的,它直接決定了產(chǎn)品的銷(xiāo)售和發(fā)展;二是電源的輸出功率以及精確度。在很多實(shí)驗(yàn)和領(lǐng)域中都需要用到精確度很高的電源,另外在民用上也需要可調(diào)節(jié)的電源。在下面的方案設(shè)計(jì)中將主要對(duì)兩種數(shù)控直流電源作詳細(xì)介紹和論證。
2.1 方案設(shè)計(jì)
2.1.1 方案一:開(kāi)關(guān)穩(wěn)壓電源
    開(kāi)關(guān)電源就是用通過(guò)電路控制開(kāi)關(guān)管進(jìn)行高速的道通與截止.將直流電轉(zhuǎn)化為高頻率的交流電提供給變壓器進(jìn)行變壓,從而產(chǎn)生所需要的一組或多組電壓!轉(zhuǎn)華為高頻交流電的原因是高頻交流在變壓器變壓電路中的效率要比50Hz高很多。
開(kāi)關(guān)電源的工作原理是:
1.交流電源輸入經(jīng)整流濾波成直流;
2.通過(guò)高頻PWM(脈沖寬度調(diào)制)信號(hào)控制開(kāi)關(guān)管,將那個(gè)直流加到開(kāi)關(guān)變壓器初級(jí)上;
3.開(kāi)關(guān)變壓器次級(jí)感應(yīng)出高頻電壓,經(jīng)整流濾波供給負(fù)載;
4.輸出部分通過(guò)一定的電路反饋給控制電路,控制PWM占空比,以達(dá)到穩(wěn)定輸出的目的。
交流電源輸入時(shí)一般要經(jīng)過(guò)厄流圈一類(lèi)的東西,過(guò)濾掉電網(wǎng)上的干擾,同時(shí)也過(guò)濾掉電源對(duì)電網(wǎng)的干擾;在功率相同時(shí),開(kāi)關(guān)頻率越高,開(kāi)關(guān)變壓器的體積就越小,但對(duì)開(kāi)關(guān)管的要求就越高;開(kāi)關(guān)變壓器的次級(jí)可以有多個(gè)繞組或一個(gè)繞組有多個(gè)抽頭,以得到需要的輸出;一般還應(yīng)該增加一些保護(hù)電路,比如空載、短路等保護(hù),否則可能會(huì)燒毀開(kāi)關(guān)電源。
其工作原理示意圖如圖2.2所示:
                      圖2.2 開(kāi)關(guān)電源工作原理示意圖
    圖2.1畫(huà)出了開(kāi)關(guān)穩(wěn)壓電源的工作原理示意圖,它是由全波整流器,開(kāi)關(guān)管V,激勵(lì)信號(hào),續(xù)流二極管VD,儲(chǔ)能電感和濾波電容C組成。實(shí)際上,開(kāi)關(guān)穩(wěn)壓電源的核心部分是一個(gè)直流變壓器。
直流變換器,它是把直流轉(zhuǎn)換成交流,然后又把交流轉(zhuǎn)換成直流的裝置。這種裝置被廣泛地應(yīng)用在開(kāi)關(guān)穩(wěn)壓電源中。采用直流變換器可以把一種直流供電電壓變換成極性、數(shù)值各不同的多種直流供電電壓。
輸入交流電壓經(jīng)整流濾波后以直流方式Ui輸入開(kāi)關(guān)管V中,由單片機(jī)控制開(kāi)關(guān)管的通斷。當(dāng)開(kāi)關(guān)管以某一頻率通斷時(shí),使得輸入的直流信號(hào)變?yōu)榻涣餍盘?hào),再通過(guò)續(xù)流二極管VD及電感L把交流信號(hào)轉(zhuǎn)化為直流信號(hào),經(jīng)過(guò)濾波電容C后輸出到負(fù)載R上。這就是開(kāi)關(guān)電源的調(diào)壓原理。
2.1.2 方案二:線性穩(wěn)壓電源
    線性穩(wěn)壓電源,是指調(diào)整管工作在線性狀態(tài)下的直流穩(wěn)壓電源。調(diào)整管工作在線性狀態(tài)下,是連續(xù)可變的,亦即是線性的。
線性穩(wěn)壓電源主要由調(diào)整管、參考電壓、取樣電路、誤差放大電路等幾個(gè)基本部分組成。另外還包括一些例如保護(hù)電路,啟動(dòng)電路等部分。取樣電阻通過(guò)取樣輸出電壓,并與參考電壓比較,比較結(jié)果由誤差放大電路放大后,控制調(diào)整管的導(dǎo)通程度,使輸出電壓保持穩(wěn)定。
常用的線性串聯(lián)型穩(wěn)壓電源芯片有:78XX系列(正電壓型),79XX系列(負(fù)電壓型)(實(shí)際產(chǎn)品中,XX用數(shù)字表示,XX是多少,輸出電壓就是多少。例如7805,輸出電壓為5V);LM317(可調(diào)正電壓型),LM337(可調(diào)負(fù)電壓型)。
調(diào)壓原理:

圖2.3 穩(wěn)壓調(diào)壓電路原理說(shuō)明圖
    圖2.3為穩(wěn)壓調(diào)壓電路原理說(shuō)明圖。LM317的2腳于1腳之間的電壓恒定為恒定值1.25V,所以由固定電阻R1(應(yīng)小于240Ω)與電位器RW組成取樣分壓電路,同時(shí)也可以作為調(diào)節(jié)輸出電壓,輸出電壓如(1)式。
                     UO=1.25V(1+RW/R1)           (2)式
     調(diào)整端1的電流極小,所以流過(guò)R1和RW的電流幾乎相等(幾mA電流)。通過(guò)改變電位器RW的阻值就能改變輸出電壓UO。此外為了保證LM317的輸出功率及正常工作,還需要添加散熱片,二極管D5的作用是防止輸出短路。
     由上面的介紹中可知,只要改變管腳1的電壓,就可以實(shí)現(xiàn)輸出可調(diào)。電位器RW固定在一個(gè)值后,通過(guò)單片機(jī)預(yù)置電壓,經(jīng)過(guò)D/A轉(zhuǎn)化和運(yùn)算放大器的電壓放大達(dá)到對(duì)控制端的電壓預(yù)置。所以由1腳作為控制電壓的輸入端,接控制部分電路。
2.2 方案論證
2.2.1 方案一分析:
開(kāi)關(guān)電源的主要優(yōu)點(diǎn)是功耗小,效率高,穩(wěn)壓范圍寬,濾波效率高并且電路形式靈活。開(kāi)關(guān)穩(wěn)壓電源的缺點(diǎn)是存在較為嚴(yán)重的開(kāi)關(guān)干擾。開(kāi)關(guān)穩(wěn)壓電源中,功率調(diào)整開(kāi)關(guān)晶體管V工作在狀態(tài),它產(chǎn)生的交流電壓和電流通過(guò)電路中的其他元器件產(chǎn)生尖峰干擾和諧振干擾,這些干擾如果不采取一定的措施進(jìn)行抑制、消除和屏蔽,就會(huì)嚴(yán)重地影響整機(jī)的正常工作。此外由于開(kāi)關(guān)穩(wěn)壓電源振蕩器沒(méi)有工頻變壓器的隔離,這些干擾就會(huì)串入工頻電網(wǎng),使附近的其他電子儀器、設(shè)備和家用電器受到嚴(yán)重的干擾。
另外用89C51對(duì)脈寬調(diào)制信號(hào)PWM進(jìn)行控制還要考慮到頻率問(wèn)題。由于51系列單片機(jī)的工作頻率較低,用于控制高頻率的開(kāi)關(guān)電源是不顯示的,考慮到更換頻率更高的單片機(jī)會(huì)使得制作成本升高,并且在高頻下對(duì)布線要求較高也更容易產(chǎn)生干擾噪聲。
2.2.2       方案二分析:
     線性穩(wěn)壓直流電源的特點(diǎn)是:輸出電壓比輸入電壓低;反應(yīng)速度快,輸出紋波較;工作產(chǎn)生的噪聲低。通過(guò)集成穩(wěn)壓器調(diào)節(jié)可以使得輸出電壓的穩(wěn)壓系數(shù)較為理想,同時(shí)工作輸出也很穩(wěn)定。
     使用LM317可調(diào)穩(wěn)壓器作為主要的穩(wěn)壓器件,一方面可以降低制作成本,另一方面使得電路的設(shè)計(jì)更簡(jiǎn)單,更使用。但和開(kāi)關(guān)電源相比,線性電源的效率較低,這是由于調(diào)整管相當(dāng)于一個(gè)電阻,電流流過(guò)電阻時(shí)會(huì)發(fā)熱,所以工作在線性狀態(tài)下的調(diào)整管,一般會(huì)產(chǎn)生大量的熱,導(dǎo)致效率不高。這是線性穩(wěn)壓電源的一個(gè)最主要的一個(gè)缺點(diǎn),調(diào)整管在發(fā)熱的同時(shí)會(huì)給系統(tǒng)帶來(lái)熱噪聲影響。另外,采用調(diào)整管的電源,其電源功耗都較小。當(dāng)然在實(shí)際應(yīng)用中可以加入擴(kuò)流電路使得電源的輸出功率有所提高,可以為小功率電器及設(shè)備提供可靠的電源。同時(shí)可以通過(guò)使用溫度傳感器校正由于調(diào)整管的發(fā)熱導(dǎo)致的電壓偏差,使得電壓輸出與預(yù)置電壓相符合。
     綜上所述,使用調(diào)整管調(diào)節(jié)輸出電壓可以獲得較穩(wěn)定的電壓輸出,而使用開(kāi)關(guān)管調(diào)節(jié)輸出電壓可以獲得較大的電壓調(diào)節(jié)范圍,但是由于AT89C51單片機(jī)的工作頻率較低,不適用于對(duì)開(kāi)關(guān)管的脈寬進(jìn)行控制,而以單片機(jī)為控制系統(tǒng)的線性調(diào)節(jié)作用較適用于調(diào)整管的電壓調(diào)節(jié),所以本設(shè)計(jì)采用了調(diào)整管調(diào)節(jié)電壓輸出的方式。
3         硬件電路設(shè)計(jì)
     
                 圖2.4 基于單片機(jī)系統(tǒng)的數(shù)控電源系統(tǒng)框圖
如圖2.4所示,硬件電路主要由三個(gè)部分組成:一是主電源部分,該部分提供電源輸出;二是副電源電路部分,該部分主要提供+12V、+5V、0V和-12V電源,為單片機(jī)及A/D、D/A轉(zhuǎn)換、運(yùn)算放大器提供電源;三是控制部分電路,主要包括單片機(jī)、A/D和D/A轉(zhuǎn)換電路、運(yùn)算放大電路及溫度傳感器校正電路,為最主要的控制電路,是整個(gè)制作的核心。      
3.1主電源電路設(shè)計(jì)
該電路由變壓器、全波整流濾波電路、集成穩(wěn)壓器LM317、和電流放大電路
構(gòu)成。
3.1.1 變壓器的選擇
根據(jù)各級(jí)放大器管子的工作負(fù)載線求出最大工作電壓(以變壓器或扼流圈為負(fù)載的,取工作點(diǎn)電壓)和最大電流,取其中電壓最高一級(jí)的電壓作為放大器供電電壓,取各級(jí)最大電流之和作為放大器供電電流。通常整流后以CLC或CRC方式濾波,會(huì)出現(xiàn)一定的升壓,故變壓器輸出電壓可按 放大器供電電壓+整流器電壓降+第一級(jí)放大器前的濾波器電壓降的0.8-0.9之間選取,如果整流后采取LC或RC濾波方式的,一般以0.9-0.95為宜;為使放大器有充沛的工作電流供給,變壓器輸出電流應(yīng)該選得大些,可取放大器供電電流的1.4倍,一般超過(guò)2倍意義并不大。如果根據(jù)放大器供電要求已經(jīng)得出了變壓器各次級(jí)繞組輸出所需要的所有電壓、電流,即可按 電壓×電流 求出各次級(jí)繞組的輸出功率,并將這些繞組的輸出功率全部相加再除以0.85-0.9的系數(shù)(功率在100W以下的系數(shù)宜在稍取大一些),這就得出了電源變壓器的總功率,計(jì)算出變壓器的所有設(shè)計(jì)參數(shù)。
本設(shè)計(jì)中的最大輸出工作電壓為10V,允許最大工作電流為1.5A,因此所能提供的最大輸出功率為15W。主電源電路中LM317穩(wěn)壓器的輸入端選擇15V的電壓輸入,以保證輸出能達(dá)到10V,變壓器的功率選擇為30W,為提高輸出功率提供一定的調(diào)節(jié)余地。副電源電路作用是提供控制部分的器件正常工作電壓,因此在輸出功率上不需要太大。
變壓器選擇參數(shù)如表3.1所示:
        
        
        
        
        
        
                表3.1 變壓器選擇參數(shù)表
3.1.2 整流濾波電路
整流電路將交流電壓Ui變換成脈動(dòng)的直流電壓。再經(jīng)濾波電路濾除較大的紋波成分,輸出紋波較小的直流電壓U1。常用的整流濾波電路有全波整流濾波、橋式整流濾波等。本設(shè)計(jì)采用單相橋式整流電路,圖3.1是容性負(fù)載單相橋式整流電路。它的四臂是由四只二極管構(gòu)成,當(dāng)變壓器B次級(jí)的1端為正、2端為負(fù)時(shí),二極管D2和D4因承受正向電壓而導(dǎo)通,D1和D3因承受反向電壓而截止。此時(shí),電流由變壓器1端通過(guò)D4經(jīng)RL,再經(jīng)D2返回2端。當(dāng)1端為正時(shí),二極管D1、D3導(dǎo)通,D2、D4截止,電流則由2端通過(guò)D3流經(jīng)RL,再經(jīng)D1返回1端。因此,與全波整流一樣,在一個(gè)周期內(nèi)的正負(fù)半周都有電流流過(guò)負(fù)載,而且始終是同一方向。
圖3.1 整流電路原理示意圖
3.1.3 穩(wěn)壓調(diào)壓電路
穩(wěn)壓調(diào)壓電路主要用的是LM317集成三端可調(diào)穩(wěn)壓器。該元件如圖3.2示。                        
  
LM317產(chǎn)品介紹:
     LM317 是美國(guó)國(guó)家半導(dǎo)體公司的三端可調(diào)正穩(wěn)壓器集成電路。我國(guó)和世界各大集成電路生產(chǎn)商均有同類(lèi)產(chǎn)品可供選用,是使用極為廣泛的一類(lèi)串連集成穩(wěn)壓器。
LM317 的輸出電壓范圍是1.2V 至 37V,負(fù)載電流最大為 1.5A。它的使用非常簡(jiǎn)單,僅需兩個(gè)外接電阻來(lái)設(shè)置輸出電壓。此外它的線性調(diào)整率和負(fù)載調(diào)整率也比標(biāo)準(zhǔn)的固定穩(wěn)壓器好。LM317 內(nèi)置有過(guò)載保護(hù)、安全區(qū)保護(hù)等多種保護(hù)電路。
通常 LM317 不需要外接電容,除非輸入濾波電容到LM317 輸入端的連線超過(guò) 6 英寸(約 15 厘米)。使用輸出電容能改變瞬態(tài)響應(yīng)。調(diào)整端使用濾波電容能得到比標(biāo)準(zhǔn)三端穩(wěn)壓器高的多的紋波抑制比。
LM317 能夠有許多特殊的用法。比如把調(diào)整端懸浮到一個(gè)較高的電壓上,可以用來(lái)調(diào)節(jié)高達(dá)數(shù)百伏的電壓,只要輸入輸出壓差不超過(guò) LM117/LM317 的極限就行。當(dāng)然還要避免輸出端短路。還可以把調(diào)整端接到一個(gè)可編程電壓上,實(shí)現(xiàn)可編程的電源輸出。
  圖3.3 穩(wěn)壓調(diào)壓電路原理圖
     如圖3.3所示,LM317的控制端為1腳,通過(guò)調(diào)節(jié)1腳電壓從而達(dá)到對(duì)輸出電壓Uo的調(diào)節(jié),通過(guò)調(diào)節(jié)電位器RP1也可以改變輸出電壓的范圍,二極管DDD用于防止電路短路。
3.1.4 擴(kuò)流電路
     如圖3.4所示,為兩只不同類(lèi)型管構(gòu)成的NPN型管,由三極管TT1、TT2,電阻R2、R3、R4構(gòu)成電流放大電路。其中TT1和TT2構(gòu)成互補(bǔ)復(fù)合管,R2、R3、R4組成偏置電阻。
圖3.4 括流電路原理圖  
     在正確的外加電壓下每只管的電流均有合適的通路,且都工作在放大區(qū),為了實(shí)現(xiàn)電流放大,應(yīng)將第一只管的集電極電流作為第二只管的基極電流,由于復(fù)合管有很高的電流放大系數(shù),所以只需要很小的輸入驅(qū)動(dòng)電流就可以獲得很大的輸出集電極電流。其電流的放大系數(shù)約為兩只三極管的放大系數(shù)的乘積,這樣可以大大地改善電路的性能。
主電源電路的參數(shù)選擇
    集成穩(wěn)壓器的輸出電壓Vo與穩(wěn)壓電源的輸出電壓相同。穩(wěn)壓器的最大允許電流Icm<Io max,輸出電壓Vi的范圍為:
      Vo max+(Vi-Vo)min≤Vi≤Vo min+(Vi-Vo)max       (3)式
式中Vo max為最大輸出電壓;Vo min為最小輸出電壓;(Vi-Vo)min為穩(wěn)壓器的最小輸入、輸出電壓差;(Vi-Vo)max為穩(wěn)壓器的最大輸入、輸出電壓差。
    性能指標(biāo)要求 Vo=+3V-+9V,△Vop-p≤5mV,Sv≤3*10-3
         選可調(diào)式三端穩(wěn)壓器LM317,其參數(shù)特性Vo=1.25V-37V,Io max=1.5A,最小輸入、輸出電壓差(Vi-Vo)min=3V,最大輸入、輸出壓差(Vi-Vo)max=40V。由(2)式知,取R1=240Ω,則RP1min=336Ω,RP1max=1.49KΩ,所以RP1取精密可調(diào)電位器,用于調(diào)節(jié)控制端誤差。
由(3)式可得輸入電壓Vi的范圍為:
        Vo max+(Vi-Vo)min≤Vi≤Vo min+(Vi-Vo)max
                       9V+3V≤Vi≤3V+40V
                         12V≤Vi≤43V
    綜上所述,變壓器應(yīng)選取功率在30W以上,以保證能提供足夠的大的電流。整流濾波電容C1選取耐壓值為25V3600uF的電解電容,電容C2選取1uF的瓷片電容,輸出濾波電容C3取10uF的電解電容。三極管TT1選取型號(hào)為D669AC的NPN型的大功率管,TT2選取型號(hào)為B649AC的PNP型的大功率管。R2、R3、R4組成偏置電阻取值分別為6.2Ω、10Ω、15Ω的電阻。
    需要注意的是,在主電源電路中所選取的所有電阻均應(yīng)采用2W的大功率電阻,以防止由于負(fù)載接入時(shí)產(chǎn)生大電流而使電阻損壞。另外在使用LM317時(shí),要注意防管腳接錯(cuò),穩(wěn)壓電路中還要接上保險(xiǎn)絲和二極管防止短路電流過(guò)大,另外對(duì)于LM317還要加裝合適的散熱片。
3.2副電源電路設(shè)計(jì)
     副電源主要用于提供供控制部分電路使用的+12V、+5V、0V和-12V電壓。其電路結(jié)構(gòu)與主電源電路結(jié)構(gòu)相似,同樣采用的是穩(wěn)壓器件來(lái)穩(wěn)定電壓。
    圖3.4中使用的三端穩(wěn)壓為CW7805、CW7812及CW7912三種型號(hào),穩(wěn)壓值分別為+5V、+12V和-12V。CW78**與CW79**系列繼承穩(wěn)壓器穩(wěn)壓器引腳圖如圖3.5所示。CW78**系列穩(wěn)壓器1腳為電壓輸入端,2腳為地,3腳為電壓輸出端;CW79**系列穩(wěn)壓器1腳接地,2腳接電壓輸入端,3腳接電壓輸出端。  
           
          圖3.5 CW78**與CW79**系列穩(wěn)壓器引腳圖
     CW78**系列三端穩(wěn)壓器的輸出電壓有5V、6V、、9V、12V、15V、18V和24V七個(gè)檔次。如CW7805表示的是輸出電壓為5V,最大電流為1.5A,以此類(lèi)推。CW79**系列三端穩(wěn)壓器和CW78**類(lèi)似。這2種穩(wěn)壓管內(nèi)部均由穩(wěn)壓電路和過(guò)流保護(hù)電路組成。副電源部分電路原理圖及調(diào)整管接法如圖3.5所示:
          圖3.5 副電源電路原理圖
副電源電路參數(shù)選擇:
     整流濾波電容C4、C5選取耐壓值為25V3600uF的電解電容,R5、R6、R7選擇20K電阻(它們的作用是使得穩(wěn)壓器在開(kāi)路時(shí)仍有工作電流,保證穩(wěn)壓器的正常工作),C6、C7、C8選取的是耐壓值為25V10uF的電解電容用于濾波。特別要注意的是電容C5、C8的正負(fù)極不能接反,另外副電源中的電阻也采用的是2W大功率電阻。
     副電源與主電源使用不同的變壓器變壓,主要考慮的是主電源要求的輸出功率較大,所以不宜采用同一個(gè)變壓器提供電源。
3.3控制部分電路設(shè)計(jì)
     控制部分電路是整個(gè)設(shè)計(jì)中最關(guān)鍵的核心電路部分,又可以分成鍵盤(pán)部分及轉(zhuǎn)換校正部分。它的主要功能是進(jìn)行輸出數(shù)值預(yù)置,顯示輸出電壓幅值、預(yù)置數(shù),進(jìn)行A/D、D/A轉(zhuǎn)換,使用溫度傳感器進(jìn)行校正,上述功能采用的是AT89C51來(lái)控制實(shí)現(xiàn)。主要使用的芯片和元器件有AT89C51、ADC0809、DAC0832、LM324、四位七段共陽(yáng)級(jí)數(shù)碼管及數(shù)字溫度傳感器DS1820。
以AT89C51單片機(jī)為核心的控制系統(tǒng)控制外圍電路。
    AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable ReadOnly Memory)的低電壓,高性能CMOS8位微處理器,俗稱(chēng)單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。
其主要特性有:與MCS-51 兼容;4K字節(jié)可編程閃爍存儲(chǔ)器;壽命:1000次寫(xiě)/擦循環(huán),數(shù)據(jù)保留時(shí)間:10年;全靜態(tài)工作:0Hz-24Hz;三級(jí)程序存儲(chǔ)器鎖定;128*8位內(nèi)部RAM;32可編程I/O線;兩個(gè)16位定時(shí)器/計(jì)數(shù)器;5個(gè)中斷源 ;可編程串行通道;低功耗的閑置和掉電模式;片內(nèi)振蕩器和時(shí)鐘電路。如圖3.5所示為AT89C51的引腳圖。
     圖3.5 AT89C51單片機(jī)引腳示意圖
3.3.1 A/D及D/A轉(zhuǎn)換電路
轉(zhuǎn)換部分主要進(jìn)行A/D、D/A轉(zhuǎn)換及數(shù)字溫度傳感器的使用和校正。其電路原理圖如圖3.6所示。
                      圖3.6 轉(zhuǎn)換部分電路原理圖
設(shè)計(jì)思路:
由于鍵盤(pán)電路中的按鍵及數(shù)碼管顯示分別占用了單片機(jī)的P2口和P0口,剩余的I/O口只有P1口和P3口,同時(shí)考慮到節(jié)約制作成本這一因素,所以轉(zhuǎn)換部分仍然采用的是鍵盤(pán)部分電路中的同一塊單片機(jī),兩塊轉(zhuǎn)換芯片采用并行接入法,通過(guò)單片機(jī)的控制片選信號(hào)選通。
A/D轉(zhuǎn)換部分:
如圖3.15所示,ADC0809的D7~D0口與DAC0832的D7~D0口按順序并聯(lián),然后按順序接到AT89C51的P1口作為轉(zhuǎn)換數(shù)據(jù)的輸入輸出端口。
ADC0809的作用是采集最后的電壓輸出信號(hào),并轉(zhuǎn)化為8位數(shù)字信號(hào),通過(guò)單片機(jī)的P1口送到單片機(jī)做處理并送數(shù)碼管上顯示。其6腳(START)和22腳(ALE)直接與單片機(jī)的14腳(P3.4)相連,用于控制A/D轉(zhuǎn)換啟動(dòng);7腳(EOC)與單片機(jī)的15腳(P3.5)相連,用于輸入A/D轉(zhuǎn)換結(jié)束信號(hào)。
ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開(kāi)關(guān)以及微處理機(jī)兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機(jī)直接接口。其引腳功能如圖3.6所示。
圖3.6ADC0809引腳示意圖
主要特性:8路8位A/D轉(zhuǎn)換器,即分辨率8位;具有轉(zhuǎn)換起?刂贫耍晦D(zhuǎn)換時(shí)間為100μs;單個(gè)+5V電源供電;模擬輸入電壓范圍0~+5V,不需零點(diǎn)和滿(mǎn)刻度校準(zhǔn)。;工作溫度范圍為-40~+85攝氏度;低功耗,約15mW。
引腳功能:
ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖13.23所示。下面說(shuō)明各引腳功能。
IN0~I(xiàn)N7:8路模擬量輸入端。
2-1~2-8(D7~D0):8位數(shù)字量輸出端。
ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路。如表13.2所示。
ALE:地址鎖存允許信號(hào),輸入,高電平有效。
START: A/D轉(zhuǎn)換啟動(dòng)信號(hào),輸入,高電平有效。
EOC: A/D轉(zhuǎn)換結(jié)束信號(hào),輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(轉(zhuǎn)換期間一直為低電平)。
OE:數(shù)據(jù)輸出允許信號(hào),輸入,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開(kāi)輸出三態(tài)門(mén),輸出數(shù)字量。
CLK:時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于640KHZ。
REF(+)、REF(-):基準(zhǔn)電壓。
Vcc:電源,單一+5V。
GND:地。
ADC0809的工作過(guò)程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng) A/D轉(zhuǎn)換,之后EOC輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可用作中斷申請(qǐng)。當(dāng)OE輸入高電平時(shí),輸出三態(tài)門(mén)打開(kāi),轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。
D/A轉(zhuǎn)換部分:
DAC0832的作用是通過(guò)單片機(jī)把預(yù)置數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),輸出到主電源的控制端,對(duì)輸出電壓進(jìn)行調(diào)節(jié)。其2腳(WR1)和18腳(WR2)與單片機(jī)的12腳(P3.2)相連,用于控制D/A轉(zhuǎn)換的寄存器的選通;1(CS)腳和17腳(XFER)與單片機(jī)的13腳(P3.3)相連,用于控制D/A轉(zhuǎn)換的片選信號(hào)和數(shù)據(jù)傳送信號(hào)。
DAC0832是采用先進(jìn)的CMOS工藝制成的雙列直插式單片8位D/A轉(zhuǎn)化器。轉(zhuǎn)換速度為1uF。該芯片采用8位DAC寄存器兩次緩沖方式,這樣可以在D/A輸出的同時(shí),送入下一個(gè)數(shù)據(jù),以便提高轉(zhuǎn)換速度;也可以實(shí)現(xiàn)多片D/A轉(zhuǎn)換器的同步輸出。其引腳圖如圖3.7所示。
圖3.7 DAC0832引腳圖
其各引腳的功能定義如下:
DI7~DI0 :8位的數(shù)據(jù)輸入端,DI7為最高位。
IOUT1 :模擬電流輸出端1,當(dāng)DAC寄存器中數(shù)據(jù)全為1時(shí),輸出電流最大,當(dāng)DAC寄存器中數(shù)據(jù)全為0時(shí),輸出電流為0。
IOUT2 :模擬電流輸出端2, IOUT2與IOUT1的和為一個(gè)常數(shù),即IOUT1+I(xiàn)OUT2=常數(shù)。
RFB :反饋電阻引出端,DAC0832內(nèi)部已經(jīng)有反饋電阻,所以RFB端可以直接接到外部運(yùn)算放大器的輸出端,這樣相當(dāng)于將一個(gè)反饋電阻接在運(yùn)算放大器的輸出端和輸入端之間。
VREF :參考電壓輸入端,此端可接一個(gè)正電壓,也可接一個(gè)負(fù)電壓,它決定0至255的數(shù)字量轉(zhuǎn)化出來(lái)的模擬量電壓值的幅度,VREF范圍為(+10~-10)V。VREF端與D/A內(nèi)部T形電阻網(wǎng)絡(luò)相連。
Vcc :芯片供電電壓,范圍為(+5~ 15)V。
AGND :模擬量地,即模擬電路接地端。
DGND :數(shù)字量地。
      要注意的是DAC0832是電流輸出型的,在設(shè)計(jì)時(shí)要求的是電壓輸出控制,因此需要在D/A轉(zhuǎn)換結(jié)果轉(zhuǎn)化為電壓輸出,可在DAC0832的IOUT2與IOUT1輸出端接一個(gè)運(yùn)算放大器,接法如圖3.8所示。
圖3.8 DAC0832電壓轉(zhuǎn)換示意圖
輸出電壓放大部分:
LM324是四運(yùn)放集成電路,它采用14腳雙列直插塑料封裝。它的內(nèi)部包含四組形式完全相同的運(yùn)算放大器,除電源共用外,四組運(yùn)放相互獨(dú)立。
每一組運(yùn)算放大器可用圖1所示的符號(hào)來(lái)表示,它有5個(gè)引出腳,其中“+”、“-”為兩個(gè)信號(hào)輸入端,“V+”、“V-”為正、負(fù)電源端,“Vo”為輸出端。兩個(gè)信號(hào)輸入端中,Vi-(-)為反相輸入端,表示運(yùn)放輸出端Vo的信號(hào)與該輸入端的相位相反;Vi+(+)為同相輸入端,表示運(yùn)放輸出端Vo的信號(hào)與該輸入端的相位相同。LM324的引腳圖如圖3.9所示。
另外在使用集成運(yùn)算放大器,要注意引腳的連接是否正確,使用前要看是否需要做偏置電壓調(diào)零以及防止電路中產(chǎn)生自激震蕩。
  圖3.9  LM324芯片引腳圖
3.3.2 校正部分電路
美國(guó)DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器DS182,可把溫度信號(hào)直接轉(zhuǎn)換成串行數(shù)字信號(hào)供微機(jī)處理。由于每片DS1820含有唯一的硅串行數(shù)所以在一條總線上可掛接任意多個(gè)DS1820芯片。從DS1820讀出的信息或?qū)懭隓S1820的信息,僅需要一根口線(單線接口)。讀寫(xiě)及溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS1820供電,而無(wú)需額外電源。DS1820提供九位溫度讀數(shù),構(gòu)成多點(diǎn)溫度檢測(cè)系統(tǒng)而無(wú)需任何外圍硬件。其引腳排列如圖3.10所示。
       圖3.10  DS1820芯片引腳圖
DS1820引腳及功能:DS1820的引腳見(jiàn)圖3.1.3(PR35封裝)。GND:地;DQ:數(shù)據(jù)輸入/輸出腳(單線接口,可作寄生供電);VDD:電源電壓。
DS1820的測(cè)溫原理:內(nèi)部計(jì)數(shù)器對(duì)一個(gè)受溫度影響的振蕩器的脈沖計(jì)數(shù),低溫時(shí)振蕩器的脈沖可以通過(guò)門(mén)電路,而當(dāng)?shù)竭_(dá)某一設(shè)置高溫時(shí)振蕩器的脈沖無(wú)法通過(guò)門(mén)電路。計(jì)數(shù)器設(shè)置為-55℃時(shí)的值,如果計(jì)數(shù)器到達(dá)0之前,門(mén)電路未關(guān)閉,則溫度寄存器的值將增加,這表示當(dāng)前溫度高于-55℃。同時(shí),計(jì)數(shù)器復(fù)位在當(dāng)前溫度值上,電路對(duì)振蕩器的溫度系數(shù)進(jìn)行補(bǔ)償,計(jì)數(shù)器重新開(kāi)始計(jì)數(shù)直到回零。如果門(mén)電路仍然未關(guān)閉,則重復(fù)以上過(guò)程。溫度表示值為9bit,高位為符號(hào)位。
對(duì)DS1820的使用,多采用單片機(jī)實(shí)現(xiàn)數(shù)據(jù)采集。處理時(shí),將DS1820信號(hào)線與單片機(jī)一位口線相連,單片機(jī)可掛接多片DS1820,從而實(shí)現(xiàn)多點(diǎn)溫度檢測(cè)系統(tǒng)。系統(tǒng)對(duì)DS1820的操作以ROM命令和存儲(chǔ)器命令形式出現(xiàn)。
3.3.3 鍵盤(pán)及數(shù)碼管顯示電路
     在對(duì)鍵盤(pán)電路進(jìn)行介紹之前,首先對(duì)鍵盤(pán)的功能和原理進(jìn)行說(shuō)明。
鍵盤(pán)是若干按鍵的集合,是向系統(tǒng)提供操作人員干預(yù)命令的接口設(shè)備.鍵可分為編碼鍵盤(pán)和非編碼鍵盤(pán)兩種類(lèi)型.前者能自動(dòng)識(shí)別按下的鍵并產(chǎn)生相應(yīng)代碼,以并行或串行方式送給CPU。它使用方便,接口簡(jiǎn)單,響應(yīng)速度快,但價(jià)格高.后者則通過(guò)軟件來(lái)確定按鍵并計(jì)算鍵值.這種方法雖然沒(méi)有編碼鍵盤(pán)速度快,但它價(jià)格便宜,組態(tài)靈活,因此得到廣泛的應(yīng)用.
鍵盤(pán)是計(jì)算機(jī)應(yīng)用系統(tǒng)中一個(gè)很重要的組成部分,設(shè)計(jì)時(shí)必須解決下述一些問(wèn)題。
按鍵的確認(rèn):
     鍵盤(pán)實(shí)際上是一組按鍵開(kāi)關(guān)的集合,其每一個(gè)按鍵就是一個(gè)開(kāi)關(guān)量輸入裝置.鍵的閉合與否,取決于彈性開(kāi)關(guān)的合,斷兩個(gè)狀態(tài),反應(yīng)在電壓上就是呈現(xiàn)出高電平或低電平,若高電平表示斷開(kāi),則低電平表明鍵閉合.所以,通過(guò)電平狀態(tài)(高或低)的檢測(cè),便可確定相應(yīng)按鍵是否已被按下.鍵盤(pán)中有無(wú)按鍵按下是通過(guò)列選線讀入掃描字及行線讀入行選線的狀態(tài)進(jìn)行判斷的。判斷的過(guò)程是:將列選線的所有I/O線均置成低電平,然后將行線的狀態(tài)讀入累加器中。如果有鍵按下,則至少會(huì)有一根行線被拉至低電平,從而使行輸入不全為1。
判斷按下的是哪一個(gè)鍵的方法是:將列選線依次置為低電平,然后檢查所有行線狀態(tài),如果不全為1,則按下的鍵在這一列,而且是在與低電平行線相交交點(diǎn)上的那個(gè)鍵;如果全為1,則按下的鍵不在此列。因?yàn)殒I盤(pán)在按下過(guò)程中會(huì)產(chǎn)生抖動(dòng),單片機(jī)可能錯(cuò)誤地認(rèn)為是按下幾次,這樣會(huì)造成誤操作,因此在鍵盤(pán)處理程序中要加延時(shí)去抖動(dòng)程序。
鍵盤(pán)抖動(dòng)的防止:
     由于鍵盤(pán)本身的構(gòu)造或者不規(guī)范的操作都會(huì)導(dǎo)致鍵盤(pán)抖動(dòng),鍵盤(pán)抖動(dòng)會(huì)影響數(shù)值的正確輸入,造成錯(cuò)誤的操作,要防止。
     很多實(shí)際應(yīng)用系統(tǒng)均采用較少幾個(gè)按鍵組成非編碼鍵盤(pán),也稱(chēng)為開(kāi)關(guān)式鍵盤(pán),它們與單片機(jī)連接,當(dāng)按鍵數(shù)比較多的時(shí)候,為節(jié)省I/O口線和減少引線,常將其按矩陣的方式連接。
如圖3.11,本設(shè)計(jì)中采用的8個(gè)按鍵的鍵盤(pán),以2×4的方式連接,即2根行線和4根列線,每個(gè)行線和列線交叉點(diǎn)處即為一個(gè)鍵位。行線和列線一共需要6個(gè)I/O口。當(dāng)某一鍵按下時(shí),該按鍵所對(duì)應(yīng)的電平發(fā)生變化,單片機(jī)通過(guò)對(duì)I/O口電平的查詢(xún)來(lái)判斷是哪一鍵按下。
           圖3.11  2×4按鍵鍵位圖
     鍵盤(pán)電路部分由按鍵,發(fā)光二極管、四位七段共陽(yáng)級(jí)數(shù)碼管、三極管及單片機(jī)組成。2×4按鍵與單片機(jī)P2口的6個(gè)I/O口相連接。數(shù)碼管的接口與單片機(jī)P0口連接,發(fā)光二極管作為操作指示燈。
系統(tǒng)預(yù)置及輸出顯示部分:
本系統(tǒng)中采用4位數(shù)碼管顯示,動(dòng)態(tài)掃描,軟件譯碼實(shí)現(xiàn)預(yù)置電壓、輸出電壓的實(shí)時(shí)顯示。數(shù)碼管有共陰和共陽(yáng)的區(qū)分,單片機(jī)都可以進(jìn)行驅(qū)動(dòng),但是驅(qū)動(dòng)的方法卻不同,并且相應(yīng)的0~9的顯示代碼也正好相反。
共陰極LED數(shù)碼管的發(fā)光二極管的陰極共地,某個(gè)發(fā)光二極管的陽(yáng)極電壓為高電平時(shí),二極管發(fā)光;而此陽(yáng)極LED數(shù)碼管是發(fā)光二極管的陽(yáng)極共接,當(dāng)某個(gè)二極管的陰極電壓為低電平時(shí),二極管發(fā)光。在設(shè)計(jì)中選擇的是共陽(yáng)極四位七端數(shù)碼管。其引腳圖如圖3.10所示。
         圖3.10 四位七段共陽(yáng)級(jí)數(shù)碼管引腳圖
部分電路參數(shù)選擇:三極管采用9015PNP型,電阻均采用的是1K,由于轉(zhuǎn)化部分的ADC0809不需要太高的轉(zhuǎn)換頻率,故單片機(jī)的石英晶振選取為6M。為方便調(diào)試,在單片機(jī)的P0口和P2口上都裝上插針。
4.軟件設(shè)計(jì)
               圖4.1 軟件設(shè)計(jì)總流程圖
    軟件設(shè)計(jì)總流程圖如圖4.1所示,開(kāi)始執(zhí)行程序后,系統(tǒng)等待鍵盤(pán)鍵入預(yù)置電壓數(shù),當(dāng)預(yù)制置完成后程序轉(zhuǎn)入D/A轉(zhuǎn)換及數(shù)碼管顯示子程序,完成D/A轉(zhuǎn)換后調(diào)校正子程序進(jìn)行輸出電壓校正,完成校正后送控制端口輸出電壓,若有指令要求系統(tǒng)顯示輸出數(shù)值時(shí),系統(tǒng)調(diào)用A/D轉(zhuǎn)換子程序及數(shù)碼管顯示子程序,把最終結(jié)果輸出到數(shù)碼管上顯示并返回程序。
4.1 軟件介紹
在設(shè)計(jì)過(guò)程中,主要應(yīng)用到兩種軟件。一是用于PCB電路板布線的Protel 99SE;另外一個(gè)就是用于調(diào)試程序的Keil uVision2。下面將對(duì)這兩種軟件進(jìn)行簡(jiǎn)單的介紹。
4.1.1 Protel 99SE
一般來(lái)說(shuō),設(shè)計(jì)電路板最基本的過(guò)程可以分為4個(gè)主要步驟。
1. 電路原理圖的設(shè)計(jì)
電路原理圖的設(shè)計(jì)主要是利用Protel 99SE的原理圖設(shè)計(jì)系統(tǒng)(Advanced Schematic)來(lái)繪制一張電路原理圖。
2.  生成網(wǎng)絡(luò)表
網(wǎng)絡(luò)表是電路原理圖設(shè)計(jì)(Sch)與印制電路板設(shè)計(jì)(PCB)之間的一座橋梁。網(wǎng)絡(luò)表可以從電路原理圖中獲得,也可以從印制電路板中提取。
3.印制電路板的設(shè)計(jì)
印制電路板的設(shè)計(jì)主要是針對(duì)Protel 99SE的另外一個(gè)重要的部分PCB而言的,在這個(gè)過(guò)程中,借助Protel 99SE提供的強(qiáng)大功能,可以實(shí)現(xiàn)電路板的板面設(shè)計(jì),完成高難度的布線工作。
4.生成電路板報(bào)表
     設(shè)計(jì)印制電路板后,還需生成印制電路板有關(guān)報(bào)表,并打印印制電路圖。
     整個(gè)電路板的設(shè)計(jì)過(guò)程首先是編輯電路原理圖,然后由電路原理圖文件產(chǎn)生網(wǎng)絡(luò)表,最后再根據(jù)網(wǎng)絡(luò)表進(jìn)行線路板的布線工作。
4.1.2  Keil uVision2
Keil Software 的8051開(kāi)發(fā)工具可以用它們來(lái)編譯C源碼,匯編匯編源程序連接和重定位你的目標(biāo)文件和庫(kù)文件創(chuàng)建HEX文件等。
μVision2是KeilSoftware的一個(gè)新的IDE,它結(jié)合了項(xiàng)目管理、生成工具、源代碼編輯、程序調(diào)試和在一個(gè)強(qiáng)大的環(huán)境中完全模擬。μVision2提供了一個(gè)簡(jiǎn)單易用的開(kāi)發(fā)平臺(tái)幫助您使程序運(yùn)行得比以前更快。編輯器和調(diào)試器集成到一個(gè)應(yīng)用程序中,并提供一個(gè)無(wú)縫的嵌入式項(xiàng)目開(kāi)發(fā)環(huán)境。
μVision2提供了像下面這些獨(dú)特的功能:器件數(shù)據(jù)庫(kù):自動(dòng)選擇的芯片設(shè)置匯編器、編譯器和連接器選項(xiàng)。這就節(jié)省了配置工具的時(shí)間,并更快地編寫(xiě)代碼。項(xiàng)目管理器:可以在一個(gè)項(xiàng)目文件中對(duì)目標(biāo)創(chuàng)建幾個(gè)不同的配置。只有Keil μVision2IDE允許創(chuàng)建一個(gè)用于模擬的輸出文件、一個(gè)用于仿真器調(diào)試的輸出文件和一個(gè)向EPROM編程的輸出文件,上面的這些文件都來(lái)自于同一個(gè)項(xiàng)目文件。with automatic dependency generation的集成生成工具。不用指出哪個(gè)頭文件和包含文件由哪個(gè)源文件使用。Keil編譯器和匯編器會(huì)自動(dòng)完成這項(xiàng)工作。交互的錯(cuò)誤糾正。在編譯項(xiàng)目時(shí),錯(cuò)誤和警告信息在輸出窗口顯示。當(dāng)μVision2仍然在后臺(tái)編譯時(shí),就可以糾正項(xiàng)目文件中的錯(cuò)誤。錯(cuò)誤和警告相關(guān)的行號(hào)在對(duì)源文件作了修改后會(huì)自動(dòng)重新同步。
uVision2源代碼級(jí)調(diào)試器是一個(gè)理想的,快速的程序調(diào)試器。此調(diào)速器包含一個(gè)高速模擬器,能夠模擬整個(gè)8051系統(tǒng),包括片上外圍器件和外部硬件。
它的應(yīng)用步驟如下:
1.  啟動(dòng)軟件并創(chuàng)建一個(gè)項(xiàng)目,從器件庫(kù)中選擇所使用的CPU的型號(hào),并保存到相應(yīng)的目錄下。
2.   創(chuàng)建源文件。創(chuàng)建一個(gè)源文件,以擴(kuò)展名為.C或.ASM的方式保存,用于編譯C語(yǔ)言或匯編語(yǔ)言程序。
3.     生成HEX十六進(jìn)制文件。在源程序語(yǔ)言通過(guò)編譯后,在OUTPUT窗口中選擇生成HEX十六進(jìn)制文件。
Keil uVision2編譯界面如圖4.2所示。
                 圖4.2 Keil uVision2編譯界面
4.2 編程思想
    單片機(jī)控制系統(tǒng)軟件設(shè)計(jì)思路:系統(tǒng)掃描鍵盤(pán)輸入,當(dāng)鍵盤(pán)輸入預(yù)置數(shù),系統(tǒng)立即會(huì)做出響應(yīng),根據(jù)預(yù)置電壓值,通過(guò)DAC0832轉(zhuǎn)換成電壓,輸出用戶(hù)期望的電壓,隨后系統(tǒng)仍掃描鍵盤(pán),看是否有其他指令輸入。當(dāng)鍵盤(pán)輸入指令要求顯示輸出電壓值時(shí),通過(guò)片選選中ADC0809,把輸出電壓顯示在數(shù)碼管上。DS1820的作用是采集電壓變化時(shí)溫度的變化,通過(guò)單片機(jī)的把應(yīng)校正的數(shù)值通過(guò)DAC0832轉(zhuǎn)化成電壓校正輸出。
軟件子程序包括:(1)鍵盤(pán)和數(shù)碼管掃描子程序,(2)ADC0809轉(zhuǎn)換子程序,(3)DAC0832轉(zhuǎn)換子程序,(4)中斷定時(shí)處理程序設(shè)計(jì),(5)數(shù)碼顯示子程序,(6)溫度傳感器DS1820校正子程序。
4.2.1 鍵盤(pán)和數(shù)碼管掃描子程序
八個(gè)按鍵的定義分別是:加1、加10、減1、減10、D/A轉(zhuǎn)換控制、A/D轉(zhuǎn)換顯示控制、顯示預(yù)置值和輸出值切換控制、預(yù)置值返回零控制。鍵盤(pán)和數(shù)碼管掃描流程如圖4.3所示。
                        圖4.3 鍵盤(pán)和數(shù)碼管掃描流程圖
     系統(tǒng)上電后,首先等待鍵盤(pán)輸入預(yù)置電壓數(shù),鍵入數(shù)值后顯示于數(shù)碼管上,并等待確認(rèn)信息,當(dāng)確認(rèn)后系統(tǒng)自動(dòng)對(duì)信息進(jìn)行數(shù)字處理,并送數(shù)碼管顯示,同時(shí)程序從中斷返回。
4.2.2 ADC0809轉(zhuǎn)換子程序
     該芯片用于八位A/D轉(zhuǎn)換,由于輸出最大值為9.9V,所以可以由下面的式子(4)算出可采集到的最小幅值為:
                幅值÷精確度             (4)式
=9.99V÷28
=0.04V                  
      由于ADC0809只能采樣0-5V的電壓,超過(guò)會(huì)損壞芯片,在輸出端,通過(guò)電阻分壓,使得采樣的電壓總是小于5V,為了顯示輸出電壓值,在程序中采樣的電壓乘以一個(gè)分壓系數(shù)后在進(jìn)行顯示,這樣顯示值代表輸出電壓。A/D轉(zhuǎn)換流程如圖4.4所示。
  
        


圖4.4 A/D轉(zhuǎn)化流程圖
      當(dāng)鍵入命令開(kāi)始進(jìn)行A/D轉(zhuǎn)換時(shí),程序轉(zhuǎn)入轉(zhuǎn)換程序入口,并選擇ADC0809的IN0口輸入模擬量,在第4個(gè)時(shí)鐘CLK下降沿到來(lái)之前,采樣數(shù)據(jù),數(shù)據(jù)經(jīng)轉(zhuǎn)換后輸入到AT89C51的P0口,待轉(zhuǎn)換結(jié)束信號(hào)發(fā)出后,停止數(shù)據(jù)轉(zhuǎn)換并把最終的輸出電壓顯示在數(shù)碼管上,程序返回。
4.2.3 DAC0832轉(zhuǎn)換子程序
      DAC0832能轉(zhuǎn)換的精確度計(jì)算方式與ADC0809相同,能輸出最小幅值為0.04V。其轉(zhuǎn)換流程與A/D轉(zhuǎn)換流程基本相似,選通信號(hào)打開(kāi)后,預(yù)置數(shù)被送入DAC0832進(jìn)行D/A轉(zhuǎn)換,轉(zhuǎn)換結(jié)束后返回程序。
4.2.4中斷定時(shí)處理程序設(shè)計(jì)
      當(dāng)從鍵盤(pán)輸入命令時(shí),使得單片機(jī)產(chǎn)生中斷,程序轉(zhuǎn)向數(shù)碼顯示子程序,使數(shù)碼管顯示出單片機(jī)內(nèi)部寄存器的數(shù)值。定時(shí)主要作用是設(shè)定數(shù)碼管的顯示頻率。
   89C51系列單片機(jī)內(nèi)部有兩個(gè)16位的可編程定時(shí)器和,分別由和兩個(gè)8位計(jì)數(shù)器構(gòu)成。T0和T1的定時(shí)功能是通過(guò)對(duì)單片機(jī)內(nèi)部計(jì)數(shù)脈沖的計(jì)數(shù)實(shí)現(xiàn)的。因?yàn)槊總(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖,因此根據(jù)單片機(jī)的晶振頻率就可以計(jì)算出定時(shí)器的計(jì)數(shù)頻率。這樣如果確定了計(jì)數(shù)值,就能計(jì)算出定時(shí)時(shí)間,而知道了定時(shí)時(shí)間也可計(jì)算出計(jì)數(shù)器的預(yù)置值。定時(shí)器控制寄存器(TCON)和工作方式控制寄存器(TMOD)分別控制定時(shí)控制定時(shí)器的運(yùn)行和工作方式。計(jì)算預(yù)置計(jì)數(shù)值在工作方式1的定時(shí)時(shí)間計(jì)算公式為
定時(shí)時(shí)間=(65536—計(jì)數(shù)初值)×機(jī)器周期
   如本設(shè)計(jì)中采用6MHz晶振,一個(gè)機(jī)器周期為2us。設(shè)計(jì)數(shù)初值為x,則有:
                 TS= (65536—x) × 2us
   如程序中設(shè)置的定時(shí)為:#definetim 65536-2000
4.2.5 數(shù)碼顯示子程序
   由于外界有可能產(chǎn)生的噪聲和溫度變化產(chǎn)生的波動(dòng),使得采樣電壓發(fā)生抖動(dòng)或波動(dòng),顯示輸出可能會(huì)不夠穩(wěn)定(在一定范圍內(nèi)抖動(dòng)),所以需要采樣幾組數(shù)值,對(duì)其去平均值作為最后的顯示值輸出。數(shù)據(jù)處理程序如下:
s[0]=s[1];
       s[1]=s[2];
       s[2]=s[3];
       s[3]=s[4];
       s[4]=P1;
       temp=(s[0]+s[1]+s[2]+s[3]+s[4])/5;
       return temp;
上式中,S[]數(shù)組取的是P1口的數(shù)據(jù),當(dāng)產(chǎn)生抖動(dòng)時(shí)P1口會(huì)產(chǎn)生多組數(shù)據(jù),建立一個(gè)數(shù)組用于存放數(shù)據(jù),并去平均值作為輸出。
4.2.6 溫度傳感器的電壓校正
DS1820測(cè)溫原理為:在低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1 ,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。內(nèi)部斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。
AT89C51的內(nèi)部寄存器中存放了一組數(shù)組,該數(shù)組用于校正不同溫度下需要校正的電壓值。當(dāng)溫度寫(xiě)入單片機(jī)后,通過(guò)對(duì)寄存器的訪問(wèn),選擇出對(duì)應(yīng)的電壓,補(bǔ)償?shù)娇刂贫溯敵,以達(dá)到校正電壓的作用。
5. 系統(tǒng)調(diào)試
5.1 硬件模塊調(diào)試
     硬件模塊主要的調(diào)試內(nèi)容是主電源及副電源的技術(shù)性能指標(biāo),包括紋波值及穩(wěn)壓系數(shù)等。
5.1.1 電源部分技術(shù)指標(biāo)測(cè)試
穩(wěn)壓電源的技術(shù)指標(biāo)分為兩種:一種是特性指標(biāo),包括允許的輸入電壓、輸出電壓、輸出電流及輸出電壓調(diào)節(jié)范圍等;另一種是質(zhì)量指標(biāo),用來(lái)衡量輸出直流電壓的穩(wěn)定程度,包括穩(wěn)壓系數(shù)、輸出電阻、溫度系數(shù)及紋波電壓等。這些質(zhì)量指標(biāo)的含義,可簡(jiǎn)述如下。
最大輸出電流:指穩(wěn)壓電源正常工作時(shí)能輸出的最大電流,用Io max表示。一般情況下的工作電流I<Io max。穩(wěn)壓電路內(nèi)部應(yīng)有保護(hù)電路,以防止I>Io max時(shí)損壞電路。
輸出電壓:指穩(wěn)壓電源的輸出電壓,用Vo表示。其測(cè)試過(guò)程是:輸出端接負(fù)載電阻RL,輸入端接220V的交流電壓,數(shù)字電壓表的測(cè)量值即為Vo。再使RL逐漸減小,直到Vo的值下降5%,此時(shí)流經(jīng)負(fù)載RL的電流即為Io max。
紋波電壓:指疊加在輸出電壓Vo上的交流分量,一般為mV級(jí)?蓪⑵浞糯蠛螅檬静ㄆ饔^察出其峰-峰值△Vo p-p。也可以用交流電壓表測(cè)量其有效值。由于紋波電壓不是正弦波,所以用有效值衡量存在一定的誤差。一般為毫伏數(shù)量級(jí),它表示輸出電壓的微小波動(dòng)。
應(yīng)當(dāng)指出的是,穩(wěn)壓系數(shù)g  較小的穩(wěn)壓電路,它的輸出紋波電壓也較小。
紋波電壓測(cè)量方法為:
紋波的測(cè)量方法是用示波器觀察輸出電壓波動(dòng)的峰峰值。注意此時(shí)不能簡(jiǎn)單的用高頻電壓表測(cè)量,因?yàn)楦哳l電壓表是根據(jù)正弦波有效值標(biāo)定的,對(duì)非正弦波的響應(yīng),因波形形狀的不同,會(huì)使高頻電壓表的指示有所不同, 為簡(jiǎn)單計(jì),往往以輸出電壓波動(dòng)的峰峰值來(lái)代表紋波的大小。紋波一般在不同的負(fù)載電流條件下測(cè)量, 負(fù)載電流最大時(shí)測(cè)得的數(shù)值也最大。注意此時(shí)須用示波器的交流(AC)耦合方式。只要求大家測(cè)出在RL=100Ω條件下的紋波電壓的峰峰值。
穩(wěn)壓系數(shù):指在負(fù)載電流Io、環(huán)境溫度T不變的情況下,輸入電壓相對(duì)變化引起輸出電壓相對(duì)變化,即穩(wěn)壓系數(shù)。
                    Sv=(△Vo/Vo)÷(△Vi/Vi)       (4)式
硬件調(diào)試主要工作在電源部分,主要分析內(nèi)容是主電源、副電源的輸出電壓紋波值、輸出功率及誤差等。
Sv的測(cè)量電路如圖4.4所示。測(cè)試過(guò)程是:先調(diào)節(jié)自耦變壓器使輸入電壓增加10%,即Vi=242V,測(cè)量此時(shí)對(duì)應(yīng)的輸出電壓Vo1;再調(diào)節(jié)自耦變壓器使輸入電壓減少10%,即198V,測(cè)量這時(shí)的輸出電壓Vo2,然后在測(cè)出Vi=220V時(shí)對(duì)應(yīng)的輸出電壓Vo,則穩(wěn)壓系數(shù)
          Sv=(△Vo/Vo)÷(△Vi/Vi)  
=[220/(242-198)]*(Vo1-Vo2)÷Vo
                      圖4.4 穩(wěn)壓系數(shù)測(cè)量原理圖
主電源技術(shù)指標(biāo)如表4.1所示。
  
   
                 0.58%
           表4.1 主電源電路技術(shù)指標(biāo)測(cè)量
    測(cè)量時(shí),首先斷開(kāi)控制部分電路,在220V交流輸入下調(diào)節(jié)LM317 1腳的可調(diào)電阻,使得輸出電壓固定在14.5V。接著調(diào)節(jié)自耦變壓器,分別讀出當(dāng)交流輸入在242V和198V時(shí)的輸出電壓,并根據(jù)4式求出主電源電路的穩(wěn)壓系數(shù)。
從表中數(shù)據(jù)分析知,主電源電路的電壓調(diào)整率及穩(wěn)壓系數(shù)都較小,符合電源的性能指標(biāo)要求,用示波器測(cè)量觀察紋波值,輸出的紋波峰值為32mV左右,說(shuō)明輸出電壓穩(wěn)定。
副電源技術(shù)指標(biāo)如表4.2所示。
  

                表4.2 副電源電路技術(shù)指標(biāo)測(cè)量
     副電源電路技術(shù)指標(biāo)測(cè)量步驟與主電源電路測(cè)量步驟基本相同。從表4.2分析知副電源電壓也較穩(wěn)定,-12V的穩(wěn)壓系數(shù)更低,說(shuō)明-12V的穩(wěn)壓系數(shù)較理想,另外兩個(gè)電壓輸出的輸出也較穩(wěn)定。在測(cè)試中,輸入電壓發(fā)生變化時(shí),輸出基本保持不變,說(shuō)明副電源電路穩(wěn)壓系數(shù)性能較好。用示波器測(cè)量輸出電壓紋波值,+5V、+12V、-12V分別為25mV、49mV和42mV,三個(gè)輸出端的紋波值較小,符合電源技術(shù)要求,可以向控制電路提供合格的電源。
5.1.2 電源輸出電壓、電流范圍測(cè)試
調(diào)節(jié)交流調(diào)壓器,使電源電路輸入電壓為Vmin=220×(1-10%)=198v,從鍵盤(pán)預(yù)置最小的電壓,使輸出電壓為最小值,取負(fù)載電阻為2歐姆,使得輸出電流達(dá)到最大值1.5A,測(cè)量此時(shí)電壓為3.0v,然后,斷開(kāi)和接通負(fù)載,分別觀察輸出電壓的變化情況,當(dāng)負(fù)載從斷開(kāi)到接通時(shí),測(cè)得的輸出電壓沒(méi)有明顯的變化,仍為3.1v左右,由此判斷電源可以輸出這樣的最大電流約為1.5A。
若在測(cè)試中發(fā)現(xiàn)輸出電壓有明顯的變化,則需要適當(dāng)限制輸出電流或者輸出電壓。測(cè)試方法如圖4.4所示。
                   圖4.4 最大電流測(cè)試連接電路
    控制電壓的輸出范圍只能在12V以?xún)?nèi),所以輸出電壓的變化也在12V以?xún)?nèi)。由于數(shù)碼管顯示只有3位,若要精確到0.1mV,所以預(yù)置電壓可以從3V到10V的范圍內(nèi)變化。輸出的電壓穩(wěn)定,無(wú)大波動(dòng),且紋波值較小,是較理想電壓輸出,符合線行電源要求指標(biāo)。
5.1.3 硬件模塊調(diào)試小結(jié)
     硬件測(cè)試中主要針對(duì)的是主電源和副電源的輸出穩(wěn)定性做測(cè)試,即對(duì)調(diào)整管的工作狀態(tài)和穩(wěn)定性做調(diào)試,因?yàn)檎{(diào)整管的工作狀態(tài)和穩(wěn)定性直接關(guān)系到電壓的輸出。通過(guò)調(diào)試發(fā)現(xiàn),LM317、7805、7812及7912都能正常的工作,并且穩(wěn)壓系數(shù)較為理想。主電源的輸出功率也基本達(dá)到了預(yù)期的數(shù)值。
     不足之處在于最大的輸出電流還偏小,未能達(dá)到2A,還要加以改進(jìn)。另外在副電源電路的變壓器選擇上,原來(lái)選擇的電壓器副邊電壓偏小,導(dǎo)致副電源輸出電壓偏小,在提高副邊電壓后很好的解決了這個(gè)問(wèn)題。
電源測(cè)試結(jié)果為:
輸出電壓范圍為3.0v—10.01v;
最大輸出電流為1.5A;
電壓調(diào)整率1.53%;
紋波電壓峰峰值32mv。
5.2 軟件模塊調(diào)試
軟件調(diào)試內(nèi)容主要是鍵盤(pán)的按鍵控制和數(shù)碼管的顯示,A/D、D/A的轉(zhuǎn)換控制和溫度傳感器的數(shù)值校正。
5.2.1 鍵盤(pán)按鍵控制及數(shù)碼管顯示
LED七段共陽(yáng)極數(shù)碼管是將所有發(fā)光二極管的陽(yáng)極連在一起,作為公共端,如果公共端接高電平,當(dāng)某個(gè)發(fā)光二極管的陰極為低電平時(shí),對(duì)應(yīng)字段點(diǎn)亮。如圖4.5所示,a、b、c、d、e、f、g為7段數(shù)碼顯示,dp為小數(shù)點(diǎn)顯示。
                  
                  圖4.5 LED顯示外型圖
本設(shè)計(jì)采用了4位LED數(shù)碼顯示,圖4.5顯示了其中一位LED的結(jié)構(gòu)圖。設(shè)計(jì)中數(shù)碼管的顯示端接單片機(jī)的P0的8個(gè)I/O口,有8個(gè)I/O口控制顯示輸出。P0口的P0.7~P0.0分別與數(shù)碼管的e、d、dp、c、g、a、f、d相連接,另外的位選與按鍵驅(qū)動(dòng)的三極管連接。
數(shù)碼管顯示說(shuō)明:如當(dāng)顯示數(shù)字1的時(shí)候,只有b和c發(fā)光,當(dāng)發(fā)光時(shí)b和c接低電平,其他管腳為高電平,因此用十六進(jìn)制可以表示為:
   P0.7  P0.6  P0.5 P0.4  P0.3  P0.2 P0.1  P0.0
     e    d     dp   c    g     a    f     d
     1    1      1   0    1     1    1     0
則用十六進(jìn)制表示此時(shí)的I/O口P0的輸出為:0xee。其他的數(shù)值也按此方法計(jì)算類(lèi)推。
數(shù)碼管數(shù)值代碼顯示程序如下:
ucharcode distab[16]={0x28,0xee,0x32,0xa2,
0xe4,0xa1,0x21,0xea,
0x20,0xa0,0x60,0x25,
0x39,0x26,0x31,0x71};
0x28~0x71分別表示了數(shù)碼管顯示的十六位數(shù)值,1、2、3、4、5、6、7、8、9、A、B、C、D、E、F及G。
     十六進(jìn)制數(shù)數(shù)碼管顯示各數(shù)值真值如表4.3所示。其中在實(shí)際使用中只用了0~9這10個(gè)數(shù)字。
  
  
                       表4.3 數(shù)碼管數(shù)值顯示真值表
小數(shù)點(diǎn)顯示設(shè)置:要求數(shù)碼管總是顯示個(gè)位數(shù)之后的小數(shù)點(diǎn),即數(shù)碼管的個(gè)位數(shù)后的dp總是置0。當(dāng)dp位發(fā)光(dp置低電平)而其他位不發(fā)光(其他位置高電平)時(shí),要求個(gè)位數(shù)要按位與十六進(jìn)制數(shù)0xDF相與,既與0x1101 1111相與,把個(gè)位數(shù)的dp置0。
鍵盤(pán)及數(shù)碼管掃描子程序?yàn)椋?br /> void display ()      
{    P2=0xff;
      P0=disp[dis];
      P2=~numtab[dis];
      key0=1;key1=1;
      if(!key0) keyx=dis;
      if(!key1) keyx=dis+4;
      dis=(dis+1)%5;
}
P2口的鍵盤(pán)按鍵輸入置1,從P0口中讀入數(shù)字控制信息。
由電路按鍵定義可知:
sbit dis0 =P2^4;
sbit dis1 =P2^5;
sbit dis2 =P2^6;
sbit dis3 =P2^7;
sbit dis4 =P2^1;
sbit key1 =P2^3;
sbit key0 =P2^2;
上述為2×4鍵盤(pán)各按鍵定義。定義具體見(jiàn)作品使用說(shuō)明。
5.2.2       A/D、D/A轉(zhuǎn)換控制
ADC0809用于讀取輸出電壓值并轉(zhuǎn)換為數(shù)字信號(hào)送入單片機(jī)內(nèi)并在數(shù)碼管上顯示。ADC0809的控制端口為其6腳(START)和22腳(ALE)用于控制A/D轉(zhuǎn)換啟動(dòng);7腳(EOC)用于輸入A/D轉(zhuǎn)換結(jié)束信號(hào)。當(dāng)有按鍵鍵入指令要求啟動(dòng)A/D轉(zhuǎn)換時(shí),單片機(jī)向6腳和22腳發(fā)送選通開(kāi)啟A/D轉(zhuǎn)換信號(hào),進(jìn)行A/D轉(zhuǎn)換,當(dāng)7腳向單片機(jī)報(bào)告轉(zhuǎn)換結(jié)束時(shí),程序自動(dòng)停止A/D轉(zhuǎn)換,并把采樣結(jié)果在數(shù)碼管上顯示出來(lái)。
其啟動(dòng)子程序?yàn)椋?br /> char get0809()
{  int temp;
    delay(80);
    start=1;
    delay(8);
    start=0;
    delay(50);
    oe=1;
    P1=0xff;
    oe=0;
    s[0]=s[1];
    s[1]=s[2];
    s[2]=s[3];
    s[3]=s[4];
    s[4]=P1;
    temp=(s[0]+s[1]+s[2]+s[3]+s[4])/5;
    return temp;
}
S數(shù)組在上文中解釋過(guò)是用于對(duì)取樣電壓發(fā)生抖動(dòng)時(shí)取其5次采樣均值。oe定義為單片機(jī)的P3.5口,用于發(fā)送A/D轉(zhuǎn)換是否結(jié)束的信號(hào)。
DAC0832用于單片機(jī)把預(yù)置數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),輸出到主電源的控制端,對(duì)輸出電壓進(jìn)行調(diào)節(jié)。其2腳(WR1)和18腳(WR2)用于控制D/A轉(zhuǎn)換的寄存器的選通;1(CS)腳和17腳(XFER)用于控制D/A轉(zhuǎn)換的片選信號(hào)和數(shù)據(jù)傳送信號(hào)。當(dāng)有按鍵鍵入指令是,單片機(jī)向1腳和17腳發(fā)送低電平選通DAC0832,使其開(kāi)始工作。
D/A轉(zhuǎn)換子程序?yàn)椋?br /> void put0832(unsigned char a)
{    cs0832=0;
      P1=a;
      cs0832=1;
}
其中cs0832為片選信號(hào),接單片機(jī)的P3.3口,選通DAC0832后,P1口的數(shù)據(jù)自動(dòng)存放到DAC0832的內(nèi)部積存器內(nèi),進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換結(jié)束后,cs片選信號(hào)置高電平停止轉(zhuǎn)換,等待指令。
A/D、D/A轉(zhuǎn)換結(jié)果送數(shù)碼管顯示,其子程序?yàn)椋?br /> void timer1() interrupt 3   
{para[0]=get0809();   
      if(para[0]>para[3])er--;
      put0832(er);
      TH1=tim1>>8;  TL1=tim1;
      display();
}
display()為數(shù)碼管顯示子程序入口。數(shù)組para讀入A/D轉(zhuǎn)換數(shù)據(jù)后等待指令,有按鍵鍵入時(shí),數(shù)據(jù)送數(shù)碼管顯示;put0832(er)用于顯示預(yù)置電壓值。
5.2.3       數(shù)字溫度傳感器DS1820的電壓校正
     DS1820的2腳接單片機(jī)的17腳(P3.7)。當(dāng)輸出電壓變化時(shí)溫度會(huì)發(fā)生變化,溫度傳感器檢測(cè)出變化的溫度,把數(shù)據(jù)輸入到單片機(jī)中進(jìn)行處理,以消除由溫度變化而產(chǎn)生的誤差。溫度變化使得電壓變化需校正的數(shù)值由數(shù)組存放,通過(guò)對(duì)數(shù)組的查詢(xún)校正電壓。
      DS1820的數(shù)據(jù)讀入子程序?yàn)椋?br /> unsignedint Read_Temperature(void)
{    bytec[2];
     unsigned int x;
     ow_reset();
write_byte(0xCC);         
write_byte(0xbe);        
c[1]=read_byte();      //先讀出低8位
c[0]=read_byte();      //再讀出高8位
if(c[1]&0x08){x=c[1]>>4;x++;}
else x=c[1]>>4;
c[0]&=0x07;
x|=(c[0]<<4);
x=x*100+(c[1]&0x0f)*100/16;
ow_reset();
write_byte(0xCC);
write_byte(0x44);      
return(x);
}
其中write_byte(0xCC); write_byte(0xbe);的作用分別是跳過(guò)ROM及讀可擦寫(xiě)芯片,DS1820的溫度是串行方式輸入的,依次溫度讀入時(shí)分低8位和高8位依次讀入。
5.2.4 軟件模塊調(diào)試小結(jié)
     軟件調(diào)試是整個(gè)電路調(diào)試的重點(diǎn),在調(diào)試過(guò)程中分別對(duì)鍵盤(pán)顯示部分、轉(zhuǎn)換部分及校正部分進(jìn)行調(diào)節(jié),在每個(gè)部分都確定能正常工作后,進(jìn)行總體的軟件調(diào)試,包括線性化和校正等。
      鍵盤(pán)調(diào)試主要是分清每個(gè)鍵的鍵位功能設(shè)置,當(dāng)有鍵按下時(shí)系統(tǒng)是如何反應(yīng)的,這是整個(gè)控制部分最難調(diào)的。顯示部分主要是預(yù)置數(shù)、進(jìn)位及小數(shù)點(diǎn)的顯示要求正確。轉(zhuǎn)換部分的調(diào)節(jié)要相對(duì)簡(jiǎn)單,只要在按鍵按下時(shí)片選及控制信號(hào)到位就完成了。校正部分的調(diào)試主要是溫度數(shù)據(jù)的寫(xiě)入調(diào)試,這是在調(diào)試過(guò)程中遇到的又一個(gè)困難。另外線性化處理及利用數(shù)組校正都需要進(jìn)行大量的數(shù)據(jù)測(cè)試和模擬。
6. 技術(shù)指標(biāo)及使用方法
    本作品為精密數(shù)控直流電源,主要以線性電源作調(diào)節(jié),由數(shù)字控制方式調(diào)節(jié)輸出電壓。具有可預(yù)置輸出電壓,顯示輸出電壓值的功能,輸出電流大而且穩(wěn)定,能為小功率電器和儀器提供電源,其主要技術(shù)指標(biāo)如下:
     輸入交流電壓:220V左右
輸出直流電壓范圍為3.0V—10.01V可調(diào);
電壓輸出精確度:±0.04mV;
最大輸出電流為1.5A;
電壓調(diào)整率1.53%;
紋波電壓峰峰值32mv。
     使用方法:所有功能均由八個(gè)按鍵控制,按鍵編號(hào)從1到8的功能依次是①十分位加一計(jì)數(shù);②百分位加一計(jì)數(shù);③預(yù)置電壓確認(rèn)輸出;④啟動(dòng)A/D轉(zhuǎn)換并顯示輸出電壓;⑤十分位減一計(jì)數(shù);⑥百分位減一計(jì)數(shù);⑦預(yù)置數(shù)與輸出電壓值顯示切換;⑧預(yù)置數(shù)置零。
7  結(jié)論
   本文描述了用單片機(jī)可以實(shí)現(xiàn)對(duì)電源的數(shù)字控制,實(shí)現(xiàn)數(shù)字化線性電源的制作。通過(guò)鍵盤(pán)預(yù)置電壓,溫度傳感器的電壓校正,以達(dá)到使輸出電壓更準(zhǔn)確穩(wěn)定性更高?刂齐娐分惺褂玫陌宋籄/D、D/A轉(zhuǎn)換使得輸出電壓更準(zhǔn)確。由于使用了集成穩(wěn)壓器來(lái)穩(wěn)壓,也使得誤差能盡可能的減小,同時(shí)使得制作的成本也大為降低,輸出的電源線性度更好。不足之處就是輸出電壓的調(diào)節(jié)范圍還不夠大,還要加以改進(jìn)
     隨著電源技術(shù)的發(fā)展和應(yīng)用,要求精確度更高,穩(wěn)壓性能更出色,調(diào)節(jié)范圍更廣,輸出的功率更大的電源使用在研究領(lǐng)域。單片機(jī)在智能化以及可實(shí)現(xiàn)的用戶(hù)友好界面,擴(kuò)展性強(qiáng)等等方面的優(yōu)勢(shì)使其成為未來(lái)數(shù)控電源重要的發(fā)展方向。
謝  辭
在本次設(shè)計(jì)、調(diào)試以及論文撰寫(xiě)過(guò)程中,得到了龍老師的熱心指導(dǎo),老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,使我深受教育,在此要非常的感謝老師,同時(shí)也要感謝所有熱心相助的同學(xué)們。謝謝你們。
本次設(shè)計(jì)過(guò)程中,從資料準(zhǔn)備,方案設(shè)計(jì),調(diào)試的整個(gè)過(guò)程當(dāng)中,查閱了許多的資料,學(xué)到了許多寶貴的知識(shí),并在設(shè)計(jì)實(shí)踐的過(guò)程中,不斷驗(yàn)證,對(duì)知識(shí)有更加正確的理解,掌握了正確的實(shí)踐研究方法,為日后繼續(xù)的學(xué)習(xí)和進(jìn)步,打下了良好的基礎(chǔ)。當(dāng)然,某些方面的知識(shí)準(zhǔn)備的不夠,許多知識(shí)還要在以后的工作、學(xué)習(xí)當(dāng)中不斷的積累,學(xué)無(wú)止鏡。
在設(shè)計(jì)過(guò)程中,遇到了許多的難題,經(jīng)過(guò)老師的精心指導(dǎo),都得以一一解決,也正是在解決這些困難的過(guò)程中,才慢慢的掌握了合理的研究方法,合理的設(shè)計(jì)思想,這是本次畢業(yè)設(shè)計(jì)一個(gè)很大的收獲。
參考文獻(xiàn)
[1]  楊旭.裴元慶.王兆安.開(kāi)關(guān)電源技術(shù)[M].北京:機(jī)械工業(yè)出版社,2004.1
[2]  徐德鴻.沈旭.楊成林.譯.開(kāi)關(guān)電源設(shè)計(jì)指南[M].北京:機(jī)械工業(yè)出版社,2004.1
[3]  鄭國(guó)川.李洪英.實(shí)用開(kāi)關(guān)電源技術(shù)[M].福州:福建科學(xué)技術(shù)出版社,2004.1
[4]  童詩(shī)白.華成英.模擬電子技術(shù)基礎(chǔ)[M].北京: 高等教育出版社,2001. 5
[5]  閻石. 數(shù)字電子技術(shù)基礎(chǔ)[M]. 北京:高等教育出版社,2001.5
[6]  薛永毅.王淑英.何希才.新型電源電路應(yīng)用實(shí)例[M].北京:電子工業(yè)出版社,2001.10
[7]  葉慧貞.楊興洲.新穎開(kāi)關(guān)穩(wěn)壓電源[M].北京:國(guó)防工業(yè)出版社,1999.1
[8]  劉勝利.現(xiàn)代高頻開(kāi)關(guān)電源實(shí)用技術(shù)[M].北京:電子工業(yè)出版社,2001.9
[9]  趙效敏.開(kāi)關(guān)電源的設(shè)計(jì)與應(yīng)用[M].上海:上?茖W(xué)普及出版社,1995.9
[10]  王水平.付敏江.開(kāi)關(guān)穩(wěn)壓電源--原理.設(shè)計(jì)與實(shí)驗(yàn)電路[M].西安:西安電子科技大學(xué)出版社,1997.1
[11]  趙學(xué)泉.張國(guó)華.新型電子電路應(yīng)用指南[M].北京:電子工業(yè)出版社,1995.3
[12] BrownLaszlo , Practical Considerations for MOSFET Gate Drive Techniques in highSpeed ,Switch-mode Application ,Seminar APEC99 .March 1999 .
   附  錄
主電源電路原理圖:
副電源電路原理圖:
鍵盤(pán)電路原理圖:
A/D、D/A轉(zhuǎn)換電路及傳感器電路原理圖:
電源電路PCB圖:
鍵盤(pán)及A/D、D/A轉(zhuǎn)換電路PCB圖:
空載時(shí)輸出電壓紋波:
帶負(fù)載時(shí)輸出電壓紋波值:
控制電路程序:
#include<reg51.h>            
#include<absacc.h>
#defineuint unsigned int
#defineuchar unsigned char
#definetim1 65536-4000     // 定時(shí)器2的定時(shí)時(shí)間 2ms   
sbitdis0 =P2^7;
sbitdis1 =P2^6;
sbitdis2 =P2^5;
sbitdis3 =P2^4;
sbitkey1 =P2^3;
sbitkey0 =P2^2;
sbitstart=P3^4;
sbitcs0832 =P3^3;
sbitoe=P3^5;
int r,kp ,kd ,para[8] ,ts ,e2 ,e1 ,e0 ,u ,u0 ,ptr ;
ucharkey ,keyx ,disp[4] ,dis ;
uintpwmh,pwml;
ucharcode numtab[4]={0x80,0x40,0x20,0x10};  
ucharcode distab[16]={0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,
                        0x20,0xa0,0x60,0x25,0x39,0x26,0x31,0x71} ;
ucharcode ledtab[8]={0x08,0x10,0x20,0x40,0x88,0x90,0xa0,0xc0} ;
int  codeparam[8]={300,255,300,255,255,255,255,8};
uchars[5];
ucharer;
//  延時(shí)子程序
voiddelay(uint t)   
{
  uint i;
  for ( i=0 ; i<t ; i++ );
}
//  顯示數(shù)據(jù)放入緩沖區(qū)子程序
voiddistran ()     
{
  disp[0]=distab[para[ptr]%10];
  disp[1]=distab[(para[ptr]/10)%10]  & 0xdf;
  disp[2]=distab[(para[ptr]/100)%10];
  disp[3]=~ledtab[ptr];
}
//  鍵盤(pán)及數(shù)碼管掃描子程序
voiddisplay ()      
{
  dis= (dis+1)%4;
  P2=0xff;
  P0=disp[dis];
  P2=~numtab[dis];
  key0=1; key1=1;                                             
  if (!key0) keyx=dis+1;
  if (!key1) keyx=dis+5;
  }
//  鍵盤(pán)處理子程序 ( 設(shè)定各個(gè)鍵功能分別為減1,加1,減10,加10
voidkeyproc ()              
{                          
       if (key>0)
       {  
              switch (key)
              {     case1:if( ptr != 0 ) {para[ptr]--; }   break;
                     case 5: para[ptr]++;    break;
                     case 2: para[ptr]-=10;   break;
                     case 6: para[ptr]+=10;  break;   
                     case 3:para[ptr]-=100;  break;
                     case 7:para[ptr]+=100;  break;
                     case 4: ptr--;           break;
                     case 8: ptr++;          break;  
              }
              if (ptr>7)   ptr=0;
              if (ptr<0)   ptr=7;
              if (para[ptr]<0)  para[ptr]=0;
              if (para[ptr]>param[ptr])   para[ptr]=param[ptr];
       }
       key=0;
}
charget0809()
{     int temp;
       //delay(80);
       start=1;//f=(double)((fxx*200000000)/(fcc*16));
       delay(8);
       start=0;
       delay(50);
       oe=1;
       P1=0xff;
       oe=0;
       s[0]=s[1];
       s[1]=s[2];
       s[2]=s[3];
       s[3]=s[4];
       s[4]=P1;
       temp=(s[0]+s[1]+s[2]+s[3]+s[4])/5;
       return temp;
}
voidput0832(unsigned char a)
{     cs0832=0;
       P1=a;
       cs0832=1;
}
//  定時(shí)數(shù)碼管顯示、數(shù)據(jù)處理、調(diào)用PID算法、修改占空比值子程序
voidtimer1() interrupt 3   
{
       para[0]=get0809();
      
       if(para[0]>para[3])er--;
       put0832(er);
       TH1=tim1>>8;  TL1=tim1;
       display ();
}
unsignedint Read_Temperature(void)  //溫度傳感器的數(shù)據(jù)讀入
{
      byte c[2];
     unsigned int x;
      ow_reset();
write_byte(0xCC);         //跳過(guò)ROM
write_byte(0xbe);         //讀可檫寫(xiě)芯片
c[1]=read_byte();         //先讀出低八位
c[0]=read_byte();         //高八位
if(c[1]&0x08){x=c[1]>>4;x++;}
elsex=c[1]>>4;
c[0]&=0x07;
x|=(c[0]<<4);
x=x*100+(c[1]&0x0f)*100/16;
ow_reset();
write_byte(0xCC);
write_byte(0x44);        //開(kāi)始翻轉(zhuǎn)
return(x);
}
// 主程序 :設(shè)定定時(shí)器/計(jì)數(shù)器方式、給定各個(gè)參數(shù)的初始值、鍵盤(pán)處理
voidmain()           
{
chari;
   TMOD=0x11; IE=0x8a;  IP=0x02;
   TH1=tim1>>8; TL1=tim1;
   TR1=1;
   dis=0; ptr=0; P1=0xff;
   for (i=0;i<7;i++)   para=0;
   para[2]=150; para[3]=8; para[6]=10;
   para[4]=18; para[5]=11; para[7]=3;
   distran();
   for (;;)
  {
     if (keyx>0)
   {
     key=keyx;  
     while (keyx!=0) {keyx=0;  delay(1000);}
     keyproc ();
    }
   delay (400);
  }
}







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1