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