Professional Documents
Culture Documents
INCLUDE <P16F877A.INC>
CO EQU B'11110000'
CBLOCK 0x25 ;asigna espacio de mamoria en orden desde el 25 a odas las variables
TE,N1,N2,N3,N4,N5,N6,N7,VAL1,VAL2,VAL3,VAL4,VAL5,VAL6,R1,R2,R3,R4,R5,R6,CONT,CON,CON1,C
ON2 ;CAMBIAR VARIABLES
ENDC
T1 EQU 0x24
T2 EQU 0x23
ORG 00
GOTO INICIO
ORG 05
INICIO
bsf STATUS,RP0
bcf OPTION_REG,NOT_RBPU
movlw B'11110000'
movwf TRISB
clrf TRISC
clrf TRISD
bcf STATUS,RP0
CLRF PORTB
CLRF PORTC
MOVLW H'FF'
MOVWF PORTD
CLRF CONT
CLRF N1
CLRF N2
CLRF N3
CLRF N4
CLRF N5
CLRF N6
CLRF N7
;PROGRAMA PRINCIPAL
PRINCIPAL
CALL TECLADO
GOTO PRINCIPAL
;SUBRUTINA DE TECLADO
TECLADO
movlw CO
movwf TRISB
SIGUE
CALL RETARDO
MOVFW TRISB
SUBLW CO
BTFSS STATUS,Z
GOTO SIGUE
ORDEN
CLRF TE ;tecla
MOVLW B'00001110'
MOVWF PORTB
CALL NS0
CALL RETARDO
CALL NS1
CALL RETARDO
CALL NS2
CALL RETARDO
CALL NS3
CALL RETARDO
;_________________________________
COLUMN
BTFSS PORTB,4
GOTO VISUALIZAR
INCF TE,F
BTFSS PORTB,5
GOTO VISUALIZAR
INCF TE,F
BTFSS PORTB,6
GOTO VISUALIZAR
INCF TE,F
BTFSS PORTB,7
GOTO VISUALIZAR
INCF TE,F
MOVLW d'16'
SUBWF TE,W
BTFSC STATUS,Z
GOTO ORDEN
BSF STATUS,C
RLF PORTB,F
GOTO COLUMN
VISUALIZAR
MOVF TE,W
CALL TABLA
;MOVWF CON
MOVLW 0H
;SUBWF CON,W
BTFSC STATUS,Z
GOTO NU1
INCF CONT,F
MOVLW D'1'
SUBWF CONT,W
BTFSC STATUS,Z
CALL NU1O1
MOVLW D'2'
SUBWF CONT,W
BTFSC STATUS,Z
CALL NU1O2
MOVLW D'3'
SUBWF CONT,W
BTFSC STATUS,Z
CALL NU1O3
MOVLW D'4'
SUBWF CONT,W
BTFSC STATUS,Z
CALL NU1O4
MOVLW D'5'
SUBWF CONT,W
BTFSC STATUS,Z
CALL NU1O5
MOVLW D'6'
SUBWF CONT,W
BTFSC STATUS,Z
CALL NU1O6
MOVLW D'7'
SUBWF CONT,W
BTFSC STATUS,Z
CLRF CONT
NU1
RETURN
NU1O1
MOVF TE,W
CALL TABLA
MOVWF N1
MOVF TE,W
CALL TABLA1
MOVWF VAL1
NS0
MOVFW N1
BSF PORTD,2
MOVWF PORTC
BCF PORTD,5
RETURN
NU1O2
MOVF TE,W
CALL TABLA
MOVWF N2
MOVF TE,W
CALL TABLA1
MOVWF VAL2
CALL DESPLAZAR2
NS1
MOVFW N2
BSF PORTD,5
MOVWF PORTC
BCF PORTD,4
RETURN
NU1O3
MOVF TE,W
CALL TABLA
MOVWF N3
MOVF TE,W
CALL TABLA1
MOVWF VAL3
CALL DESPLAZAR3
NS2
MOVFW N3
BSF PORTD,4
MOVWF PORTC
BCF PORTD,3
RETURN
NU1O4
MOVF TE,W
CALL TABLA
MOVWF N4
MOVF TE,W
CALL TABLA1
MOVWF VAL4
CALL DESPLAZAR4
NS3
MOVFW N4
BSF PORTD,3
MOVWF PORTC
BCF PORTD,2
RETURN
NU1O5
MOVF TE,W
CALL TABLA
MOVWF N5
MOVF TE,W
CALL TABLA1
MOVWF VAL5
CALL DESPLAZAR5
NU1O6
MOVF TE,W
CALL TABLA
MOVWF N6
MOVF TE,W
CALL TABLA1
MOVWF VAL6
CALL DESPLAZAR6
;___________________________
TABLA
ADDWF PCL,F
DT 7H,7FH,67H,77H
DT 66H,6DH,7DH,7CH
DT 06H,5BH,4FH,39H
DT 71H,3FH,79H,5EH
RETURN
TABLA1
ADDWF PCL,F
DT D'7',D'8',D'9',D'0'
DT D'4',D'5',D'6',D'0'
DT D'1',D'2',D'3',D'0'
DT D'0',D'0',D'0',D'0'
RETURN
;NUEVOS VALORES PARA LOS DISPLAYS
TABLA2
MOVWF CON2
MOVLW D'0'
SUBWF CON2,W
BTFSC STATUS,Z
GOTO ZERO
GOTO ZERO1
ZERO
MOVLW 3FH
RETURN
ZERO1
;________________________
MOVLW D'1'
SUBWF CON2,W
BTFSC STATUS,Z
GOTO UNO
GOTO UNO1
UNO
MOVLW 06H
RETURN
UNO1
;___________________________
MOVLW D'2'
SUBWF CON2,W
BTFSC STATUS,Z
GOTO DOS
GOTO DOS1
DOS
MOVLW 5BH
RETURN
DOS1
;________________________
MOVLW D'3'
SUBWF CON2,W
BTFSC STATUS,Z
GOTO TRES
GOTO TRES1
TRES
MOVLW 4FH
RETURN
TRES1
;________________________
MOVLW D'4'
SUBWF CON2,W
BTFSC STATUS,Z
GOTO CUATRO
GOTO CUATRO1
CUATRO
MOVLW 66H
RETURN
CUATRO1
;________________________
MOVLW D'5'
SUBWF CON2,W
BTFSC STATUS,Z
GOTO CINCO
GOTO CINCO1
CINCO
MOVLW 6DH
RETURN
CINCO1
;________________________
MOVLW D'6'
SUBWF CON2,W
BTFSC STATUS,Z
GOTO SEIS
GOTO SEIS1
SEIS
MOVLW 7DH
RETURN
SEIS1
;________________________
MOVLW D'7'
SUBWF CON2,W
BTFSC STATUS,Z
GOTO SIETE
GOTO SIETE1
SIETE
MOVLW 7H
RETURN
SIETE1
;________________________
MOVLW D'8'
SUBWF CON2,W
BTFSC STATUS,Z
GOTO OCHO
GOTO OCHO1
OCHO
MOVLW 7FH
RETURN
OCHO1
;________________________
MOVLW D'9'
SUBWF CON2,W
BTFSC STATUS,Z
GOTO NUEVE
GOTO NUEVE1
NUEVE
MOVLW 67H
RETURN
NUEVE1
;________________________
RETURN
DESPLAZAR6
MOVFW N5
MOVWF CON1
MOVFW N4
MOVWF N5
MOVFW N3
MOVWF N4
MOVFW N2
MOVWF N3
MOVFW N1
MOVWF N2
MOVFW N6
MOVWF N1
MOVFW CON1
MOVWF N6
MOVFW VAL5
MOVWF CON1
MOVFW VAL4
MOVWF VAL5
MOVFW VAL3
MOVWF VAL4
MOVFW VAL2
MOVWF VAL3
MOVFW VAL1
MOVWF VAL2
MOVFW VAL6
MOVWF VAL1
MOVFW CON1
MOVWF VAL6
RETURN
DESPLAZAR5
MOVFW N4
MOVWF CON1
MOVFW N3
MOVWF N4
MOVFW N2
MOVWF N3
MOVFW N1
MOVWF N2
MOVFW N5
MOVWF N1
MOVFW CON1
MOVWF N5
MOVFW VAL4
MOVWF CON1
MOVFW VAL3
MOVWF VAL4
MOVFW VAL2
MOVWF VAL3
MOVFW VAL1
MOVWF VAL2
MOVFW VAL5
MOVWF VAL1
MOVFW CON1
MOVWF VAL5
RETURN
DESPLAZAR4
MOVFW N3
MOVWF CON1
MOVFW N2
MOVWF N3
MOVFW N1
MOVWF N2
MOVFW N4
MOVWF N1
MOVFW CON1
MOVWF N4
MOVFW VAL3
MOVWF CON1
MOVFW VAL2
MOVWF VAL3
MOVFW VAL1
MOVWF VAL2
MOVFW VAL4
MOVWF VAL1
MOVFW CON1
MOVWF VAL4
RETURN
DESPLAZAR3
MOVFW N2
MOVWF CON1
MOVFW N1
MOVWF N2
MOVFW N3
MOVWF N1
MOVFW CON1
MOVWF N3
MOVFW VAL2
MOVWF CON1
MOVFW VAL1
MOVWF VAL2
MOVFW VAL3
MOVWF VAL1
MOVFW CON1
MOVWF VAL3
RETURN
DESPLAZAR2
MOVFW N1
MOVWF CON1
MOVFW N2
MOVWF N1
MOVFW CON1
MOVWF N2
MOVFW VAL1
MOVWF CON1
MOVFW VAL2
MOVWF VAL1
MOVFW CON1
MOVWF VAL2
RETURN
;SUBRUTINA DE RETARDO
RETARDO:
goto BUCLE4
goto BUCLE3
return
END