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

Temas similares

22/01/2012 #1

Avatar de sdtorresl

Duda asignación de pines 16F88
Hola muchach@s, buenos dias, estoy haciendo un proyecto con el pic 16F88 de microchip y estoy utilizando el compilador hitech, hago uso de un código flexible para implementar un LCD de 16x2, al principio del programa estan definidas unas directivas que especifican por donde se envían los datos al LCD de la siguiente manera:

Código:
#define	LCD_RS RA3
#define	LCD_RW RA2
#define LCD_EN RA1
#define LCD_DATA PORTB
El inconveniente que tengo es que la última definicion implica el uso de todo el puerto B (RB7:RB0) cuando solamente necesito que quede se usen los puertos RB4:RB1, ¿alguien tiene alguna idea para cambiar este define de la forma en que necesito?. De ante mano muchas gracias por su ayuda.
22/01/2012 #2

Avatar de Meta

Ponlo de uno en uno.

#define LCD_DATA1 RB1
#define LCD_DATA2 RB2
#define LCD_DATA3 RB3
#define LCD_DATA4 RB4
22/01/2012 #3

Avatar de sdtorresl

Gracias por responder Meta, el problema de ponerlo de uno en uno es que de esa misma forma tendría que asignar los pines y los datos no se asignarían simultáneamente, por ejemplo, para mandar el dato 1101 tendría que hacer algo como lo siguiente:

Código:
RB1=1;
RB2=0;
RB3=1;
RB4=1;
de esta manera, en vez de tener 0101 el el puerto de manera directa tendría algo como lo siguiente:

0001
0001
0101
1101

¿Alguna sugerencia?

Gracias por responder Meta, el problema de ponerlo de uno en uno es que de esa misma forma tendría que asignar los pines y los datos no se asignarían simultáneamente, por ejemplo, para mandar el dato 1101 tendría que hacer algo como lo siguiente:

Código:
RB1=1;
RB2=0;
RB3=1;
RB4=1;
De esta manera, en vez de tener 0101 el el puerto de manera directa tendría algo como lo siguiente:

0001
0001
0101
1101

¿Alguna sugerencia?
22/01/2012 #4

Avatar de Meta

Hola:

La otra sugerencia es ponerlo así.

Carga los datos #define LCD_DATA de esta forma.

b'xxxx1101' al #define LCD_DATA

Ya lo tienes al mismo tiempo.

Las x pueden ser 1 ó un 0.
22/01/2012 #5

Avatar de sdtorresl

En este momento el código esta de esa manera pero tiene un inconveniente, los otros puertos los necesito usar para otras tareas, por lo tanto, al colocar xxxx me interfiere con este proceso independiente. Gracias por responder
22/01/2012 #6

Avatar de Meta

Prueba como dijiste arriba y me cuenta.

Gracias por responder Meta, el problema de ponerlo de uno en uno es que de esa misma forma tendría que asignar los pines y los datos no se asignarían simultáneamente, por ejemplo, para mandar el dato 1101 tendría que hacer algo como lo siguiente:

Código:
RB1=1; RB2=0; RB3=1; RB4=1;
de esta manera, en vez de tener 0101 el el puerto de manera directa tendría algo como lo siguiente:

0001
0001
0101
1101

¿Alguna sugerencia?

Gracias por responder Meta, el problema de ponerlo de uno en uno es que de esa misma forma tendría que asignar los pines y los datos no se asignarían simultáneamente, por ejemplo, para mandar el dato 1101 tendría que hacer algo como lo siguiente:

Código:
RB1=1; RB2=0; RB3=1; RB4=1;
De esta manera, en vez de tener 0101 el el puerto de manera directa tendría algo como lo siguiente:

0001
0001
0101
1101
De la velocidad isntrucción por instrucción se queda el final.
22/01/2012 #7

Avatar de sdtorresl

Ok, lo haré a ver que sucede
Respuesta
¿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.