版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p><b> 1 引言2</b></p><p> 1.1 國內(nèi)外研究現(xiàn)狀2</p><p> 2 總體方案設(shè)計3</p><p><b> 2.1方案一3</b></p><p>
2、<b> 2.2 方案二4</b></p><p> 3 分電路設(shè)計和論證5</p><p><b> 3.1電路設(shè)計5</b></p><p> 3.1.1 AT89C51單片機(jī)5</p><p> 3.1.2 穩(wěn)壓電源部分6</p><p> 3.
3、1.3 按鍵電路6</p><p> 3.1.4 輸出電壓控制單元電路7</p><p> 3.1.5 蜂鳴器電路8</p><p> 3.1.6短路保護(hù)電路8</p><p> 3.1.7 數(shù)碼管顯示電路:9</p><p> 3.2 電路分析10</p><p> 3
4、.2.1步進(jìn)01.V的實現(xiàn)10</p><p> 3.2.2 電源部分10</p><p><b> 4 器件介紹11</b></p><p> 4.1 C51單片機(jī)介紹11</p><p> 4.2 DAC0832簡介14</p><p> 4.3 LM358芯片簡介16
5、</p><p> 4.4 MAX232芯片簡介16</p><p> 4.5 按鍵簡介17</p><p><b> 5 軟件設(shè)計19</b></p><p> 5.1 主程序流程圖19</p><p> 5.1.1 定時器1的中斷流程圖19</p><p
6、> 5.1.2 按鍵掃描子程序流程圖20</p><p> 5.1.3 顯示電壓子程序流程圖21</p><p><b> 5.2 程序22</b></p><p> 6 軟硬件系統(tǒng)的調(diào)試25</p><p> 6.1 系統(tǒng)硬件靜態(tài)的調(diào)試25</p><p> 6.1.
7、1 聯(lián)機(jī)仿真調(diào)試25</p><p> 6.1.2 數(shù)碼管顯示調(diào)試26</p><p> 6.1.3 控制系統(tǒng)中鍵盤調(diào)試26</p><p> 6.2 軟件調(diào)試27</p><p> 6.3 脫機(jī)運(yùn)行27</p><p><b> 7 參考文獻(xiàn)28</b></p>
8、<p><b> 8 附錄29</b></p><p><b> 步進(jìn)直流電壓源</b></p><p> 摘要:為了解決普通電源精度不高的問題,現(xiàn)設(shè)計一種步進(jìn)直流電壓源。該文詳細(xì)論述了步進(jìn)直流電壓源的結(jié)構(gòu)功能和軟硬件設(shè)計。主要用AT89C51系列單片機(jī)作為整機(jī)的控制單元,然后通過改變鍵盤輸入來改變輸出電壓值(A/D轉(zhuǎn)換后)
9、,再經(jīng)集成運(yùn)放放大和射極輸出器輸出,間接地改變輸出電壓的大小,這種電壓源具體輸出精度高、輸出精度、數(shù)碼顯示直觀等特點(diǎn)。</p><p> 關(guān)鍵詞:AT89C51、DAC0809、電壓源</p><p><b> 1 引言</b></p><p> 當(dāng)今社會人們極大的享受著電子設(shè)備帶來的便利,但是任何電子設(shè)備都有一個共同的電路—電源電路。大
10、到超級計算器,小到袖珍計算器,所有的電子設(shè)備都必須在電源電路的支持下才能正常工作。當(dāng)然這些電路的樣式、復(fù)雜程度千差萬別。超級計算機(jī)的電源電路本身就是一套復(fù)雜的電源系統(tǒng)。通過這套電路系統(tǒng),超級計算機(jī)各部分功能能夠得到持續(xù)穩(wěn)定,符合各種復(fù)制規(guī)范的電源供應(yīng),袖珍計算器則是簡單多的電池電源電路,不過可不要小看了這個電池電源電路,比較新型的電路完全具備電池能量的提醒、掉電保護(hù)等高級功能??梢哉f電源電路是一切電子設(shè)備的基礎(chǔ),沒有電源電路就不會有如此
11、種類繁多的電子設(shè)備。我們的生活也不會如此多彩。 </p><p> 隨著科學(xué)技術(shù)的發(fā)展,人們對物質(zhì)需求也越來越高,特別是一些高新科技產(chǎn)品。電源-作為當(dāng)今人們生活中普遍存在的電子商品,從上世紀(jì)90年代末便迅速發(fā)展。隨著對系統(tǒng)更高效率和更低功耗的需求,電信與數(shù)據(jù)通訊設(shè)備的技術(shù)更新推動電源行業(yè)中直流/直流電源轉(zhuǎn)換器向更高靈活性和智能化方向發(fā)展。電源技術(shù)尤其是直流電源技術(shù)是一門實踐性很強(qiáng)的工程技術(shù),服務(wù)于各行各業(yè)。幾
12、乎所有的電子設(shè)備都需要穩(wěn)定的直流電源,因此直流穩(wěn)壓電源的應(yīng)用非常的廣泛。直流穩(wěn)壓電源的電路形式有很多種,有串聯(lián)型、開關(guān)型、集成電路、穩(wěn)壓管直流穩(wěn)壓電源等等。在電子設(shè)備中,直流穩(wěn)壓電源的故障率是最高的(長期工作在大電流和大電壓下,電子元器件很容易損壞)但在直流穩(wěn)壓電路中,通過整流,濾波電路所獲得的直流電源的電壓往往是不穩(wěn)定的。輸出電壓在電網(wǎng)電壓波動或負(fù)載電流變化時也會隨之有所改變。電子設(shè)備電源電壓的不穩(wěn)定,將會引起很多問題。設(shè)計出質(zhì)量優(yōu)良
13、的直流穩(wěn)壓電源,才能滿足各種電子線路的要求。</p><p> 因此,直流穩(wěn)壓電源的研究就頗為重要。目前產(chǎn)生直流穩(wěn)壓電源的方法大致分為兩種:一種是模擬方法,另一種是數(shù)字方法。前者的電路均采用模擬電路控制,而后者則是通過數(shù)字電路進(jìn)行自動控制。直流穩(wěn)壓電源朝著數(shù)字化方向發(fā)展。因此對于數(shù)控恒壓源的研究是必要的。隨著科學(xué)技術(shù)飛速發(fā)展,對電源可靠性、輸出精度和穩(wěn)定性要求越來越高,利用A/D轉(zhuǎn)換器的高分辨率和單片機(jī)的自動檢
14、測技術(shù)設(shè)計程控電源就顯示出其優(yōu)越性。程控電源既能方便輸入和選擇預(yù)設(shè)電壓值又具有較高精度和穩(wěn)定性,而且可以任意設(shè)定輸出電壓或電流,所有功能由面板上的鍵盤控制單片機(jī)實現(xiàn),給電路實驗帶來極大的方便,提高了工作效率。電力電子技術(shù)是電能的最佳應(yīng)用技術(shù)之一。當(dāng)今電源技術(shù)融合了電氣、電子、系統(tǒng)集成、控制理論、材料等諸多學(xué)科領(lǐng)域。隨著計算機(jī)和通信技術(shù)發(fā)展而來的現(xiàn)代信息技術(shù)革命,給電力電子技術(shù)提供了廣闊的發(fā)展前景,同時也給電源提出了更高的要求。隨著數(shù)控電
15、源在電子裝置中的普遍使用,普通電源在工作時產(chǎn)生的誤差,會影響整個系統(tǒng)的精確度。電源在使用時會造成很多不良的后果,世界各國紛紛對電源產(chǎn)品提出了不同要求并制定了一系列的產(chǎn)品精度標(biāo)準(zhǔn)。只有滿足產(chǎn)品標(biāo)準(zhǔn),才能夠進(jìn)入市場</p><p> 1.1 國內(nèi)外研究現(xiàn)狀 </p><p> 數(shù)控電源是從80年代才真正的發(fā)展起來的,期間系統(tǒng)的電力電子理論開始建立。這些理論為其后的發(fā)展提供了一個良好的基礎(chǔ)。
16、在以后的一段日子里,數(shù)控電源技術(shù)有了長足的發(fā)展。但其產(chǎn)品存在數(shù)控程度達(dá)不到要求、分表率不高、功率密度比較低、可靠性較差的缺點(diǎn)。因此數(shù)控電源主要的發(fā)展方向,是針對上述缺點(diǎn)的不斷加以改善。單片機(jī)技術(shù)及電壓轉(zhuǎn)換模塊的不斷發(fā)展,各種類型專用集成電路、數(shù)字信號處理器件的研制應(yīng)用,到90年代,已經(jīng)出現(xiàn)了數(shù)控精度達(dá)到0.05v的數(shù)控電源,功率密度達(dá)到每立方英寸50w的數(shù)控電源。從組成上,數(shù)控電源可分為器件、主電路與控制等三部分。目前在電力電子器件方面
17、,幾乎都為旋鈕開關(guān)調(diào)節(jié)電壓,調(diào)節(jié)精度不高,而且經(jīng)常跳變,使用麻煩。</p><p> 數(shù)字化智能電源模塊是針對傳統(tǒng)智能電源模塊的不足提出的,數(shù)字化能夠減少生產(chǎn)過程中不確定因素和人為參與的環(huán)節(jié)數(shù),有效地解決電源模塊中諸如可靠性、智能化和產(chǎn)品一致性等工程問題,極大地提高生產(chǎn)效率和產(chǎn)品的可維護(hù)性。</p><p> 在家用電器和其他各類電子設(shè)備中,通常都需要電壓穩(wěn)定的直流電源供電。但在實際生
18、活中,都是由220v的交流電網(wǎng)供電,這就需要通過變壓、整流、濾波、穩(wěn)壓電路將交流電轉(zhuǎn)換成穩(wěn)定的直流電。濾波器用于濾去整流輸出電路中的紋波,一般傳統(tǒng)電路由濾波扼流線圈和電容器組成,若由晶體管濾波器來代替,則可以減小直流電源的體積,減輕其重量,且晶體管濾波直流電源不需要直流穩(wěn)壓器就能做家電器的電源,這既降低了家用電器的成本,又縮小了體積,使家用電器小型化。傳統(tǒng)的直流穩(wěn)壓電源通常采用電位器和波段開關(guān)來實現(xiàn)電壓的調(diào)節(jié),并由電壓表指示電壓的大小。
19、因此,電壓的調(diào)節(jié)精度不高,讀數(shù)欠直觀,電位器也易磨損,而基于單片機(jī)的直流控制的電流穩(wěn)壓電源能較好的解決以上傳統(tǒng)電源的不足。</p><p> 數(shù)控電源采用按鍵式,可對輸出電壓進(jìn)行設(shè)置,輸出由單片機(jī)通過D/A,控制驅(qū)動模塊輸出一個穩(wěn)定電壓。同時穩(wěn)壓方法采用單片機(jī)控制,單片機(jī)通過與設(shè)定值進(jìn)行比較,若有偏差則調(diào)整輸出,越限則輸出報警信號并截流。工作過程中,穩(wěn)壓電源的工作狀態(tài)均有單片機(jī)輸出驅(qū)動液晶顯示,由鍵盤控制進(jìn)行動
20、態(tài)邏輯切換。電源采用數(shù)字調(diào)節(jié)、輸出精度高,特別適用于各種有較高精度的場合。</p><p> 電源采用數(shù)字控制,具有以下明顯優(yōu)點(diǎn):</p><p> 易于采用先進(jìn)的控制方法和智能控制策略,使電源模塊的智能化程度更高,性能更完美。</p><p> 控制靈活,系統(tǒng)升級方便,甚至可以在線修改控制算法,而不必改動硬件電路。</p><p>
21、 控制系統(tǒng)的可靠性提高,易于標(biāo)準(zhǔn)化,可以針對不同的系統(tǒng),采用統(tǒng)一的控制板,而只是對控制軟件做一些調(diào)整。</p><p> 系統(tǒng)維護(hù)方便,一旦出現(xiàn)故障,可以很方便的通過RS232接口或RS485接口或USB接口進(jìn)行調(diào)試,故障查詢,歷史記錄查詢,故障診斷,軟件修復(fù),甚至控制參數(shù)的在線修改、調(diào)試;又可以通過MODEM遠(yuǎn)程操作。</p><p> 成本低,生產(chǎn)制造方便。由于控制軟件不想模擬器件
22、那樣存在差異,所以,一致性很好。由于采用軟件控制,控制面板的體積減小,成本降低。</p><p> 易組成高可靠性的多模塊逆變電源并聯(lián)運(yùn)行系統(tǒng)。為了得到高性能的并聯(lián)運(yùn)行逆變電源系統(tǒng),每個并聯(lián)運(yùn)行的逆變電源單元模塊都采用全數(shù)字化控制,易于在模塊之間更好的進(jìn)行均流控制和通訊或者在模塊中實現(xiàn)復(fù)雜的均流控制算法,從而實現(xiàn)高可靠性、高冗余度的逆變電源并聯(lián)運(yùn)行系統(tǒng)。</p><p><b>
23、; 2 總體方案設(shè)計</b></p><p><b> 2.1方案一</b></p><p> 采用數(shù)字邏輯控制,通過“+”、“-”兩鍵操作,控制可逆計數(shù)器分別作加、減計數(shù),可逆計數(shù)器的二進(jìn)制數(shù)字輸出一路用于驅(qū)動數(shù)顯電路,指示電源輸出電壓的大小值;另一路進(jìn)入D/A轉(zhuǎn)換電路,將數(shù)字量按比例轉(zhuǎn)換成模擬電壓,然后經(jīng)過射極跟隨器控制調(diào)整輸出級輸出所需的穩(wěn)定電
24、壓。該方案能夠完成基本要求,但設(shè)置功能發(fā)揮部分受到限制。</p><p><b> 圖1 </b></p><p><b> 2.2 方案二</b></p><p> 采用AT89C51單片機(jī)作為整個系統(tǒng)的核心,具有電壓可預(yù)置、可步進(jìn)調(diào)整、數(shù)碼顯示的設(shè)計,其方案圖如圖2所示,硬件框圖如附表1所示。系統(tǒng)通過按鍵電路來
25、控制預(yù)置電壓的升降,并通過數(shù)碼管顯示。AT89C51單片機(jī)送出相應(yīng)的數(shù)字信號,在DA轉(zhuǎn)換之后輸出電流,經(jīng)集成運(yùn)放電路放大轉(zhuǎn)換成穩(wěn)定電壓。同時由LED數(shù)碼管顯示預(yù)設(shè)的輸出電壓;由數(shù)字電壓表測量實際值。此系統(tǒng)設(shè)計比較靈活,有很好的調(diào)節(jié)性,采用軟件方法來解決數(shù)據(jù)的預(yù)置,使系統(tǒng)硬件更加簡潔,可維護(hù)性更好,各類功能易于實現(xiàn),能很好地滿足題目的要求</p><p> 綜上所述選用方案二。</p><p&
26、gt;<b> 圖2</b></p><p><b> 具體功能:</b></p><p> AT89C51的振蕩器和時鐘電路:給單片機(jī)提供指令時序。</p><p> 電源電壓:為整個系統(tǒng)提供所需的電源電壓。</p><p> 按鍵電路:設(shè)有2個步進(jìn)增鍵(步進(jìn)增0.1和1)、2個步進(jìn)減鍵
27、(步進(jìn)減0.1和1),輸出電壓設(shè)置鍵(按下后清顯示置位設(shè)定標(biāo)志位)、確定鍵以及復(fù)位鍵共7個按鍵。輸出電壓設(shè)定鍵按下后清顯示位,然后通過步進(jìn)增、減鍵來設(shè)置輸出電壓,調(diào)整好輸出電壓后然后按下確定鍵,確定輸出電壓值;復(fù)位鍵是將電壓輸出值回復(fù)到初始值(初值為0),改初始值可通過程序改寫。</p><p> 電壓控制單元電路:DAC0832將數(shù)字量改換為模擬量,由ref02提供基準(zhǔn)電壓,運(yùn)放LM358輸出,因為輸出電壓不
28、滿足課題設(shè)計的電壓輸出范圍0~9.9v,所以通過運(yùn)算放大器OPA548將電壓放大5倍,使最終輸出電壓滿足課題設(shè)計的要求。</p><p> 數(shù)碼管顯示電路:該系統(tǒng)使用兩個數(shù)碼管,可以顯示個位數(shù)和一個小數(shù)位數(shù),采用動態(tài)掃描驅(qū)動方式。</p><p> 3 分電路設(shè)計和論證</p><p><b> 3.1電路設(shè)計 </b></p&g
29、t;<p> 3.1.1 AT89C51單片機(jī) </p><p><b> 時鐘電路</b></p><p> 圖3 內(nèi)部時鐘電路 圖4 手動復(fù)位電路</p><p> 晶體振蕩器的振蕩信號從XTAL2端送入內(nèi)部時鐘電路,它將該振蕩信號二分頻,產(chǎn)生一個兩相時鐘信號P1和P2供單片機(jī)使
30、用。時鐘信號的周期稱為狀態(tài)時間S,它是振蕩周期的2倍,P1信號在每個狀態(tài)的前半周期有效,在每個狀態(tài)的后半周期P2信號有效。CPU就是以兩相時鐘P1和P2為基本節(jié)拍協(xié)調(diào)單片機(jī)各部分有效工作的。 </p><p> 在MCS-51單片機(jī)片內(nèi)有一個高增益的反相放大器,反相放大器的輸入端為XTAL1,輸出端為XTAL2,由該放大器構(gòu)成的振蕩電路和時鐘電路一起構(gòu)成了單片機(jī)的時鐘方式。根據(jù)硬件電路的不同,單片
31、機(jī)的時鐘連接方式可分為內(nèi)部時鐘方式和外部時鐘方式,設(shè)計采用內(nèi)部時鐘方式,如圖3所示。</p><p> 在內(nèi)部方式時鐘電路中,必須在XTAL1和XTAL2引腳兩端跨接石英晶體振蕩器和兩個微調(diào)電容構(gòu)成振蕩電路,通常C1和C2一般取30pF,晶振的頻率取值在1.2MHz~12MHz之間。對于外接時鐘電路,要求XTAL1接地,XTAL2腳接外部時鐘,對于外部時鐘信號并無特殊要求,只要保證一定的脈沖寬度,時鐘頻率低于1
32、2MHz即可。 </p><p> 晶體振蕩器的振蕩信號從XTAL2端送入內(nèi)部時鐘電路,它將該振蕩信號二分頻,產(chǎn)生一個兩相時鐘信號P1和P2供單片機(jī)使用。時鐘信號的周期稱為狀態(tài)時間S,它是振蕩周期的2倍,P1信號在每個狀態(tài)的前半周期有效,在每個狀態(tài)的后半周期P2信號有效。CPU就是以兩相時鐘P1和P2為基本節(jié)拍協(xié)調(diào)單片機(jī)各部分有效工作的。</p><p> 復(fù)位電路
33、 </p><p> 單片機(jī)復(fù)位電路的條件是:必須使RST(第9引腳)加上持續(xù)兩個機(jī)器周期(即24個脈沖振蕩周期)以上的高電平。若時鐘頻率為12MHZ,每個機(jī)器周期為1us,則需要加上持續(xù)2us以上的時間的高電平。單片機(jī)常見的復(fù)位電路:</p><p> 上電復(fù)位電路。它利用電容充電來實現(xiàn)復(fù)位,在接電瞬間,RST端的電位與Vcc相同,隨
34、著充電電流的減少,RST的電位逐漸下降。只要保證RST為高電平的時間大于兩個機(jī)器周期,便能正常復(fù)位。</p><p> 按鍵復(fù)位電路。該電路除具有上電復(fù)位的功能外,還可以按圖中的RESET鍵實現(xiàn)復(fù)位,此時電源Vcc經(jīng)兩個電阻分壓,在RST端產(chǎn)生一個復(fù)位高電平。</p><p> 設(shè)計中采用按鍵復(fù)位(手動復(fù)位),如圖4所示</p><p> 3.1.2 穩(wěn)壓電源
35、部分</p><p> 為整個系統(tǒng)提供所需的電源電壓。</p><p> 電源部分輸出+5V,+15V,-15V電壓供給系統(tǒng),另外還制作+5.12V直流穩(wěn)壓電源做DAC0832的VERF的基準(zhǔn)電壓。</p><p> 圖5 輔助電源供電模塊</p><p> 3.1.3 按鍵電路</p><p> 按鍵電路:
36、設(shè)有2個步進(jìn)增鍵(步進(jìn)增0.1和1)、2個步進(jìn)減鍵(步進(jìn)減0.1和1),輸出電壓設(shè)置鍵(按下后清顯示置位設(shè)定標(biāo)志位)、確定鍵以及復(fù)位鍵共7個按鍵。輸出電壓設(shè)定鍵按下后清顯示位,然后通過步進(jìn)增、減鍵來設(shè)置輸出電壓,調(diào)整好輸出電壓后然后按下確定鍵,確定輸出電壓值;復(fù)位鍵是將電壓輸出值回復(fù)到初始值(初值為0),改初始值可通過程序改寫。</p><p> 圖6 按鍵電路
37、圖7 手動復(fù)位按鍵電路</p><p> 3.1.4 輸出電壓控制單元電路</p><p> 數(shù)模轉(zhuǎn)換器用的是DAC0832,本方案中DAC0832采用單緩沖模式。DAC0832將數(shù)字量改換為模擬量,由ref02提供基準(zhǔn)電壓,運(yùn)放LM358輸出,因為輸出電壓不滿足課題設(shè)計的電壓輸出范圍0~9.9v,所以通過運(yùn)算放大器OPA548將電壓放大5倍,使最終輸出電壓滿足課題設(shè)計的要求。<
38、;/p><p> 圖8 輸出電壓控制單元</p><p> 3.1.5 蜂鳴器電路</p><p><b> 圖9 蜂鳴器電路</b></p><p> 3.1.6短路保護(hù)電路</p><p> 由單片機(jī)控制的信號經(jīng)DA轉(zhuǎn)換后,通過下圖檢測電路判斷是否短路,若短路則啟動中斷保護(hù),否則,就實現(xiàn)
39、穩(wěn)壓輸出。</p><p> P2.4端口接短路保護(hù)電路。電路開始工作,LED顯示初始值0,然后按下S3、S4、S5、S6進(jìn)行調(diào)節(jié),調(diào)節(jié)到要求的電壓值,S3是“+” S4是“-”,調(diào)節(jié)的最小范圍是0.1V。如果電路中出現(xiàn)短路,短路保護(hù)電路就會保護(hù)元器件不被損壞。DC6V是個繼電器,先對其進(jìn)行說明一下:它是一種電子控制器件,具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常它被用于自控電路中,實際上是
40、用較小的電流去控制較大電流的一種自動開關(guān)。可以起到自動調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等一些作用。只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點(diǎn)與常開觸點(diǎn)吸合。當(dāng)線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點(diǎn)與原來的靜觸點(diǎn)吸合。這樣吸合、釋放,從而達(dá)到了在電路中的導(dǎo)通、切斷的目的。當(dāng)電流過大時可起到過流保護(hù)
41、作用。但如果繼電器檢查到有電流超過了限定范圍,蜂鳴器就會發(fā)出蜂鳴聲提醒操作人員。</p><p> 3.1.7 數(shù)碼管顯示電路:</p><p> 要求輸出電壓的范圍為0V~9.9V,步進(jìn)0.1V。為了滿足要求該系統(tǒng)選擇使用兩個數(shù)碼管,可以顯示個位數(shù)和一個小數(shù)位數(shù),個位數(shù)顯示的數(shù)碼管的dp段一直要顯示著。數(shù)碼管顯示則采用動態(tài)掃描驅(qū)動方式。</p><p> 圖
42、11 鍵盤電路 </p><p> 圖12 數(shù)碼管接口電路</p><p> 數(shù)碼顯示管的段選接51單片機(jī)的P0口,位選端接P2.0 、P2.1,該設(shè)計要使輸出端的電壓值和LED數(shù)碼管的數(shù)字相同。當(dāng)用程序?qū)纹瑱C(jī)各個端口初始化時,P0口控制著LED的段選端,P2.0 、P2.1控制位選端。 </p><p>&
43、lt;b> 3.2 電路分析</b></p><p> 3.2.1步進(jìn)01.V的實現(xiàn)</p><p> 因為輸出電壓量程為10V,VREF基準(zhǔn)電壓范圍為-10V---+10V,基準(zhǔn)電壓可以為5V,這樣在DAC0832的8腳輸出電壓的分辨率=5/256=0.02V</p><p> 即D/A輸入數(shù)據(jù)端每增加1,電壓增加0.02V。D/A的電壓
44、輸出端接放大器OPA548的輸入端,放大器的放大倍數(shù)為5 ,才能得到輸出電壓的電壓分辨率=0.02V×5=0.1V,這樣當(dāng)調(diào)節(jié)電壓的時候,以每次0.1V的梯度增加或者降低電壓。</p><p> 3.2.2 電源部分</p><p> 電源部分包括+5V、15V兩大部分</p><p> +5V電源只要供單片機(jī)部分使用,原理圖如10 所示</p
45、><p> 對于濾波電容的選擇,需要注意整流管的壓降;最小允許壓降波動10%,所以允許的最大紋波的峰峰值 :</p><p> U=9**(1-10%)-1.4-5=2.76V</p><p> C= I*△T/△U=(1*1/100)/2.76=3600Uf </p><p> 選取的濾波電容所以選取的濾波電容C=4700Uf/1
46、6V</p><p> 允許的紋波峰峰值 (1*1/100)/2.76 △U=18(1-10%)-0.7-12-U=4.9V </p><p> 按近似電流放電計算,則C= I*△T/△U=(0.7*1/100)/4.9=1430Uf </p><p> 選取濾波電容選取濾波電容C=2200uF/30V </p><p>&l
47、t;b> 4 器件介紹</b></p><p> 4.1 C51單片機(jī)介紹</p><p> 本系統(tǒng)采用AT89C51單片機(jī)作為整個系統(tǒng)的信號處理核心器件。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗
48、稱單片機(jī)。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。它提供了豐富的外圍接口和專用控制器。AT89C51是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲
49、器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且廉價的方案。 8051是51系列8位單片機(jī)的典型芯片。</p><p><b> 其主要特點(diǎn)如下:</b></p><p> *基于MCS-51核的處理器系統(tǒng),與MCS-51兼容</p><p> *4K字節(jié)可編程閃
50、爍存儲器</p><p> *壽命:1000寫/擦循環(huán)</p><p> *數(shù)據(jù)保留時間:10年</p><p> *全靜態(tài)工作:0HZ-24HZ</p><p> *三級程序存儲器鎖定</p><p><b> *32個I/O引腳</b></p><p><
51、;b> *2個定時計數(shù)器</b></p><p><b> *5個中斷源</b></p><p> *128B內(nèi)部數(shù)據(jù)存儲器RAM</p><p><b> *可編程串行通道</b></p><p> *低功耗的閑置和掉電模式</p><p>
52、*片內(nèi)振蕩器和時鐘電路</p><p> 圖13 8051單片機(jī)的內(nèi)部組成圖</p><p><b> 8051的內(nèi)部組成</b></p><p> *中央處理器(CPU)</p><p> *內(nèi)部數(shù)據(jù)存儲器RAM</p><p> *內(nèi)部程序存儲器ROM</p><
53、;p><b> *并行I/O端口</b></p><p><b> *串行口</b></p><p><b> *定時、計數(shù)器</b></p><p><b> *中斷系統(tǒng)</b></p><p><b> *時鐘電路</b
54、></p><p><b> 管腳說明:</b></p><p><b> VCC:供電電壓</b></p><p><b> GND:接地</b></p><p> P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫
55、1時,被定義為高阻態(tài)輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FLASH進(jìn)行校檢時,P0輸出原碼,此時P0外部必須被拉高。</p><p> P1口:P1口是一個內(nèi)部提供上拉電阻的8雙向I/0口,P1口緩沖器能接收輸出4TTL門電流。P1管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的原因。在flash編程和校驗時,P1口作為第
56、八位地址接收。</p><p> P2口:P2口作為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口
57、在FLASH編程和校驗時接收高八位地址信號和控制信號。</p><p> P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的原因。P3口也可作為AT89C51的一些特殊功能口,如下表所示:</p><p> 圖14 80C5
58、1的引腳圖</p><p> 管腳備腳功能: P3口同時具有AT89C51的多種特殊功能,P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p><b> 具體如下表1所示:</b></p><p> 表1 P3口的第二功能</p><p> ALE/PROG:系統(tǒng)擴(kuò)展時,P0口是8位數(shù)據(jù)線和低8位地址
59、線復(fù)用電路,ALE用于把P0口輸出的低8位地址鎖存起來,以實現(xiàn)低8位地址和數(shù)據(jù)的隔離。由于ALE的引腳以晶振1/6的固定頻率輸出正脈沖,因此用它做外部時鐘或外部定時脈沖使用。</p><p> /PSEN:/PSEN有效時(低電平),可實現(xiàn)對外部ROM單元的讀操作</p><p> EA/VPP:當(dāng)/EA信號為低電平時,對ROM的讀操作限定在外部程序存儲器;而當(dāng)/EA信號為高電平時,對
60、ROM的讀操作是從內(nèi)部程序存儲器開始的,并可延至外部程序存儲器。</p><p> RST:當(dāng)輸入的復(fù)位信號延至兩個機(jī)器周期以上的高電平時即為有效,用以完成單片機(jī)的復(fù)位初始化操作。</p><p> XTAL1和XTAL2:外接晶體管引線端。當(dāng)使用芯片內(nèi)部時鐘時,兩引腳用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,用于連接外部時鐘脈沖信號。</p><p>
61、ALE:系統(tǒng)擴(kuò)展時,P0口是8位數(shù)據(jù)線和低8位地址線復(fù)用電路,ALE用于把P0口輸出的低8位地址鎖存起來,以實現(xiàn)低8位地址和數(shù)據(jù)的隔離。由于ALE的引腳以晶振1/6的固定頻率輸出正脈沖,因此用它做外部時鐘或外部定時脈沖使用。</p><p> /PSEN:/PSEN有效時(低電平),可實現(xiàn)對外部ROM單元的讀操作</p><p> /EA:當(dāng)/EA信號為低電平時,對ROM的讀操作限定在
62、外部程序存儲器;而當(dāng)/EA信號為高電平時,對ROM的讀操作是從內(nèi)部程序存儲器開始的,并可延至外部程序存儲器。</p><p> RST:當(dāng)輸入的復(fù)位信號延至兩個機(jī)器周期以上的高電平時即為有效,用以完成單片機(jī)的復(fù)位初始化操作。</p><p> XTAL1和XTAL2:外接晶體管引線端。當(dāng)使用芯片內(nèi)部時鐘時,兩引腳用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,用于連接外部時鐘脈沖信號。&
63、lt;/p><p> 振蕩器特性:XTAL1XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器,石晶振蕩和瓷器振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不變。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p><b> 芯片擦除:</b></p&g
64、t;<p> 整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處低于10ms來完成。在芯片擦除操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯??梢栽诘偷搅泐l率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。掉電模式下,保持RAM的內(nèi)容并且凍結(jié)振蕩
65、器,禁止使用其他芯片功能,直到下一個硬件復(fù)位為止。</p><p> 4.2 DAC0832簡介</p><p> DAC0832是一款采用CMOS工藝制成的單片電流輸出型8位數(shù) / 模轉(zhuǎn)換器,圖四是它的邏輯框圖和引腳排列。DAC0832有三種工作方式:不帶緩沖工作方式,單緩沖工作方式,雙緩沖工作方式。</p><p> ?。?)單緩沖方式。單緩沖方式是控制輸入
66、寄存器和DAC寄存器同時接收資料,或者只用輸入寄存器而把DAC寄存器接成直通方式。此方式適用只有一路模擬量輸出或幾路模擬量異步輸出的情形。 </p><p> ?。?)雙緩沖方式。雙緩沖方式是先使輸入寄存器接收資料,再控制輸入寄存器的輸出資料到DAC寄存器,即分兩次鎖存輸入資料。此方式適用于多個D/A轉(zhuǎn)換同步輸出的情節(jié)。 </p><p> (3)直通方式。直通方式是資料不經(jīng)兩級鎖存器
67、鎖存,即 CS*,XFER* ,WR1* ,WR2* 均接地,ILE接高電平。</p><p> 為了實現(xiàn)對輸出電壓的數(shù)字控制,該設(shè)計選用了DAC0832。DAC0832是一款常用的數(shù)模有兩種連接模式,一種是電壓輸出模式,另外一種是電流輸出模式,為了設(shè)計的方便,選用電壓輸出模式,引腳Iout1和Iout2之間接一參考電壓。它有三種工作方式:不帶緩沖工作方式,單緩沖工作方式,雙緩沖工作方式。電路采用單緩沖模式。&
68、lt;/p><p> 圖15 DAC0832的邏輯框圖和引腳排列</p><p> DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個DA芯片以其價格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。</p><p> DAC0832的主要
69、特性參數(shù)如下:</p><p><b> * 分辨率為8位;</b></p><p> * 電流穩(wěn)定時間1us;</p><p> * 可單緩沖、雙緩沖或直接數(shù)字輸入;</p><p> * 只需在滿量程下調(diào)整其線性度;</p><p> * 單一電源供電(+5V~+15V);</
70、p><p> * 低功耗,200mW。</p><p> DAC0832結(jié)構(gòu): </p><p> * D0~D7:8位數(shù)據(jù)輸入線,TTL電平,有效時間應(yīng)大于90ns(否則鎖存器的數(shù)據(jù)會出錯);</p><p> * ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效;</p><p> * CS:片選信號輸入線(
71、選通數(shù)據(jù)鎖存器),低電平有效;</p><p> * WR1:數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由ILE、CS、WR1的邏輯組合產(chǎn)生LE1,當(dāng)LE1為高電平時,數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負(fù)跳變時將輸入數(shù)據(jù)鎖存;</p><p> * XFER:數(shù)據(jù)傳輸控制信號輸入線,低電平有效,負(fù)脈沖(脈寬應(yīng)大于500ns)有效;</p><
72、p> * WR2:DAC寄存器選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由WR1、XFER的邏輯組合產(chǎn)生LE2,當(dāng)LE2為高電平時,DAC寄存器的輸出隨寄存器的輸入而變化,LE2的負(fù)跳變時將數(shù)據(jù)鎖存器的內(nèi)容打入DAC寄存器并開始D/A轉(zhuǎn)換。</p><p> * IOUT1:電流輸出端1,其值隨DAC寄存器的內(nèi)容線性變化;</p><p> * IOUT2:電流輸出端2,
73、其值與IOUT1值之和為一常數(shù);</p><p> * Rfb:反饋信號輸入線,改變Rfb端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度;</p><p> * Vcc:電源輸入端,Vcc的范圍為+5V~+15V;</p><p> * VREF:基準(zhǔn)電壓輸入線,VREF的范圍為-10V~+10V;</p><p> * AGND:模擬信號地<
74、;/p><p> * DGND:數(shù)字信號地</p><p> 4.3 LM358芯片簡介</p><p> LM358內(nèi)部包括兩個獨(dú)立的、高增益的、內(nèi)部頻率補(bǔ)償?shù)碾p運(yùn)算放大器,適合于電源電壓范圍很寬的單電源使用,也適用于雙電源工作模式,在推薦的工作條件下,電源電流與電源電壓無關(guān)。它的使用范圍包括傳感器放大器、直流增益模組,音頻放大器、工業(yè)控制、DC增益部件和其他所
75、有可用單電源供電的使用運(yùn)算放大器的場合。</p><p> 圖16 LM358 引腳圖</p><p><b> LM358特性</b></p><p><b> *內(nèi)部頻率補(bǔ)償</b></p><p> *直流電壓增益高(約100db)</p><p> *單位增
76、益頻帶寬(越1MHZ)</p><p> *電源電壓范圍寬:單電源(3—30V);雙電源(±1.5V-15V)</p><p> *低功耗電流,適合于電池供電</p><p><b> *低輸入偏流</b></p><p> *低輸入失調(diào)電壓和失調(diào)電流</p><p> *共模
77、輸入電壓范圍寬,包括接地</p><p> *差模輸入電壓范圍寬,等于電源電壓范圍</p><p> *輸出電壓擺幅大(0至Vcc-1.5V)</p><p><b> LM358主要參數(shù)</b></p><p> 輸入偏置電流45nA 、輸入失調(diào)電壓50nA 、輸入失調(diào)電壓2.9MV、輸入共模電壓最大值 VCC
78、-1.5V、 共模抑制比80db、電源抑制比100db </p><p> 4.4 MAX232芯片簡介</p><p> MAX232芯片是美信公司專門為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計的單電源電平轉(zhuǎn)換芯片,使用+5V單電源供電。 </p><p><b> (圖17) </b></p><p><b&g
79、t; 引腳介紹</b></p><p> 第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個電源,提供給RS-232串口電平的需要。 </p><p> 第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。 </p><p> 其中13腳(R1IN)、12腳(R1OU
80、T)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。 </p><p> 8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。 </p><p> TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后
81、從R1OUT、R2OUT輸出。 </p><p> 第三部分是供電。15腳GND、16腳VCC(+5v)。 </p><p><b> 主要特點(diǎn)</b></p><p> 1、符合所有的RS-232C技術(shù)標(biāo)準(zhǔn) </p><p> 2、只需要單一 +5V電源供電 </p><p> 3、片
82、載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V </p><p> 4、功耗低,典型供電電流5mA </p><p> 5、內(nèi)部集成2個RS-232C驅(qū)動器 </p><p> 6、高集成度,片外最低只需4個電容即可工作。 </p><p><b> 4.5 按鍵簡介</b></p>
83、<p> 按鍵有觸電式和非觸電式兩種,單片機(jī)中的按鍵一般由機(jī)械觸點(diǎn)構(gòu)成。按鍵的讀取容易引起誤操作,要去抖動。常用的去抖動有兩種:硬件法和軟件法,單片機(jī)通常采用軟件去抖,由于鍵盤的觸點(diǎn)在閉合和斷開的時候會產(chǎn)生抖動,這時觸點(diǎn)的邏輯電平是不穩(wěn)定的,如果不采取妥善處理的話,將引起按鍵命令錯誤或重復(fù)執(zhí)行,在這里采用軟件延時的方法來避開抖動</p><p> 單片機(jī)使用的鍵盤可分為獨(dú)立式和矩陣式兩種。獨(dú)立式實
84、際上就是一組相互獨(dú)立的按鍵,這些按鍵可直接與單片機(jī)的I/O接口連接,其方法是每個按鍵獨(dú)占一條口線,接口簡單[13]。矩陣式鍵盤也稱行列式鍵盤,因為鍵的數(shù)目較多,所以鍵按行列組成矩陣。</p><p> 按一個鍵到鍵的功能被執(zhí)行主要應(yīng)包括兩項工作:一是鍵的識別,即在鍵盤中找出被按的是哪個鍵,另一項是鍵功能的實現(xiàn)。第一項工作是使用接口電路實現(xiàn)的,而第二項工作則是通過執(zhí)行中斷服務(wù)程序來完成。設(shè)計中設(shè)計的獨(dú)立式按鍵見圖
85、</p><p><b> 按鍵的去抖 </b></p><p> 機(jī)械式按鍵在按下或釋放時,由于機(jī)械彈性作用的影響,通常伴隨有一定時間的觸點(diǎn)機(jī)械抖動,然后其觸點(diǎn)才能穩(wěn)定下來,抖動時間一般為5~10ms,如圖 所示。在觸點(diǎn)抖動器件檢測按鍵的通與斷狀態(tài),可能導(dǎo)致判斷錯誤。</p><p> 圖18 按鍵觸點(diǎn)的機(jī)械抖動</p>
86、;<p> 按鍵的去抖可以采用硬件電路消除或軟件去抖編程消抖,本設(shè)計中則采用軟件方法進(jìn)行去抖,軟件去抖編程思路:在檢測到有鍵按下時,先執(zhí)行10m的延時程序,然后再重復(fù)檢測該鍵是否仍然按下,以確定該鍵按下是不是因抖動引起的。同理,在檢測到該鍵釋放時,也采用先延時再判斷的方法消除抖動的影響。</p><p><b> 5 軟件設(shè)計</b></p><p>
87、; 5.1 主程序流程圖</p><p><b> ?。▓D19)</b></p><p> 5.1.1 定時器1的中斷流程圖</p><p><b> ?。▓D20)</b></p><p> 5.1.2 按鍵掃描子程序流程圖</p><p> 5.1.3 顯示電壓子程
88、序流程圖</p><p><b> ?。▓D22)</b></p><p><b> 軟件流程說明:</b></p><p> 當(dāng)電源打開時,單片機(jī)AT89C51進(jìn)行復(fù)位,復(fù)位初始化設(shè)置為0V,單片機(jī)AT89C51初始化后,對鍵盤進(jìn)行掃描,看是否有鍵按下,若有鍵按下,根據(jù)按鍵與單片機(jī)AT89C51的接口的狀態(tài),判斷出是哪
89、個按鍵被按下,除了通過設(shè)置鍵來調(diào)整電壓時,其余按鍵情況通過定時器1中斷調(diào)用顯示最終輸出電壓值的函數(shù):</p><p> 若是按鍵S3被按下,則電壓設(shè)定值和電壓輸出值均增加0.1V;</p><p> 若是按鍵S4被按下,則電壓設(shè)定值和電壓輸出值均減少0.1V;</p><p> 若是按鍵S5被按下,則開始設(shè)置輸出電壓值,此時關(guān)閉定時器1;</p>
90、<p> 若是定時器1被關(guān)閉,對按鍵進(jìn)行掃描是否有按鍵按下,若是確定按鍵S6沒有被按下則一直執(zhí)行循環(huán)程序?qū)Π存I進(jìn)行掃描,若是按鍵S1被按下,則電壓設(shè)定值和電壓輸出值均增加1V,若是按鍵S2被按下,則電壓設(shè)定值和電壓輸出值均減少1V;若是按鍵S3被按下,則電壓值和電壓輸出值均增加0.1v;若是按鍵S4被按下,則電壓設(shè)定值和電壓輸出值均減少0.1V。將通過按鍵設(shè)定的電壓值,合并成一個數(shù);個數(shù)和小數(shù)點(diǎn)后一位,同時賦給一個變量,此
91、時設(shè)定的電壓值調(diào)用實時顯示函數(shù);若是確定按鍵S6被按下,則將合并的數(shù)轉(zhuǎn)化成數(shù)字量值,通過DAC0832與單片機(jī)的數(shù)據(jù)接口,將數(shù)字量值寫入DAC0832并通過定時器一的開通由定時器1中斷調(diào)用顯示最終電壓值的函數(shù)。</p><p><b> 5.2 程序</b></p><p> #include<math.h></p><p>
92、 #include<absacc.h></p><p> #include<reg51.h></p><p> #define uchar unsigned char</p><p> #define key1 P3_2 //電壓增1按鍵</p><p> #def
93、ine key2 P3_3 //電壓減1按鍵</p><p> #define key3 P3_4 //電壓加0.1按鍵</p><p> #define key4 P3_5 //電壓減0.1按鍵</p><p> #def
94、ine key5 P3_6 //設(shè)置電壓輸出按鍵</p><p> #define key6 P3_7 //電壓確定按鍵</p><p> #define key7 RST //復(fù)位鍵</p><p> void dela
95、y(unsigned char i); //延時函數(shù)聲明</p><p> void display(uchar disseg,uchar disdata);</p><p> void dis_num(uchar number);</p><p> void WT_DA(uchar a);</p><p>
96、uchar RD_AD();</p><p> code uchar disbuf_u1[]=</p><p> {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0~9的字型碼</p><p> code uchar disbuf_u2[]=</p><p> {0x40,0
97、x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//0.~9.的字型碼</p><p> uchar keyb();</p><p> uchar keybuf; //鍵盤結(jié)果緩沖區(qū)</p><p> uchar dataf;</p><p> uchar number
98、1,number2;</p><p><b> //主程序</b></p><p> void main()</p><p> { unsigned w;</p><p> TMOD=0x10; </p><p> w=0x01; //位選碼初值為01H
99、</p><p> P0= disbuf_u1[0];</p><p> number1=0;</p><p><b> P0=0;</b></p><p><b> P2_6=0;</b></p><p><b> dataf=0;</b>&
100、lt;/p><p> TR0=0; //停止定時器的運(yùn)行</p><p> TMOD=0x10; //設(shè)置定時器1 工作方式1</p><p> TH1=(65536-5000)/256; //T1置初值</p><p> TL1=(65536-5000)%256;</p>
101、<p> EA=1; //開總中斷</p><p> ET1=1; //開T1中斷</p><p> TR0=1; //啟動T0 </p><p> TR1=0; //關(guān)閉T1&l
102、t;/p><p> DA=0; //初始化DA轉(zhuǎn)化</p><p><b> while(1)</b></p><p> {uchar keym;</p><p> P1=number1;</p><p> keym=keyb();</p>
103、<p> switch(keym)</p><p><b> {</b></p><p> case 24:number1++; //減電壓</p><p> case 40:;number1--; //加電壓</p><p><b> case 48:;
104、</b></p><p><b> }</b></p><p> number2=RD_AD();</p><p><b> } </b></p><p> } </p><p><b> //顯示子程序&
105、lt;/b></p><p> void display(uchar disseg,uchar disdata)</p><p> {uchar dataf=1;</p><p> while(disseg)</p><p><b> {</b></p><p><b>
106、 dataf++;</b></p><p><b> TR0=1;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> //鍵盤處理子程序</b></p><
107、p> uchar keyb()</p><p><b> {</b></p><p> uchar key,keytemp;</p><p> key1=1;//將輸出線拉高</p><p><b> key2=1;</b></p><p><b>
108、 key3=1;</b></p><p><b> do</b></p><p><b> {</b></p><p> key=P2;//讀回來</p><p> key=key&0x38;</p><p> keytemp=key;<
109、/p><p><b> delay(1);</b></p><p> key=P2&0x38;</p><p><b> }</b></p><p> while(key!=keytemp);</p><p> return(keytemp);</p>
110、;<p><b> }</b></p><p><b> //延時子程序</b></p><p> void delay(unsigned char i)</p><p><b> {</b></p><p> unsigned char j,k;<
111、;/p><p> for(k=0;k<i;k++)</p><p> for(j=0;j<255;j++);</p><p><b> }</b></p><p> void delay(unsigned char i)</p><p><b> {</b>
112、</p><p> unsigned char j,k;</p><p> for(k=0;k<i;k++)</p><p> for(j=0;j<255;j++);</p><p><b> }</b></p><p> //定時中斷2ms掃描子程序</p>
113、<p> void time0() interrupt 1 using 3</p><p> {TH0=0x8F;</p><p><b> TL0=0x30;</b></p><p><b> dataf++;</b></p><p> if(dataf>8)</p
114、><p><b> dataf=0;</b></p><p><b> }</b></p><p><b> //DA轉(zhuǎn)換</b></p><p> void WT_DA(uchar a)</p><p><b> {</b>
115、;</p><p><b> P1=a;</b></p><p><b> }</b></p><p><b> //數(shù)值運(yùn)算子程序</b></p><p> void dis_num(uchar number)</p><p> {int n
116、u,temp;</p><p><b> uchar j;</b></p><p> for(j=0;j<6;j++)</p><p><b> {</b></p><p> nu=temp%10;</p><p> display(j,nu);</p&
117、gt;<p><b> delay(</b></p><p><b> );</b></p><p> temp=temp/10;</p><p><b> }</b></p><p><b> } </b></p>
118、<p><b> //獨(dú)立式按鍵程序</b></p><p> Void delay()</p><p><b> { </b></p><p> TH1=0Xd8; </p><p> TL1=OXF0; //設(shè)置10ms定
119、時初值</p><p> TR1=1; // 啟動定時器1 </p><p> While(!TF1); //判斷10ms定時時間到</p><p><b> TF1=0;</b></p><p><b> }</b>
120、</p><p> 6 軟硬件系統(tǒng)的調(diào)試</p><p> 本系統(tǒng)的調(diào)試主要分為硬件調(diào)試、軟件調(diào)試等兩大部分。經(jīng)過初步的分析設(shè)計后,在制作硬件電路的同時,調(diào)試也在穿插進(jìn)行。這樣有利于問題的分析和解決,不會造成問題的積累,而且不會因為一個小問題而進(jìn)行整體電路的檢查,從而可以節(jié)約大量的調(diào)試時間。軟件編程中,首先完成單元功能模塊的調(diào)試,然后進(jìn)行系統(tǒng)調(diào)試,整體上與硬件調(diào)試的方法差不多。聯(lián)機(jī)調(diào)試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計---數(shù)控直流電壓源的設(shè)計
- 畢業(yè)設(shè)計----數(shù)控直流電流源
- 數(shù)控直流電流源畢業(yè)設(shè)計
- 畢業(yè)論文數(shù)控直流電壓源的設(shè)計
- 畢業(yè)論文數(shù)控直流電壓源的設(shè)計
- 簡易數(shù)控直流電流源畢業(yè)設(shè)計
- 0~15v直流電壓源的設(shè)計
- 畢業(yè)設(shè)計---基于數(shù)控直流電流源系統(tǒng)的設(shè)計
- 基于數(shù)控直流電流源系統(tǒng)的設(shè)計畢業(yè)設(shè)計
- 基于數(shù)控直流電流源系統(tǒng)的設(shè)計畢業(yè)設(shè)計
- 直流電機(jī)畢業(yè)設(shè)計
- 基于avr單片機(jī)的數(shù)控直流電壓源設(shè)計
- 畢業(yè)論文--基于單片機(jī)簡易數(shù)控直流電壓源的設(shè)計
- 直流數(shù)控電壓源設(shè)計畢業(yè)設(shè)計
- 數(shù)控直流電源畢業(yè)設(shè)計
- 畢業(yè)論文--基于單片機(jī)簡易數(shù)控直流電壓源的設(shè)計
- 畢業(yè)設(shè)計172數(shù)控直流電流源(電子設(shè)計大賽論文)
- 畢業(yè)設(shè)計172數(shù)控直流電流源(電子設(shè)計大賽論文)
- 數(shù)控直流電流源畢業(yè)論文
- 直流電源---各電壓輸出源及可調(diào)電源
評論
0/150
提交評論