Está en la página 1de 23

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

1
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”.

2
DIAGRAMA DE FLUJO:

INICIO

El PortB configuramos como


salidas del circuito

Configuro los registros del LCD

Escribo: HOLA

Retardo de 200ms

Borro y limpio el LCD

Escribo: INGENIERIA
ELECTRONICA

SALIDA

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.

3
ESQUEMÁTICO:

FOTOS:

4
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”

5
DIAGRAMA DE FLUJO:

INICIO

El PortB configuramos como


salidas del circuito

Configuro los registros del LCD

Escribo: GEOVANNY
ACOSTA

Retardo

Borro y limpio el LCD

Escribo: DARIO
CANAVERAL

Retardo

Borro y limpio el LCD

Escribo: NATY GONZALEZ

Salida

6
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:

7
FOTOS:

8
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.

9
DIAGRAMA DE FLUJO:

INICIO

Dim A as byte

Dim X as String[6]

Configuro el puerto B como


salida

Apago el cursor

SI

Comparación
A=a+1
NO

Wordtostr(A,X)

Limpio el LCD

Visualizo el número es decir el


valor X en el LCD

Retardo

Salida

10
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:

11
FOTOS:

12
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.

13
DIAGRAMA DE FLUJO:

INICIO

Dim A as byte

Dim X as String[6]

trisA=$ff y trisB=$0

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

Configuro el puerto B como


salida

Apago el cursor

NO
SI
A=TMR0

Wordtostr(A,X)

Limpio el LCD

Visualizo el número es decir el


valor X en el LCD

Retardo

Salida

14
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:

15
FOTOS:

16
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.

17
DIAGRAMA DE FLUJOS:

18
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)

19
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,

20
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.

21
ESQUEMATICO:

FOTOS:

22
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.

23

También podría gustarte