CRTC Electronics

Click here to edit subtitle

Lesson 3 Hint

;*******************************************************************
;
;          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

Members Area

Recent Blog Entries

Upcoming Events

Recent Videos

Recent Photos

Recent Forum Posts