Bueno les cuento que estuve tratando de inicializar el Display con el PIC 16F628A y al parecer inicializa bien (abajo la captura) pero al momento de enviarle una letra, no me la toma... Simule el programa con el Proteus y los datos son enviados pero nose porque no escribe :S
Espero puedan ayudarme, gracias ^^
Aca las descripcion de pines y la imagen
RB0-RB7 ----> D0-D7
RA1 --------> enable
RA2 --------> RS
RA3 --------> RW
Imagen:
Bueno aca abajo les dejo el program para ver si me pueden dar una mano :S
Y les dejo por las dudas el archivo adjunto:
Espero puedan ayudarme, gracias ^^
Aca las descripcion de pines y la imagen
RB0-RB7 ----> D0-D7
RA1 --------> enable
RA2 --------> RS
RA3 --------> RW
Imagen:

Bueno aca abajo les dejo el program para ver si me pueden dar una mano :S
Código:
#INCLUDE <P16F628A.INC> ;Declaracion del Micro
D1 EQU 20H ;Variables
D2 EQU 21H
D3 EQU 22H
D4 EQU 24H
D5 EQU 25H
D6 EQU 26H
D7 EQU 27H
CONT EQU 28H
ORG 00H
NOP ; le da tiempo al micro para estabilizarse
NOP
GOTO INICIO
INICIO
BSF STATUS,RP0
MOVLW B'00000000' ;Dirección para configurar el puerto A
MOVWF TRISA
MOVLW B'00000000' ;Direccion para configurar el puerto B
MOVWF TRISB
MOVLW B'10000000'
MOVWF OPTION_REG
BCF STATUS,5
MOVLW B'00000111'
MOVWF CMCON
CLRF PORTA
CLRF PORTB
NOP ;le da tiempo al micro para estabilizarse
NOP
; Configuracion de los puertos del Micro
DISPLAY
BSF PORTA,1 ; act ENABLE
MOVLW B'00000000' ;
MOVWF PORTA ;
MOVLW B'00000001' ; Clear Display
MOVWF PORTB ;
BCF PORTA,1 ; desact ENABLE
CALL TEMPO ;
BSF PORTA,1 ; act ENABLE
MOVLW B'00111100' ; Function Set
MOVWF PORTB ;
BCF PORTA,1 ; desact ENABLE
CALL TEMPO ;
BSF PORTA,1 ; act ENABLE
MOVLW B'00111100' ; Function Set
MOVWF PORTB ;
BCF PORTA,1 ; desact ENABLE
CALL TEMPO ;
BSF PORTA,1 ; act ENABLE
MOVLW B'00001111' ; Display Control
MOVWF PORTB ;
BCF PORTA,1 ; desact ENABLE
CALL TEMPO ;
BSF PORTA,1 ; act ENABLE
MOVLW B'00000111' ; Entry Mode Set
MOVWF PORTB ;
BCF PORTA,1 ; desact ENABLE
CALL TEMPO ;
BSF PORTA,1 ; act ENABLE
MOVLW B'00000010' ; Cursor Home
MOVWF PORTB ;
BCF PORTA,1 ; desact ENABLE
CALL TEMPO ;
BSF PORTA,1 ; act ENABLE
MOVLW B'00011100' ; Cursor/Display Shift
MOVWF PORTB ;
BCF PORTA,1 ; desact ENABLE
CALL DELAY ;
NOP
NOP
NOP
CLOCK
BSF PORTA,1 ; act ENABLE
BSF PORTA,2 ; RS en 1
BCF PORTA,3 ; RW en 0
MOVLW B'01001000' ; H
MOVWF PORTB ; H -> PORTB
CALL DELAY ; Delay 1 segundo
BCF PORTA,1 ; desact ENABLE
CALL DELAY ; Delay 1 segundo
BUCLE
GOTO BUCLE ;
;---------------------------------------------------------------------
;Subrutinas
DELAY
MOVLW 0x07
MOVWF D1
MOVLW 0x2F
MOVWF D2
MOVLW 0x03
MOVWF D3
DELAY_0
DECFSZ D1,F
GOTO $+2
DECFSZ D2,F
GOTO $+2
DECFSZ D3,F
GOTO DELAY_0
NOP
NOP
NOP
NOP
NOP
NOP
RETURN
TEMPO
MOVLW 0x0D
MOVWF CONT
CICLO
NOP
DECFSZ CONT,1
GOTO CICLO
RETURN
END
Y les dejo por las dudas el archivo adjunto:
Adjuntos
Última edición por un moderador: