?? robotgoat.asm
字號:
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 + -