基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)_第1頁
基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)_第2頁
基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)_第3頁
基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)_第4頁
基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

-.z基于單片機(jī)的步進(jìn)電機(jī)開環(huán)控制系統(tǒng)胡嘯峰,李俊生〔機(jī)械工業(yè)學(xué)院機(jī)電工程學(xué)院〕摘要:設(shè)計(jì)了以AT89C51單片機(jī)為主控制器的步進(jìn)電機(jī)控制系統(tǒng),該文主要介紹了系統(tǒng)硬件電路搭建、軟件功能設(shè)計(jì)及相關(guān)機(jī)械構(gòu)造的設(shè)計(jì),其中重點(diǎn)闡述了步進(jìn)電機(jī)驅(qū)動(dòng)器的控制及LCD液晶顯示,實(shí)現(xiàn)了步進(jìn)電機(jī)的開環(huán)控制及界面顯示。關(guān)鍵詞:AT89C51;驅(qū)動(dòng)器;步進(jìn)電機(jī);12864LCD液晶屏;開環(huán)控制Open-loopcontrolsystemofstep-motorbasedonsinglechip*iaofengHu,JunshengLi(collageofelectromechanicalengineering,Beijingindustrialmechanicalcollege)Abstract:thedesignuseAT89C51singlechiptocontrolthestep-motor.Thepapermainlyintroducesthedesignofstep-motorcontroller,step-motordrivers,thedisplayofLCD.thedesignsucceedsinrealizingcontrolofstep-motor.-.z0.引言步進(jìn)電機(jī)是1種純數(shù)字控制電動(dòng)機(jī),它將電脈沖信號(hào)轉(zhuǎn)換成相應(yīng)位置的轉(zhuǎn)換裝置,是與輸入脈沖對(duì)應(yīng)的增量驅(qū)動(dòng)元件,當(dāng)負(fù)荷不超過步進(jìn)電機(jī)所提供的動(dòng)態(tài)轉(zhuǎn)矩時(shí),它就能實(shí)現(xiàn)快速起、停.另外,它的步距角和轉(zhuǎn)速不受電壓和負(fù)載變化的影響,也不受環(huán)境條件如溫度、氣壓、沖擊和震動(dòng)等影響,僅與脈沖頻率和脈沖數(shù)有關(guān),因此非常適合于單片機(jī)控制.由于步進(jìn)電機(jī)有快速響應(yīng)特性,并且無積累誤差(僅有小于7d的誤差),在許多數(shù)控裝置及儀器設(shè)備上都得到廣泛應(yīng)用.文中設(shè)計(jì)利用了單片機(jī)對(duì)步進(jìn)電機(jī)對(duì)進(jìn)展數(shù)字控制。在這個(gè)控制系統(tǒng)中,控制器是核心,它負(fù)責(zé)發(fā)脈沖和LCD顯示的控制。下文對(duì)電機(jī)速度的控制及顯示做出了詳細(xì)的介紹。1.總體方案設(shè)計(jì)系統(tǒng)框圖如〔1〕所示,本系統(tǒng)主要由5局部組成,即:步進(jìn)電機(jī),步進(jìn)電機(jī)驅(qū)動(dòng)器,控制電路,LCD顯示,執(zhí)行元件。本文重點(diǎn)介紹步進(jìn)電機(jī)控制電路,LCD顯示兩局部。步進(jìn)電機(jī)控制器步進(jìn)電機(jī)控制器步進(jìn)電機(jī)驅(qū)動(dòng)器步進(jìn)電機(jī)執(zhí)行機(jī)構(gòu)LCD顯示碼盤圖1系統(tǒng)框架2.系統(tǒng)設(shè)計(jì)2.1步進(jìn)電機(jī)的控制系統(tǒng)步進(jìn)電機(jī)的控制系統(tǒng)主要由單片機(jī),晶振電路,復(fù)位電路,步進(jìn)電機(jī)驅(qū)動(dòng)器等組成。如圖〔2〕所示。ATAT89C51步進(jìn)電機(jī)驅(qū)動(dòng)器晶振電路復(fù)位電路鍵盤圖2步進(jìn)電機(jī)控制電路〔1〕晶振電路單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路方式獲得:內(nèi)部震蕩方式和外部震蕩方式,在引腳*TAL1和*TAL2外接晶體振蕩器,就構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器。當(dāng)外接晶振后,就構(gòu)成了自激震蕩器并產(chǎn)生震蕩時(shí)鐘脈沖,內(nèi)部震蕩方式的外部電路如圖〔3〕所示,本系統(tǒng)選C1和C2為30PF.圖3晶振電路〔2〕復(fù)位電路:復(fù)位電路如圖〔4〕所示:圖4復(fù)位電路a.當(dāng)系統(tǒng)上電時(shí),C3導(dǎo)通,RESET鍵至高,系統(tǒng)復(fù)位。b.當(dāng)S1按下,支線2導(dǎo)通,RESET鍵至高,系統(tǒng)復(fù)位?!?〕步進(jìn)電機(jī)脈沖產(chǎn)生在采用單片機(jī)的步進(jìn)電機(jī)開環(huán)系統(tǒng)中,控制系統(tǒng)的CP脈沖的頻率實(shí)際上就是控制步進(jìn)電機(jī)的運(yùn)行速度。系統(tǒng)可以用兩種方法實(shí)現(xiàn):1.延時(shí);2.定時(shí)。在本電路設(shè)計(jì)中,采用了步進(jìn)電機(jī)驅(qū)動(dòng)器,步進(jìn)電機(jī)驅(qū)動(dòng)器及其接線電路如圖〔5〕所示,其脈沖的輸入由單片機(jī)的定時(shí)器發(fā)出,在軟件中由軟件來實(shí)現(xiàn)。控+5V制控+5V制機(jī)驅(qū)動(dòng)器A+A-B+B-DC+DC-兩項(xiàng)混合式步進(jìn)電機(jī)DC電源10V-40V說明:在電路中,由于其他方面考慮,沒有接方向信號(hào)和脫機(jī)信號(hào)兩根線,讀者可根據(jù)實(shí)際情況自行使用。脈沖信號(hào)由單片機(jī)T0定時(shí)器中斷發(fā)出,能產(chǎn)生任意周期的定時(shí)信號(hào),可以通過調(diào)節(jié)脈沖頻率準(zhǔn)確的控制電機(jī)的轉(zhuǎn)速??紤]到精度的要求,在容許*圍之內(nèi),不考慮由于定時(shí)器裝載完重新啟動(dòng)開場(chǎng)到定時(shí)器申請(qǐng)中斷止的那段時(shí)間?!?〕鍵盤電路:4×4的矩陣鍵盤是由4條行線和4條列線組成,按鍵設(shè)置在行列線交點(diǎn)上,行列線分別連接到按鍵開關(guān)的兩端。行線通過上拉電阻接到+5V上,平時(shí)無按鍵動(dòng)作時(shí),行線處于高電平狀態(tài),而當(dāng)有按鍵按下時(shí),行線狀態(tài)將由與此相連的列線電平?jīng)Q定。鍵盤中有無按鍵按下是由列線送入全掃描字,將所有行由與門相連,輸出接中斷。當(dāng)有鍵按下時(shí),行線由高變低產(chǎn)生負(fù)跳變,即可進(jìn)入中斷進(jìn)展處理。電路圖如下:圖5鍵盤電路圖中R1,R2,R3,R4均為4.7K,目的是將行拉高,以便在有鍵按下時(shí),可以跳進(jìn)中斷。2.2LCD液晶顯示本文采用12864液晶顯示,其與單片機(jī)P0口相接,用于顯示控制界面信息。其引腳可參照說明書,本文主要對(duì)軟件的設(shè)計(jì)進(jìn)展詳細(xì)的介紹。采用的連接方式是直連方式,通過直接的人為控制狀態(tài)位,來實(shí)現(xiàn)LCD的顯示。其硬件連接圖如圖6所示圖6LCD與單片機(jī)連接圖2.3執(zhí)行機(jī)構(gòu)用步進(jìn)電機(jī)帶動(dòng)皮帶進(jìn)展切割機(jī)模擬運(yùn)行。其根本位置關(guān)系及定位如下列圖所示:每塊支架均有加強(qiáng)筋,圖中未示出。2.4數(shù)據(jù)采集本文采用旋轉(zhuǎn)式編碼器采集實(shí)時(shí)速度,并通過LCD顯示出來。編碼器脈沖端接單片機(jī)T1計(jì)數(shù)器,通過脈沖的計(jì)數(shù),轉(zhuǎn)化為實(shí)際轉(zhuǎn)數(shù)。其接線可參照有關(guān)資料。3.軟件設(shè)計(jì)。本例中,為了使步進(jìn)電機(jī)有較高的轉(zhuǎn)數(shù),采用曲線加速的方法,即不斷的減小定時(shí)時(shí)間。使其由低速啟動(dòng),以獲得較高的轉(zhuǎn)矩,之后不斷的加速,最終獲得所需高轉(zhuǎn)速。目的在*些情況下,可以獲得高轉(zhuǎn)速,滿足要求.其工作方式如下列圖:根本速度為基準(zhǔn)的整數(shù)倍,1速為13倍,2為11倍,依次類推。要到達(dá)最高轉(zhuǎn)速,由于受到轉(zhuǎn)矩的限制,必須采取低轉(zhuǎn)速啟動(dòng),經(jīng)過一段時(shí)間加到高轉(zhuǎn)速。碼盤數(shù)據(jù)的處理,本文中采用AT89c51系列單片機(jī),其只有2個(gè)定時(shí)器/計(jì)數(shù)器中斷,因此如何處理碼盤采回的脈沖數(shù),是軟件的核心局部。我們假設(shè)碼盤在一定時(shí)間內(nèi)的脈沖數(shù)是N,設(shè)步進(jìn)電機(jī)的轉(zhuǎn)速為S,于是有如下的方程進(jìn)展計(jì)算。其中:采集編碼器脈沖得時(shí)間為T〔us〕編碼器旋轉(zhuǎn)一周發(fā)生360個(gè)脈沖。流程圖如下:鍵盤掃描加減速控制流程圖源程序見附表〔1〕4結(jié)論步進(jìn)電機(jī)開環(huán)控制系統(tǒng)具有本錢低、簡(jiǎn)單、控制方便等。在此方案中,通過曲線加速,可以獲得較高的轉(zhuǎn)速。通過步進(jìn)電機(jī)驅(qū)動(dòng)器使得步進(jìn)電機(jī)的精度得以提高,運(yùn)動(dòng)較為平穩(wěn)。使用碼盤,將現(xiàn)有的速度實(shí)時(shí)反響在控制界面上。本實(shí)驗(yàn)?zāi)康脑谟谀M切割機(jī)的一局部,其根本功能均可實(shí)現(xiàn),且步進(jìn)電機(jī)的誤差在容許*圍之內(nèi),滿足使用要求。參考文獻(xiàn)〔1〕王福瑞,等單片機(jī)微機(jī)系統(tǒng)設(shè)計(jì)大全:航天航空大學(xué)〔2〕胡漢才單片機(jī)原理及其接口技術(shù):清華大學(xué)說明:由于編者水平有限,僅供參考,如有不對(duì)之處還請(qǐng)多多指教。其中胡嘯峰做軟件設(shè)計(jì),李俊生電路設(shè)計(jì),盧勝軍QQ:328510960特別感謝機(jī)電工程學(xué)院姚小敏,李天劍教師的耐心指導(dǎo)和幫助。源程序:;定義控制位RSEQUP2.0RWEQUP2.1EEQUP2.2PULSEEQUP2.4DIREQUP2.5;程序標(biāo)志位STATUSBIT00H;運(yùn)轉(zhuǎn)停頓標(biāo)志位,1轉(zhuǎn)0停STATUS1BIT01H;正反轉(zhuǎn)標(biāo)志位,1正0反RESETFLAGBIT02H;系統(tǒng)復(fù)位標(biāo)志位SPEEDSHOWFLAGBIT03H;轉(zhuǎn)速刷新標(biāo)志位RIGHTSHOWFLAGBIT04H;顯示標(biāo)志位;LCD顯示的變量定義NDATA30H;行數(shù)顯示ADDRDATA31HADDR1DATA32HN1DATA33H;鍵盤中斷程序變量KEY1DATA38HKEY2DATA39HKEY3DATA3AH;程序中間變量GEWEIDATA40H;個(gè)位數(shù)SHIWEIDATA41H;十位數(shù)BAIWEIDATA42H;百位數(shù)COUNTERLDATA43H;存計(jì)數(shù)器低八位COUNTERHDATA44H;存計(jì)數(shù)器高八位SPEEDLEVELPTDATA50H;速度顯示指針TIMPTDATA51H;轉(zhuǎn)速定時(shí)器指針TIMNOWDATA52H;定時(shí)器周期當(dāng)前值TIMNOW1DATA53H;遞減用TIMTARGETDATA54H;定時(shí)器周期目標(biāo)值TIMCOUNTER1DATA55H;采樣顯示計(jì)數(shù)1TIMCOUNTER2DATA56H;采樣顯示計(jì)數(shù)2STAYCOUNTERDATA57H;曲線加速階段停留次數(shù);延時(shí)子程序變量DR0DATA48HDR1DATA49H;*******************************************************************;入口地址設(shè)置ORG0000HLJMPSTARTORG0003HLJMPKEYBOARDORG000BHLJMPPULSE_GENERATORORG0013HLJMPLIMITSTART:MOVSP,*60HSETBEA;開中斷控制位SETBE*0;開INT0SETBE*1;開INT1SETBET0;開定時(shí)器0中斷SETBIT0;INT0下降沿觸發(fā)SETBIT1;INT1下降沿觸發(fā)MOVIP,*02H;設(shè)定中斷優(yōu)先級(jí)MOVTMOD,*52H;定時(shí)器0方式2,計(jì)數(shù)器1方式1START1:LCALLINITIAL_SYSLCALLINITIAL_LCD;初始化液晶面板LCALLGUDINGSHOW;液晶面板固定顯示LOOP:CJNER5,*0FFH,KEY;鍵值改變,則KEYRESETFLAG,START1;假設(shè)按下復(fù)位鍵,則START1SPEEDSHOWFLAG,NE*T;假設(shè)速度顯示計(jì)時(shí)到,則NE*TSJMPLOOPNE*T:LCALLHE*2BCD;十六進(jìn)制到BCD碼轉(zhuǎn)換LCALLSPEEDSHOW;顯示轉(zhuǎn)速SJMPLOOP;********************************************************************;鍵值處理KEY:JNBRIGHTSHOWFLAG,NE*T0;沒有顯示,到NE*T0判斷按下的鍵LCALLGUDINGSHOWLJMPNE*T5NE*T0:CJNER5,*0AH,NE*T1LCALLON_OFFNE*T1:CJNER5,*0BH,NE*T2LCALLFOR_BACKNE*T2:CJNER5,*0CH,NE*T3LCALLFASTNE*T3:CJNER5,*0DH,NE*T4LCALLSLOWNE*T4:CJNER5,*0EH,NE*T5LCALLRESETNE*T5:LCALLFORBACKSHOWLCALLSPEEDLEVELSHOWCJNER5,*0FH,E*IT0LCALLABOUTLJMPE*IT9E*IT0:CLRRIGHTSHOWFLAGSETBTR0E*IT9:MOVR5,*0FFHLJMPLOOP;**********************************************************;啟停切換ON_OFF:CPLSTATUSSTATUS,E*IT1MOVTIMNOW,*15;假設(shè)要停頓,恢復(fù)初始定時(shí)器周期15,實(shí)現(xiàn)低速啟動(dòng)E*IT1:RET;**********************************************************;正反轉(zhuǎn)切換FOR_BACK:JNBSTATUS,E*IT2;運(yùn)轉(zhuǎn)中改變方向.MOVTIMNOW,*15;恢復(fù)初始定時(shí)器周期15E*IT2:CPLDIRCPLSTATUS1RET;*********************************************************;加速FAST:MOVDPTR,*SPEEDLEVELTABMOVA,SPEEDLEVELPTINCAMOVCA,A+DPTRJZE*IT3;已經(jīng)最高速,則E*IT2INCSPEEDLEVELPTINCTIMPTLCALLSPEEDSHIFTE*IT3:RET;*********************************************************;減速SLOW:MOVDPTR,*SPEEDLEVELTABMOVA,SPEEDLEVELPTDECAMOVCA,A+DPTRJZE*IT4;已經(jīng)最低速,E*IT3DECSPEEDLEVELPTDECTIMPTLCALLSPEEDSHIFTE*IT4:RET;**********************************************************************;復(fù)位RESET:SETBRESETFLAGRET;**********************************************************************;顯示ABOUT:STATUS,E*IT8JNBRIGHTSHOWFLAG,NE*T6CLRRIGHTSHOWFLAGSETBTR0LJMPE*IT8NE*T6:LCALLRIGHTSHOWSETBRIGHTSHOWFLAGCLRTR0E*IT8:RET;***********************************************************************;系統(tǒng)初始化INITIAL_SYS:MOVTL0,*0C4H;基準(zhǔn)時(shí)間60微秒MOVTH0,*0C4HMOVTL1,*00H;脈沖計(jì)數(shù)器清零MOVTH1,*00HMOVSPEEDLEVELPT,*01H;速度檔顯示指針初值MOVTIMNOW,*15;初始定時(shí)器周期20MOVTIMNOW1,*15MOVTIMPT,*00H;定時(shí)器周期指針初值MOVDPTR,*TIMTAB;初始目標(biāo)頻率200HZMOVA,TIMPTMOVCA,A+DPTRMOVTIMTARGET,AMOVTIMCOUNTER1,*253;采樣顯示計(jì)數(shù)1MOVTIMCOUNTER2,*44;采樣顯示計(jì)數(shù)2MOVSTAYCOUNTER,*40;階段停留次數(shù)初值SETBTR0SETBTR1MOVR5,*00H;鍵值初值MOVP1,*0FH;鍵盤列掃描線置零CLRSTATUS;啟停標(biāo)志初值SETBSTATUS1;正反轉(zhuǎn)標(biāo)志初值CLRRESETFLAG;初始化系統(tǒng)復(fù)位標(biāo)志CLRRIGHTSHOWFLAG;初始化顯示標(biāo)志位CLRSPEEDSHOWFLAG;初始化速度顯示標(biāo)志位CLRPULSE;初始脈沖置高CLRDIR;初始轉(zhuǎn)向RET;**********************************************************************;執(zhí)行LCD初始化工作INITIAL_LCD:MOVA,*30H;功能設(shè)定LCALLW_MANDMOVA,*01HLCALLW_MAND;清屏MOVA,*06HLCALLW_MAND;進(jìn)入模式設(shè)定MOVA,*0CHLCALLW_MAND;顯示器控制,游標(biāo)不顯示,字閃爍RET;*********************************************************;檢查LCD忙碌標(biāo)志CHKBUSY_LCD:PUSHACCCLRRSSETBRWSETBEMOVP0,*0FFH;準(zhǔn)備讀P0口CHK:MOVA,P0;P0口讀到AACC.7,CHK;BF為1則CHK,再次查BFCLREPOPACCRET;*******************************************************************;寫命令到LCDW_MAND:CALLCHKBUSY_LCDCLRRSCLRRWMOVP0,ASETBECLRERET;*******************************************************************;寫資料到LCDW_DATA:CALLCHKBUSY_LCDSETBRSCLRRWMOVP0,ASETBECLRERET;********************************************************************;固定顯示GUDINGSHOW:MOVADDR1,*00HMOVN1,*08HMOVDPTR,*DHZTAB1LCALLDHZMOVADDR1,*10HMOVN1,*08HMOVDPTR,*DHZTAB2LCALLDHZMOVADDR1,*08HMOVN1,*08HMOVDPTR,*DHZTAB3LCALLDHZMOVADDR1,*18HMOVN1,*08HMOVDPTR,*DHZTAB4LCALLDHZRETDHZTAB1:DB"電機(jī)控制界面"DHZTAB2:DB"轉(zhuǎn)速:000轉(zhuǎn)/分鐘"DHZTAB3:DB"速度檔:1"DHZTAB4:DB"轉(zhuǎn)向:正";*******************************************************************;顯示RIGHTSHOW:MOVADDR1,*00HMOVN1,*08HMOVDPTR,*DHZTAB5LCALLDHZMOVADDR1,*10HMOVN1,*08HMOVDPTR,*DHZTAB6LCALLDHZMOVADDR1,*08HMOVN1,*08HMOVDPTR,*DHZTAB7LCALLDHZMOVADDR1,*18HMOVN1,*08HMOVDPTR,*DHZTAB8LCALLDHZRETDHZTAB5:DB"盧勝軍:機(jī)械架構(gòu)"DHZTAB6:DB"李俊生:電路設(shè)計(jì)"DHZTAB7:DB"胡嘯峰:軟件設(shè)計(jì)"DHZTAB8:DB"所有";********************************************************************;顯示16*16點(diǎn)陣漢字DHZ:MOVADDR,ADDR1MOVB,N1DHZ1:MOVA,ADDRORLA,*80HLCALLW_MANDDHZ2:CLRAMOVCA,A+DPTRINCDPTRLCALLW_DATACLRAMOVCA,A+DPTRINCDPTRLCALLW_DATADJNZB,DHZ2RET;**********************************************************************;正反轉(zhuǎn)顯示子程序FORBACKSHOW:MOVA,*9CHLCALLW_MANDSTATUS1,FORBACK:MOVA,*0B7H;顯示反LCALLW_DATAMOVA,*0B4HLCALLW_DATALJMPE*IT6FOR:MOVA,*0D5H;顯示正LCALLW_DATAMOVA,*0FDHLCALLW_DATAE*IT6:RET;*********************************************************************;速度檔顯示子程序SPEEDLEVELSHOW:MOVA,*8CHLCALLW_MANDMOVA,*20HLCALLW_DATAMOVA,SPEEDLEVELPTMOVDPTR,*SPEEDLEVELTABMOVCA,A+DPTRLCALLW_DATARET;*********************************************************************;轉(zhuǎn)速顯示子程序SPEEDSHOW:MOVA,R3ANLA,*0FHORLA,*30HMOVGEWEI,A;準(zhǔn)備個(gè)位顯示MOVA,R3SWAPAANLA,*0FHORLA,*30HMOVSHIWEI,A;準(zhǔn)備十位顯示MOVA,R2ANLA,*0FHORLA,*30HMOVBAIWEI,A;準(zhǔn)備百位顯示MOVA,*92HLCALLW_MANDMOVA,*3AHLCALLW_DATAMOVA,BAIWEI;顯示百位LCALLW_DATAMOVA,SHIWEI;顯示十位LCALLW_DATAMOVA,GEWEI;顯示個(gè)位LCALLW_DATACLRSPEEDSHOWFLAGRET;*******************************************************************;速度切換SPEEDSHIFT:MOVDPTR,*TIMTABMOVA,TIMPTMOVCA,A+DPTRMOVTIMTARGET,ARET;*******************************************************************;十六進(jìn)制到BCD碼轉(zhuǎn)換結(jié)果存R1,R2,R3,最高位存在R1中HE*2BCD:MOVR4,*02HAGAIN1:CLRC;除以4MOVA,COUNTERHRRCAMOVCOUNTERH,AMOVA,COUNTERLRRCAMOVCOUNTERL,ADJNZR4,AGAIN1HB2:CLRA;BCD碼初始化CLRCMOVR1,AMOVR2,AMOVR3,AMOVR0,*10H;轉(zhuǎn)換雙字節(jié)十六進(jìn)制整數(shù)HB20:MOVA,COUNTERL;從高端移出待轉(zhuǎn)換數(shù)的一位到CY中RLCAMOVCOUNTERL,AMOVA,COUNTERHRLCAMOVCOUNTERH,AMOVA,R3;BCD碼帶進(jìn)位自身相加,相當(dāng)于乘2ADDCA,R3DAA;十進(jìn)制調(diào)整MOVR3,AMOVA,R2ADDCA,R2DAAMOVR2,AMOVA,R1ADDCA,R1MOVR1,A;雙字節(jié)十六進(jìn)制數(shù)的萬位數(shù)不超過6,不用調(diào)整DJNZR0,HB20;處理完16bitRET;********************************************************************;發(fā)脈沖中斷效勞子程序PULSE_GENERATOR:PUSHACCPUSHPSW;計(jì)脈沖采集周期DJNZTIMCOUNTER1,DD1MOVTIMCOUNTER1,*253DJNZTIMCOUNTER2,DD1MOVTIMCOUNTER2,*44MOVCOUNTERL,TL1MOVCOUNTERH,TH1MOVTL1,*00HMOVTH1,*00HSETBSPEEDSHOWFLAG;計(jì)發(fā)脈沖周期DD1:JNBSTATUS,DDDJNZTIMNOW1,DDCPLPULSEDJNZSTAYCOUNTER,DD6MOVSTAYCOUNTER,*40MOVA,TIMNOWCJNEA,TIMTARGET,DD4LJMPDD6DD4:JCDD5DECAMOVTIMNOW,ALJMPDD6DD5:INCAMOVTIMNOW,ADD6:MOVTIMNOW1,TIMNOWDD:POPPSWPOPACCRETI;********************************************************************;鍵盤中斷效勞子程序KEYBOARD:PUSHDPLPUSHDPHPUSHACCLCALLDELAYMOVKEY1,*0EFH;列掃描始值MOVKEY2,*04H;列數(shù)4MOVKEY3,*00H;列值計(jì)數(shù)器清零KEYSM1:MOVA,KEY1MOVP1,A;列掃描RLAMOVKEY1,A;列掃描左移一位ORLP1,*0FH;準(zhǔn)備讀行MOVA,P1;讀P1口ANLA,*0FH;屏蔽高四位,得到行值CJNEA,*0FH,JSADD;假設(shè)被按鍵在本列,則JSADDINCKEY3

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論