Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;---------------------------------------------------;
- ; Name: Meteor_Lights.ASM ;
- ; Use: DTI's Meteor XMas Lights ;
- ;---------------------------------------------------;
- ; Copyright: (C)2012 DTI ;
- ; Dysfunctional Technologies, Inc. ;
- ; All Rights Reserved ;
- ;---------------------------------------------------;
- ; Author: Timothy S. Carlson ;
- ; Dysfunctional Technologies, Inc. ;
- ; Date: December 21, 2012 ;
- ; Version: V1.02 ;
- ;---------------------------------------------------;
- ;---------------------------------------------------;
- #DEFINE _METEOR_LIGHTS.ASM_ ;
- #DEFINE _MAIN_MODULE_ ;
- ;---------------------------------------------------;
- ;---------------------------------------------------;
- ; Includes ;
- ;---------------------------------------------------;
- #INCLUDE Common.INC ;
- ;---------------------------------------------------;
- ;---------------------------------------------------;
- ; Defines ;
- ;---------------------------------------------------;
- #DEFINE BUTTON 3 ; GPIO 3 - Pin 4
- ;
- #DEFINE LED_0 0 ; GPIO 0 - Pin 7
- #DEFINE LED_1 1 ; GPIO 1 - Pin 6
- #DEFINE LED_2 2 ; GPIO 2 - Pin 5
- #DEFINE LED_4 4 ; GPIO 4 - Pin 3
- #DEFINE LED_3 5 ; GPIO 5 - Pin 2
- ;---------------------------------------------------;
- ;---------------------------------------------------;
- ; Macros ;
- ;---------------------------------------------------;
- DO_LED MACRO DATA1, DATA2 ;
- BANKSEL TRISIO ;
- MOVLW DATA1 ;
- MOVWF TRISIO ;
- BANKSEL GPIO ;
- MOVLW DATA2 ;
- MOVWF GPIO ;
- MOVLW H'40' ;
- CALL _Delay ;
- ENDM ;
- ;---------------------------------------------------;
- ;---------------------------------------------------;
- USER_DATA_0 UDATA ;
- ;---------------------------------------------------;
- DTemp1 res 1 ;
- DTemp2 res 1 ;
- DTemp3 res 1 ;
- ;---------------------------------------------------;
- ;---------------------------------------------------;
- RESET_VECT CODE H'000' ;
- ;---------------------------------------------------;
- CALL _Initialize_System ;
- NOP ;
- NOP ;
- GOTO _MAIN ;
- ;---------------------------------------------------;
- ;---------------------------------------------------;
- USER_CODE CODE H'004' ;
- ;---------------------------------------------------;
- _MAIN: ;
- _M_LED_Loop: ;
- ;-----------------------------------------------;
- ; TRISIO Data GPIO Data ;
- ;-----------------------------------------------;
- DO_LED ~((1<<LED_0) | (1<<LED_1)), ~(1<<LED_1) ; 1
- DO_LED ~((1<<LED_0) | (1<<LED_2)), ~(1<<LED_2) ; 2
- DO_LED ~((1<<LED_0) | (1<<LED_3)), ~(1<<LED_3) ; 3
- DO_LED ~((1<<LED_0) | (1<<LED_4)), ~(1<<LED_4) ; 4
- DO_LED ~((1<<LED_0) | (1<<LED_4)), ~(1<<LED_0) ; 5
- DO_LED ~((1<<LED_0) | (1<<LED_3)), ~(1<<LED_0) ; 6
- DO_LED ~((1<<LED_0) | (1<<LED_2)), ~(1<<LED_0) ; 7
- DO_LED ~((1<<LED_0) | (1<<LED_1)), ~(1<<LED_0) ; 8
- DO_LED ~((1<<LED_1) | (1<<LED_2)), ~(1<<LED_2) ; 9
- DO_LED ~((1<<LED_1) | (1<<LED_3)), ~(1<<LED_3) ; 10
- DO_LED ~((1<<LED_1) | (1<<LED_4)), ~(1<<LED_4) ; 11
- DO_LED ~((1<<LED_1) | (1<<LED_4)), ~(1<<LED_1) ; 12
- DO_LED ~((1<<LED_1) | (1<<LED_3)), ~(1<<LED_1) ; 13
- DO_LED ~((1<<LED_1) | (1<<LED_2)), ~(1<<LED_1) ; 14
- DO_LED ~((1<<LED_2) | (1<<LED_3)), ~(1<<LED_3) ; 15
- DO_LED ~((1<<LED_2) | (1<<LED_4)), ~(1<<LED_4) ; 16
- DO_LED ~((1<<LED_2) | (1<<LED_4)), ~(1<<LED_2) ; 17
- DO_LED ~((1<<LED_2) | (1<<LED_3)), ~(1<<LED_2) ; 18
- DO_LED ~((1<<LED_2) | (1<<LED_4)), ~(1<<LED_2) ; 17
- DO_LED ~((1<<LED_2) | (1<<LED_4)), ~(1<<LED_4) ; 16
- DO_LED ~((1<<LED_2) | (1<<LED_3)), ~(1<<LED_3) ; 15
- DO_LED ~((1<<LED_1) | (1<<LED_2)), ~(1<<LED_1) ; 14
- DO_LED ~((1<<LED_1) | (1<<LED_3)), ~(1<<LED_1) ; 13
- DO_LED ~((1<<LED_1) | (1<<LED_4)), ~(1<<LED_1) ; 12
- DO_LED ~((1<<LED_1) | (1<<LED_4)), ~(1<<LED_4) ; 11
- DO_LED ~((1<<LED_1) | (1<<LED_3)), ~(1<<LED_3) ; 10
- DO_LED ~((1<<LED_1) | (1<<LED_2)), ~(1<<LED_2) ; 9
- DO_LED ~((1<<LED_0) | (1<<LED_1)), ~(1<<LED_0) ; 8
- DO_LED ~((1<<LED_0) | (1<<LED_2)), ~(1<<LED_0) ; 7
- DO_LED ~((1<<LED_0) | (1<<LED_3)), ~(1<<LED_0) ; 6
- DO_LED ~((1<<LED_0) | (1<<LED_4)), ~(1<<LED_0) ; 5
- DO_LED ~((1<<LED_0) | (1<<LED_4)), ~(1<<LED_4) ; 4
- DO_LED ~((1<<LED_0) | (1<<LED_3)), ~(1<<LED_3) ; 3
- DO_LED ~((1<<LED_0) | (1<<LED_2)), ~(1<<LED_2) ; 2
- ;-----------------------------------------------;
- GOTO _M_LED_Loop ;
- ;---------------------------------------------------;
- ;---------------------------------------------------;
- _Delay: ;
- ;---------------------------------------------------;
- MOVWF DTemp1 ;
- MOVLW H'00' ;
- MOVWF DTemp2 ;
- DECFSZ DTemp2, F ;
- GOTO $-1 ;
- DECFSZ DTemp1, F ;
- GOTO $-3 ;
- RETURN ;
- ;---------------------------------------------------;
- ;---------------------------------------------------;
- _Initialize_System: ;
- ;---;-----------------------------------------------;
- ; Initialize Hardware ;
- ;-----------------------------------------------;
- BANKSEL OSCCAL ;
- ; CALL H'3FF' ;
- MOVLW H'44' ;
- MOVFW OSCCAL ; Set Oscillator Calibration
- ;
- BANKSEL OPTION_REG ;
- MOVLW B'10000000' ; NOT_GPPU
- MOVWF OPTION_REG ;
- ;
- BANKSEL INTCON ;
- CLRF INTCON ; No interrupts enabled
- ;
- BANKSEL CMCON ;
- MOVLW B'00000111' ; Comparator disabled
- MOVWF CMCON ;
- ;
- BANKSEL TRISIO ;
- MOVLW B'11111111' ;
- MOVWF TRISIO ;
- ;
- BANKSEL GPIO ;
- MOVLW B'00000000' ;
- MOVWF GPIO ;
- ;
- ;-----------------------------------------------;
- ; Initialize Memory ;
- ;-----------------------------------------------;
- ;
- RETURN ;
- ;---------------------------------------------------;
- ;---------------------------------------------------;
- END ;
- ;---------------------------------------------------;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement