Vous êtes sur la page 1sur 3

LIST P=16F877A INCLUDE<P16F877A.

INC> ;librerias del pic a emplear __CONFIG _CP_OFF &_WDT_OFF &_PWRTE_ON &_XT_OSC ;configuracion de los parametros del pic ORG 0 ;direccion de inicio de reset GOTO INICIO ;salto a la primera linea de programa CBLOCK 20H ;inicio de declaracion de variables a partir de la direccion CONT1 DATO1 DATO2 ;crea la variable cont1 en la direecion 20h PH ;crea la variable P1 en la direccion 23h PL ;crea la variable P2 en la direccion 24h ENDC ;fin de declaracion CARTMR EQU D'256'-D'250' ORG 05 ;primera direccion disponible despues de la reservada para saltos INICIO CLRF PORTB ;borra el puerto B, evita cualquier ruido que se produzca al inicio BCF STATUS,RP1 ;pone a 0 el bit rp1 BSF STATUS,RP0 ;pone a 1 el bit rp0 y selecciona el banco 1 CLRF TRISB ;borra todos los bits de el regitro TRISB, se configura el puerto como salida MOVLW b'11111111' ;carga el numero 1Fh en el registro de trabajo W MOVWF TRISC ;carga el regitro TRISA con el valor de W,configura el puerto como entrada MOVLW .7 MOVWF OPTION_REG BCF STATUS,RP0 ;pone a 0 el regitro rp0 y retorna al banco 0 ALTA MOVF PORTC,W ANDLW 0F0H MOVWF PH SWAPF PH,1 MOVF PORTC,W ANDLW 0FH MOVWF PL MOVF PH,W SUBWF PL,0 BTFSC STATUS,Z GOTO INTERV1 BTFSS STATUS,C

BAJA

COMPA

GOTO INTERV2 INTER MOVLW 0FFH MOVWF PORTB CALL RETARDO COMF PORTB,1 CALL RETARDO GOTO INTER MOVLW .8 MOVWF DATO1 MOVLW 10H MOVWF DATO2 MOVF DATO1,W IORWF DATO2,0 MOVWF PORTB CALL RETARDO CLRF PORTB BCF STATUS,C RRF DATO1,1 BCF STATUS,C RLF DATO2,1 BTFSS STATUS,C GOTO INTV GOTO INTERV1 MOVLW 01H MOVWF DATO1 MOVLW 80H MOVWF DATO2 MOVF DATO1,W IORWF DATO2,0 MOVWF PORTB CALL RETARDO CLRF PORTB BCF STATUS,C RLF DATO1,1 BCF STATUS,C RRF DATO2,1 MOVF DATO1,W XORLW 10H BTFSS STATUS,Z GOTO INTV2 GOTO INTERV2 MOVLW .10 MOVWF CONT1 CLRF INTCON MOVLW .6 MOVWF TMR0 BTFSS INTCON,T0IF GOTO AQUI DECFSZ CONT1,1 GOTO VERI RETURN

INTERV1

INTV

INTERV2

INTV2

RETARDO VERI AQUI

FIN CLRF PORTB GOTO FIN END

Vous aimerez peut-être aussi