• Domingo 22 de Diciembre de 2024, 13:25

Autor Tema:  Ayuda Urgente Con Pantalla Lcd Y Pic16f877  (Leído 1581 veces)

Tuzo_Biker

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Ayuda Urgente Con Pantalla Lcd Y Pic16f877
« en: Jueves 20 de Julio de 2006, 02:20 »
0
Tengo este código para enviar un texto a una pantalla LCD mediante un PIC16F877 pero no puedo hacer que funcione. La comprobación de estado del buffer de la LCD lo realizo mediante el bit 3 de PORTA. Podrían ayudarme con esto, ya rehice el código varias veces y no encuentro el posible error.



   processor 16f877
   include <p16f877.inc>
   __config _RC_OSC & _WDT_OFF & _PWRTE_ON

;INICIALIZACIÓN DE VARIABLES
EN      equ      0
RS      equ      1
RW      equ      2
letra   equ      H'1F'     

   org      0

;CONFIGURACIÓN DE PUERTOS DE E/S
   bsf      STATUS,RP0
   bcf      STATUS,RP1
   clrf   TRISB
   movlw   b'00000110'
   movwf   ADCON1
   movlw   b'1000'
   movwf   TRISA
   bcf      STATUS,RP0

;INICIO DEL PROGRAMA
   call   INIT_LCD
   call   LIMPIA_LCD

;POSICIÓN DE LA PRIMER LETRA
   bcf      PORTA,1
   movlw   H'C0'
   bsf      PORTA,0
   bcf      PORTA,0
   call   ESP_LCD

;ENVÍA LOS DATOS A LA LCD
   movlw   B'01001000'      ;ASCII de la letra H
   movwf   letra
   call   ESCRIBIR_LCD
   movlw   B'01001111'      ;ASCII de la letra O
   movwf   letra
   call   ESCRIBIR_LCD
   movlw   B'01001100'      ;ASCII de la letra L
   movwf   letra
   call   ESCRIBIR_LCD
   movlw   B'01000001'      ;ASCII de la letra A
   movwf   letra
   call   ESCRIBIR_LCD
   goto   FINAL

;FUNCIÓN PARA VERIFICAR EL BUFFER DE LA LCD
ESP_LCD:
   bcf      PORTA,EN
   bcf      PORTA,RS
   bsf      PORTA,RW
   movlw   H'FF'
   movwf   PORTB
    bsf      PORTA,EN
   bcf      PORTA,EN
   movfw   letra
   btfsc   PORTA,3
   call   ESP_LCD
   bcf      PORTA,EN
   bcf      PORTA,RW
   return

;FUNCIÓN PARA INICALIZAR Y CONFIGURAR LA LCD
INIT_LCD:
   bsf      PORTA,EN
   bcf      PORTA,RS
   movlw   H'38'
   movwf   PORTB
   bcf      PORTA,EN

   bsf      PORTA,EN
   bcf      PORTA,EN
   call   ESP_LCD

   bsf      PORTA,EN
   bcf      PORTA,RS
   movlw   H'0E'
   movwf   PORTB
   bcf      PORTA,EN

   bcf      PORTA,EN
   call   ESP_LCD
   bsf      PORTA,EN
   bcf      PORTA,RS
   movlw   H'06'
   movwf   PORTB
   bsf      PORTA,EN
   bcf      PORTA,EN
   call   ESP_LCD
   return

;FUNCIÓN PARA LIMPIAR LA PANTALLA DE LA LCD
LIMPIA_LCD:
   bcf      PORTA,RS
   movlw   H'01'
   movwf   PORTB
   bsf      PORTA,EN
   bcf      PORTA,EN
   call   ESP_LCD
   return

;FUNCIÓN PARA ENVIAR TEXTO A LA PANTALLA DE LA LCD
ESCRIBIR_LCD:
   bsf      PORTA,RS
   movwf   PORTB
   bsf      PORTA,EN
   bcf      PORTA,EN
   call   ESP_LCD
   return

FINAL:
   end

lalo_soft

  • Miembro MUY activo
  • ***
  • Mensajes: 469
    • Ver Perfil
Re: Ayuda Urgente Con Pantalla Lcd Y Pic16f877
« Respuesta #1 en: Jueves 20 de Julio de 2006, 04:03 »
0
Citar
La comprobación de estado del buffer de la LCD lo realizo mediante el bit 3 de PORTA.

Si te refieres a comprobar si el LCD esta en estado BUSY ,esto se hace con el bit7 del bus del LCD.

Tuzo_Biker

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Ayuda Urgente Con Pantalla Lcd Y Pic16f877
« Respuesta #2 en: Jueves 20 de Julio de 2006, 04:04 »
0
La comprobación la hago con A3 para no estar cambiando a cada rato la configuración de PORTB, esa entrada la meto mejor en PORTA y esa la mantego fija

Tuzo_Biker

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Ayuda Urgente Con Pantalla Lcd Y Pic16f877
« Respuesta #3 en: Jueves 20 de Julio de 2006, 04:09 »
0
Lalo_soft: Si tienes una manera en que me puedas ayudar, porke en realidad, no sé ke pasa... Puedes agrgarme al msn: dr_cyclus@hotmail.com