;*******************************************************************
;
; Name______________________
;
; ___________
; + To positive !Vdd Vss! To ground -
; !A5 A0!
; !A4 A1!
; !A3 A2!
; !C5 C0!
; !C4 C1!
; !C3 C2!
; !C6 B4!
; !C7 B5!
; !B7 B6!
; -----------
;
;
;*******************************************************************
;DESCRIPTION:
;
#include <p16F690.inc>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
org 0 ; reset vector
;Reserve our Regesters
cblock H'20'
;***********************
;ADD VERIABLES HERE:
pauseInnerCounter
pauseOuterCounter
endc
;Bank 3
BSF STATUS,RP1
BCF STATUS,RP0
CLRF ANSEL ;digital I/O
CLRF ANSELH ;digital I/O
;Bank 2
BCF STATUS,RP1
BSF STATUS,RP0
movlw 0x10 ;A2D clock
movwf ADCON1
movlw B'00000000' ; 0=out 1=in
movwf TRISC ; Set tristate mode
movlw B'00000000' ; 0=out 1=in
movwf TRISB ; Set tristate mode
movlw B'00000000' ; 0=out 1=in
movwf TRISA ; Set tristate mode
;Bank 1
BCF STATUS,RP1
BCF STATUS,RP0
;Clear registers
clrf PORTA
clrf PORTB
clrf PORTC
;*****************************************
;*** MAIN *************************
;*****************************************
main
call blink
goto main
;**********************************
;** Subroutines **
;**********************************
blink
call allOn
movlw 200
call pause
call allOff
movlw 200
call pause
call allOn
movlw 200
call pause
call allOff
movlw 200
call pause
call allOn
movlw 200
call pause
call allOff
movlw 200
call pause
return
allOn
bsf PORTC,0
bsf PORTC,1
bsf PORTC,2
bsf PORTC,3
bsf PORTC,4
bsf PORTC,5
bsf PORTC,6
bsf PORTC,7
bsf PORTB,4
bsf PORTB,5
bsf PORTB,6
bsf PORTB,7
return
allOff
bcf PORTC,0
bcf PORTC,1
bcf PORTC,2
bcf PORTC,3
bcf PORTC,4
bcf PORTC,5
bcf PORTC,6
bcf PORTC,7
bcf PORTB,4
bcf PORTB,5
bcf PORTB,6
bcf PORTB,7
return
pause
movwf pauseOuterCounter
clrf pauseInnerCounter
pauseLoop
decfsz pauseInnerCounter,1
goto pauseLoop
decfsz pauseOuterCounter,1
goto pauseLoop
return
END