Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

23/12/2010 #121


Hola unikifriend! Pues no quise dejar todo el planteamiento del proyecto porque tampoco es una cosa muy sofisticada, aunque no por eso no significa que tenga ciertas dudas, porque empecé ayer a realizar el proyecto y al princpio siempre cuesta estructurarlo. Se trata de diseñar un sistema electrónico que controle la depuración y temperatura de una piscina climatizada, y hemos de programar las horas de encendido y apagado de la depuradora y los valores de temperatura y turbidez, así como la concentración de cloro del agua. No se nos exige un tiempo de calentamiento del agua, y tampoco se nos indica cuántos litros hemos de llenar. Sí he de decirte que una de las mejoras del proyecto es añadir un control de llenado de la piscina, con un sensor de medida del nivel de agua y la actuación sobre una electroválvula de entrada de agua, aunque esto no sé cómo puedo hacerlo (y tampoco me he parado aún a pensarlo, prefiero hacer las cosas obligatorias). Entonces por eso pregunté por cómo hacer el calentamiento del agua de la piscina (no importa escoger una forma más lenta o menos optimizada, puesto que no tenemos un tiempo límite). Espero haberme explicado bien.

Un saludo y gracias por tus respuestas!
23/12/2010 #122

Avatar de Unikfriend

Hola de nuevo davilillo;

Pues un dato muy importante es el volumen de agua y el otro es la temperatura maxima a la que deseas calentarlo. Sin esos datos va ser muy dificil que se seleccione la opción más optima.

Cuando hablabas de calentar el agua en tu anterior post yo estaba imaginandome un cafetera jijiji o casi un calentador de agua para la ducha... no hubiera pensado que se trataba de una piscina.

y este proyecto es propio o de tu licenciatura?

23/12/2010 #123

Avatar de duile

lcd c215
Unikfriend dijo: Ver Mensaje
Duile, tienes los datos del display resolution y bits de color?
en la lcd dice
(PARTE ODM, 3330500083 MDL LCD)
(Mfg P / N 3330500083)
resolución de (65x96 píxeles)
tiene 22 pines
pero no necesito saber para que sirven cada pins
04/01/2011 #124

Avatar de Unikfriend

Hi Duile!...
Con solo este numero va hacer difícil encontrar la spcecs, debido a que es un componente ODM. El Display tiene circuitos integrados? El controlador debe tener la marcar del manufacter como Toshiba, Seiko o Epson.
15/01/2011 #125


No arranco lcd con pic 18f4550
hola foreros, que tal?? estoy realizando un proyecto para el instituto, y estoy haciendo un termómetro, y quiero mostrar la temperatura en el lcd. Pues bien, de momento solo veo la linea de arriba, la del contraste, y no se exactamente si le llegan datos al lcd,creo que si... entonces pongo mi programa a continuacion para ver si me podéis echar una mano y lográis ver algo que pueda modificar.
Cuando pruebo el lcd aun no le conecto el sensor de temperatura lm35, y he probado otros programillas en plan mostrar un "hola mundo" y nada. MXAS GRACIAS


#include <18f4550.h>
#device adc =16
#fuses XTPLL,noMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV, PLL3,CPUDIV1,NOVREGEN,INTRC_IO
#use delay(clock=12000000)
#use standard_io(A)
#use standard_io(B)
#use standard_io(C)
#use standard_io(D)
#include <lcd.c>

void main()
{
long vtem=0;
int temp=0; //temperatura a mostrar en grados.

//setup_oscillator(OSC_4MHZ);
lcd_init();
setup_adc_ports(AN0||VSS_VDD); //Se configura el CAD.
setup_adc(ADC_CLOCK_INTERNAL);
//setup_counters(RTCC_INTERNAL,RTCC_DIV_2); //TIMER0: Clock Interno y Preescaler
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
setup_oscillator(False);

while (TRUE)
{

set_adc_channel(0); //seleccion de canal cad.
vtem=read_adc(); //Se carga variable con el valor del cad.
temp=(vtem*5)/655.35; //Formula Para pasar de decimal a grados.


//printf(lcd_putc,"\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"vtem= %ld",vtem);
delay_ms(50);
lcd_gotoxy(1,2);
printf(lcd_putc,"TEMP: %d",temp);
delay_ms(50);
//delay_ms(6000);

}
}
16/01/2011 #126

Avatar de duile

Unikfriend dijo: Ver Mensaje
Hi Duile!...
Con solo este numero va hacer difícil encontrar la spcecs, debido a que es un componente ODM. El Display tiene circuitos integrados? El controlador debe tener la marcar del manufacter como Toshiba, Seiko o Epson.
consegui otra LCD que en la parte de atras dice
WD-X0908W
Career F15a94V-0
20/01/2011 #127


Amig@s quisiera me puedan echar una mano con lo siguiente..

Tengo un pic 16F887 y una LCD

Lo que deseo es mostrar el mensaje "Hola Mundo" en la LCD, al simular en proteus funciona con errores y en proto no veo nada pero el LCD está encendido mostrando cuadritos..

La LCD está conectada al puerto D y con comunicación de 4 bits

En Proteus:
[IMG][/IMG]

En protoboard tengo las siguientes conexiones:
[IMG][/IMG]

El código es el siguiente y agradeceré me puedan explicar lo que marque con "¿?"
Estoy usando CCS y compila perfecto..

#include <16f887.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay (clock=4000000)
#use fast_io(b) //¿?
#use fast_io(c) //¿?
#INCLUDE "lcd.c"

void lcd_saludo_inicial(void);

void main(void) {

#byte PORTB=0xF81 //¿?
#byte PORTC=0xF82 //¿?
#byte PORTD=0xF82 //¿?

lcd_init();
lcd_saludo_inicial();
}

void lcd_saludo_inicial(void) {
Lcd_putc ("Hola Mundo"); //Escribo en la primera fila
delay_ms(2000); //Espero dos segundos
lcd_gotoxy(4,2); //columna 4, fila 2
Lcd_putc( "hi word..¡¡"); //Escribo en la segunda fila

}

Creo que mi problema está por el lado de hardware..
20/01/2011 #128

Avatar de COSMICO

colocaste en el protoboard, un reostato para ajustar el contraste
Entre el pin vee- tierra y 5volts?
21/01/2011 #129


mm nop.. ahora voy a probar aquello..( hoy logré encontrar uno de 10K)

lo que si he probado:

a) En LCD: Pin 16 a tierra; pin 15 a R=330Ω y luego Vcc, con Vee a GND
Muestra LCD azul, pero con cuadritos..

b) En LCD: Pin 16 a tierra; pin 15 a R=330Ω y luego Vcc, con Vee a R=1KΩ (o de 330Ω) y luego Vcc (5v)
Muestra LCD muy azul y sin cuadritos..

He probado con el potenciometro..
Con el potenciometro, puedo lograr llegar de LCD completamente azul a LCD con cuadritos y viceversa.. pero no he logrado ver el mensaje..

Continuando con la busqueda
Llave electrónica --> PIC 16f877

Creo que el problema es de conexiones y no logro ver donde esta..
21/01/2011 #130

Avatar de COSMICO

El tap central del pote al pin 3 del lcd
los extremos del pote, una a vss y el otro a vdd
mover el pote hasta encontrar el punto optimo
El pin 15 y 16, son para la luz de respaldo del lcd..
revisa que las conexiones de los pines 4,5y 6, esten bien con respecto a los pines del pic.
21/01/2011 #131


COSMICO, primero gracias por tu tiempo e idea..

pero puff¡¡ potenciometro está conectado a pin3 desde tap central y si, puedo regular bien la intensidad..

por el lado de las conexiones, diablos, creo tener todo correcto, he vuelto a revisar.. también continuidad pin por pin..

en LCD pin1 a GND común con pic
en LCD pin2 a Vcc común con pic
en LCD pin3 a tap central de potenciometro
en LCD pin4 a pic en puerto D1 del pic
en LCD pin5 a pic en puerto D2
en LCD pin6 a pic en puerto D0 del pic
en LCD pin11 a pic en puerto D4 del pic
en LCD pin12 a pic en puerto D5 del pic
en LCD pin13 a pic en puerto D6 del pic
en LCD pin14 a pic en puerto D7 del pic

en LCD pin15 a R=330 y luego a Vcc
en LCD pin16 a GND

ahora estoy culpando al oscilador.. aquí tengo dudas de nuevo..
el cristal que estoy utilizando es de 4Mhz mm voy a ver si logro entender como utilizar el oscilador interno.. para descartar eso..

puff.. quizás por eso me gusta la electrónica.. finalmente era un tontera..

Me preocupe tanto del LCD, que al PIC no le llegaba Vcc o le llegaba pero con mal contacto, arme todo de nuevo y..

puedo ver:

Primera línea "Hola Mundo"

luego de unos segundo y en segunda línea "Hi Word"
21/01/2011 #132

Avatar de COSMICO

Ok me alegra
06/02/2011 #133


Alguien ha usado PORTA en su totalidad para controlar el LCD? Yo lo he intentando con el pic16f628a y no puedo, desactive los comparadores, lo declaré como salida PORTA y nada. Adjunto el código por si ven algun detalle. Estoy usando mikroc.
Código:
void main() {
  CMCON = 0x07;
  TRISA = 0;
  Lcd_Config(&PORTA,0,1,2,7,6,4,3);
  Lcd_Init (&PORTA);
  Lcd_Cmd(Lcd_CLEAR);
  Lcd_Cmd(Lcd_CURSOR_OFF);
  Lcd_Out(1,1,"Lvcios Informatico");
}
Si ese mismo código lo usamos pero con PORTB y quitando el CMCON funciona de maravilla ¬¬
15/02/2011 #134

Avatar de dukex

Lvcios dijo: Ver Mensaje
Alguien ha usado PORTA en su totalidad para controlar el LCD? Yo lo he intentando con el pic16f628a y no puedo, desactive los comparadores, lo declaré como salida PORTA y nada. Adjunto el código por si ven algun detalle. Estoy usando mikroc.
Código:
void main() {
  CMCON = 0x07;
  TRISA = 0;
  Lcd_Config(&PORTA,0,1,2,7,6,4,3);
  Lcd_Init (&PORTA);
  Lcd_Cmd(Lcd_CLEAR);
  Lcd_Cmd(Lcd_CURSOR_OFF);
  Lcd_Out(1,1,"Lvcios Informatico");
}
Si ese mismo código lo usamos pero con PORTB y quitando el CMCON funciona de maravilla ¬¬
ya revizaste las funciones del PORTA?? que este bien configurado el puerto??

saludos.
17/02/2011 #135

Avatar de banistelrroy

Hola a todos en el foro muchas gracias por las dudas que son despejadas a muchos de los integrantes de este foro pues aquí les traigo un resulta que tome un ejemplo de manejo del LCD del libro de Micro controladores Pic Basic - Carlos A Reyes que trabaja con el PIC16F628A y he realizado el ejemplo en el cual he adjuntado en libro explica detalladamente de cómo realizarlo pero al simularlo en proteus no funciona.
Algo importante este programa no configura los bits pertenecientes al LCD pues se dice que cuando no especificas la configuración este lo programa por defecto y el lcd lo reconoce como si estuviera conectado por defecto quedando asi :
BITS DEL LCD A0----A3/PROPORCIONALMENTE /D4…..D7 RS: A4 RW:GND E:RB3
Invoco a los miembros de este foro para solucionar este incoveniente
anexo la simulacion en proteus
20/02/2011 #136


tiopepe123 dijo: Ver Mensaje
Te repito lo mismo, haz la rutina leeeenta, asegurate que tanto el nivel alto como el bajo sea leeento.
Hasta que no consigas que se iluminen las dos filas no habras inicializado correctamente la lcd.


Despues ya subiras de vueltas...
Hola, tambien soy nuevo por aqui, resulta que el lcd no esta mostrando claramente los mensajes desde la izquierda hasta la mitad, de la mitad a la derecha los muestra bien, cuando muevo las conexiones para vrificar si esta haciendo buen contacto, se enciende la primera fila completa como si estubiera bueno el lcd, pero no se que le pasa, todo esta bien, la velocidad, las conexiones y no se, porque cuando probe por primera vez el lcd funciono perfecto, muchas gracias!
22/02/2011 #137


Como hago para seleccionar modo 4 bits o 8 bits en ccs?
22/02/2011 #138


tengo una duda mas, cuando voy a introducir varios mensajes, uno tras otro, en diferentes partes del programa, se me borra los anteriores o no salen bien, hablo del lcd, por ejemplo si escribo "mikroelctronica" y luego escribo otras palabras las siguientes no me aparecen bien, o estas se daña, sin haber aparecido, sera un problema de memoria como lo puedo solucionar?
06/03/2011 #139


MaMu dijo: Ver Mensaje

Rutinas con PIC micro

Aqui en este thread he apartado las rutinas y esquemas necesarios para el manejo de dispositivos tipicos en el area digital, y muy utilizado en el ámbito de la Domotica.

Display LCD 2x16 - (tipo Hitachi)


Descripción:

La pantalla de cristal liquido o LCD (Liquid Crystal Display) es un dispositivo µControlado de visualización grafico para la presentación de caracteres, símbolos o incluso dibujos (en algunos modelos), es este caso



dispone de 2 filas de 16 caracteres cada una y cada carácter dispone de una matriz de 5x7 puntos (pixels), aunque los hay de otro número de filas y caracteres. Este dispositivo esta gobernado internamente por un microcontrolador Hitachi 44780 y regula todos los parámetros de presentación, este modelo es el mas comúnmente usado y esta información se basará en el manejo de este u otro LCD compatible.

Caracteristicas principales:

-Pantalla de caracteres ASCII, además de los caracteres Kanji y Griegos.
-Desplazamiento de los caracteres hacia la izquierda o la derecha.
-Proporciona la dirección de la posición absoluta o relativa del caracter.
-Memoria de 40 caracteres por línea de pantalla.
-Movimiento del cursor y cambio de su aspecto.
-Permite que el usuario pueda programar 8 caracteres.
-Conexión a un procesador usando un interfaz de 4 u 8 bits

Funcionamiento:

Para comunicarse con la pantalla LCD podemos hacerlo por medio de sus patitas de entrada de dos maneras posibles, con bus de 4 bits o con bus de 8 bits, este ultimo es el que explicare y la rutina también será para este. En la siguiente figura vemos las dos maneras posibles de conexionar el LCD con un pic16F84.

Conexionado con bus de 4 bits


Conexionado con bus de 8 bits


Como puede apreciarse el control de contraste se realiza al dividir la alimentación de 5V con una resistencia variable de 10K.

Las líneas de datos son triestado, esto indica que cuando el LCD no esta habilitado sus entradas y salidas pasan a alta impedancia.

Descripción de pines:

PIN Nº SIMBOLO DESCRIPCION
1 Vss Tierra de alimentación GND
2 Vdd Alimentación de +5V CC
3 Vo Contraste del cristal liquido. ( 0 a +5V )
4 RS Selección del registro de control/registro de datos:

RS=0 Selección registro de control

RS=1 Selección registro de datos

5 R/W Señal de lectura/escritura:

R/W=0 Escritura (Write)

R/W=1 Lectura (Read)

6 E Habilitación del modulo:

E=0 Módulo desconectado

E=1 Módulo conectado

7-14 D0-D7 Bus de datos bidireccional.

JUEGOS DE INSTRUCCIONES:

Estas son las instrucciones para el control del modulo LCD

Hitachi 44780 o compatible

CLEAR DISPLAY

Borra el módulo LCD y coloca el cursor en la primera posición

(dirección 0). Pone el bit I/D a 1 por defecto.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 0 0 1

Tiempo de ejecución: 1.64mS

HOME

Coloca el cursor en la posición de inicio (dirección 0) y hace que el display comience a desplazarse desde la posición original. El contenido de la memoria RAM de datos de visualización (DD RAM) permanece invariable. La dirección de la memoria RAM de datos para la visualización (DD RAM) es puesta a 0.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 0 1 X

Tiempo de ejecución: 1.64mS


ENTRY MODE SET

Establece la dirección de movimiento del cursor y especifica si la visualización se va desplazando a la siguiente posición de la pantalla o no. Estas operaciones se ejecutan durante la lectura o escritura de la DD RAM o CG RAM. Para visualizar normalmente poner el bit S=0.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 1 I/D S

Tiempo de ejecución: 40µS


DISPLAY ON/OFF CONTROL

Activa o desactiva poniendo en ON/OFF tanto al display (D) como al cursor (C) y se establece si este último debe o no parpadear (B).

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 1 D C B

Tiempo de ejecución: 40µS


CURSOR OR DISPLAY SHIFT

Mueve el cursor y desplaza el display sin cambiar el contenido de la memoria de datos de visualización DD RAM.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 1 S/C R/L X X

Tiempo de ejecución: 40µS


FUNCTION SET

Establece el tamaño de interfase con el bus de datos (DL), número de líneas del display (N) y tipo de carácter (F)

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 DL N F X X

Tiempo de ejecución: 40µS


SET THE CG RAM ADDRESS

El módulo LCD además de tener definidos todo el conjunto de caracteres ASCII, permite al usuario definir 4 u 8 caracteres gráficos. La composición de estos caracteres se va guardando en una memoria llamada CG RAM con capacidad para 64 bytes. Cada carácter gráfico definido por el usuario se compone de 16 u 8 bytes que se almacenan en sucesivas posiciones de la CG RAM.

Mediante esta instrucción se establece la dirección de memoria CG RAM a partir de la cual se irán almacenando los bytes que definen un carácter gráfico. Ejecutando este comando todos los datos que se lean o escriban posteriormente, lo hacen desde esta memoria CG RAM.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 1 Dirección de la CG RAM

Tiempo de ejecución: 40µS


SET THE DD RAM ADDRESS

Los caracteres o datos que se van visualizando, se van almacenando en una memoria llamada DD RAM para de aquí pasar a la pantalla.

Mediante esta instrucción se establece la dirección de la memoria

DD RAM a partir de la cual se irán almacenando los datos a visualizar. Ejecutando este comando, todos los datos que se escriban o lean posteriormente lo harán desde esta memoria DD RAM. Las direcciones de la 80h a la 8Fh corresponden con los 16 caracteres del primer renglón y de la C0h a la CFh con los 16 caracteres del segundo renglón, para este modelo de LCD.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 1 Dirección de la DD RAM

Tiempo de ejecución: 40µS


READ BUSY FLAG & ADDRESS

Cuando el modulo LCD esta ejecutando cualquiera de estas instrucciones, tarda un cierto tiempo de ejecución en el que no se debe mandar ninguna instrucción. Para ello dispone de un flag llamado BUSY (ocupado) que indica que se está ejecutando una instrucción previa.

Esta instrucción de lectura informaciónrma del estado de dicho flag además de proporcionar el valor del contador de direcciones de la CG RAM o de la DD RAM según la última que se haya empleado.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 1 BF Dirección de la CG RAM o DD RAM

Tiempo de ejecución: 40µS


WRITE DATA TO GG OR DD RAM

Mediante este comando se escribe en la memoria DD RAM los datos que se quieren presentar en pantalla y que serán los diferentes códigos ASCII de los caracteres a visualizar.

Igualmente se escribe en la memoria CG RAM los diferentes bytes que permiten confeccionar caracteres gráficos a gusto del usuario.

El escribir en uno u otro tipo de memoria depende de si se ha empleado previamente la instrucción de direccionamiento DD RAM o la de direccionamiento CG RAM.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1 0 Código ASCII o byte del carácter gráfico

Tiempo de ejecución: 40µS


READ DATA FROM CG RAM OR DD RAM

Mediante este comando se lee de la memoria DD RAM los datos que haya almacenados y que serán los códigos ASCII de los caracteres almacenados.

Igualmente se lee de la memoria CG RAM los diferentes bytes con los que se ha confeccionado un determinado carácter gráfico.

El leer de uno u otro tipo de memoria depende de si se ha empleado previamente la instrucción de direccionamiento de la DD RAM o la de direccionamiento CG RAM.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1 1 Código ASCII o byte del carácter gráfico

Tiempo de ejecución: 40µS

ABREVIATURAS

Abreviaturas empleadas en los códigos anteriores:

S 1 - Desplaza la visualización cada vez que se escribe un dato

0 - Modo normal

I/D 1 - Incremento del cursor

0 - Decremento del cursor

S/C 1 - Desplaza el display

0 - Mueve el cursor

R/L 1 - Desplazamiento a la derecha

0 - Desplazamiento a la izquierda

BF 1 - Módulo ocupado

0 - Módulo disponible

DL 1 - Bus de datos de 8 bits

0 - Bus de datos de 4 bits

N 1 - LCD de dos líneas

0 - LCD de una línea

F 1 - Carácter de 5 x 10 puntos

0 - Carácter de 5 x 7 puntos

B 1 - Parpadeo del cursor ON

0 - Parpadeo del cursor OFF

C 1 - Cursor ON

0 - Cursor OFF

D 1 - Display ON

0 - Display OFF

X Indeterminado

Juego de caracteres:



Descripción: La siguiente librería básica de rutinas es para controlar un LCD Hitachi 44780 o compatible.

Los datos o comandos a enviar al LCD los meteremos en el acumulador W antes de hacer la llamada a cualquiera de las rutinas siguientes.

LCD_E Genera un pulso de 1µS por PORTB,2 patita 6 (Enable) del LCD. Si se usa una velocidad de micro diferente de 4MHz habrá que ajustar este tiempo.
LCD_BUSY Chequea si el LCD esta ocupado (BUSY) y retorna de la rutina cuando ya no lo este.
LCD_REG Pone al LCD en modo de recibir comandos , espera a que no este ocupado y va a LCD_E.
LCD_DATOS Pone el LCD en modo datos y manda el byte presente en W que será mostrado en pantalla.
LCD_INI Inicializacion del modulo LCD segun los tiempo marcados por el fabricante. Bus de 8 bits, 2 lineas de visualizacion y caracteres de 5 x 7 puntos.
LCD_PORT Configura los puertos del PIC para ser usados con el LCD.

Rutina

LCD 2x16
LCD.LIB

Ejemplo:

El siguiente ejemplo muestra lo fácil que es manejar un LCD. Lo que hace básicamente es configurar el LCD, los puertos del PIC y luego mandar los datos según los va cogiendo de la tabla de datos, para mostrar en el LCD la típica frase "HOLA MUNDO".

;<<<<<<----------------- 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...)
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

Ejemplo "Hola Mundo"
HOLA.ASM

Nota: Esta rutina solo funciona correctamente con LCD's rápidos, osea los que son un poco mas caros jejej, esto lo descubrió Taiteki que fue uno de los que la probaron y les falló, la solución consiste en usar un LCD bueno o meter delays entre cada llamada a la rutina del LCD. espero que no tengáis muchos problemas con ella. Suerte.

Cortesía : x-robotics.
le agradeceria si me envia una lista con los implementos necesarios a correo velez450@etb.net.co
02/04/2011 #140


No entiendooooooooo
HOLA A TODOS DEL FORO, NECESITO AYUDA YO TAMBIEN CON LAS LIBRERIAS DE LCD EN PIC CCS NO ENTIENDO COMO DEVO CAMBIAR LOS PINES DEL LCD.

TENGO ESTE PROGRAMA Y QUIERO USARLO EN MI ENTRNADORA PERO NO PUEDO CONFIGURAR EL ARCHIVO DE LIBRERIA
SE LOS PASO PARA QUIEN ME PUEDA AYUDAR.


ESTE ES EL MANUAL DE MI ENTRENADORA

Configuracion de LCD a 4 BITs

RB0 a RB3 datos
RB4 RS
RB5 rw
RB6 E

Todo el ( Puerto B ) ademas de ser configurado directamente a LCD contiene disponibles
de manera paralela a los LEDs desde RB0 a RB7.

Los leds estan seteados en dos partes RB0 a RB3 y RB4 a RB7 a negativo, por un jumper que puede ser levantado para disponer del HEADER y usar un protoboard externo, como entradas etc, independientemente.

Los pulsadores RA0 a RA3 contienen una resitencia pull up de 4k7 y capacitores de .1 para eliminar ruidos.

Las resistencias de los pulsadores RA0 y RA1 estan eliminadas opcionalemnte de fabrica de manera que al colocar los PRESET analogicos para desarrollar aplicaciones analogicas no compliquen su uso, de manera
que si se requiere tener estos pull up se alojan los presets en el centro, para poder usar digitalmente las entradas, si no fuere asi dispone de RA0 y RA1 normalmente para conversiones analogas en PICs como los 16F818.

El reloj de tiempo real a 32khz esta directamente conectado a la linea de 28 y 40 dip para su uso.

La memoria Serial 24LC256 esta conectada directamente a la linea de 28 y 40 dip por SCK y SDK de esta linea de PIC.

El Max232 esta comunicado directamente a las señales RX y TX para la linea 28 y 40 DIP.

El reset es general para todas las lineas desde 18 a 40 dip.

El cristal general des de 4mhz.

El buzzer y o led PWM esta conectado y seteado segun se elija uno u otro por jumper a PWM RC2.

El sensor de temperatura es del tipo TC74 RC4 y RC3

La programacion puede ser via ISCP por RJ o por Header lineal.

La alimentacion puede ser por batteria 9v.

La alimentacion maxima 12v 500 ma.


TODOS LOS ZOCALOS PARA PIC DESDE 18, 28 Y 40 DIP, ESTAN COMUNICADOS DE MANERA PARALELA CON SUS CORRESPONDIENTES PORTS DE MANERA DE PODER USAR Y EMIGRAR DE MICRO SIN PROBLEMAS.
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.