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

📄 robotgoat.asm

📁 本程序是本人毕业论文时设计的
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RUN LOCAL
ALOCAL	CALL	TURN0
	CALL	TLOCAL1
ALOCAL1	BTFSS	FLAG,1
	GOTO	ALOCAL1
	BTFSS	FLAG,0
	GOTO	ALOCAL1
 	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY


	CALL	TURN3
ALOCAL2	BTFSS	FLAG,1
	GOTO	ALOCAL2
	BTFSS	FLAG,0
	GOTO	ALOCAL2 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TLOCAL3
ALOCAL3	BTFSS	FLAG,1
	GOTO	ALOCAL3
	BTFSS	FLAG,0
	GOTO	ALOCAL3 		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TURN6
ALOCAL4	BTFSS	FLAG,1
	GOTO	ALOCAL4
	BTFSS	FLAG,0
	GOTO	ALOCAL4 			
	CALL	SETT 
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY
	
	DECFSZ	COUNT,F
	GOTO	ALOCAL
	RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;go BACK
ABACK	CALL	TURN0
	CALL	TBACK1
ABACK1	BTFSS	FLAG,1
	GOTO	ABACK1
	BTFSS	FLAG,0
	GOTO	ABACK1
 	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TBACK2
ABACK2	BTFSS	FLAG,1
	GOTO	ABACK2
	BTFSS	FLAG,0
	GOTO	ABACK2 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TURN3
ABACK3	BTFSS	FLAG,1
	GOTO	ABACK3
	BTFSS	FLAG,0
	GOTO	ABACK3 		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TBACK4
ABACK4	BTFSS	FLAG,1
	GOTO	ABACK4
	BTFSS	FLAG,0
	GOTO	ABACK4 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TBACK5
ABACK5	BTFSS	FLAG,1
	GOTO	ABACK5
	BTFSS	FLAG,0
	GOTO	ABACK5 		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TURN6
ABACK6	BTFSS	FLAG,1
	GOTO	ABACK6
	BTFSS	FLAG,0
	GOTO	ABACK6 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY
	
	DECFSZ	COUNT,F
	GOTO	ABACK 
	RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ROTATE
AROT	CALL	TURN0
	CALL	TROT1
AROT1	BTFSS	FLAG,1
	GOTO	AROT1
	BTFSS	FLAG,0
	GOTO	AROT1
 	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TROT2
AROT2	BTFSS	FLAG,1
	GOTO	AROT2
	BTFSS	FLAG,0
	GOTO	AROT2 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TROT3
AROT3	BTFSS	FLAG,1
	GOTO	AROT3
	BTFSS	FLAG,0
	GOTO	AROT3 		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TROT4
AROT4	BTFSS	FLAG,1
	GOTO	AROT4
	BTFSS	FLAG,0
	GOTO	AROT4 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TROT5
AROT5	BTFSS	FLAG,1
	GOTO	AROT5
	BTFSS	FLAG,0
	GOTO	AROT5 		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TROT6
AROT6	BTFSS	FLAG,1
	GOTO	AROT6
	BTFSS	FLAG,0
	GOTO	AROT6 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY
	
	DECFSZ	COUNT,F
	GOTO	AROT
	RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;20ms*W(n)
DELAY	MOVF	TCOUNT,W
 	MOVWF	XC
LOOPA	MOVLW	D'131'
	MOVWF	YC
LOOPB	MOVLW	D'253'
	MOVWF	ZC
LOOPC	DECFSZ	ZC,1
	GOTO	LOOPC 
	DECFSZ	YC,1
	GOTO	LOOPB 
	MOVLW	D'5'
	MOVWF	COUNT1
LOOPD	NOP
	NOP
	NOP	
	NOP
	NOP
	DECFSZ	COUNT1,1
	GOTO	LOOPD
	DECFSZ	XC,1
	GOTO	LOOPA 
	RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETT	MOVLW	D'4'
	MOVWF	TCOUNT
	CALL	DELAY 
	CLRF	FLAG
	RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TURN0	MOVLW	-(D'1550'*D'5')/D'256'
	MOVWF	T0_TEMP
	MOVWF	T1_TEMP
	MOVWF	T2_TEMP
	MOVWF	T3_TEMP
	MOVWF	T4_TEMP
	MOVWF	T5_TEMP
	MOVWF	T6_TEMP
	MOVWF	T7_TEMP

	MOVLW	-(D'1550'*D'5')%D'256'
	MOVWF	T0_RE
	MOVWF	T1_RE
	MOVWF	T2_RE
	MOVWF	T3_RE
	MOVWF	T4_RE
	MOVWF	T5_RE
	MOVWF	T6_RE
	MOVWF	T7_RE
	
	MOVLW	-(D'1050'*D'5')/D'256'
	MOVWF	T0_TEMP0
	MOVWF	T1_TEMP0
	MOVWF	T2_TEMP0
	MOVWF	T3_TEMP0
	MOVWF	T4_TEMP0
	MOVWF	T5_TEMP0
	MOVWF	T6_TEMP0
	MOVLW	-(D'990'*D'5')/D'256'
	MOVWF	T7_TEMP0

	MOVLW	-(D'1050'*D'5')%D'256'
	MOVWF	T0_RE0
	MOVWF	T1_RE0
	MOVWF	T2_RE0
	MOVWF	T3_RE0
	MOVWF	T4_RE0
	MOVWF	T5_RE0
	MOVWF	T6_RE0
	MOVLW	-(D'990'*D'5')%D'256'
	MOVWF	T7_RE0

	MOVLW	-(D'1500'*D'5')/D'256'
	MOVWF	T8_TEMP
	MOVWF	T9_TEMP
	MOVWF	TA_TEMP
	MOVWF	TB_TEMP

	MOVLW	-(D'1000'*D'5')/D'256'
	MOVWF	T8_TEMP0
	MOVWF	T9_TEMP0
	MOVWF	TA_TEMP0 
	MOVLW	-(D'11150'*D'5')/D'256'
	MOVWF	TB_TEMP0
	RETURN

TURN1	MOVLW	-(D'1850'*D'5')/D'256'
	MOVWF	T0_TEMP
	MOVLW	-(D'1250'*D'5')/D'256'	
	MOVWF	T1_TEMP 
	MOVLW	-(D'1250'*D'5')/D'256'
	MOVWF	T6_TEMP
	MOVLW	-(D'1850'*D'5')/D'256'
	MOVWF	T7_TEMP

	MOVLW	-(D'1850'*D'5')%D'256'
	MOVWF	T0_RE
	MOVLW	-(D'1250'*D'5')%D'256'
	MOVWF	T1_RE 
	MOVLW	-(D'1250'*D'5')%D'256'
	MOVWF	T6_RE
	MOVLW	-(D'1850'*D'5')%D'256'
	MOVWF	T7_RE
	
	MOVLW	-(D'750'*D'5')/D'256'
	MOVWF	T0_TEMP0
	MOVLW	-(D'1350'*D'5')/D'256'
	MOVWF	T1_TEMP0 
	MOVLW	-(D'1350'*D'5')/D'256'
	MOVWF	T6_TEMP0
	MOVLW	-(D'690'*D'5')/D'256'
	MOVWF	T7_TEMP0

	MOVLW	-(D'750'*D'5')%D'256'
	MOVWF	T0_RE0
	MOVLW	-(D'1350'*D'5')%D'256'
	MOVWF	T1_RE0 
	MOVLW	-(D'1350'*D'5')%D'256'
	MOVWF	T6_RE0
	MOVLW	-(D'690'*D'5')%D'256'
	MOVWF	T7_RE0

	MOVLW	-(D'1700'*D'5')/D'256'
	MOVWF	T8_TEMP
	MOVLW	-(D'1300'*D'5')/D'256'
	MOVWF	TB_TEMP

	MOVLW	-(D'800'*D'5')/D'256'
	MOVWF	T8_TEMP0	
	MOVLW	-(D'11350'*D'5')/D'256'
	MOVWF	TB_TEMP0 
	RETURN

 
TURN2 	MOVLW	-(D'1700'*D'5')/D'256'	 
	MOVWF	T9_TEMP
 	MOVLW	-(D'1300'*D'5')/D'256'
	MOVWF	TA_TEMP

	MOVLW	-(D'800'*D'5')/D'256'	 
	MOVWF	T9_TEMP0	 
	MOVLW	-(D'1200'*D'5')/D'256'
	MOVWF	TA_TEMP0
	RETURN

TURN3	MOVLW	-(D'1550'*D'5')/D'256'
	MOVWF	T0_TEMP 
	MOVWF	T1_TEMP  
	MOVWF	T6_TEMP 
	MOVWF	T7_TEMP

	MOVLW	-(D'1550'*D'5')%D'256'
	MOVWF	T0_RE 
	MOVWF	T1_RE  
	MOVWF	T6_RE 
	MOVWF	T7_RE
	
	MOVLW	-(D'1050'*D'5')/D'256'
	MOVWF	T0_TEMP0 
	MOVWF	T1_TEMP0 
	MOVWF	T6_TEMP0 
	MOVLW	-(D'990'*D'5')/D'256'
	MOVWF	T7_TEMP0

	MOVLW	-(D'1050'*D'5')%D'256'
	MOVWF	T0_RE0 
	MOVWF	T1_RE0 
	MOVWF	T6_RE0 
	MOVLW	-(D'990'*D'5')%D'256'
	MOVWF	T7_RE0 
	RETURN

TURN4	MOVLW	-(D'1250'*D'5')/D'256'
	MOVWF	T2_TEMP
	MOVLW	-(D'1850'*D'5')/D'256'
	MOVWF	T3_TEMP
	MOVLW	-(D'1850'*D'5')/D'256'
	MOVWF	T4_TEMP
	MOVLW	-(D'1250'*D'5')/D'256'
	MOVWF	T5_TEMP

	MOVLW	-(D'1250'*D'5')%D'256'
	MOVWF	T2_RE
	MOVLW	-(D'1850'*D'5')%D'256'
	MOVWF	T3_RE
	MOVLW	-(D'1850'*D'5')%D'256'
	MOVWF	T4_RE
	MOVLW	-(D'1250'*D'5')%D'256'
	MOVWF	T5_RE
	
	MOVLW	-(D'1350'*D'5')/D'256'
	MOVWF	T2_TEMP0
	MOVLW	-(D'750'*D'5')/D'256'
	MOVWF	T3_TEMP0
	MOVLW	-(D'750'*D'5')/D'256'
	MOVWF	T4_TEMP0
	MOVLW	-(D'1350'*D'5')/D'256'
	MOVWF	T5_TEMP0

	MOVLW	-(D'1350'*D'5')%D'256'
	MOVWF	T2_RE0
	MOVLW	-(D'750'*D'5')%D'256'
	MOVWF	T3_RE0
	MOVLW	-(D'750'*D'5')%D'256'
	MOVWF	T4_RE0
	MOVLW	-(D'1350'*D'5')%D'256'
	MOVWF	T5_RE0

	MOVLW	-(D'1300'*D'5')/D'256'	 
	MOVWF	T9_TEMP
 	MOVLW	-(D'1700'*D'5')/D'256'
	MOVWF	TA_TEMP

	MOVLW	-(D'1200'*D'5')/D'256'	 
	MOVWF	T9_TEMP0	 
	MOVLW	-(D'800'*D'5')/D'256'
	MOVWF	TA_TEMP0
	RETURN

TURN5	MOVLW	-(D'1300'*D'5')/D'256'
	MOVWF	T8_TEMP
	MOVLW	-(D'1700'*D'5')/D'256'
	MOVWF	TB_TEMP

	MOVLW	-(D'1200'*D'5')/D'256'
	MOVWF	T8_TEMP0	
	MOVLW	-(D'10950'*D'5')/D'256'
	MOVWF	TB_TEMP0 
	RETURN

TURN6	MOVLW	-(D'1550'*D'5')/D'256'
	MOVWF	T2_TEMP
	MOVWF	T3_TEMP
	MOVWF	T4_TEMP
	MOVWF	T5_TEMP

	MOVLW	-(D'1550'*D'5')%D'256'
	MOVWF	T2_RE
	MOVWF	T3_RE
	MOVWF	T4_RE
	MOVWF	T5_RE
	
	MOVLW	-(D'1050'*D'5')/D'256'
	MOVWF	T2_TEMP0
	MOVWF	T3_TEMP0
	MOVWF	T4_TEMP0
	MOVWF	T5_TEMP0

	MOVLW	-(D'1050'*D'5')%D'256'
	MOVWF	T2_RE0
	MOVWF	T3_RE0
	MOVWF	T4_RE0
	MOVWF	T5_RE0 
	RETURN

TURN7	MOVLW	-(D'1850'*D'5')/D'256'
	MOVWF	T0_TEMP
	MOVWF	T3_TEMP
	MOVLW	-(D'1250'*D'5')/D'256'
	MOVWF	T1_TEMP
	MOVWF	T2_TEMP 

	MOVLW	-(D'1850'*D'5')%D'256'
	MOVWF	T0_RE
	MOVWF	T3_RE
	MOVLW	-(D'1250'*D'5')%D'256'
	MOVWF	T1_RE
	MOVWF	T2_RE 
	
	MOVLW	-(D'750'*D'5')/D'256'
	MOVWF	T0_TEMP0
	MOVWF	T3_TEMP0
	MOVLW	-(D'1350'*D'5')/D'256'
	MOVWF	T1_TEMP0
	MOVWF	T2_TEMP0 

	MOVLW	-(D'750'*D'5')%D'256'
	MOVWF	T0_RE0
	MOVWF	T3_RE0
	MOVLW	-(D'1350'*D'5')%D'256'
	MOVWF	T1_RE0
	MOVWF	T2_RE0  
	RETURN
	
TURN8	MOVLW	-(D'1850'*D'5')/D'256'
	MOVWF	T4_TEMP
	MOVWF	T7_TEMP
	MOVLW	-(D'1250'*D'5')/D'256'
	MOVWF	T5_TEMP
	MOVWF	T6_TEMP 

	MOVLW	-(D'1850'*D'5')%D'256'
	MOVWF	T4_RE
	MOVWF	T7_RE
	MOVLW	-(D'1250'*D'5')%D'256'
	MOVWF	T5_RE
	MOVWF	T6_RE 
	
	MOVLW	-(D'750'*D'5')/D'256'
	MOVWF	T4_TEMP0
	MOVLW	-(D'690'*D'5')/D'256'
	MOVWF	T7_TEMP0
	MOVLW	-(D'1350'*D'5')/D'256'
	MOVWF	T5_TEMP0
	MOVWF	T6_TEMP0 

	MOVLW	-(D'750'*D'5')%D'256'
	MOVWF	T4_RE0
	MOVLW	-(D'690'*D'5')%D'256'
	MOVWF	T7_RE0
	MOVLW	-(D'1350'*D'5')%D'256'
	MOVWF	T5_RE0
	MOVWF	T6_RE0  
	RETURN

TURN9	MOVLW	-(D'2000'*D'5')/D'256'
	MOVWF	T8_TEMP
	MOVLW	-(D'1000'*D'5')/D'256'
	MOVWF	T9_TEMP 

	MOVLW	-(D'500'*D'5')/D'256'
	MOVWF	T8_TEMP0
	MOVLW	-(D'1500'*D'5')/D'256'
	MOVWF	T9_TEMP0 
	RETURN

TURN10	MOVLW	-(D'1000'*D'5')/D'256' 
	MOVWF	TA_TEMP
	MOVLW	-(D'2000'*D'5')/D'256'
	MOVWF	TB_TEMP

	MOVLW	-(D'1500'*D'5')/D'256' 
	MOVWF	TA_TEMP0 
	MOVLW	-(D'10650'*D'5')/D'256'
	MOVWF	TB_TEMP0
	RETURN

TSIT	MOVLW	-(D'1350'*D'5')/D'256'
	MOVWF	T0_TEMP
	MOVLW	-(D'1750'*D'5')/D'256'
	MOVWF	T2_TEMP 
	MOVLW	-(D'1900'*D'5')/D'256'
	MOVWF	T4_TEMP
	MOVLW	-(D'650'*D'5')/D'256'
	MOVWF	T5_TEMP
	MOVLW	-(D'1200'*D'5')/D'256'
	MOVWF	T6_TEMP
	MOVLW	-(D'2450'*D'5')/D'256'
	MOVWF	T7_TEMP

	MOVLW	-(D'1350'*D'5')%D'256'
	MOVWF	T0_RE 
	MOVLW	-(D'1750'*D'5')%D'256'
	MOVWF	T2_RE 
	MOVLW	-(D'1900'*D'5')%D'256'
	MOVWF	T4_RE
	MOVLW	-(D'650'*D'5')%D'256'
	MOVWF	T5_RE
	MOVLW	-(D'1200'*D'5')%D'256'
	MOVWF	T6_RE
	MOVLW	-(D'2450'*D'5')%D'256'
	MOVWF	T7_RE
	
	MOVLW	-(D'1250'*D'5')/D'256'
	MOVWF	T0_TEMP0 
	MOVLW	-(D'850'*D'5')/D'256'
	MOVWF	T2_TEMP0 
	MOVLW	-(D'700'*D'5')/D'256'
	MOVWF	T4_TEMP0
	MOVLW	-(D'1950'*D'5')/D'256'
	MOVWF	T5_TEMP0
	MOVLW	-(D'1400'*D'5')/D'256'
	MOVWF	T6_TEMP0
	MOVLW	-(D'90'*D'5')/D'256'
	MOVWF	T7_TEMP0

	MOVLW	-(D'1250'*D'5')%D'256'
	MOVWF	T0_RE0 
	MOVLW	-(D'850'*D'5')%D'256'
	MOVWF	T2_RE0 
	MOVLW	-(D'700'*D'5')%D'256'
	MOVWF	T4_RE0
	MOVLW	-(D'1950'*D'5')%D'256'
	MOVWF	T5_RE0
	MOVLW	-(D'1400'*D'5')%D'256'
	MOVWF	T6_RE0
	MOVLW	-(D'90'*D'5')%D'256'
	MOVWF	T7_RE0

	MOVLW	-(D'1700'*D'5')/D'256'
	MOVWF	T8_TEMP
 	MOVLW	-(D'1300'*D'5')/D'256'
	MOVWF	TA_TEMP 

	MOVLW	-(D'800'*D'5')/D'256'
	MOVWF	T8_TEMP0 
	MOVLW	-(D'1200'*D'5')/D'256'
	MOVWF	TA_TEMP0
	RETURN

TSLEEP	MOVLW	-(D'1950'*D'5')/D'256'
	MOVWF	T0_TEMP
	MOVLW	-(D'650'*D'5')/D'256'
	MOVWF	T1_TEMP
	MOVLW	-(D'1150'*D'5')/D'256'
	MOVWF	T2_TEMP
	MOVLW	-(D'2450'*D'5')/D'256'
	MOVWF	T3_TEMP 
	MOVLW	-(D'1900'*D'5')/D'256'
	MOVWF	T4_TEMP
	MOVLW	-(D'650'*D'5')/D'256'
	MOVWF	T5_TEMP
	MOVLW	-(D'1200'*D'5')/D'256'
	MOVWF	T6_TEMP
	MOVLW	-(D'2450'*D'5')/D'256'
	MOVWF	T7_TEMP

	MOVLW	-(D'1950'*D'5')%D'256'
	MOVWF	T0_RE
	MOVLW	-(D'650'*D'5')%D'256'
	MOVWF	T1_RE
	MOVLW	-(D'1150'*D'5')%D'256'
	MOVWF	T2_RE
	MOVLW	-(D'2450'*D'5')%D'256'
	MOVWF	T3_RE 
	MOVLW	-(D'1900'*D'5')%D'256'
	MOVWF	T4_RE
	MOVLW	-(D'650'*D'5')%D'256'
	MOVWF	T5_RE
	MOVLW	-(D'1200'*D'5')%D'256'
	MOVWF	T6_RE
	MOVLW	-(D'2450'*D'5')%D'256'
	MOVWF	T7_RE
	
	MOVLW	-(D'650'*D'5')/D'256'
	MOVWF	T0_TEMP0
	MOVLW	-(D'1950'*D'5')/D'256'
	MOVWF	T1_TEMP0
	MOVLW	-(D'1450'*D'5')/D'256'
	MOVWF	T2_TEMP0
	MOVLW	-(D'90'*D'5')/D'256'
	MOVWF	T3_TEMP0
	MOVLW	-(D'700'*D'5')/D'256'
	MOVWF	T4_TEMP0
	MOVLW	-(D'1950'*D'5')/D'256'
	MOVWF	T5_TEMP0
	MOVLW	-(D'1400'*D'5')/D'256'
	MOVWF	T6_TEMP0
	MOVLW	-(D'90'*D'5')/D'256'
	MOVWF	T7_TEMP0

	MOVLW	-(D'650'*D'5')%D'256'
	MOVWF	T0_RE0
	MOVLW	-(D'1950'*D'5')%D'256'
	MOVWF	T1_RE0
	MOVLW	-(D'1450'*D'5')%D'256'
	MOVWF	T2_RE0
	MOVLW	-(D'90'*D'5')%D'256'
	MOVWF	T3_RE0 
	MOVLW	-(D'700'*D'5')%D'256'
	MOVWF	T4_RE0
	MOVLW	-(D'1950'*D'5')%D'256'
	MOVWF	T5_RE0
	MOVLW	-(D'1400'*D'5')%D'256'
	MOVWF	T6_RE0
	MOVLW	-(D'90'*D'5')%D'256'
	MOVWF	T7_RE0
	RETURN

⌨️ 快捷键说明

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