ORG的PWM控制直流電機匯編程序_第1頁
ORG的PWM控制直流電機匯編程序_第2頁
ORG的PWM控制直流電機匯編程序_第3頁
ORG的PWM控制直流電機匯編程序_第4頁
ORG的PWM控制直流電機匯編程序_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

ORG 0034hGraphemic:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,84H,0FFH。共陽

0~9字型碼。PN1

EQU

30H

。PN1用來記脈沖地低二位數。PN2

EQU

31H

。PN2用來記脈沖地高二位數PN3PN4

EQUEQU

32H33H

。PN3用來做延時程序。PN4用來做延時程序ORG100HMAIN:MOVR6,#00HMOVB,#00HCLRKGCLRWMOVTMOD,#01HMOVTL0,#18HMOVTH0,#0E0H。MOV TL1,#0AFH

。用R6來輔助顯示計時。T1和T0都是方式一計數。

MOV

TH1,#3CHSETBEASETBET0

。T0中斷允許SETBTR0SETBP3.4。SETBET1

。T1中斷允許。SETBTR1SETBPT0

。設置

T1T2地中斷優先

,都設其為高級中斷。SETBPT1MOVR1,#5HSETBKK1SETBKK2MOV A,#00H。MOV PN1,A。MOV PN2,AMOV DPTR,#GraphemicANL P1,#0FH。ANL P0,#00H

。默認開始地時候速度為。把PN1,PN2都清零

5檔mainline:jb

p2.2,ks

。關機等待clrclr

wkgsetbp1.0setbp1.1clr p1.2clr p1.3ks: jnb kg,wait 。是否開機?開了就往下執行 ,不開就跳到開機等待ANL P1,#00011111B 。顯示最后一位為 1,即是可以工作了地意思SETBP1.4MOV A,#1HMOVC A,@A+DPTRMOV P0,ASETBP3.6NOPNOPCLR P3.6LCALLDELAYSPD2:JB P2.1,KEY1CLRKK1KEY1: JNBP2.1,KEY2 。當p2.1高電平時就往下執行 ,但是只要執行一次后 ,kk就為1,往后就不再執行JB KK1,KEY2INCR1SETBKK1 。這段地任務是不用延時也能消除按鍵抖動地程序KEY2: JB P2.4,KEY3CLRKK2KEY3: JNBP2.4,posJB KK2,posSETBKK2DECR1pos: jb p2.0,rev 。正轉按鈕setbtsetbwrev: jb p2.3,tt 。反轉按鈕clr tsetbwtt: jnb w,pos 。選擇正反轉了嗎 ,選了電機就開始轉了 ,不選電機就不轉 ,等待正反轉按鈕jb t,positivejnb t,reverseb5E2RGbCAPpositive:。電機正轉setbp1.0clrp1.1clrp1.2setbp1.3lcallBIJIAO0

。PWM調制。lcallShowSpeed

。顯示速度程序LCALLshowdigit1Ljmpmainline

p1EanqFDPwreverse:

。電機反轉clr p1.0setbp1.1setbp1.2clr p1.3lcallBIJIAO0。lcallShowSpeedLCALLshowdigit2Ljmpmainline

。PWM調制。顯示速度程序wait:mov

a,#00hmov

。如果不開始p0,a

,那么程序就在這里等待

,wait1:setbp0.6setbp0.7anl p1,#0fhsetbp1.4setbp1.5setbp1.6setbp1.7SETBP3.6NOPCLR P3.6lcalldelayjb p2.5,wait1 。開機等待setbkgLjmpmainlineshowdigit1:ANL P1,#10001111B

。顯示

12在首位SETBP1.7MOV A,#1HMOVC A,@A+DPTRMOV P0,ASETBP3.6NOPNOPCLRP3.6LCALLDELAYANLP1,#01001111BSETBP1.6MOVA,#2HMOVCA,@A+DPTRMOVP0,ASETBP3.6NOPNOPCLRP3.6LCALLDELAYRETshowdigit2:ANLP1,#10001111B。顯示21在首位SETBP1.7MOVA,#2HMOVCA,@A+DPTRMOVP0,ASETBP3.6NOPNOPCLRP3.6LCALLDELAYANLP1,#01001111BSETBP1.6MOVA,#1HMOVCA,@A+DPTRMOVP0,ASETBP3.6NOPNOPCLRP3.6LCALLDELAYRET。ShowSpeed:。由于沒有買到光電編碼器,所以智能把數碼管顯示換成其他地功能。MOVA,R6。SUBBA,#3FH。7Dh=125即1000/8=125秒。JNZelse1。MOVR6,#00HDXDiTa9E3d。可以每秒重復輸出很多次 ,才能在數碼管里顯示出來 ,但是還要再定義兩個變量。ANLP1,#0FH。置位<輸出個位)。SETBP1.4。CLRP3.6。MOVA,PN1。把最低速度地個位輸出。ANLA,#0FH。把A和0F相與,求出A地低四位字節表示地數。MOVCA,@A+DPTR。MOVP0,A。輸出個位數。SETBP3.6。NOP。CLRP3.6。LCALLDELAY。加延時程序。。ANLP1,#2FH。置位<輸出十位)。SETBP1.5。MOVA,PN1。SWAPA。高四位和低四位內容交換。ANLA,#0FH。把低四位清零,然后輸出十位地數。MOVCA,@A+DPTR。MOVP0,A。輸出十位。SETBP3.6。NOP。CLRP3.6。LCALLDELAY。加延時程序。ANLP1,#4FH。置位<輸出百位數)。SETBP1.6。MOVA,PN2。ANLA,#0FH。MOVCA,@A+DPTR。MOVP0,A。輸出百位數。SETBP3.6。NOP。CLRP3.6。LCALLDELAY。加延時。ANLP1,#8FH。置位<輸出千位數)。SETBP1.7。MOVA,PN2。SWAPA。ANLA,#0FH。MOVCA,@A+DPTR。MOVP0,A。輸出千位數。SETBP3.6。NOP。CLRP3.6。LCALLDELAY。else1:。JBP3.3,SPD1。這以段地任務是不用延時也能消除按鍵抖動地程序。CLRKK3。SPD1:JNBP3.3,SPD2。當p3.3高電平時就往下執行,但是只要執行一次后,kk就為1,往后就不再執行。JBKK3,SPD2。MOVA,PN1。INCPN1。CLRCY。清空進位位。MOVA,PN1。DAA。MOVPN1,A。JNBCY,XIAMIAN。如果最高位產生進位,就在高一位PN2加一。INCPN2XIAMIAN:MOVPN1,A。 SETBKK3。 CLRPN1。 INCPN2。 MOVA,PN2。 DA A。 MOVPN2,ARTCrpUDGiTShowSpeedEnd:RETBIJIAO0:MOVA,R1SUBBA,#0HJZ JJ0 5PCzVD7HxABIJIAO1:MOVA,R1SUBBA,#1HJZ JJ1BIJIAO2:MOVA,R1SUBBA,#2HJZ JJ2BIJIAO3:MOVA,R1SUBBA,#3HJZ JJ3BIJIAO4:MOVA,R1SUBBA,#4HJZ JJ4BIJIAO5:MOVA,R1SUBBA,#5HJZ JJ5BIJIAO6:MOVA,R1SUBBA,#6HJZ JJ6BIJIAO7:MOVA,R1SUBBA,#7HJZ JJ7BIJIAO8:MOVA,R1SUBBA,#8HJZ JJ8BIJIAO9:MOVA,R1SUBBA,#9HJZ JJ9BIJIAO10:MOVA,R1SUBBA,#0AHJZ JJ10

jLBHrnAILgMOVA,R1

。如果

R1地值小于零

,則速度和

pwm0地速度不變.SUBBA,#0FFHJNZ PWM100

。這一小段是限制調速范圍只能在

0-10

之間MOVR1,#0HAJMPPWM0PWM100:MOVR1,#0AH

。如果

r1>10

則直接給

r1

賦值

10,然后轉速和最大速度不變JJ0:

LJMPPWM10LJMPPWM0

。由于

JZ跳轉地距離不夠長

,所以這里只能用以下幾句轉跳轉來輔助跳轉JJ1:

LJMPPWM1JJ2:

LJMPPWM2JJ3:LJMPPWM3JJ4:LJMPPWM4JJ5:LJMPPWM5JJ6:LJMPPWM6JJ7:LJMPPWM7JJ8:LJMPPWM8JJ9:LJMPPWM9JJ10:LJMPPWM10PWM0:MOVR2,#0FFHMOVR3,#0FFHMOVR4,#0f8HMOVR5,#02fHMOVA,#0HLCALLSHOWLJMPMAINLINE1PWM1:MOVR2,#0FFHMOVR3,#037HMOVR4,#0F8HMOVR5,#0F7HMOVA,#1HLCALLSHOWLJMPMAINLINE1PWM2:MOVR2,#0FEHMOVR3,#06FHMOVR4,#0F9HMOVR5,#0BFHMOVA,#2HLCALLSHOWLJMPMAINLINE1PWM3:MOVR2,#0FDHMOVR3,#0A7HMOVR4,#0FAHMOVR5,#087HMOVA,#3HLCALLSHOWLJMPMAINLINE1PWM4:MOVR2,#0FCHMOVR3,#0DFHMOVR4,#0FBHMOVR5,#4FHMOVA,#4HLCALLSHOWLJMPMAINLINE1PWM5:MOVR2,#0FCHPWM6:PWM7:PWM8:PWM9:PWM10:

MOVR3,#18HMOVR4,#0FCHMOVR5,#18HMOV A,#5HLCALLSHOWLJMPMAINLINE1MOVR2,#0FBHMOVR3,#4FHMOVR4,#0FCHMOVR5,#0DFHMOV A,#6HLCALLSHOWLJMPMAINLINE1MOVR2,#0FAHMOVR3,#087HMOVR4,#0FDHMOVR5,#0A7HMOV A,#7HLCALLSHOWLJMPMAINLINE1MOVR2,#0F9HMOVR3,#0BFHMOVR4,#0FEHMOVR5,#6FHMOV A,#8HLCALLSHOWLJMPMAINLINE1MOVR2,#0F8HMOVR3,#0F7HMOVR4,#0FFHMOVR5,#37HMOV A,#9HLCALLSHOWLJMPMAINLINE1MOVR2,#0f8HMOVR3,#02FHMOVR4,#0FFHMOVR5,#0FFHMOV A,#0AHLCALLSHOWLJMPMAINLINE1MAINLINE1:RETshow: ANL P1,#00101111B。顯示速度檔次SETBP1.5MOVCA,@A+DPTRMOVP0,ASETBP3.6NOPNOPCLRP3.6LCALLDELAYRETxHAQX74J0XDELAY:MOVPN4,#08H。40ms延時子程序L7:MO

溫馨提示

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

評論

0/150

提交評論