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

📄 robotgoat.asm

📁 本程序是本人毕业论文时设计的
💻 ASM
📖 第 1 页 / 共 3 页
字号:
  	include<p16f877.inc>
	include<sheep.inc>
	__CONFIG _BODEN_OFF&_CP_OFF&_WRT_ENABLE_ON&_PWRTE_ON&_WDT_OFF&_XT_OSC&_DEBUG_OFF&_CPD_OFF&_LVP_OFF;
	;include<music\Bond\Allegretto.mp3>

 	ORG 	0000H
	NOP
	GOTO	MAIN 
	ORG	0004H
 
INTN	BTFSC	PIR1,0
	GOTO	TIMER1
	BTFSC	INTCON,2
	GOTO	TIMER0
	GOTO	EXIT
TIMER1	BCF	T1CON,TMR1ON
	BCF	PIR1,TMR1IF
	MOVF	N,W
	MOVWF	N_TEMP
	ADDWF	N_TEMP,F
	ADDWF	N_TEMP,F
	ADDWF	N_TEMP,F
	ADDWF	N_TEMP,F
	ADDWF	N_TEMP,F
	ADDWF	N_TEMP,F
	MOVF	N_TEMP,W
	ADDWF	PCL,F 
   	
	BSF	PORTC,0
	MOVF	T0_RE,W
	MOVWF	TMR1L
	MOVF	T0_TEMP,W
	MOVWF	TMR1H
	INCF 	N,1
	GOTO	EXIT1

	BCF	PORTC,0
	MOVF	T0_RE0,W
	MOVWF	TMR1L
	MOVF	T0_TEMP0,W
	MOVWF	TMR1H
	INCF 	N,1
 	GOTO	EXIT1

	BSF	PORTC,1
	MOVF	T1_RE,W
	MOVWF	TMR1L
	MOVF	T1_TEMP,W
	MOVWF	TMR1H
	INCF 	N,1
	GOTO	EXIT1

	BCF	PORTC,1
	MOVF	T1_RE0,W
	MOVWF	TMR1L
	MOVF	T1_TEMP0,W
	MOVWF	TMR1H
	INCF 	N,1
 	GOTO	EXIT1  
  	
	BSF	PORTC,2
	MOVF	T2_RE,W
	MOVWF	TMR1L
	MOVF	T2_TEMP,W
	MOVWF	TMR1H
	INCF 	N,1
	GOTO	EXIT1

	BCF	PORTC,2
	MOVF	T2_RE0,W
	MOVWF	TMR1L
	MOVF	T2_TEMP0,W
	MOVWF	TMR1H
	INCF 	N,1
 	GOTO	EXIT1

	BSF	PORTC,3
	MOVF	T3_RE,W
	MOVWF	TMR1L
	MOVF	T3_TEMP,W
	MOVWF	TMR1H
	INCF 	N,1
	GOTO	EXIT1

	BCF	PORTC,3
	MOVF	T3_RE0,W
	MOVWF	TMR1L
	MOVF	T3_TEMP0,W
	MOVWF	TMR1H
	INCF 	N,1
 	GOTO	EXIT1

	BSF	PORTC,4
	MOVF	T4_RE,W
	MOVWF	TMR1L
	MOVF	T4_TEMP,W
	MOVWF	TMR1H
	INCF 	N,1
	GOTO	EXIT1

	BCF	PORTC,4
	MOVF	T4_RE0,W
	MOVWF	TMR1L
	MOVF	T4_TEMP0,W
	MOVWF	TMR1H
	INCF 	N,1
 	GOTO	EXIT1 
  	
	BSF	PORTC,5
	MOVF	T5_RE,W
	MOVWF	TMR1L
	MOVF	T5_TEMP,W
	MOVWF	TMR1H
	INCF 	N,1
	GOTO	EXIT1

	BCF	PORTC,5
	MOVF	T5_RE0,W
	MOVWF	TMR1L
	MOVF	T5_TEMP0,W
	MOVWF	TMR1H
	INCF 	N,1
 	GOTO	EXIT1

	BSF	PORTC,6
	MOVF	T6_RE,W
	MOVWF	TMR1L
	MOVF	T6_TEMP,W
	MOVWF	TMR1H
	INCF 	N,1
	GOTO	EXIT1

	BCF	PORTC,6
	MOVF	T6_RE0,W
	MOVWF	TMR1L
	MOVF	T6_TEMP0,W
	MOVWF	TMR1H
	INCF 	N,1
 	GOTO	EXIT1 
  	
	BSF	PORTC,7
	MOVF	T7_RE,W
	MOVWF	TMR1L
	MOVF	T7_TEMP,W
	MOVWF	TMR1H
	INCF 	N,1
	GOTO	EXIT1

	BCF	PORTC,7
	MOVF	T7_RE0,W
	MOVWF	TMR1L
	MOVF	T7_TEMP0,W
	MOVWF	TMR1H
	CLRF	N
	BSF	FLAG,1 

EXIT1	BSF	T1CON,TMR1ON
	GOTO	EXIT

TIMER0	BCF	INTCON,T0IF
	MOVF	M,W
	MOVWF	M_TEMP
	ADDWF	M_TEMP,F
	ADDWF	M_TEMP,F
	ADDWF	M_TEMP,F
	ADDWF	M_TEMP,F
 	MOVF	M_TEMP,W
	ADDWF	PCL,F 

	BSF	PORTD,4
	MOVF	T8_TEMP,W
	MOVWF	TMR0
	INCF	M,1
	GOTO	EXIT0

	BCF	PORTD,4
	MOVF	T8_TEMP0,W
	MOVWF	TMR0
	INCF	M,1
	GOTO	EXIT0

	BSF	PORTD,1
	MOVF	T9_TEMP,W
	MOVWF	TMR0
	INCF	M,1
	GOTO	EXIT0

	BCF	PORTD,1
	MOVF	T9_TEMP0,W
	MOVWF	TMR0
	INCF	M,1
	GOTO	EXIT0

	BSF	PORTD,2
	MOVF	TA_TEMP,W
	MOVWF	TMR0
	INCF	M,1
	GOTO	EXIT0

	BCF	PORTD,2
	MOVF	TA_TEMP0,W
	MOVWF	TMR0
	INCF	M,1
	GOTO	EXIT0

	BSF	PORTD,3
	MOVF	TB_TEMP,W
	MOVWF	TMR0
	INCF	M,1
	GOTO	EXIT0

	BCF	PORTD,3
	MOVF	TB_TEMP0,W
	MOVWF	TMR0
	CLRF	M 
	BSF	FLAG,0

EXIT0	GOTO	EXIT 
EXIT 	RETFIE

MAIN	BSF	STATUS,RP0
	MOVLW	0E1H
	MOVWF	TRISD
	MOVLW	00H
	MOVWF	TRISC   
 	BSF	PIE1,TMR1IE
	MOVLW	07H
	MOVWF	OPTION_REG
	BCF	STATUS,RP0
	MOVLW	00H
	MOVWF	PORTC
	MOVWF	PORTD
	MOVWF	N
	MOVWF	M
	MOVWF	FLAG
 	MOVLW	04H
 	MOVWF	T1CON
	MOVLW	0E0H
	MOVWF	INTCON
	MOVLW	-(D'4040'*D'5')/D'256'
	MOVWF	TMR1H
	MOVLW	-(D'4040'*D'5')%D'256'
	MOVWF	TMR1L
 	BSF	T1CON,TMR1ON
	MOVLW	-(D'3000'*D'5')/D'256'
	MOVWF	TMR0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RESET 
	CALL	ARESET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GO LOCAL
	MOVLW	D'2'
	MOVWF	COUNT
	MOVLW	D'35'
	MOVWF	TALLC	
	CALL	ALOCAL 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GO AHEAD
	MOVLW	D'3'
	MOVWF	COUNT
	MOVLW	D'35'
	MOVWF	TALLC	
	CALL	ACTL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BEND WAIST
	MOVLW	D'5'
	MOVWF	COUNT
	MOVLW	D'30'
	MOVWF	TALLC	
	CALL	AWAIST
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RUN
	MOVLW	D'6'
	MOVWF	COUNT
	MOVLW	D'25'
	MOVWF	TALLC	
	CALL	ACTL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RESET 
	CALL	ARESET
	MOVLW	D'40'
	MOVWF	TCOUNT
	CALL	DELAY
	;CALL	ARESET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RUN
	MOVLW	D'7'
	MOVWF	COUNT
	MOVLW	D'25'
	MOVWF	TALLC	
	CALL	ACTL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ROTATE
	MOVLW	D'2'
	MOVWF	COUNT
	MOVLW	D'25'
	MOVWF	TALLC	
	CALL	AROT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BEND LEG
	MOVLW	D'1'
	MOVWF	COUNT
	MOVLW	D'30'
	MOVWF	TALLC	
	CALL	ALAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SIT,SLEEP,KNEEL
	MOVLW	D'5'
	MOVWF	COUNT
	MOVLW	D'35'
	MOVWF	TALLC	
	CALL	ASSK
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GO BACK
	MOVLW	D'2'
	MOVWF	COUNT
	MOVLW	D'30'
	MOVWF	TALLC	
	CALL	ABACK 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RESET 
	;CALL	ARESET
	CALL	ARESET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;TURN BACK
	MOVLW	D'5'
	MOVWF	COUNT
	MOVLW	D'30'
	MOVWF	TALLC	
	CALL	ABACK
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;TURN RIGHT
	MOVLW	D'4'
	MOVWF	COUNT
	MOVLW	D'30'
	MOVWF	TALLC	
	CALL	ALEFT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ROTATE
	MOVLW	D'7'
	MOVWF	COUNT
	MOVLW	D'25'
	MOVWF	TALLC	
	CALL	AROT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BEND WAIST
	MOVLW	D'8'
	MOVWF	COUNT
	MOVLW	D'30'
	MOVWF	TALLC	
	CALL	AWAIST
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RUN
	MOVLW	D'5'
	MOVWF	COUNT
	MOVLW	D'25'
	MOVWF	TALLC	
	CALL	ACTL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GO LOCAL
	MOVLW	D'2'
	MOVWF	COUNT
	MOVLW	D'25'
	MOVWF	TALLC	
	CALL	ALOCAL 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RESET 
	CALL	ARESET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAMEOVER
GOVER	GOTO 	GOVER
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GO AHEAD
ACTL	CALL	TURN0
	CALL	TURN1
ACT1	BTFSS	FLAG,1
	GOTO	ACT1
	BTFSS	FLAG,0
	GOTO	ACT1
 	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY	

	CALL	TURN2
ACT2	BTFSS	FLAG,1
	GOTO	ACT2
	BTFSS	FLAG,0
	GOTO	ACT2 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY	

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

	CALL	TURN4
ACT4	BTFSS	FLAG,1
	GOTO	ACT4
	BTFSS	FLAG,0
	GOTO	ACT4 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TURN5
ACT5	BTFSS	FLAG,1
	GOTO	ACT5
	BTFSS	FLAG,0
	GOTO	ACT5 		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TURN6
ACT6	BTFSS	FLAG,1
	GOTO	ACT6
	BTFSS	FLAG,0
	GOTO	ACT6 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY
	
	DECFSZ	COUNT,F
	GOTO	ACTL
        RETURN 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RESET
ARESET	CALL	TURN0 
ACT00	BTFSS	FLAG,1
	GOTO	ACT00
	BTFSS	FLAG,0
	GOTO	ACT00		 	
 	CALL	SETT
	MOVLW	D'45'
	MOVWF	TCOUNT
	CALL	DELAY
	RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;land
ALAND	CALL	TURN0
ACT01	BTFSS	FLAG,1
	GOTO	ACT01
	BTFSS	FLAG,0
	GOTO	ACT01 		 	
	CALL	SETT  
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TURN7
ACT7	BTFSS	FLAG,1
	GOTO	ACT7
	BTFSS	FLAG,0
	GOTO	ACT7 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

 	CALL	TURN0
	CALL	TURN9
ACT9	BTFSS	FLAG,1
	GOTO	ACT9
	BTFSS	FLAG,0
	GOTO	ACT9 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TURN0
ACT02	BTFSS	FLAG,1
	GOTO	ACT02
	BTFSS	FLAG,0
	GOTO	ACT02 		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

 	CALL	TURN8
ACT8	BTFSS	FLAG,1
	GOTO	ACT8
	BTFSS	FLAG,0
	GOTO	ACT8 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY
 
	CALL	TURN10
ACT10	BTFSS	FLAG,1
	GOTO	ACT10
	BTFSS	FLAG,0
	GOTO	ACT10 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY
	
	DECFSZ	COUNT,F
	GOTO	ALAND
	RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sit,sleep,kneel
ASSK	CALL	TURN0
ACT03	BTFSS	FLAG,1
	GOTO	ACT03
	BTFSS	FLAG,0
	GOTO	ACT03 		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY
 
	CALL	TSIT
ASIT	BTFSS	FLAG,1
	GOTO	ASIT
	BTFSS	FLAG,0
	GOTO	ASIT
 	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TSLEEP
ASLEEP	BTFSS	FLAG,1
	GOTO	ASLEEP
	BTFSS	FLAG,0
	GOTO	ASLEEP			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY
 
	CALL	TKNEEL
AKNEEL	BTFSS	FLAG,1
	GOTO	AKNEEL
	BTFSS	FLAG,0
	GOTO	AKNEEL		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	DECFSZ	COUNT,F
	GOTO	ASSK
	RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
AWAIST	CALL	TURN0
ACT04	BTFSS	FLAG,1
	GOTO	ACT04
	BTFSS	FLAG,0
	GOTO	ACT04 		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY 

	CALL	TRWAIST
ARWAIST	BTFSS	FLAG,1
	GOTO	ARWAIST
	BTFSS	FLAG,0
	GOTO	ARWAIST			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TURN0
ACT05	BTFSS	FLAG,1
	GOTO	ACT05
	BTFSS	FLAG,0
	GOTO	ACT05 		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY
 
	CALL	TSWAIST
ASWAIST	BTFSS	FLAG,1
	GOTO	ASWAIST
	BTFSS	FLAG,0
	GOTO	ASWAIST 		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY
	
	DECFSZ	COUNT,F
	GOTO	AWAIST
	RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;turn RIGHT
ALEFT	CALL	TURN0
	CALL	TLEFT1
ALEFT1	BTFSS	FLAG,1
	GOTO	ALEFT1
	BTFSS	FLAG,0
	GOTO	ALEFT1
 	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TLEFT2
ALEFT2	BTFSS	FLAG,1
	GOTO	ALEFT2
	BTFSS	FLAG,0
	GOTO	ALEFT2 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TLEFT3
ALEFT3	BTFSS	FLAG,1
	GOTO	ALEFT3
	BTFSS	FLAG,0
	GOTO	ALEFT3 		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TLEFT4
ALEFT4	BTFSS	FLAG,1
	GOTO	ALEFT4
	BTFSS	FLAG,0
	GOTO	ALEFT4 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TLEFT5
ALEFT5	BTFSS	FLAG,1
	GOTO	ALEFT5
	BTFSS	FLAG,0
	GOTO	ALEFT5 		 	
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY

	CALL	TLEFT6
ALEFT6	BTFSS	FLAG,1
	GOTO	ALEFT6
	BTFSS	FLAG,0
	GOTO	ALEFT6 			
	CALL	SETT
	MOVF	TALLC,W
	MOVWF	TCOUNT
	CALL	DELAY
	
	DECFSZ	COUNT,F
	GOTO	ALEFT
	RETURN

⌨️ 快捷键说明

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