Autor Tema: LCD con 16f877  (Leído 6725 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado BINARIO

  • PIC16
  • ***
  • Mensajes: 156
LCD con 16f877
« en: 29 de Enero de 2007, 10:00:52 »
Alguien sabe de alguna libreria ya echa para utilizar un LCD tipo hitachi con un 16f877, espero su respuesta y gracias, si me pueden añadir el circuito estaria bueno.
000101111 101110000011110 00010 11101 110 1 000111 00010010011010111100 101101001 11110000 001 00 10110 111 00001 01110 0010101 01011110 00 00011111111 0011111 011110001111111111 1011111111101100000000

Desconectado psykhon

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 823
Re: LCD con 16f877
« Respuesta #1 en: 29 de Enero de 2007, 10:31:16 »
revise el foro mijo
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".

Desconectado BINARIO

  • PIC16
  • ***
  • Mensajes: 156
Re: LCD con 16f877
« Respuesta #2 en: 29 de Enero de 2007, 13:05:35 »
OK GRACIAS, ESTUVE BUSCANDO PERO NO HE ENCONTRADO AUN, SEGUIRE BUSCANDO, OTRA COSA GRACIAS POR SER TAN AMABLE...
000101111 101110000011110 00010 11101 110 1 000111 00010010011010111100 101101001 11110000 001 00 10110 111 00001 01110 0010101 01011110 00 00011111111 0011111 011110001111111111 1011111111101100000000

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: LCD con 16f877
« Respuesta #3 en: 29 de Enero de 2007, 13:11:58 »
la verdad en el foro hay mucha informacion sobre el tema
algunas dudas de lo leido se puede preguntar y aqui amablemente se puede responder.

saludos y gracias

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: LCD con 16f877
« Respuesta #4 en: 29 de Enero de 2007, 14:06:13 »
haber amigo, visita este link: http://www.todopic.com.ar/foros/index.php?topic=4530.0 son ejemplos de Vszener, muchos, la primera pagina, el primer post del hilo en realidad tiene un indice busca los qeu digan lcd y ya iras viendo, pues como dicen, siempre trata de buscar, se que a veces uno quiere las cosas inmediatas, pero mas rapido a veces te sale que tu busques hasta qeu te respondan, weno hay te dejo, espero te sirva; adios.

ahh y weno si hablas de libreria supongo que te refieres a lenguaje c, este hilo que te dejo esta en CCS.
.

Desconectado psykhon

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 823
Re: LCD con 16f877
« Respuesta #5 en: 29 de Enero de 2007, 17:49:25 »
con cinco post echos y preguntando cosas repetidas hasta el cansancio no se puede pedir mucho
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".

Desconectado BINARIO

  • PIC16
  • ***
  • Mensajes: 156
Al Estimado Señor Pshikon.
« Respuesta #6 en: 30 de Enero de 2007, 10:52:46 »
Señor Pshikon, lamento que mis dudas le hayan provocado tal estado de sulfuracion, solo queria conseguir alguna info de lcd porque estaba trabajando en un proyecto al respecto de eso, desconocia que no se podia preguntar en el foro sobre temas que ya figuraban, dado mi trabajo y que no cuento con demasiado tiempo es que no pude revisar a fondo el foro como usted debe de haberlo echo, estuve buscando en la red y encontre el ejemplo de hola mundo para lcd de 2x16 lo publicare en breve, nuevamente le reitero mis disculpas si le cause alguna molestia o me diriji a su persona de modo incorrecto, y me comprometo a respetar las normativas del foro en post de poder enviar y recibir informacion que es la finalidad de este foro segun creo, desde ya muchas gracias por su invaluable ayuda.
000101111 101110000011110 00010 11101 110 1 000111 00010010011010111100 101101001 11110000 001 00 10110 111 00001 01110 0010101 01011110 00 00011111111 0011111 011110001111111111 1011111111101100000000

Desconectado Kedutpic

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 219
    • Microelectronica
Re: LCD con 16f877
« Respuesta #7 en: 30 de Enero de 2007, 11:04:24 »
 :o hola binario las rutinas del LCD son faciles de realizar solo hay que tener un poco de paciencia para poder realizarlas  y leer un poco el datasheet del microcontrolador hitachi , bueno no te puedo agradeciria que me mencionaras en que entorno de programacion  vas a realizar tu pruebas (MPLAB ,CSS,etc)

saludos  :mrgreen:
« Última modificación: 30 de Enero de 2007, 11:12:44 por Kedutpic »
Actel  -  VHDL un nuevo mundo por descubrir :D
Grupo de Microelectronica - CIDI - UTP
Visitanos en : http://ue.accesus.com

Desconectado BINARIO

  • PIC16
  • ***
  • Mensajes: 156
Re: LCD con 16f877
« Respuesta #8 en: 30 de Enero de 2007, 12:06:55 »
Yo trabajo con MPLAB 7, asi que asi es como lo hago se que para muchos es el lenguaje de programacion mas complicado, es decir el mas bajo pero creo que es el que mejor se adapta a mis conocimientos se que hoy por hoy no importa mucho el tamaño del programa eso es cosa del pasado, pero sabes me gustaria programar en C, el pic basic me esta gustando, mira consegui una rutina del LCD es esta:

;****************************************** http://www.x-robotics.com *******
; PROGRAMA : LCD.LIB
; Funcion : Libreria de funciones para controlar un display
;       LCD de 2x16 lineas complatible con Hitachi.
;      
;  Revision : 1.0                            Programa para : PIC16F84
; CPU Clock : 4 MHz                      Reloj instruccion : 1 us
;       WDT : Deshabilitado                  Tipo de reloj : XT 
; Code Prot : OFF           
;****************************************** http://www.x-robotics.com *******
                               
                             
 LCD_E          BSF     RA,2            ;Activa señal E
                NOP                     ;Espera 1uS
                BCF     RA,2            ;Desactiva señal E
                RETURN       
                             
 LCD_BUSY       BSF     RA,1            ;Pone el LCD en modo lectura
                BSF     STATUS,5        ;Selecciona el Banco 1
                MOVLW   0xFF 
                MOVWF   TRISB           ;Puerta B act£a de entrada
                BCF     STATUS,5        ;Selecciona el Banco 0
                BSF     RA,2            ;Activa el LCD (Señal E)
                NOP           
 L_BUSY         BTFSC   RB,7            ;Chequea el bit BUSY
                GOTO    L_BUSY          ;Est  a "1" (Ocupado)
                BCF     RA,2            ;Desactiva el LCD (Se¤al E)
                BSF     STATUS,5        ;Selecciona el Banco 1
                CLRF    TRISB           ;Puerta B actua como salida
                BCF     STATUS,5        ;Selecciona el Banco 0
                BCF     RA,1            ;Pone el LCD en modo escritura
                RETURN       
                             
 LCD_REG        BCF     RA,0            ;Desactiva RS (Modo instruccion)
                MOVWF   RB              ;Saca el codigo de instruccion
                CALL    LCD_BUSY        ;Espera a que se libere el LCD
                GOTO    LCD_E           ;Genera pulso en señal E
                             
 LCD_DATOS      BCF     RA,0            ;Desactiva RS (Modo instrucci¢n)
                MOVWF   RB              ;Valor ASCII a sacar por RB
                CALL    LCD_BUSY        ;Espera a que se libere el LCD
                BSF     RA,0            ;Activa RS (Modo dato) 
                GOTO    LCD_E           ;Genera pulso en señal E
                             
 LCD_INI        MOVLW   b'00111000'
                CALL    LCD_REG         ;Codigo de instruccion
                CALL    DELAY_5MS       ;Temporiza 5 mS.
                MOVLW   b'00111000'
                CALL    LCD_REG         ;Codigo de instruccion
                CALL    DELAY_5MS       ;Temporiza 5 mS.
                MOVLW   b'00111000'
                CALL    LCD_REG         ;Codigo de instruccion
                CALL    DELAY_5MS       ;Temporiza 5 mS.
                RETURN           
                             
 LCD_PORT       BSF     STATUS,5        ;Selecciona el banco 1 de datos
                CLRF    TRISB           ;RB se programa como salida
                MOVLW   b'00011000'     ;RA<4:3> se programan como entradas
                MOVWF   TRISA           ;RA<2:0> se programan como salidas
                BCF     STATUS,5        ;Selecciona el banco 0 de datos
                                       
               ;MOVLW   b'00000000'     
               ;MOVWF   INTCON          ;Desactiva interrupciones
                BCF     RA,0            ;Desactiva RS del modulo LCD
                BCF     RA,2            ;Desactiva E del modulo LCD
         
;****************************************************************************                                                               
;DELAY_5MS genera una temporizacion de 5mS necesario para la secuencia de
;inicio del LCD                         
                                       
DELAY_5MS     movlw    0x1a                   
              movwf    DATO_B                 
              clrf    DATO_A                 
DELAY_1       decfsz    DATO_A,1             
              goto    DELAY_1                 
              decfsz    DATO_B,1             
              goto    DELAY_1                 
              return
               

Esta muy buena y gracias a esta rutina estoy aprendiendo a dominar este tipo de display creo que con un poco de trabajo es posible lograr muchas cosas, se que esta libreria se puede incluir llamandola desde el programa con un include, pero segun veo tambien se pueden introducir las subrutinas en el prg que hagas y te va a funcionar igual.
bueno si saben algo mas siempre es buena una data, seguire buscando y espero lograr grandes cosas con este bicho de 2x16.
Gracias por el manual que publicaste me ha sido de mucha utlidad aprendi mucho de ese manual junto con esta libreria creo que cualquiera que entre al foro podra aprender a utilizar lo unico que no me guio como plantear el circuito, si lo se medio tonto de mi parte pero una manito en este aspecto me permitiria lograr concluir mi proyecto con lcd.
000101111 101110000011110 00010 11101 110 1 000111 00010010011010111100 101101001 11110000 001 00 10110 111 00001 01110 0010101 01011110 00 00011111111 0011111 011110001111111111 1011111111101100000000

Desconectado BINARIO

  • PIC16
  • ***
  • Mensajes: 156
Re: LCD con 16f877
« Respuesta #9 en: 30 de Enero de 2007, 12:10:37 »
ACA ESTA EL EJEMPLO QUE PROMETI DEL PROGRAMA HOLA MUNDO ESTE ES PARA UN 16cf84, si alguien se da una idea qu ese modifica para un 16f877 bienvenida sea la mano brindada nos vemos

                                                                                                    1110001100001001

;****************************************** http://www.x-robotics.com *******
; PROGRAMA : hola.asm
; Funcion  : Programa de ejemplo de utilizacion de rutinas para control de
;            LCD Hitachi 44780 o compatible.
;  Revision : 1.0                            Programa para : PIC16F84
; CPU Clock : 4 MHz                      Reloj instruccion : 1 us
;       WDT : Deshabilitado                  Tipo de reloj : XT 
; Code Prot : OFF           
;****************************************** http://www.x-robotics.com *******
;
;
;****************************** Igualdades **********************************
;                           
           list p=16c84      ;Procesador PIC16c84 
           list c=132        ;Listado a 132 caracteres

TIMER0     equ 01            ;Registro del TIMER0
OPCION     equ 0x1           ;Registro de opciones,p gina 1
PCL        equ 0x2           ;Registro PC
PCLATH     equ 0xa           ;Registro alto del PC
STATUS     equ 03            ;Registro de estado
RA         equ 05            ;Puerta A
RB         equ 06            ;Puerta B
PORTA      equ 05            ;Puerta A
PORTB      equ 06            ;Puerta B
TRISA      equ 0x5           ;Reg. de programaci¢n de la puerta A, p gina 1
TRISB      equ 0x6           ;Reg. de programaci¢n de la puerta B, p gina 1
INTCON     equ 0xb           ;Registro de control de interrupciones
DATO_A     equ 0xc           ;Registro del dato A
DATO_B     equ 0xd           ;Registro del dato B
RESUL      equ 0xe           ;Registro de resultados
TEMPO1     equ 0xf           ;Registro temporal 1
TEMPO2     equ 0x10          ;Registro temporal 2
OFFSET     equ 0x11          ;Variable de desplazamientos de mensajes
RP0     EQU     05h          ;Bit 5 registro STATUS
Digito  EQU     1Fh        ;Cursor para leer la tabla de datos.
                             

;<<<<<<---------------------- VECTOR DE RESET ------------------------>>>>>>>                             
                           
                ORG     00h             ;Direccion del Vector de RESET

                GOTO    INICIO          ;Comienza el programa

                ORG     05h             ;detras del Vector Interrupcion
       

      Include "LCD.LIB" 
   


;<<<<<<----------------- INICIO PROGRAMA PRINCIPAL ------------------->>>>>>>
                                                         
INICIO          CLRF    Digito          ;Pone a 0 la variable digito                             
                CALL    LCD_PORT        ;Puertos en modo LCD       
                BCF     RA,0            ;Desactiva RS del modulo LCD
                BCF     RA,2            ;Desactiva E del modulo LCD
START           CALL    LCD_INI         ;Inicia LCD (CFG puertos...)                 
START_1         MOVLW   b'00000001'     ;Borrar LCD y Home         
                CALL    LCD_REG                                     
                MOVLW   b'00000110'     ;                           
                CALL    LCD_REG                                     
                MOVLW   b'00001100'     ;LCD On, cursor Off,Parpadeo Off         
                CALL    LCD_REG                                     
                MOVLW   0x80            ;Direccion caracter
                CALL    LCD_REG                           
                                                                   
REPETIR          MOVF    Digito,w        ;W=Digito
                CALL    DATO_1          ;Coge el caracter           
                IORLW   0               ;Compara
                BTFSC   STATUS,2        ;Es el ultimo?             
                GOTO    acabar      ;Si               
                CALL    LCD_DATOS       ;Visualiza caracter         
                INCF    Digito,f        ;Incrementa numero de Digito
                GOTO    REPETIR         ;Vuelve a escribir
                                                                   
acabar      nop
      goto   acabar      ;Buclee infinito
                 
;<<<<<<---------------------- TABLA DE DATOS ------------------------->>>>>>>
                                                                   
DATO_1          ADDWF   PCL,1                 
                RETLW   'H'             
                RETLW   'O'
                RETLW   'L'           
                RETLW   'A'           
                RETLW   ' '           
                RETLW   'M'           
                RETLW   'U'           
                RETLW   'N'           
                RETLW   'D'           
                RETLW   'O'           
                RETLW    0x00           
 
;<<<<<<\\\\\\\\\\\THE\\\\\\\\\\\\\\\\////////////////END//////////////>>>>>>>   
      
      END                           

000101111 101110000011110 00010 11101 110 1 000111 00010010011010111100 101101001 11110000 001 00 10110 111 00001 01110 0010101 01011110 00 00011111111 0011111 011110001111111111 1011111111101100000000

Desconectado ascii

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 131
Re: LCD con 16f877
« Respuesta #10 en: 30 de Enero de 2007, 12:22:17 »
Para pasar tu programa al pic16f877 solo debes leer el datasheet  :mrgreen:

Desconectado BINARIO

  • PIC16
  • ***
  • Mensajes: 156
Re: LCD con 16f877
« Respuesta #11 en: 30 de Enero de 2007, 12:30:07 »
QUE APORTE SEÑOR !

111001110001110011010110010101010101010101010101011111000000000011100010100
000000000000011100000000000011000000000111111111111000011111110101101000011
000101111 101110000011110 00010 11101 110 1 000111 00010010011010111100 101101001 11110000 001 00 10110 111 00001 01110 0010101 01011110 00 00011111111 0011111 011110001111111111 1011111111101100000000

Desconectado ascii

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 131
Re: LCD con 16f877
« Respuesta #12 en: 30 de Enero de 2007, 13:07:13 »
Por lo demas no creo que haya alguien del foro que modifique tu programa al pic que pides no por lo complejo que seria si no por que pienso que de esta forma se te estaria mal acostumbrando a que todo se de en bandeja, lo cual pienso yo no es la idea del foro, No es mala onda solo es una opinion personal.

Conectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: LCD con 16f877
« Respuesta #13 en: 30 de Enero de 2007, 13:35:46 »
Coincido con ascii, no te debes molestar, pero si si se teda todo realizado, entonces nunca aprenderas y lo mejor de todo y lo que mas satisfaccion te da es realizar una cosa por ti mismo.
Lo que si hacemos todos es responder a preguntas, dudas, etc... muy concretas respecto a cualquier cosa que no entiendas y en la que estes. O no te ha gustado hecerte la rutina que has posteado.
De todas formas no es mucho lo que hay que cambiar para pasar de un micro a otro. No es necesario que te leas todo el datasheet, con ver las paginas de memoria y la siruacion de los registros SFR va a ser suficiente y veras como lo consigues.
Fermin
Todos los días se aprende algo nuevo.

Desconectado BINARIO

  • PIC16
  • ***
  • Mensajes: 156
Re: LCD con 16f877
« Respuesta #14 en: 30 de Enero de 2007, 14:51:04 »
 :-/ :-/TKZ, PERSONALMENTE CREO QUE DAR ALGUNOS EJEMPLOS AYUDA A QUE OTROS QUE DIRECTAMENTE NO TIENEN IDEA O POSIBILIDAD ALGUNA PRACTIQUEN Y SE VAYAN HACIENDO UNA IDEA, PARA APRENDER DE PIC ESTUVE MUCHO TIEMPO LEYENDO Y BUSCANDO INFORMACION NADIE PIDE LAS COSAS EN BANDEJA, SOLO TENGO LA INTENCION DE QUE EN PARTE SI ALGUIEN DESCONOCE DE UN TEMA EN EL FORO NO SE CONTESTE DE MANERA PEDANTE DICIENDO INVESTIGALO VOS, O ESTA EN EL FORO, CREO QUE MI OPINION ES CLARA Y MIENTRAS PUEDA POSTEARE LOS TEMAS QUE VAYA ENCONTRANDO O LOS PORYECTOS QUE PUEDA DESARROLLAR, CREO QUE COMPARTIR LA INFORMACION ES EL UNICO CAMINO PARA LOGRAR NUEVOS DESCUBRIMIENTOS, VOS NO LO SABES PERO TAL VEZ SI LE NEGAS UNA DATA A ALGUN FLACO QUE PREGUNTA AMABLEMENTE ESTES SACANDO DEL MEDIO A ALGUIEN QUE PODRIA LLEGAR A SER MUY BRILLANTE Y BENEFICIARNOS A TODOS YO NO EXIJO A NADIE QUE PROPORCIONE INFORMACION OBLIGATORIAMENTE CUANDO ALGUIEN INDAGUE DE UNA DUDA, PERO CREO QUE UN LINK, O UN ACLARACION AMABLE SURTE MAS EFECTO QUE UNA RESPUESTA PEDANTE Y ENGREIDA, ES MI HUMILDE OPINION Y ESPERO QUE LOS PROXIMOS POST SEAN DE APORTES MAS QUE DE REGAÑOS, DADO QUE ESTE FORO SEGUN CREO SE TRATA DE PERSONAS ADULTAS COMPARTIENDO INFORMACION, ESPERO QUE PODAMOS SEGUIR COMPARTIENDO LA INFORMACION QUE TODOS NECESITAMSO SOBRE LA MATERIA QUE NOS GUSTA.

110010101011000111110001111111111111111100101000010011111000010101010101011
011111111010111111111111111110010100001001111100001010101010101100000000001
000101111 101110000011110 00010 11101 110 1 000111 00010010011010111100 101101001 11110000 001 00 10110 111 00001 01110 0010101 01011110 00 00011111111 0011111 011110001111111111 1011111111101100000000