Duda asignación de pines 16F88

#1
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.
 
#2
Ponlo de uno en uno.

#define LCD_DATA1 RB1
#define LCD_DATA2 RB2
#define LCD_DATA3 RB3
#define LCD_DATA4 RB4
 
#3
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?
 
#4
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.
 
#5
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 :)
 
#6
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.
 

Temas similares

Arriba