Upload
javuco
View
419
Download
0
Embed Size (px)
Citation preview
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
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”.
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.
4
ESQUEMÁTICO:
FOTOS:
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”
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
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:
8
FOTOS:
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.
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
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:
12
FOTOS:
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.
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
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:
16
FOTOS:
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.
18
DIAGRAMA DE FLUJOS:
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)
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,
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.
22
ESQUEMATICO:
FOTOS:
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.