;Beacon.asm ;Project: "Rotating Beacon" - eventually for a 508A ;List P = 16F84 ;#include ;__CONFIG 1Bh    ;_CP_OFF & _PWRTE_ON & _WDT_OFF & _RC_OSC ORG 0 ;Start of memory for the program SetUp MOVLW 08 ;Load W with 0000 1000 TRIS 06 ;Make RB3, (GP3) input OPTION 0DFh ;Make GP2 an output & disable weak pullups MOVLW 17h ;Make GP0, GP1, GP2, GP4, GP5 HIGH MOVWF 06 GOTO Main Main BSF 06,5 ;Turn on LHS sinking transistor NOP NOP BCF 06,0 MOVLW 42h ;Create 50mS delay MOVWF 1B Del1 DECFSZ 1A,1 GOTO Del1 MOVLW 01h XORWF 06,1 DECFSZ 1B,1 GOTO Del1 BSF 06,0 BCF 06,1 MOVLW 42h ;Create 50mS delay MOVWF 1B Del2 DECFSZ 1A,1 GOTO Del2 MOVLW 02h XORWF 06,1 DECFSZ 1B,1 GOTO Del2 BSF 06,1 BCF 06,2 MOVLW 42h ;Create 50mS delay MOVWF 1B Del3 DECFSZ 1A,1 GOTO Del3 MOVLW 04h XORWF 06,1 DECFSZ 1B,1 GOTO Del3 BSF 06,2 BCF 06,4 MOVLW 42h ;Create 50mS delay MOVWF 1B Del4 DECFSZ 1A,1 GOTO Del4 MOVLW 10h XORWF 06,1 DECFSZ 1B,1 GOTO Del4 BSF 06,4 BCF 06,5 ;Turn on RHS sinking transistor BCF 06,0 MOVLW 42h ;Create 50mS delay MOVWF 1B Del5 DECFSZ 1A,1 GOTO Del5 MOVLW 01h XORWF 06,1 DECFSZ 1B,1 GOTO Del5 BSF 06,0 BCF 06,1 MOVLW 42h ;Create 50mS delay MOVWF 1B Del6 DECFSZ 1A,1 GOTO Del6 MOVLW 02h XORWF 06,1 DECFSZ 1B,1 GOTO Del6 BSF 06,1 BCF 06,2 MOVLW 42h ;Create 50mS delay MOVWF 1B Del7 DECFSZ 1A,1 GOTO Del7 MOVLW 04h XORWF 06,1 DECFSZ 1B,1 GOTO Del7 BSF 06,2 BCF 06,4 MOVLW 42h ;Create 50mS delay MOVWF 1B Del8 DECFSZ 1A,1 GOTO Del8 MOVLW 10h XORWF 06,1 DECFSZ 1B,1 GOTO Del8 BSF 06,4 Loop BTFSC 06,3 GOTO Main NOP GOTO Loop END ;Tells assembler end of program