;=================================================================================================================
;--DIRECTIVAS DEL PROGRAMA--
;=================================================================================================================
LIST P=16f628A
INCLUDE <P16F628A.INC>
;=================================================================================================================
;--ETIQUETAS DEL PROGRAMA --
;=================================================================================================================
CBLOCK 0x60
CONTA
CONTA_1
CONTA_2
CONTA_LETRAS
LETRA
NUMERO_LETRAS
CONTA_INTERNO
R_ContA ; Contadores para los retardos.
R_ContB
R_ContC
ENDC
;=================================================================================================================
;--CONFIGURAION DE PUERTOS--
;=================================================================================================================
ORG 0X00
goto INICIO
TABLA_CARACTERES
addwf PCL,F
RETLW 3EH ;0
RETLW 45H
RETLW 49H
RETLW 51H
RETLW 3EH
RETLW 11H ;1
RETLW 21H
RETLW 7FH
RETLW 01H
RETLW 01H
RETLW 27H ; 2
RETLW 49H
RETLW 49H
RETLW 49H
RETLW 31H
RETLW 22H ; 3
RETLW 49H
RETLW 49H
RETLW 49H
RETLW 36H
RETLW 78H ; 4
RETLW 08H
RETLW 08H
RETLW 08H
RETLW 7FH
RETLW 7AH ; 5
RETLW 49H
RETLW 49H
RETLW 49H
RETLW 46H
RETLW 3EH ; 6
RETLW 49H
RETLW 49H
RETLW 49H
RETLW 26H
RETLW 40H ; 7
RETLW 40H
RETLW 4FH
RETLW 50H
RETLW 60H
RETLW 36H ; 8
RETLW 49H
RETLW 49H
RETLW 49H
RETLW 36H
RETLW 32H ; 9
RETLW 49H
RETLW 49H
RETLW 49H
RETLW 3EH
RETLW 00H ; :
RETLW 12H
RETLW 00H
RETLW 00H
RETLW 00H
RETLW 01H ; ;
RETLW 0AH
RETLW 00H
RETLW 00H
RETLW 00H
RETLW 0H ; < EQUIVALE A "
RETLW 70H
RETLW 0H
RETLW 70H
RETLW 0H
RETLW 0AH ; =
RETLW 0AH
RETLW 0AH
RETLW 0AH
RETLW 00H
RETLW 0H ; > EQUIVALE A .
RETLW 1H
RETLW 0H
RETLW 0H
RETLW 0H
RETLW 01H ; ? EQUIVALE A ,
RETLW 02H
RETLW 00H
RETLW 00H
RETLW 00H
RETLW 0H ; @ EQUIVALE A ESPACIO
RETLW 0H
RETLW 0H
RETLW 0H
RETLW 0H
RETLW 3FH ; A
RETLW 48H
RETLW 48H
RETLW 48H
RETLW 3FH
RETLW 7FH ; B
RETLW 49H
RETLW 49H
RETLW 49H
RETLW 36H
RETLW 3EH ; C
RETLW 41H
RETLW 41H
RETLW 41H
RETLW 22H
RETLW 7FH ; D
RETLW 41H
RETLW 41H
RETLW 41H
RETLW 3EH
RETLW 7FH ; E
RETLW 49H
RETLW 49H
RETLW 49H
RETLW 41H
RETLW 7FH ; F
RETLW 48H
RETLW 48H
RETLW 48H
RETLW 40H
RETLW 3EH ; G
RETLW 41H
RETLW 49H
RETLW 49H
RETLW 26H
RETLW 7FH ; H
RETLW 8H
RETLW 8H
RETLW 8H
RETLW 7FH
RETLW 41H ; I
RETLW 41H
RETLW 7FH
RETLW 41H
RETLW 41H
RETLW 42H ; J
RETLW 41H
RETLW 7EH
RETLW 40H
RETLW 40H
RETLW 7FH ; K
RETLW 08H
RETLW 14H
RETLW 22H
RETLW 41H
RETLW 7FH ; L
RETLW 1H
RETLW 1H
RETLW 1H
RETLW 1H
RETLW 7FH ; M
RETLW 20H
RETLW 10H
RETLW 20H
RETLW 7FH
RETLW 7FH ; N
RETLW 30H
RETLW 08H
RETLW 06H
RETLW 7FH
RETLW 3EH ; O
RETLW 41H
RETLW 41H
RETLW 41H
RETLW 3EH
RETLW 7FH ; P
RETLW 48H
RETLW 48H
RETLW 48H
RETLW 30H
RETLW 3EH ; Q
RETLW 41H
RETLW 45H
RETLW 43H
RETLW 3EH
RETLW 7FH ; R
RETLW 48H
RETLW 4CH
RETLW 4AH
RETLW 31H
RETLW 32H ; S
RETLW 49H
RETLW 49H
RETLW 49H
RETLW 26H
RETLW 40H ; T
RETLW 40H
RETLW 7FH
RETLW 40H
RETLW 40H
RETLW 7EH ; U
RETLW 01H
RETLW 01H
RETLW 01H
RETLW 7EH
RETLW 7CH ; V
RETLW 02H
RETLW 01H
RETLW 02H
RETLW 7CH
RETLW 7FH ; W
RETLW 2H
RETLW 4H
RETLW 2H
RETLW 7FH
RETLW 63H ; X
RETLW 14H
RETLW 8H
RETLW 14H
RETLW 63H
RETLW 60H ; Y
RETLW 10H
RETLW 0FH
RETLW 10H
RETLW 60H
RETLW 43H ; Z
RETLW 45H
RETLW 49H
RETLW 51H
RETLW 61H
INICIO ;movlw 0x07 ;Turn comparators off and
;movwf CMCON ;enable pins for I/O function
bsf STATUS,RP0 ; Seleccion del banco 1
clrf PORTA ; Puerto B como salidas
clrf PORTB
bcf STATUS,RP0 ; Banco 0
clrf PORTA ; Inicializacion de los
clrf PORTB
RUTINA movlw "A"
call CONVERTIR
movlw "B"
call CONVERTIR
movlw "C"
call CONVERTIR
movlw "D"
call CONVERTIR
movlw "E"
call CONVERTIR
movlw "F"
call CONVERTIR
movlw "G"
call CONVERTIR
movlw "H"
call CONVERTIR
movlw "I"
call CONVERTIR
movlw "J"
call CONVERTIR
movlw "K"
call CONVERTIR
movlw "L"
call CONVERTIR
movlw "M"
call CONVERTIR
movlw "N"
call CONVERTIR
movlw "O"
call CONVERTIR
movlw "P"
call CONVERTIR
movlw "Q"
call CONVERTIR
movlw "R"
call CONVERTIR
movlw "S"
call CONVERTIR
movlw "T"
call CONVERTIR
movlw "U"
call CONVERTIR
movlw "V"
call CONVERTIR
movlw "W"
call CONVERTIR
movlw "X"
call CONVERTIR
movlw "Y"
call CONVERTIR
movlw "Z"
call CONVERTIR
movlw "1"
call CONVERTIR
movlw "2"
call CONVERTIR
movlw "3"
call CONVERTIR
movlw "4"
call CONVERTIR
movlw "5"
call CONVERTIR
movlw "6"
call CONVERTIR
movlw "7"
call CONVERTIR
movlw "8"
call CONVERTIR
movlw "9"
call CONVERTIR
movlw "0"
call CONVERTIR
movlw "@"
call CONVERTIR
movlw "@"
call CONVERTIR
movlw "@"
call CONVERTIR
movlw "@"
call CONVERTIR
movlw "@"
call CONVERTIR
movlw "@"
call CONVERTIR
movlw "@"
call CONVERTIR
movlw "@"
call CONVERTIR
movlw "@"
call CONVERTIR
movlw "@"
call CONVERTIR
goto RUTINA
CONVERTIR incf CONTA_LETRAS,F
movwf LETRA ;Letra contiene el codigo ascci del caracter a grabar
movlw d'48' ;Se resta para obtener la posicion del caracter
subwf LETRA,F
movf LETRA,W
clrf CONTA_2 ;Este contador direcciona el inicio de barrido en la tabla de datos
movwf CONTA_1 ;Ayuda a direccionar a CONTA_2
PREGUNTAR movf CONTA_1,F
btfss STATUS,Z
goto NO_CERO
goto SI_CERO
NO_CERO decf CONTA_1,F
movlw d'5'
addwf CONTA_2,F
goto PREGUNTAR
SI_CERO movlw 0x40 ;Da la direccion de la memoria no visble en el panel,
movwf FSR ;desde la cual se grabaran los datos del caracter
movlw d'5'
movwf CONTA_INTERNO
LLAMAR movf CONTA_2,W
call TABLA_CARACTERES ;Rutina que accesa los datos de los caracteres
CARGAR_DATOS movwf INDF ;Carga datos en direccion 0x40 y de ahi en adelante
incf FSR,F ;En total carga todos los datos de un caracter
incf CONTA_2,F
decfsz CONTA_INTERNO,F
goto LLAMAR
;call DEZPLAZAR_32 ;Si terminó, Llama a rutina dezplazar para la visualizacion de los datos dezplazandose
;return
DEZPLAZAR_32 movlw d'6'
movwf CONTA
DEZPLAZAR movlw 0x20 ;Esta rutina en general dezplaza una posicion todas
movwf FSR ;las columnas existentes en el panel, hacia la izquierda.
OTRA_VEZ movf INDF,W ; y luego llama a rutina barrido hasta que se barra los
decf FSR,F ; 6 datos de cada caracterm, ahi es cuando retorna a
movwf INDF ; buscar el siguiente dato para almacenarlo
incf FSR,F
incf FSR,F
movlw 0x46
xorwf FSR,W
btfss STATUS,Z
goto OTRA_VEZ
call BARRIDO
decfsz CONTA,F
goto DEZPLAZAR
return
BARRIDO movlw 0x07 ;Turn comparators off and
movwf CMCON ;enable pins for I/O function
clrf PORTA
movlw 0x20 ;Barre el Panel,hasta llegar a la ultima columna
movwf FSR
INCREMENTAR movf INDF,W
movwf PORTB
call Retardo_2ms ;VELOCIDAD DE DESPLAZAMIENTO
call Retardo_5micros ;PARPADEO
clrf PORTB
incf PORTA,F
;call Retardo_2s
incf FSR,F
btfss FSR,6
goto INCREMENTAR
return
INCLUDE <RETARDOS.INC>
END