Anda di halaman 1dari 5

Ing. Armando A.

Cajahuaringa Camaco Pgina 1



IESTP-SENATI LABORATORIO DE CIRCUITOS ELECTRONICOS IV
LABORATORIO N 6
DISPLAY LCD
P1) Visualice el archivo de video IiJco Iutoriol 7 isploy IC 2x16 E4478u y contoJor. mp4.
Del archivo lcJ. se muestra un trozo del cdigo completo.
#define BIT_0 0X01
#define BIT_1 0X02
#define BIT_2 0X04
#define BIT_3 0X08
#define BIT_4 0X10
#define BIT_5 0X20
#define BIT_6 0X40
#define BIT_7 0X80

#define SALIDA 0
#define ENTRADA 1

#define LCD_RS_DIR_OUT TRISA&=~BIT_2
#define LCD_RW_DIR_OUT TRISA&=~BIT_1
#define LCD_E_DIR_OUT TRISA&=~BIT_0

#define LCD_RS_LOW PORTA&=~BIT_2
#define LCD_RW_LOW PORTA&=~BIT_1
#define LCD_E_LOW PORTA&=~BIT_0

#define LCD_RS_HIGH PORTA|=BIT_2
#define LCD_RW_HIGH PORTA|=BIT_1
#define LCD_E_HIGH PORTA|=BIT_0

#define LCD_PORT_DIR TRISB

#define LCD_PORT_READ PORTB
#define LCD_PORT_WRITE PORTB
a) Qu significado tiene las sentencias que van despus de #define?
b) Para TRISA=22 y PORTA=39; Cul es el resultado de TRISA= TRISA & (~BIT_0) y PORTA=
PORTA | (~BIT_0)? y para TRISA=48 y PORTA=29?
b) Cules son los valores de LCD_RS_DIR_OUT, LCD_RW_DIR_OUT y LCD_E_DIR_OUT, si TRI-
SA=240? y para TRISA=0b10101010?
c) Repita (b) pero para las variables LCD_RS_LOW, LCD_RW_LOW y LCD_E_LOW.
d) Repita (b) pero para las variables LCD_RS_HIGH, LCD_RW_ HIGH y LCD_E_ HIGH.
P2) a) Indique los nombres de las funciones que se definen en lcJ. , tipo de funcin y argu-
mentos.
b) Defina la funcin que realiza cada una de las funciones de la pate (a)
P3) LCD CON 8 BITS
a) Establezca en el archivo lcJ. , que el puerto de datos es el PORTB y que los pines de con-
trol (E, RS y RW) son del PORTA. Compilar el siguiente CODIGO 1
#include <htc.h>
#include "lcd.h" //Adicionar a la carpeta del proyecto, lcd.h y lcd.c
//Configurar numero de bits de dato, frecuencia del PIC,
//puertos que manejaran los pines de control y PORT
//de datos del PIC en ldc.h.
Ing. Armando A. Cajahuaringa Camaco Pgina 2

#define _XTAL_FREQ 10000000
// __CONFIG(INTIO & WDTDIS & MCLRDIS & LVPDIS);

void main(void)
{
lcd_init();
lcd_gotoxy(0,0);
lcd_puts("Hola Mundo!!");
while(1) {} // en lugar de {} colocar ;
}
b) Simularlo en MPLAB SIM para analizar su funcionamiento.
c) Simularlo en ISIS para verificar su funcionamiento.

P4) Repita lo anterior agregando al programa:
lcd_gotoxy(3,1);
lcd_puts("HI-TECH C");
Que funcin realiza cada sentencia anterior?
P5) LCD CON 4 BITS
a) Modifique una lnea del archivo lcd.h para usar 4 lneas de datos para mostrar caracteres
en el LCD. Denomnelo CODIGO2.
b) Simularlo en MPLAB SIM para analizar su funcionamiento.
c) Modifique el circuito en ISIS de la pregunta P1, retirando 4 lneas del puerto B, para simular
el funcionamiento con 4 bits.
Ing. Armando A. Cajahuaringa Camaco Pgina 3


P6) a) Modifique el archivo lcJ. para usar 4 lneas de datos y 3 pines de control (E, RW, RS)
del mismo puerto, para mostrar caracteres en el LCD. Denomnelo CODIGO3.
b) en ISIS, retire las lneas de control del PORTA y asgnelos a los pines del PORTB. Simule el
circuito.

P7) a) Leer el archivo de Funcion sprint. Jocx para conocer como imprimir caracteres en
lenguaje C. b) Compilar el siguiente cdigo, denominado CODIGO4,

CODIGO 4
#include <htc.h>
#include <stdio.h> // para utilizar el commando printf, sprint
#include "lcd.h"
#define _XTAL_FREQ 4000000
// __CONFIG(INTIO & WDTDIS & MCLRDIS & LVPDIS);

char mensaje[16]; //para almacenar cadena de caracteres, hasta 16
unsigned char c=0; //variable a usarse como contador

void main(void)
Ing. Armando A. Cajahuaringa Camaco Pgina 4

{
ADCON1=7; // Configura las E/S del puerto A como digitales o discretos
lcd_init();
lcd_gotoxy(0,0);
lcd_puts("Hola Mundo!!");
while(1)
{
lcd_gotoxy(0,1);
sprintf(mensaje,"Nombre Apellido"); //Coloque su nombre y apellido
lcd_puts(mensaje);
c++;
__delay_ms(500);
}
}
b) Simularlo en MPLAB SIM para analizar su funcionamiento.
c) Simularlo en ISIS para verificar su funcionamiento.
d) Cul es la funcin de sprintf(mensaje,"Nombre Apellido")?

P8) a) Repetir la pregunta anterior, agregando la siguiente lnea, en lugar del sprint()
sprintf(mensaje,"Contador =",c);
Despus de la simulacin, explique el funcionamiento de la sentencia anterior.
b) La sentencia anterior cambiarlo por:
sprintf(mensaje,"Contador = %3u",c);
Despus de la simulacin en ISIS, cul es la finalidad de %3u?
c) Pruebe otros formatos para salida de caracteres, como %d, %s, %f, %c.
P9) Visualice el archivo de video IiJco Iutoriol 8 isploy IC 2x16 E4478u con 6ilos y AC. mp4 e
implemente una librera para manejar un LCD con 6 hilos (4 de datos y 2 de control)
a) Qu cambios se deben de realizar en lcJ. para implementar lcJ_6ilos. ?
Ing. Armando A. Cajahuaringa Camaco Pgina 5

b) Use lcJ_6ilos. para los ejemplos anteriores, para verificar su uso.
P10) LCD CON 3 BITS
a) Del anterior archivo visualizado, Qu cambios se realizara para manejar al lcd con 3 hilos?
Se requiere solo software?
b) Con los cambios realizados a lcJ. se tiene lcJ_cJ4u94. . Repita los ejercicios anteriores
con esta librera, para verificar la escritura en el LCD.

Anda mungkin juga menyukai