⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pgm589-680-070425 .asm

📁 一个完整的马达驱动程式
💻 ASM
字号:
;/*********************************************/
;//PGM680_Tester use for PGM680 test PCB board
;//Author:Wayland  
;//Data:2007.4.4 
;/*********************************************/
title "PGM680N"

#include <P12F508.inc>
__CONFIG _MCLRE_OFF&_CP_OFF&_WDT_ON&_IntRC_OSC 
;Port define
#DEFINE GP0			GPIO,0
#DEFINE GP1			GPIO,1
#DEFINE GP2			GPIO,2
#DEFINE GP3			GPIO,3
#DEFINE GP4			GPIO,4
#DEFINE GP5			GPIO,5

;Define ram
D1		EQU			07H
D2		EQU			08H
D3		EQU			09H
FLAG	EQU			0AH

;BIT DEFINE
#DEFINE	EXTENDED	FLAG,0
#DEFINE	UPING		FLAG,1

#DEFINE RETRACED	FLAG,2
#DEFINE	DOWNING		FLAG,3

ORG		0X000
GOTO  	START
NOP
NOP
NOP
NOP
ORG	  	0X0005

DELAY20MS: ;3(Y+2)(X-1)		;DELAY 20MS
		MOVLW	43h  ;X
		MOVWF	D2
DLAY1:  MOVLW	63h	  ;Y
		MOVWF	D1
		CLRWDT
		DECFSZ	D1,F
		GOTO	$-2
		DECFSZ	D2,F
		GOTO	DLAY1
		CLRWDT
		RETLW	0

DELAYN20MS:			
		MOVLW	2;	4	;UP	DELAY 60MS
		MOVWF	D3
L1:		CALL	DELAY20MS
		DECFSZ	D3,F		
		GOTO	L1
		CLRWDT
		RETLW	0
		
START:
		MOVLW	0H		;INIT SFR
		MOVWF	GPIO
		MOVLW	39H
		TRIS	GPIO
		MOVLW	0dfH
		OPTION

		CLRF	D1		;init ram
		CLRF	D2
		CLRF	D3
		CLRF	FLAG
		CLRF	TMR0
		
		CLRWDT
RETRACE:
		BSF		GP1
		BCF		GP2
		BTFSC	GPIO,0 ;BTFSS	GPIO,0
		GOTO	RETRACE
		CALL	DELAY20MS
		CALL	DELAY20MS
		CALL	DELAY20MS
		;CALL	DELAY20MS
		;BTFSC	GPIO,3		;;;;;;;
		;GOTO	ACCON_OFF
		BTFSC	GPIO,0
		GOTO	RETRACE
		BCF		GP1
		BCF		GP2
		BSF		RETRACED
		CLRWDT
ACCON_OFF:
		BTFSS	GPIO,3  ;;GP3=1
		GOTO	DOWN
		;CALL	DELAY100MS
		CALL	DELAY20MS
		CALL	DELAY20MS
		BTFSS	GPIO,3
		GOTO	ACCON_OFF	;GP3=0
		BTFSC	FLAG,0		;IS	EXTENDED?
		GOTO	EXTD
		BCF		RETRACED
		BCF		GP1
		BSF		GP2
		;CALL	DELAY100MS  ;delay 40ms
		CALL	DELAY20MS
		CALL	DELAY20MS
		BTFSC	GPIO,0
		GOTO	ACCON_OFF
		CALL	DELAYN20MS		;DELAY 80MS
		BTFSC	GPIO,0
		GOTO	ACCON_OFF
		BCF		GP1
		BCF		GP2
		BSF		EXTENDED
EXTD:
		CLRWDT
		GOTO	ACCON_OFF
DOWN:		
		;CALL	DELAY100MS
		CALL	DELAY20MS
		CALL	DELAY20MS
		BTFSC	GPIO,3
		GOTO	ACCON_OFF
		BTFSC	FLAG,2		;IS RETRACED?
		GOTO	RETD
		BCF		EXTENDED
		BSF		GP1
		BCF		GP2
		;CALL	DELAY100MS
		CALL	DELAY20MS
		CALL	DELAY20MS
		BTFSC	GPIO,0
		GOTO	ACCON_OFF
		
		;CALL	DELAY20MS
		;CALL	DELAY20MS
		;CALL	DELAY20MS
		CALL	DELAYN20MS
		
		BTFSC	GPIO,0
		GOTO	ACCON_OFF
		
		BCF		GP1
		BCF		GP2
		BSF		RETRACED
RETD:
		CLRWDT
		GOTO	ACCON_OFF
			
		END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -