led port b0.asm

Upload: jlvelasquez

Post on 16-Feb-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 led port b0.asm

    1/2

    ; **** Encabezado ****list p=16F628 ; list directive to define processor#include ; processor specific variable definition

    s

    ;**** Definiciones para el ensamblador ****#DEFINE Led PORTB,0 ; Led ubicado en Puerto B, bit 0.-;//////////////////////////////////////////;**** Inicio del Micro ****Reset

    org 0x00 ; Aqu comienza el micro.-goto Inicio ; Salto a inicio de mi programa.-

    ;**** Vector de Interrupcion ****org 0x04 ; Atiendo Interrupcion.-goto ISR

    ; **** Programa Principal ****;**** Configuracion de puertos ***

    org 0x05 ; Origen del cdigo de programa.-Inicio

    bsf STATUS,RP0 ; Pasamos de Banco 0 a Banco 1.-movlw b'11111110' ; RB0 como salida.-movwf TRISB

    bcf STATUS,RP0 ; Banco 0.-movlw b'00110001' ; Se selecciona TMR1, preescaler de 1/8, modo temporizador.-

    movwf T1CONbcf Led ; El Led comienza apagado.-movlw 0x6D ; Cargamos 28036 en TMR1 para lograr 300ms.-movwf TMR1H ; Byte alto de TMR1.-movlw 0x84movwf TMR1L ; Byte bajo de TMR1.-bsf STATUS,RP0 ; Banco 1.-bsf PIE1,TMR1IE ; Activar interrupcin por TMR1.bsf INTCON,GIE ; Habilitacion general de interrupciones.-bsf INTCON,PEIE ; Habilitacion de Interrupcion por perifericos.-

    bcf STATUS,RP0 ; Banco 0.-;**** Control de Led ****Bucle

    nop ; Aqui el micro puede ejecutar cualquier otra tarea

    goto Bucle ; sin necesidad de utilizar tiempo en un bucle de demora.-

    ;**** Rutina de servicio de Interrupcion ****;**** Interrupcion por TMR1 ****ISR

    bsf STATUS,RP0

    btfss PIR1,TMR1IF ; Consultamos si es por TMR1.-retfie ; No, salimos de interrupcion.-bcf STATUS,RP0btfss Led ; Si, Controlamos Led. Si esta apagado, prendo y

    viseversa.-goto Prendo_ledbcf Led ; Apago Led.-

    Actualizo_TMR1 ; Actualizo TMR1 para obtener una temporizacionde 300 ms.-

    movlw 0x6D ; Cargamos 28036 en TMR1.-

  • 7/23/2019 led port b0.asm

    2/2

    movwf TMR1H ; Byte alto de TMR1.-movlw 0x84movwf TMR1L ; Byte bajo de TMR1.-goto Fin_ISR ; Restauro valores.-

    Prendo_ledbsf Led ; Prendo Led.-goto Actualizo_TMR1

    Fin_ISRbcf PIR1,TMR1IF ; Borro bandera de control de Interrupcion.-retfie ; Salimos de interrupcin.-

    ;..........................................

    end