Practica #4 Lcd y Glcd

23
1 UNIVERSIDAD POLITÉCNICA SALESIANA INGENIERÍA ELECTRÓNICA SISTEMAS MICROPROCESADOS INFORME PRÁCTICA No- 4 CON PIC’S Tema: “DISPLAY ALFANUMÉRICOS Y GRÁFICOS” Integrantes: Acosta Geovanny Cañaveral Darío González Naty

Transcript of Practica #4 Lcd y Glcd

Page 1: Practica #4 Lcd y Glcd

1

UNIVERSIDAD POLITÉCNICA SALESIANA

INGENIERÍA ELECTRÓNICA

SISTEMAS MICROPROCESADOS

INFORME PRÁCTICA No- 4 CON PIC’S

Tema: “DISPLAY

ALFANUMÉRICOS Y GRÁFICOS”

Integrantes: Acosta Geovanny Cañaveral Darío

González Naty

Page 2: Practica #4 Lcd y Glcd

2

PRACTICA 4 CON PIC’S

DISPLAY ALFANUMÉRICOS Y GRÁFICOS. Objetivo: UTILIZAR CON EL MICROCONTROLADOR PIC DISPLAYS ALFANUMÉRICOS Y GRÁFICOS. Problema 4.1.- Escribir la sentencia Hola e Ingeniería Electrónica en un display. Entradas: Palabras hacia el LCD 16X2 Proceso: Configuro los pines del puerto B como salida Configuro los registros internos del LCD Escribo en el LCD “HOLA” Retardo Borro y limpio el LCD Escribo en el LCD “INGENIERIA ELECTRONICA” Retardo

Salidas: Escribir en el LCD “HOLA” e “INGENIERIA ELECTRONICA”.

Page 3: Practica #4 Lcd y Glcd

3

INICIO

El PortB configuramos como salidas del circuito

Configuro los registros del LCD

Escribo: HOLA

Borro y limpio el LCD

Escribo: INGENIERIA ELECTRONICA

Retardo de 200ms

SALIDA

DIAGRAMA DE FLUJO:

CÓDIGO: program practica41mk main: Lcd_config(portb,7,6,5,4,portb,0,1,2) Lcd_out(1,1,”HOLA”) Delay_ms(2000) Lcd_cmd(Lcd_clear) Lcd_out(1,1,”INGENIERIA”) Lcd_out(2,1,”ELECTRONICA”) end.

Page 4: Practica #4 Lcd y Glcd

4

ESQUEMÁTICO:

FOTOS:

Page 5: Practica #4 Lcd y Glcd

5

PROBLEMA 4.2.- Elabore un programa para que aparezca los nombres de cada un@ de l@s integrantes del grupo por 3 segundos. Entradas: Palabras hacia el LCD 16X2 Proceso: Configuro los pines del puerto B como salida Configuro los registros internos del LCD Escribo en el LCD “GEOVANNY ACOSTA” Retardo Borro y limpio el LCD Escribo en el LCD “DARIO CANAVERAL” Retardo Borro y limpio el LCD Escribo en el LCD “NATY GONZALEZ” Retardo Borro y limpio el LCD Fin del programa

Salidas:

Escribir en el LCD “GEOVANNY ACOSTA” “DARIO CANAVERAL” “NATY GONZALEZ”

Page 6: Practica #4 Lcd y Glcd

6

DIAGRAMA DE FLUJO:

INICIO

El PortB configuramos como salidas del circuito

Escribo: GEOVANNY ACOSTA

Retardo

Borro y limpio el LCD

Escribo: DARIO CANAVERAL

Salida

Configuro los registros del LCD

Retardo

Borro y limpio el LCD

Escribo: NATY GONZALEZ

Page 7: Practica #4 Lcd y Glcd

7

CÓDIGO:

program practica42mk

main: Lazo: Lcd_config(portb,7,6,5,4,portb,0,1,2) Lcd_out(1,1, "GEOVANNY") Lcd_out(2,1, "ACOSTA”) delay_ms(300) Lcd_cmd(lcd_clear) Lcd_out(1,1, "DARIO") Lcd_out(2,1, "CANAVERAL") delay_ms(300) Lcd_cmd(lcd_clear) Lcd_out(1,1, "NATY") Lcd_out(2,1, "GONZALEZ") end. ESQUEMÁTICO:

Page 8: Practica #4 Lcd y Glcd

8

FOTOS:

Page 9: Practica #4 Lcd y Glcd

9

EJERCICIO 4.3.- Elabore un programa para que se observe un contador ascendente, cuyo valor se observa en un display 16X2, con un intervalo de tiempo entre cada valor de 2 segundos. Utilice el esquema del numeral uno Entradas: Palabras hacia el LCD Proceso:

Declaro una variable A tipo byte Declaro una variable X tipo String[6] Configuro el del puerto B como salida Configuro los registros del LCD Apago el cursor Utilizo comando while Comparo A=A+1 Asigno a la cadena de caracteres un número Escribe en la posición indicada el número Retardo Fin del programa

Salidas: Escribir en el LCD el valor de un número ascendente.

Page 10: Practica #4 Lcd y Glcd

10

INICIO

Dim A as byte

Wordtostr(A,X)

Limpio el LCD

Visualizo el número es decir el valor X en el LCD

Dim X as String[6]

Configuro el puerto B como salida

Apago el cursor

Comparación A=a+1

Retardo

Salida

DIAGRAMA DE FLUJO:

SI

NO

Page 11: Practica #4 Lcd y Glcd

11

CÓDIGO:

program practica43mk DIM A AS byte DIM X AS STRING [6] main: trisb=0 Lcd_config(portb,7,6,5,4,portb,0,1,2) Lcd_cmd(lcd_cursor_off) WHILE TRUE A=A+1 WORDTOSTR(A,X) Lcd_cmd(lcd_clear) Lcd_out(1,1,X) delay_ms(2000) WEND end.

ESQUEMÁTICO:

Page 12: Practica #4 Lcd y Glcd

12

FOTOS:

Page 13: Practica #4 Lcd y Glcd

13

Problema 4.4.- Utilice el temporizador 1 del 16f877a, para crear un contador por señal externa, muestre el valor en un display, la señal del reloj se genera mediante un pulsante externo, realice los ajustes necesarios al esquema del numeral uno.

Entradas: Palabras hacia el LCD Proceso: Declaro una variable A tipo byte Declaro una variable X tipo String[6] Configuro el del puerto B como salida Configuro el del puerto A como entrada Configuró el registro option_reg Configuro el registro Intcon Configuro los registros internos del LCD Apago el cursor Utilizo comando while Comparación A=A+1 Asigno a la cadena de caracteres un número Escribe en la posición indicada el número Retardo de 2000 ms Limpio el LCD

Salidas: Escribir en el LCD el valor de un número que se genera mediante un pulsador externo.

Page 14: Practica #4 Lcd y Glcd

14

INICIO

Dim A as byte

Wordtostr(A,X)

Limpio el LCD

Visualizo el número es decir el valor X en el LCD

Dim X as String[6]

Configuro el puerto B como salida

Apago el cursor

A=TMR0

Retardo

trisA=$ff y trisB=$0

Option_reg=%10100001 Intcon=$0 y TMR0=0

Salida

DIAGRAMA DE FLUJO:

NO SI

Page 15: Practica #4 Lcd y Glcd

15

CÓDIGO: program practica44mk DIM A AS byte DIM X AS STRING [6] main: TRISA=$FF TRISB=$0 option_reg=%10100001 Intcon=$0 TMR0=0 Lcd_config(portb,7,6,5,4,portb,0,1,2) lcd_cmd(lcd_cursor_off) WHILE TRUE A=TMR0 WORDTOSTR(A,X) lcd_cmd(lcd_clear) LCD_OUT(2,1,X) delay_ms(2000) WEND end. ESQUEMÁTICO:

Page 16: Practica #4 Lcd y Glcd

16

FOTOS:

Page 17: Practica #4 Lcd y Glcd

17

Ejercicio 4.5.- Programa de ejemplo para el uso de display gráfico, solo para la familia 18fXX. Entradas: Datos hacia el GLCD Proceso: Declaro la variable la variable j y k tipo byte Inicializo el control del GLCD y los pines del Puerto B especificados Defino la fuente de las rutinas de texto para la visualización del mismo Muestro la imagen de mapa de bits en el GLCD. Retardo de 4000 ms Limpio la pantalla del GLCD Defino la fuente de las rutinas de texto para la visualización del mismo Retardo, de de 4000 ms Imprime el Texto en la posición indicada Inicializo el valor del centro del circulo en j=4 Comparación while j<31; entonces dibujo el circulo en la posición indicada Al radio inicial se aumenta 4 cada vez. Retardo de 4000 ms Limpio la pantalla del GLCD Dibujo Rectángulos Retardo de 4000 ms Limpio la Pantalla del GLCD Dibujo Líneas Retardo de 4000 ms

Salidas: Observamos en el GLCD los gráficos programados, círculos, líneas, rectángulos, y el loco de micro Basic.

Page 18: Practica #4 Lcd y Glcd

18

DIAGRAMA DE FLUJOS:

Page 19: Practica #4 Lcd y Glcd

19

CODIGO: program practica45mk include "my_images" 'libreria de imagenes microbasic dim j,k as byte main: Glcd_Init(portb,0,1,2,3,4,5,portd) do Glcd_Set_Font(@FontSystem5x8,5,8,32) Glcd_Image(mikro_logo_bmp) delay_ms(1000) 'draw circles Glcd_Fill(0) 'clear screen Glcd_Set_Font(@FontSystem5x8,5,8,32) delay_ms(1000) Glcd_Write_Text("CIRCULOS",0,0,1) j=4 while j<31 Glcd_Circle(63,31,j,2) j=j+4 wend delay_ms(1000) 'draw boxes Glcd_Fill(0) 'clear screen Glcd_Set_Font(@FontSystem5x8,5,8,32) Glcd_Write_Text("RECTANGULOS",0,0,1) delay_ms(1000) Glcd_Fill(0) j=0 while j<31 Glcd_Box(j,0,j+20,j+25,2) j=j+4 wend delay_ms(1000) Glcd_Fill(0) 'clear screen Glcd_Set_Font(@FontSystem5x8,5,8,32) Glcd_Write_Text("LINEAS",0,0,1) delay_ms(1000) Glcd_Fill(0) for j=0 to 15 k=j*4+3 Glcd_Line(0,0,127,k,2) next j for j=0 to 31 k=j*4+3 Glcd_Line(0,63,k,0,2)

Page 20: Practica #4 Lcd y Glcd

20

next j delay_ms(1000) loop until FALSE end. module My_images ' ------------------------------------------------------ ' GLCD Picture name: mikro_logo.bmp ' GLCD Model: KS0108 128x64 ' ------------------------------------------------------ const mikro_logo_bmp as byte[1024] = ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,224,112,176,176,176,176,176,176,176,176, 176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176, 176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176, 176,176,176,176,176,176,176,176,176, 96,224,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0,255,255,255, 3, 35, 49, 49, 49, 49, 49, 49, 49, 51, 3,199,255,127, 31, 31, 15, 7, 7, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 7, 7, 15, 15, 31,127,255,255,255,255,255,255, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0,255,255,255, 7, 6, 6, 14, 30, 30, 30, 30, 30,254,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,255,255,255,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,255,255,255,255, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0,255,255,255, 17, 51, 3, 3, 15, 7, 3, 3, 17,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,129,129,129,128,128,128,128,128,128,128,128, 128,128,128,128,128,255,255,255,255, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

Page 21: Practica #4 Lcd y Glcd

21

0, 0, 0, 0, 0,255,255, 0,255,255,255, 98,127,111, 99, 99, 99, 99, 99, 99,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,255,255,255,255, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0,255,255,255, 8,140,140,140,140, 140,140,140,140,141,159,255,240,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 31, 63, 31, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192,248,255,255,255,255, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127,255,128,127,127,127,112,113,113,113,113, 113,113,113,113,113,113,113,113,115,119,126,124,124,120,120,112, 112,112,112,112,112,112,112,112,112,112,112,112,112,120,120,124, 126,127,127,127,127,127,127,127, 63,192,255,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0 ) end.

Page 22: Practica #4 Lcd y Glcd

22

ESQUEMATICO:

FOTOS:

Page 23: Practica #4 Lcd y Glcd

23

CONCLUSIONES: Como podemos darnos cuenta que el programa Micro Basic es una herramienta muy

útil e importante para la programación de PIC, con ciertas programaciones sencillas podemos programar al PIC para que ejecute lo que nosotros deseemos, siempre y cuando teniendo bien en claro la programación y el uso de cada estructura o declaración que se usa y la conexión de la placa con la computadora.

Con la ayuda de la placa de microcontroladores podemos hacer el montaje de los circuitos que hemos programado como hemos demostrado en esta práctica, se recomienda saber muy bien cada conexión de la placa y el uso correcta de la misma para evitar daños.

BIBLIOGRAFÍA: Apuntes Personales. Microcontroladores Pic. Diseño práctico de aplicaciones (II Parte). Angulo

Usategui/Romero Yesa/Angula Martinez. MacGrawHill.