數(shù)字脈沖電源_第1頁
數(shù)字脈沖電源_第2頁
數(shù)字脈沖電源_第3頁
數(shù)字脈沖電源_第4頁
數(shù)字脈沖電源_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、第一章緒論 1.1 引言隨著電力電子技術的高速發(fā)展,電力電子設備與人們的工作、生活的關系日益密切,而電子設備都離不開可靠的電源,進入80年代計算機電源全面實現(xiàn)了開關電源化,率先完成計算機的電源換代,進入90年代數(shù)字脈沖電源相繼進入各種電子、電器設備領域,程控交換機、通訊、電力檢測設備電源、控制設備電源等都已廣泛地使用了數(shù)字脈沖電源,更促進了開關電源技術的迅速發(fā)展。開關電源是利用現(xiàn)代電力電子技術,控制開關晶體管開通和關斷的時間比率,維持穩(wěn)定輸出電壓的一種電源,數(shù)字脈沖電源一般由供電電源、數(shù)字控制器、開關管、和負載構(gòu)成。數(shù)字脈沖電源和線性電源相比,二者的成本都隨著輸出功率的增加而增長,但二者增長速

2、率各異。隨著電力電子技術的發(fā)展和創(chuàng)新,使得數(shù)字脈沖電源技術也在不斷地創(chuàng)新,這一成本反轉(zhuǎn)點日益向低輸出電力端移動,這為數(shù)字脈沖電源提供了廣闊的發(fā)展空間。數(shù)字脈沖電源高頻化是其發(fā)展的方向,高頻化使數(shù)字脈沖電源小型化,并使開關電源進入更廣泛的應用領域,特別是在高新技術領域的應用,推動了高新技術產(chǎn)品的小型化、輕便化。另外數(shù)字脈沖電源的發(fā)展與應用在節(jié)約能源、節(jié)約資源及保護環(huán)境方面都具有重要的意義。 1.2 數(shù)字脈沖電源的發(fā)展脈沖電鍍是一項新的電鍍技術。特點是由脈沖電流對電極過程動力學的特效影響所決定的。在直流電鍍時,鍍液中被鍍出的金屬離子在陰極表面附近溶液中逐漸被消耗,造成了該處被鍍金屬離子與溶液中該離

3、子濃度出現(xiàn)差別。這種差別隨著使用的電流密度增高而加大。脈沖電鍍時的傳質(zhì)過程與直流電鍍時的傳質(zhì)過程的差異,造成了峰值電流可以大大高于平均電流,促使晶種形成的速度遠遠高于晶體長大的速度,使鍍層結(jié)晶細化,排列緊密,孔隙減小,電阻率低。脈沖電源其電流呈脈沖方式流動,并可在瞬時產(chǎn)生高密度電流;在電鍍時能將底層均勻地涂覆到鍍件上,并使之加速,提高了效率??梢哉{(diào)節(jié)占空比及頻率的脈沖電鍍電源。脈沖電源的工作原理可以通過其輸出波形直接反映。一般直流電源的輸出波形見圖1-1;脈沖電源的輸出波形見圖1-2。所謂數(shù)字脈沖電源,就是采用微處理器等數(shù)字電路對脈沖電源中的直流斬波進行控制,并實現(xiàn)數(shù)字顯示與數(shù)字調(diào)節(jié)的一種脈沖

4、電源。它是當今最為先進的電鍍電源,也是電鍍電源發(fā)展的方向。它與傳統(tǒng)的模擬脈沖電圖1-1一般電鍍電源輸出波形圖1-2脈沖電源輸出波形源相比有以下優(yōu)點:驅(qū)動波形規(guī)整,極大的改善了斬波后的輸出波形,對提高電鍍質(zhì)量十分有利;采用數(shù)字調(diào)控,直觀簡單;波形調(diào)節(jié)范圍寬,調(diào)節(jié)步進可以至0.1ms;溫度漂移系數(shù)小,能長期穩(wěn)定連續(xù)運行。數(shù)字脈沖電源一般分為雙脈沖電源與單脈沖電源2種。數(shù)字單脈沖電源的原理圖。如圖1-3所示。圖1-3數(shù)字單脈沖電源原理圖在目前的應用中,大多利用大功率的開關管IGBT對直流電源進行斬波,達到脈沖輸出的目的。改變IGBT開關管的方波驅(qū)動信號,以實際脈寬的可調(diào)。第二章數(shù)字脈沖電源的性能指標

5、與設計要求2-1數(shù)字脈沖電源的性能指標與設計要求脈沖電鍍實質(zhì)上是一種通、斷直流電鍍。所不同的是脈沖電鍍有3個獨立的參數(shù)(脈沖電源密度J、導通時間ton及關斷時間toff)可調(diào);而一般直流電鍍只有1個參數(shù)(電流或電壓)可調(diào)。因此,采用脈沖電鍍就為槽外控制鍍層提供了有利的手段。脈沖電鍍是一項既能提高鍍層質(zhì)量,又能提高沉積速率的經(jīng)濟效益很高的電鍍新技術。圖1-2為脈沖電源的電流波形,圖中:ton:脈沖電流導通時間;toff:脈沖電流斷電時間;T=ton+toff:脈沖周期;J:電流密度;Ip:電流峰值。圖1-2脈沖電源參數(shù)圖本數(shù)字單脈沖電源的性能與設計要求主要體現(xiàn)再以下一些指標:供電電源:3相,50

6、Hz,380V。輸出峰值電流:440A,連續(xù)可調(diào)。輸出峰值電壓:330V,連續(xù)可調(diào)。脈沖頻率:110KHz,可調(diào)。脈沖占空比:0100%,可調(diào)。脈沖電流導通時間:ton:0.1999.9ms;脈沖電流斷電時間toff:0.1999.9ms。電流、電壓波形:脈沖,鍵盤設定。工作方式:恒流/恒壓任選。電鍍時間可鍵盤設定,為0999.9s。第三章雙CPU系統(tǒng)方案3-1系統(tǒng)總體方案的思路由于系統(tǒng)中關鍵問題是定時:電鍍時間的定時及驅(qū)動開關管的脈沖定時,而且后者的定時精度直接影響輸出脈沖波形的頻率精度。同時考慮到系統(tǒng)顯示及按鍵處理的因素,本系統(tǒng)采用了雙CPU系統(tǒng)設計構(gòu)架。主系統(tǒng)主要負責顯示按鍵管理、電鍍時

7、間控制以及余興中的暫停等控制;從系統(tǒng)主要負責產(chǎn)生開關管的驅(qū)動脈沖。數(shù)字控制系統(tǒng)的原理可用圖3-1表示。雙CPU系統(tǒng)的關鍵是主、從CPU之間的協(xié)調(diào)與通信實現(xiàn)。實現(xiàn)的約束是:( 1) 能滿足系統(tǒng)的實習性要求,響應及時,并能完成系統(tǒng)的所有設計功能;( 2) 軟、硬件實現(xiàn)不能過于復雜。圖3-1雙CPU系統(tǒng)原理示意圖3-2雙CPU系統(tǒng)的若干形式在單片機應用系統(tǒng)中,雙CPU或多CPU系統(tǒng)的建構(gòu)通常有以下3種形式。1 采用雙口RAM方式使用一個CPU有時會導致軟件編寫復雜,尤其當多個外圍芯片發(fā)生中斷請求時,容易造成數(shù)據(jù)處理的延誤。采用雙口RAM和雙CPU電路,整個電路分為2大部分,每個CPU編有單獨的程序,

8、各管理一部分,這樣可減小整個軟件編寫的難度,增加儀器工作的可靠性。雙口RAM產(chǎn)品的型號和規(guī)格較多,常用的如IDT7132雙口RAM。作為2個CPU交換信息的媒介,主CPU和次CPU均可通過與雙口RAM相連的總線對雙口RAM進行讀/寫。由于雙口RAM對大多具有雙總線,而且具有總線仲裁機構(gòu),因此這種方式的特點是硬件簡單,但成本相對較高。這種方式的實現(xiàn)原理可用圖3-2表示。圖3-2雙口RAM方式雙CPU系統(tǒng)2 .采用并口通信方式采用并口方式的雙CPU系統(tǒng)一般有以下2種形式。(1)直接連接方式這種方式是直接將2個CPU通過并行接口連接起來,實現(xiàn)協(xié)調(diào)與交流。以圖3-3為以說明:圖中P34,P35作為握手

9、聯(lián)絡信號。顯然這種方式是以犧牲并行接口為代價的。雖然是半雙工通信方式,但由于是并行通信方式,速度還是比串口方式要快。在并行接口緊張的應用場合,需要權(quán)衡。(2)間接連接方式間接連接方式一般是通過并行接口電路來實現(xiàn)的。以圖3-4為例加以說明:這種方式以2片并行接口芯片8155作為雙方聯(lián)系的紐帶。由于8155對單片機來說只是一個外圍設備,因此,這種方式可以避免總線仲裁等麻煩。圖3-3直接并行方式圖3-4間接并行方式煩。只要設定好8155的PA,PB,PC的輸入/輸出方式,并以其中的若干條口線作為握手聯(lián)絡信號,就可以方便地實現(xiàn)雙CPU系統(tǒng)。3.采用串行通信方式串行通信方式,即主、從CPU之間通過串行口

10、或模擬串行接口驚醒協(xié)調(diào)和交流。這種方式的特點是硬件簡單,軟件實現(xiàn)也很方便;但實時性相對較差,只適用于數(shù)據(jù)量小的場合。本系統(tǒng)即采用了這種方式。為了彌補純串行方式的缺陷,本系統(tǒng)在串行通信的基礎上,配合以適當?shù)奈帐致?lián)絡信號,以克服純軟件握手對驅(qū)動脈沖的影響。第四章系統(tǒng)硬件設計4.1基于89C52的主系統(tǒng)設計4-1-1主系統(tǒng)電路1主系統(tǒng)電原理設計按照設計要求及方案,確定系統(tǒng)的功能模塊有顯示/按鍵電路、復位與看門狗電路、主CPU系統(tǒng)、從CPU系統(tǒng)、脈沖驅(qū)動放大電路(斬波控制電路)及脈沖電源的其他電路(直流電源、斬波電路及保護環(huán)節(jié))等。主系統(tǒng)電原理見圖4-1。2主系統(tǒng)分析( 1)復位與看門狗電路本系統(tǒng)有以

11、下3種情況:上電復位、手動復位、及看門狗定時器溢出復位;采用MAX813L電源監(jiān)視電路。主CPU、從CPU系統(tǒng)共用復位信號,目的是當系統(tǒng)中的任何一個子系統(tǒng)運行失常時,必須共同復位,以回復待機狀態(tài),避免錯誤運行。對從系統(tǒng)的軟件進行適當處理,當從系統(tǒng)工作失常后,也能讓主系統(tǒng)感知,然后強制電源監(jiān)視電路復位,可達到引起復位的目的。這里利用通信握手信號SCOMM。這樣當從系統(tǒng)失常、程序“跑飛”時,落入非正常程序區(qū)的握手信號始終無效,此時主系統(tǒng)的串行查詢程序反復查詢,使得“喂狗”信號無法及時送出,從而引起溢出復位。( 2)主CPU系統(tǒng)主CPU系統(tǒng)主要管理顯示電路、按鍵電路、運行狀態(tài)控制及向從CPU系統(tǒng)發(fā)送

12、脈沖參數(shù)等,核心是89C52單片機。其中的PKEY開關為暫停開關,通過P12與單片機接口,暫停時通過P11控制暫停指示燈發(fā)光指示。“喂狗”信號由P10輸出,其實質(zhì)是一個負脈沖。主、從CPU系統(tǒng)的握手信號為R/P,SCOMMo其中R/P用來由主CPU控制從CPU的運圖4-1主系統(tǒng)電原理圖行與暫停;SCOMM信號是從CPU向主CPU指示通信狀態(tài)的,成功結(jié)束有效;否則無效??紤]到主CPU系統(tǒng)對定時的要求不是很高,采用6Mhz主頻。4-1-2主系統(tǒng)顯示電路顯示采用數(shù)碼管;顯示/鍵盤電路通過8279專用接口芯片與單片機接口。一共用3組數(shù)碼管,每組4個數(shù)碼管。前2個參數(shù)的范圍為0.1999.9ms而后1個

13、參數(shù)的范圍為09999s,符合8279的設計能力。數(shù)碼管采用小型超高亮共因數(shù)碼管。前2個參數(shù)采用綠色,后一個數(shù)的顯示采用紅色。通過P15引腳向MAX813L發(fā)出RSTK1信號,使系統(tǒng)復位,也即停止從CPU的脈沖輸出,結(jié)束電鍍運行。顯示電路中的數(shù)碼管電路如圖3-2所示,單片機的接口電路參見圖42圖4-2數(shù)碼管電路4-1-3主系統(tǒng)按鍵電路鍵盤設計了10個數(shù)字鍵09,3個參數(shù)(ton、toff及T)設置鍵,與此配套的Enter,CLS“f”等鍵及運行控制鍵Start。1 .數(shù)字鍵09用來設置參數(shù)。在當前編輯位上輸入數(shù)字,每按1個數(shù)字鍵,便覆蓋原數(shù)字。2 .參數(shù)設置鍵ON,OFF,T3鍵用來選擇設置何

14、種參數(shù)。設置流程為:按3個中任1個,以選擇參數(shù)項目;再通過數(shù)字鍵送入第1位(最高位),通過“”鍵切換到下一位;再送入數(shù)字,一直到4位數(shù)字全部送完,通過回車鍵Enter確認。前2個參數(shù)采用定點數(shù),小數(shù)位為一位。在輸入過程中,如出現(xiàn)錯誤,則按CLS鍵清除該項目,重新輸入。當3個參數(shù)全部送完,則設置參數(shù)不齊備,按此鍵無效。按鍵電路如圖4-3所示。圖4-3按鍵電路4-2基于89C2051的從系統(tǒng)設計從CPU系統(tǒng)是基于89C2051單片機的單芯片系統(tǒng),唯一的任務是產(chǎn)生斬波所需的脈沖信號。電原理圖見圖1-7虛線框部分。系統(tǒng)主頻為12Mhz,其目的是為了保證最小定時0.1ms的需要,在T2定時中斷服務程序中

15、完成相應動作。中斷服務程序的總的執(zhí)行時間必須小于0.1ms;否則,會引起失常,出現(xiàn)比較大的脈沖頻率誤差,甚至不能工作。脈沖PULSE從P16輸出,經(jīng)Q1(9012)小功率三極管驅(qū)動后,經(jīng)光電隔離驅(qū)動斬波信號驅(qū)動電路。從系統(tǒng)與主系統(tǒng)的串行通信為直接方式,原因是雙方均為TTL信號,可以直接交換,無需電平轉(zhuǎn)換。4-3斬波脈沖驅(qū)動輸出電路設計從系統(tǒng)產(chǎn)生的脈沖信號經(jīng)高速光耦TIL117光電隔離后,送入驅(qū)動放大電路,如圖4-4所示。當M1+為低電平時,光耦截止,中功率三極管BG2截止,MZ11與MZ15間無信號輸出;當M1+為高電平時,則光耦導電,BG2導通,則MZ11與MZ15間的電平信號約為16V,能

16、滿足斬波電路驅(qū)動信號的要求。如果調(diào)整R16,則可使輸出信號在一定范圍內(nèi)具有可調(diào)性,以適應不同斬波用開關管的技術要求。實際應用中發(fā)現(xiàn),3端穩(wěn)壓器的輸出端不接大容量濾波電容,可以改善波形的邊沿特性。圖4-4斬波用脈沖驅(qū)動電路第五章軟件系統(tǒng)采用雙CPU系統(tǒng)結(jié)構(gòu)后,可以使2個CPU各司其職,同時使軟件設計的難度也大大降低。5.1主系統(tǒng)軟件1主系統(tǒng)軟件結(jié)構(gòu)主系統(tǒng)主要由4大功能模塊組成:(1)主程序模塊;(2)串行通信模塊;(3)T2定時中斷服務程序;(4)參數(shù)編輯模塊。4模塊的功能分別是:延時,以等待82T9復位完成圖5-1主系統(tǒng)主程序框圖主程序模塊:系統(tǒng)初始化及其他模塊的協(xié)調(diào)與調(diào)用;串行通信模塊:主要

17、是向從系統(tǒng)發(fā)送編輯好的ton,toff及T等參數(shù);T2定時中斷服務模塊:計量電鍍時間,即對T參數(shù)倒計時處理;參數(shù)編輯模塊:編輯輸入脈沖所需的ton,toff及T等參數(shù)。主程序框架見圖5-1所示。2.主系統(tǒng)程序及其簡要說明如下:;鍵值定義NUM0EQU00HNUM1EQU01HNUM2EQU02HNUM3EQU03HNUM4EQU04HNUM5EQU05HNUM6EQU1BHNUM7EQU06HNUM8EQU07HNUM9EQU08HON1EQU09HOFF1EQU0AHT1EQU0BHON2EQU0CHOFF2EQU0DHT2EQU0EHTTEQU0FHENTEREQU10HCLSEQU11H

18、LEFTEQU12HPAUSEEQU15HSTARTEQU16HUP1EQU17H;數(shù)字電位器+1鍵(預留)DOWN1EQU18H;數(shù)字電位器-1鍵(預留)UP2EQU19HDOWN2EQU1AH;8279地址定義I8279_CMDEQU7FFFHI8279_DATAEQU7EFFH;顯示數(shù)碼管個數(shù)DIRNEQU0CH;只有12個,但8279方式字必需為16個;8279命令字:左入,N鍵輪回,16數(shù)碼管KMDEQU08H;0AH也可,*;片內(nèi)RA帆配*DISPBUFEQU50H;顯示緩充區(qū)首址(50H5FH,共16字節(jié))KEYBUFEQU4FH;鍵值緩沖單元;光標位置序號暫存CURSOREQU

19、4EH;本次編輯項顯示首址暫存單元FIRSTEQU4DH;ON時間(已轉(zhuǎn)換成0.1MS的個數(shù))暫存單元ONEQU4BH;4BH,4CH(從高至必氐);OFF時間OFFEQU49H;49H,4AH;總的工作時間(單位為:秒)WTEQU47H;47H,48H(從高到低):S;工作參數(shù)備份區(qū)ONBFEQU45H;45H,46HOFFBFEQU43H;43H,44HWTBFEQU41H;41H,42H;十進制加減工作區(qū)(被減數(shù),或被加數(shù)單元)BCDJJEQU3FH;3FH,40H;T0中斷次數(shù)累計單元T0_COUNTEQU3DH;中斷10為1S(10*0.1=1S);位標志定義ISON1BIT01H;

20、正在編輯ON1標志ISOFF1BIT02H;正在編輯OFF1標志ISTTBIT03H;指示編輯TT標志CSOKBIT04H;參數(shù)輸入完成標志CSON1BIT05H;參數(shù)ON1被編輯過標志(只要編輯過即為真)CSOFF1BIT06HCSTTBIT07HCSW1BIT08H;參數(shù)位1已編輯標志(即已輸入過數(shù)字)CSW2BIT09HCSW3BIT0AHCSW4BIT0BHDPBIT0CH;參數(shù)中是否要小數(shù)點標志ISOVERBIT0DH;工作結(jié)束標志(設定時間到了)CSXBIT0EH;參數(shù)項標志,=1,為ONI數(shù)(T1中斷用)PAUSE_FLAGBIT0FH;暫停鍵標志.=1,說明已按過暫停鍵TTFL

21、AGBIT04H;工作時間已設定過標志;參數(shù)編輯項數(shù)標志單元CSXSEQU23H;如果=3,說明三個參數(shù)已都編輯過;項目內(nèi)參數(shù)編輯位數(shù)計數(shù)單元XNGSEQU24H;顯示緩沖區(qū)的備份DISPBFEQU0A0H;數(shù)字電位器控制端定義CSBITP3.0INC1BITP3.4UDBITP3.5;各顯示指示等控制腳定義ON_RUNBITP3.1;高電平關(運行指示)PAUSINGBITP1.7;高電平關(暫停指示)RPBITP1.6;運行/暫停狀態(tài)線ISENDBITP1.5;結(jié)束狀態(tài)線SCOMMBITP1.4;通訊狀態(tài)線(=0,說明正常);PAUBITP1.2;=0,暫停;ORG0000HSJMPMAI

22、NORG002BHLJMPINT_T2ORG0030HMAIN:MOVSP,#60H;堆棧指針初始化MOVR6,#40HLCALLDELAY;延時,以等待8279復位完成LCALLINIT8279CLRCSOK;清除參數(shù)輸入完成標志CLRCSXS;清參數(shù)項數(shù)單元CLRCSON1;清各參數(shù)項已編輯標志CLRCSOFF1CLRCSTTCLRCSW1;當前參數(shù)項內(nèi)各數(shù)位標志被清除CLRCSW2CLRCSW3CLRCSW4CLRTTFLAGMOVR0,#DISPBUF;P的代碼寫入首位,以顯示開機符MOVA,#0AH;P的代碼MOVR0,AMOVA,#0CH;熄滅的代碼INCR0;顯緩的余下部分清0(

23、即熄滅)MOVR6,#0FH;還共15個(實際只要11個)MAIN_00:MOVR0,AINCR0DJNZR6,MAIN_00MAIN_0:LCALLDISPLAY;顯示PLCALLREADKEY;等待按鍵并讀鍵MOVKEYBUF,A;將鍵值暫存CJNEA,#ON1,MAIN_1;判是否是ON1鍵?SETBISON1;YES,則設置參數(shù)項標志后轉(zhuǎn)參數(shù)編輯模塊CLRISOFF1;此時,余下兩參數(shù)項標志被清除CLRISTTCLRCSW1;如果此參數(shù)還未完成,則清參數(shù)4位CLRCSW2;未編輯標志CLRCSW3CLRCSW4CLRCSON1;清參數(shù)項被編輯過標志SETBDP;要小數(shù)點LCALLEDI

24、T;完成相應參數(shù)的編輯(回車鍵返回)JNCMAIN_0;C=0,說明此參數(shù)項未被編輯SETBCSON1;C=1,說明參數(shù)項被編輯過,設置標志SJMPMAIN_0MAIN_1:CJNEA,#OFF1,MAIN_2;NO,則繼續(xù)判是否是OFF1鍵SETBISOFF1CLRISON1CLRISTTCLRCSW1CLRCSW2CLRCSW3CLRCSW4CLRCSOFF1SETBDP;要小數(shù)點MAIN_10:LCALLEDITJNCMAIN_0SETBCSOFF1SJMPMAIN_0MAIN_2:CJNEA,#TT,MAIN_3SETBISTTCLRON1CLRISOFF1CLRCSW1CLRCSW2

25、CLRCSW3CLRCSW4CLRDP;不要小數(shù)點不要小數(shù)點MAIN_20:LCALLEDITJNCMAIN_0;C=0,則不設置CSTT標志SETBCSTT;C=1,則設置CST南志SJMPMAIN_0MAIN_3:CJNEA,#START,MAIN_0;其它鍵忽略MAIN_30:MOVC,CSON1;運行鍵處理運行鍵處理ANLC,CSOFF1ANLC,CSTT;1*1*1=1(否則為0)JCMAIN_4;三個參數(shù)均已被編輯過,說明參數(shù)已完成LJMPMAIN_0;否則,說明還有參數(shù)未被輸入,則繼續(xù)等待MAIN_4:LCALLINVERT;參數(shù)轉(zhuǎn)換并送存相應單元,及備份單元LCALLFS_CP

26、U3;參數(shù)參數(shù)ON,OFF發(fā)送JNCMAIN_40;通訊不正常,則等待再次按開始鍵發(fā)送LCALLRUN;正常,則運行(開始計時)MAIN_40:LJMPMAIN_0;運行完成等待下次運行(參數(shù)保留)*軟復位CLRCSTT*:EDIT:根據(jù)相應標志,編輯輸入?yún)?shù),回車鍵結(jié)束;清除鍵整個項清除;光標-鍵可循環(huán)在項目間移動,對應位置為編輯位置;小數(shù)點位置固定;返回:C=0,說明參數(shù)未編輯C=1,說明參數(shù)被編輯過*EDIT:JNBISON1,EDIT_1;要編輯的是ONB數(shù)項?NO,則轉(zhuǎn)MOVR0,#DISPBUF;YES,則ON1參數(shù)對應顯示緩沖單元首址MOVFIRST,#DISPBUF;首地址送存

27、FIRST單元以備后SJMPEDIT_4EDIT_1:JNBISOFF1,EDIT_2;編輯OFF參數(shù)項?NO,則轉(zhuǎn)MOVR0,#DISPBUF+4;YES,OFF1對應顯示緩沖單元首址MOVFIRST,#DISPBUF+4SJMPEDIT_4EDIT_2:JNBISTT,EDIT_3MOVR0,#DISPBUF+8;TT參數(shù)對應顯示緩沖單元首址MOVFIRST,#DISPBUF+8SJMPEDIT_4EDIT_3:CLRC;清標志C(實際上不可能會執(zhí)行到此);標志不對,直接返回(不設置參數(shù)完成標志)RETEDIT_4:MOVCURSOR,#00H;光標在第一位(原始位置)MOVA,#14H;

28、_的代碼MOVR0,AINCR0;第2位為滅CLRAEDIT_41:MOVR0,AINCR0MOVR0,A;第3位滅INCR0;第4位為滅MOVR0,AEDIT_42:LCALLDISPLAY;顯示LCALLREADKEY;等待按鍵CJNEA,#NUM0,EDIT_43LCALLNUMKEY0;如為數(shù)字鍵0,則調(diào)用數(shù)字鍵處理SJMPEDIT_42EDIT_43:CJNEA,#NUM1,EDIT_44LCALLNUMKEY1SJMPEDIT_42EDIT_44:CJNEA,#NUM2,EDIT_45LCALLNUMKEY2SJMPEDIT_42EDIT_45:CJNEA,#NUM3,EDIT_4

29、6LCALLNUMKEY3SJMPEDIT_42EDIT_46:CJNEA,#NUM4,EDIT_47LCALLNUMKEY4SJMPEDIT_42EDIT_47:CJNEA,#NUM5,EDIT_48LCALLNUMKEY5SJMPEDIT_42EDIT_48:CJNEA,#NUM6,EDIT_49LCALLNUMKEY6SJMPEDIT_42EDIT_49:CJNEA,#NUM7,EDIT_4ALCALLNUMKEY7SJMPEDIT_42EDIT_4A:CJNEA,#NUM8,EDIT_4BEDIT_EDIT_EDIT_LCALLNUMKEY8SJMPEDIT_424B:CJNEA,#N

30、UM9,EDIT_4CLCALLNUMKEY9SJMPEDIT_424C:CJNEA,#LEFT,EDIT_4DMOVA,CURSOR;光標左移鍵處理CJNEA,#00H,EDIT_4C1;判當前光標是否在第一位JNBCSW1,EDIT_42;YES,判參數(shù)位1是否已輸入數(shù)字.NO,不理睬MOVCURSOR,#01HMOVA,FIRST;首址ADDA,CURSOR;加新光標位置序號=新光標顯示緩沖單元MOVR0,AMOVA,#14H;_光標字符代碼MOVR0,A;送存相應顯示緩沖單元LJMPEDIT_42;繼續(xù)顯示判鍵4C1:CJNEA,#01H,EDIT_4C2JNBCSW2,EDIT_42

31、;判參數(shù)位2是否已輸入數(shù)字.NO,則不理睬MOVCURSOR,#02HMOVA,FIRST;首址ADDA,CURSOR;加新光標位置序號=新光標顯示緩沖單元MOVR0,AMOVA,#14H;_光標字符代碼MOVR0,A;送存相應顯示緩沖單元LJMPEDIT_42;繼續(xù)顯示判鍵EDIT_EDIT_EDIT_4C2:SJMP4C23:4C20:MOVCJNEA,#02H,EDIT_4C3JNBCSW3,EDIT_4C23;判參數(shù)位3是否已輸入數(shù)字.NO,則不理睬EDIT_4C20LJMPEDIT_42MOVCURSOR,#03HMOVA,FIRST;首址ADDA,CURSOR;加新光標位置序號=新

32、光標顯示緩沖單元R0,AEDIT_4C21:MOVA,#14H;送_的代碼EDIT_4C22:MOVR0,ALJMPEDIT_42;送存相應顯示緩沖單元;繼續(xù)顯示判鍵EDIT_4C3:LJMPEDIT_42;光標已在第4位,左移鍵忽略EDIT_4D:CJNEA,#CLS,EDIT_4EEDIT_EDIT_4D1:4D12:MOVMOVMOVMOVMOVMOVINCMOVMOVINCMOVCURSOR,#00HA,FIRSTR0,AA,#14HR0,AR0,FIRSTR0A,#0CHR0,AR0R0,A;清除鍵處理;第;第;第清除鍵處理1 位顯示_2 位滅3 位滅(小數(shù)點會自動固定顯示)EDIT

33、_EDIT_4E:4E1INCR0MOVR0,ACLRCSW1CLRCSW2CLRCSW3CLRCSW4LJMPEDIT_42CJNEA,#ENTER,EDIT_4GMOVC,CSW1ANLC,CSW2ANLC,CSW3ANLC,CSW4JCEDIT_4E1LJMPEDIT_42:SETBC;第;各參數(shù)位輸入數(shù)字標志清;繼續(xù)顯示并判;回車鍵處理;判;設置已完成標志4位滅各參數(shù)位已輸入數(shù)字標志清除繼續(xù)顯示并判鍵回車鍵處理4位是否已全輸入數(shù)字YES,則繼續(xù)NO,說明參數(shù)未編輯完,回車鍵忽略設置已完成標志EDIT_4G:RETLJMPEDIT_42;其它鍵忽略*:NUMKEY0,.:將按鍵對應的數(shù)字

34、代碼寫入顯示緩沖單元顯示,;設置已輸入數(shù)字標志CSWx標明數(shù)字已輸入)*NUMKEY0:MOVR7,#00HSJMPNUMKEYNUMKEY1:MOVR7,#01HSJMPNUMKEYNUMKEY2:MOVR7,#02HSJMPNUMKEYNUMKEY3:MOVR7,#03HSJMPNUMKEYNUMKEY4:MOVR7,#04HSJMPNUMKEYNUMKEY5:MOVR7,#05HSJMPNUMKEYNUMKEY6:MOVR7,#06HSJMPNUMKEYNUMKEY7:MOVR7,#07HSJMPNUMKEYNUMKEY8:MOVR7,#08HSJMPNUMKEYNUMKEY9:MOVR

35、7,#09HNUMKEY:MOVA,FIRST;當前編輯項顯示緩沖區(qū)首址ADDA,CURSOR;+當前光標位置MOVR0,A;=對應顯示緩沖單元地址MOVA,R7MOVR0,A;將代碼寫入MOVA,CURSOR;由當前光標位置確定CSWx中的xCJNEA,#00H,NUMKEY_1SETBRETCSW1;當前光標在第1位,則設置CSW1NUMKEY_1:CJNEA,#01H,NUMKEY_2SETBCSW2RET;在第2位,則設置CSW2NUMKEY_2:CJNEA,#02H,NUMKEY_3SETBCSW3;小數(shù)點在顯示子程序中固定顯示NUMKEY_21:RETNUMKEY_3:CJNEA,

36、#03H,SETBCSW4RETNUMKEY_4NUMKEY_4:SJMP$;光標位置單元出錯,告警并死機*:RUN:1)首先從顯示緩沖單元取出相應的參數(shù),存入?yún)?shù)單元參數(shù)最終轉(zhuǎn)換成延時子程序(ON,OFF參數(shù)0.1MS,總的工作時間參數(shù)1S)的個數(shù)2)在運行過程中,按暫停鍵能暫停,再按暫停鍵繼續(xù)3)中途要退出運行則必須按復位鍵4)總的設定工作時間到,則退出*INVERT:MOVR0,#DISPBUFMOVA,R0;從顯示緩沖區(qū)取顯示代碼(0009)ANLA,#0FH;安全起見,屏蔽高4位SWAPA;形成千百位BCM的千位MOVB,A;暫存INCR0;取下一代碼,以形成BCD碼的低位MOVA,

37、R0ANLA,#0FHORLA,B;形成千百位BCDMOVR1,#ON;送存ONUI元MOVR1,AINCR1INCR0MOVA,R0ANLA,#0FHSWAPAMOVB,AINCR0MOVA,R0ANLA,#0FHORLA,BMOVR1,A;十個位送存ON+1單元INCR0;開始取OFF時間MOVA,R0ANLA,#0FHSWAPAMOVB,AINCR0MOVA,R0ANLA,#0FHORLA,BMOVR1,#OFFMOVR1,AINCR0MOVA,R0ANLA,#0FHSWAPAMOVB,AINCR0MOVA,R0ANLA,#0FHORLA,BMOVR1,AINCR0MOVA,R0ANLA

38、,#0FHSWAPAMOVB,AINCR0MOVA,R0ANLA,#0FHORLA,BMOVR1,#WTMOVR1,AINCR0INCR1MOVA,R0ANLA,#0FHSWAPAMOVB,AINCR0MOVA,R0ANLA,#0FHORLA,BMOVR1,AMOVR6,#06HMOVR0,#WTMOVR1,#WTBFINCR1;開始取并形成WT參數(shù)(S)的千百位(以秒為單位),0后繼續(xù)置數(shù)INVERT_0:MOVA,R0MOVR1,AINCR0INCR1DJNZR6,INVERT_0RETRUN:CLRISOVER;清工作結(jié)束標志MOVR0,#T0_COUNTCLRAMOVR0,AMOV0C

39、BH,#0EBH;定時時間常數(shù)高位MOV0CAH,#0C4H;定時時間常數(shù)低位MOV0CDH,#0EBH;定時時間常數(shù)高位MOV0CCH,#0C4H;定時時間常數(shù)低位MOV0C8H,#00001000B;T2的方式(16位重裝)CLRPAUSE_FLAG;清暫停標志CLRON_RUN;指示正在運行中SETB0CAH;啟動T2MOVIP,#20H;T2為高優(yōu)先級MOVIE,#10100000BCLRRP;置運行狀態(tài)RUN_2:JNBISOVER,RUN_1;查詢結(jié)束標志為真?SETBON_RUN;關運行指示CLR0CAH;關T2CLREA;關中斷RET;YES,則結(jié)束返回RUN_1:LCALLD

40、ISPLAY;刷新顯示JBPAU,RUN_21;判是否暫停.NO,則轉(zhuǎn)CLR0CAH;關閉T2CLREA;不允許中斷SETBPAUSE_FLAG;設置暫停標志CLRPAUSING;暫停指示SETBRP;運行/暫停線(暫停)SJMPRUN_2;繼續(xù)等待RUN_21:SETB0CAH;啟動T2SETBEASETBPAUSING;關暫停指示(繼續(xù)運行)CLRRP;運行狀態(tài)SJMPRUN_2;判按鍵否子程序;占用寄存器:DPTR,A;返回寄存器:C=1按鍵了;KEYPRESS:MOVDPTR,#I8279_CMDMOVXA,DPTRANLA,#0FHJNZKP1RETKP1:SETBC;按鍵標志RET

41、*;讀鍵值子程序占用寄存器:DPTR,A返回寄存器:A中為鍵值*READKEY1:MOVDPTR#I8279CMDMOV A, #40HMOVX DPTR, AMOV DPTR, #I8279_DATAMOVX A, DPTRANL A, #3FHRET;讀FIFORAM命令字;指向數(shù)據(jù)口;讀鍵值(沒有屏蔽SHIFT,CTRL位)CTRL,SHIFT*8279初始化子程序占用寄存器:A,DPTR*INIT8279: MOV MOV MOVXIN8279_1: MOVXDPTR,#I8279_CMD;向命令口A,#0D1H;清除命令字DPTR,AA,DPTR;等待清除完畢;左端輸入, 編碼方式

42、,N 鍵輪回;時鐘編程,20 分頻JBACC.7,IN8279_1MOVA,#0AHMOVXDPTR,AMOVA,#2AHMOVXDPTR,ARET*;8279讀鍵值;占用寄存器:DPTR,A;返回寄存器:存儲鍵值在A中;READKEY:MOVDPTR,#I8279_CMDMOVXA,DPTRANLA,#0FHJNZREADK1SJMPREADKEY;FIFO中無鍵值則等待READK1:MOVDPTR,#I8279_CMDMOVA,#40H;讀讀FIFORAM命令字MOVXDPTR,AMOVDPTR,#I8279_DATAMOVXA,DPTRANLA,#3FHPUSHACCMOVR3,#10H

43、;延時10MS,以等待按鍵釋放READKEY_1:MOVR4,#0FFHDJNZR4,$DJNZR3,READKEY_1POPACC;返回鍵值RET,*;顯示段碼表,*;DM:DB3FH,06H,5BH,4FH;0,1,2,3DB66H,6DH,7DH,07H;4,5,6,7DB7FH,6FH,73H,80H;8,9,P,.DB0,0,0,0;DB0,0,0,0DB08H,88H;_,_.DB0BFH,86H,0DBH,0CFHDB0E6H,0EDH,0FDH,87HDB0FFH,0EFH,0F7H,0FCHDB0B9H,0DEH,0F9H,0F1H,*:DISPLAY;思路:在ON,OF彥數(shù)項中的各自第3位固定顯示小數(shù)點小數(shù)點的顯示方法為在原段碼的基礎上使最高位為*MOVA,#90H;顯示代碼寫入地址00H開始MOVXDPTR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論