Académique Documents
Professionnel Documents
Culture Documents
I)
MANEJO DE INFORMACION
MOVLW
MOVWF
MOVFW
II)
MANEJO DE BITS
BCF
BSF
BTFSS
BTFSC
RRF
RLF
SWAPF
III)
OPERACIONES ARITMETICAS
ADDLW
ADDWF
SUBLW
SUBWF
INCF
DECF
INCFSZ
DECSZ
IV)
OPERACIONES LOGICAS
COMF
ANDLW
ANDWF
IORLW
IORWF
XORLW
XORWF
V)
CALL
RETURN
RETLW
RETFIE
BTFSS
BTFSC
INCFSZ
DECSZ
VI)
COMPLEMENTARIAS
CLRF
CLRW
CLRWDT
SLEEP
Duerme al procesador
SLEEP
NOP
LIST P=16F84A
INCLUDE <P16F84A.INC>
CBLOCK 0X0C
CUENTA
X
Y
T
FACTOR
FACTOR2
T1
ENDC
ORG 0X2007 ; Configuracin del PIC
DW 0X3FFA
ORG 0X0000 ; Inicio de la memoria de programa
BSF STATUS,RP0
; Bank 1
CLRF TRISB
BCF TRISA,0
BCF TRISA,1
BCF TRISA,2
BSF TRISA,4
MOVLW 0X38
eventos
MOVWF OPTION_REG
BCF STATUS,RP0
; Bank 0
INICIO:
BCF PORTA,2
; Parlante OFF
BCF PORTA,1
BCF PORTA,0
; E=0
CALL TLCD
CLRF X
C1: MOVFW X
CALL TCONTROL
MOVWF Y
XORLW .0
BTFSC STATUS,Z
GOTO TITULO
MOVFW Y
MOVWF PORTB
CALL ENABLE
INCF X,F
GOTO C1
TITULO:
BSF PORTA,1
BCF PORTA,0
; E=0
CALL TLCD
CLRF X
M1: MOVFW X
CALL MENSAJE
MOVWF Y
XORLW .0
BTFSC STATUS,Z
GOTO CONTEO
MOVFW Y
MOVWF PORTB
CALL ENABLE
INCF X,F
GOTO M1
CONTEO:
CLRF TMR0
REPITE:
MOVFW TMR0
MOVWF CUENTA
XORLW .10
BTFSC STATUS,Z
GOTO ALARMA
CALL DISPLAY
GOTO REPITE
DISPLAY:
BCF PORTA,1
BCF PORTA,0
; E=0
CALL TLCD
MOVLW 0XC7
MOVWF PORTB
CALL ENABLE
BSF PORTA,1
BCF PORTA,0
; E=0
CALL TLCD
MOVFW CUENTA
ADDLW 0X30
MOVWF PORTB
CALL ENABLE
RETURN
ALARMA:
MOVLW .10
MOVWF FACTOR2
MOVWF FACTOR
DO2: BSF PORTA,2
CALL TDO
BCF PORTA,2
CALL TDO
DECFSZ FACTOR
GOTO DO2
MI: MOVLW .132
MOVWF FACTOR
MI2: BSF PORTA,2
CALL TMI
BCF PORTA,2
CALL TMI
DECFSZ FACTOR
GOTO MI2
DECFSZ FACTOR2,F
GOTO DO
GOTO $
MOVWF T1
LZDO: CALL T100US
DECFSZ T,F
GOTO LZDO
RETURN
TMI: MOVLW .15
MOVWF T1
LZMI: CALL T100US
DECFSZ T,F
GOTO LZMI
RETURN
T100US:
MOVLW .25
MOVWF T
LAZO1: NOP
DECFSZ T,F
GOTO LAZO1
RETURN
ENABLE:
CALL TLCD
BSF PORTA,0
; E=1
CALL TLCD
BCF PORTA,0
; E=0
CALL TLCD
RETURN
TLCD:
MOVLW .250
MOVWF T
LAZO: NOP
DECFSZ T,F
GOTO LAZO
RETURN
TCONTROL:
ADDWF PCL,F
DT 0X38,0X0C,0X06,0X01,.0
MENSAJE:
ADDWF PCL,F
DT " N OBJETOS",.0
END
TECLADO
PRENDER LED
LIST P=16F84A
INCLUDE <P16F84A.INC>
CBLOCK 0XC
; Area de las variables
ENDC
ORG 0X2007
; Configuracion del PIC
DW 0X3FFA
ORG 0X0000
; Direccion inicial de la memoria
de programa
BSF STATUS,RP0
; Bank 1
MOVLW B'00000000'
; Puerto B de salida a LEDs
MOVWF TRISB
BCF STATUS,RP0
; Bank 0
INICIO: MOVLW B'11110000'
MOVWF PORTB
GOTO $
; LEDs ON
END
----------------------------------------------------------------------------------PRENDER Y APAGAR LED POR UN TIEMPO DETERMINADO
LIST P=16F84A
INCLUDE <P16F84A.INC>
CBLOCK 0XC
; Area de las variables
T1
; Variables para los tiempos
T2
T3
ENDC
ORG 0X2007
; Configuracion del PIC
DW 0X3FFA
ORG 0X0000
; Direccion inicial de la memoria
de programa
BSF STATUS,RP0
; Bank 1
MOVLW B'00000000'
; Puerto B de salida a LEDs
MOVWF TRISB
BCF STATUS,RP0
; Bank 0
INICIO: MOVLW B'11111111'
; Leds ON
MOVWF PORTB
CALL DELAY
MOVLW B'00000000'
; Leds OFF
MOVWF PORTB
CALL DELAY
GOTO INICIO
DELAY: MOVLW .2; 10
MOVWF T3
LAZO3: CALL T100MS
DECFSZ T3,F
GOTO LAZO3
RETURN
; 1 seg.
; 100 mseg.
; 1 mseg.
MOVWF T1
LAZO1: NOP
DECFSZ T1,F
GOTO LAZO1
RETURN
END
; Banco 1
CLRF TRISB
MOVLW 0X00
MOVWF OPTION_REG
BCF STATUS,RP0
; Banco 0
GOTO ABC
GOTO INICIO
DELAY: MOVLW .100
MOVWF T1
LAZO1: CALL T10MS
DECFSZ T1,F
GOTO LAZO1
RETURN
T10MS: MOVLW .100
MOVWF T2
LAZO2: CALL T100US
DECFSZ T2,F
GOTO LAZO2
RETURN
T100US: MOVLW .0
MOVWF TMR0
SENSA: BTFSS INTCON,T0IF
GOTO SENSA
BCF INTCON,T0IF
RETURN
END
X
Y
T
FACTOR
FACTOR2
T1
ENDC
ORG 0X2007 ; Configuracin del PIC
DW 0X3FFA
ORG 0X0000 ; Inicio de la memoria de programa
BSF STATUS,RP0
; Bank 1
CLRF TRISB
BCF TRISA,0
BCF TRISA,1
BCF TRISA,2
BSF TRISA,4
MOVLW 0X38
MOVWF OPTION_REG
BCF STATUS,RP0
; Bank 0
INICIO:
BCF PORTA,2
; Parlante OFF
BCF PORTA,1
BCF PORTA,0
; E=0
CALL TLCD
CLRF X
C1: MOVFW X
CALL TCONTROL
MOVWF Y
XORLW .0
BTFSC STATUS,Z
GOTO TITULO
MOVFW Y
MOVWF PORTB
CALL ENABLE
INCF X,F
GOTO C1
TITULO:
BSF PORTA,1
BCF PORTA,0
; E=0
CALL TLCD
CLRF X
M1: MOVFW X
CALL MENSAJE
MOVWF Y
XORLW .0
BTFSC STATUS,Z
GOTO CONTEO
MOVFW Y
MOVWF PORTB
CALL ENABLE
INCF X,F
GOTO M1
CONTEO:
CLRF TMR0
REPITE:
MOVFW TMR0
MOVWF CUENTA
XORLW .10
BTFSC STATUS,Z
GOTO ALARMA
CALL DISPLAY
GOTO REPITE
DISPLAY:
BCF PORTA,1
BCF PORTA,0
; E=0
CALL TLCD
MOVLW 0XC7
MOVWF PORTB
CALL ENABLE
BSF PORTA,1
BCF PORTA,0
; E=0
CALL TLCD
MOVFW CUENTA
ADDLW 0X30
MOVWF PORTB
CALL ENABLE
RETURN
ALARMA:
MOVLW .10
MOVWF FACTOR2
MOVWF FACTOR
DO2: BSF PORTA,2
CALL TDO
BCF PORTA,2
CALL TDO
DECFSZ FACTOR
GOTO DO2
MI: MOVLW .132
MOVWF FACTOR
MI2: BSF PORTA,2
CALL TMI
BCF PORTA,2
CALL TMI
DECFSZ FACTOR
GOTO MI2
DECFSZ FACTOR2,F
GOTO DO
GOTO $
MOVWF T1
LZDO: CALL T100US
DECFSZ T,F
GOTO LZDO
RETURN
MOVWF T1
LZMI: CALL T100US
DECFSZ T,F
GOTO LZMI
RETURN
T100US:
MOVLW .25
MOVWF T
LAZO1: NOP
DECFSZ T,F
GOTO LAZO1
RETURN
ENABLE:
CALL TLCD
BSF PORTA,0
; E=1
CALL TLCD
BCF PORTA,0
CALL TLCD
RETURN
TLCD:
MOVLW .250
MOVWF T
LAZO: NOP
DECFSZ T,F
GOTO LAZO
RETURN
; E=0
TCONTROL:
ADDWF PCL,F
DT 0X38,0X0C,0X06,0X01,.0
MENSAJE:
ADDWF PCL,F
DT " N OBJETOS",.0
END
-----------------------------------------------------------------------------------------------------------------------------------
MOVLW 0X1F
MOVWF TRISA
BANKSEL PORTA ; Bank 0
INICIO: CLRF PORTB
; LEDs en OFF
CALL TABLA
MOVWF CLAVE2
MOVWF PORTB
LEE22: BTFSC PORTA,4 ; Libera
GOTO LEE22
MOVWF PORTB
LEE42: BTFSC PORTA,4 ; Libera
GOTO LEE42
MOVFW CLAVE1
XORLW .1
BTFSS STATUS,Z
GOTO FALLA
MOVFW CLAVE2
XORLW .2
BTFSS STATUS,Z
GOTO FALLA
MOVFW CLAVE3
XORLW .3
BTFSS STATUS,Z
GOTO FALLA
MOVFW CLAVE4
XORLW .4
BTFSS STATUS,Z
GOTO FALLA
CORRECTO:
BSF PORTB,0 ; Led Verde ON
CALL DELAY
GOTO INICIO
FALLA:
BSF PORTB,2 ; Led Rojo ON
CALL DELAY
GOTO INICIO
DELAY:
RETURN