當前位置:編程學習大全網 - 編程語言 - 單片機控制步進電機求匯編程序

單片機控制步進電機求匯編程序

ORG 00H

START: MOV DPTR , #TAB1

MOV R0, #03H

MOV R1 , #4H

MOV R4, #00H

MOV P0, #03H

WAIT: MOV P0, R0

MOV P0, #0FFH

JNB P3.4,TIZ ;P3.4有停止鍵按下時,跳到停止子程序

JNB P3.0,ZHENG ;P3.0有啟動正轉鍵按下時,跳到停止子程序

JNB P3.1,FAN

SJMP WAIT

ZHENG : ;正轉子程序

MOV A,R4

MOVC A,@A+DPTR

ACALL DELAY

INC R4

AJMP KEY

FAN: ;反轉子程序

MOV R4,#6

MOV A,R4

MOVC A,@A+DPTR

MOV P3,A ;

ACALL DELAY

AJMP KEY

KEY: MOV P3,#0FFH ;KEY檢測,賦初值

JB P3.4,ZZ1

AJMP TIZ

TIZ: MOV P0,#00H ;停止子程序

AJMP KEY

ZZ1: JB P3.0,FZ1 ;正轉按鍵檢測,有鍵按下轉到FZI

CJNE R4,#8,LOOPZ;循環次數是否為8,為8則清0

MOV R4,#0

LOOPZ: MOV A,R4 ;讀電機狀態顯示

MOVC A,@A+DPTR

MOV P0,A ;賦給P0,顯示1為正轉,2為反轉,3為加速,4為減速

SETB P1.1 ;賦高電平,關閉反向狀態燈

CPL P1.0 ;開正轉狀態燈

JNB P3.2,JIASUZ ;加速子程序

JNB P3.3,JIANSUZ ;減速子程序

ACALL DELAY

INC R4

AJMP KEY

FZ1:

JB P3.1,KEY

CJNE R4,#255,LOOPF

MOV R4,#8

LOOPF: DEC R4

MOV A,R4

MOVC A,@A+DPTR ;讀脈沖

MOV P0,A ;給步進電機輸入脈沖

SETB P1.0

CPL P1.1

JNB P3.2,JIASUF ;加速按鍵檢測

JNB P3.3,JIANSUF ;減速按鍵檢測

ACALL DELAY

AJMP KEY ;跳轉到KEY檢測子程序

DELAY:MOV A,R1 ;延時子程序

MOV R6,A

DELAY2:MOV R5,#6H

DD2:MOV R7,#0

DD3:DJNZ R7,DD3

DJNZ R5,DD2

DJNZ R6,DELAY2

RET

DELAY1:

MOV R6,#20H

DD4: MOV R5,#02H

DD5: MOV R7,#0

DD6: DJNZ R7,DD6

DJNZ R5,DD5

DJNZ R6,DD4

RET

JIASUZ: ;加速的按鍵檢測

ACALL DELAY1

CJNE R1,#02,L1

JMP L2

L1: DEC R1

L2: JMP LOOPZ

JIANSUZ: ;減速的按鍵檢測

ACALL DELAY1

CJNE R1,#08H,L3

JMP L4

L3: INC R1

L4: JMP LOOPZ ;返回LOOPZ,循環

JIASUF: ;加速子程序

ACALL DELAY1

CJNE R1,#02H,L5

JMP L6

L5: DEC R1

L6: JMP LOOPF

JIANSUF: ;減速子程序

ACALL DELAY1

CJNE R1,#08H,L7

JMP L8

L7: INC R1

L8: JMP LOOPF

TAB1:DB 02H,06H,04H,0CH

DB 08H,09H,01H,03H

END

  • 上一篇:《燈光》讀後感 400字左右
  • 下一篇:紀錄片app推薦
  • copyright 2024編程學習大全網