Está en la página 1de 5

LABORATORIO 1 - UNIDAD II

CONTROL DE LCD

DEFINA SUS PROPIOS PERSONAJES LCD


La LCD con el controlador HD44780 tiene espacio para ocho caracteres adicionales que
se pueden definir. Usted podría utilizar caracteres especiales que de origen a:
Hacer una pantalla de barras de un metro o S-VU-meter
Una pelota para pasar el tiempo del usuario, mientras que el controlador está
haciendo algo mucho tiempo.
Un objeto en rotación o saltar al hombre para que el usuario sepa que el
controlador está aún en marcha.

Situé el cursor en Tools / LCD designer

Dar el un clic en cualquier cuadro para que este se haga negro, o clic en un cuadro negra
para que se haga blanco. Hacer un símbolo de la cruz

Haga clic en Aceptar. Colocar el cursor en el origen del programa y aparecerá el


siguiente texto.
Deflcdchar ?,32,4,4,31,4,4,32,32' replace ? with number (0-7)

Cambiar el "?" por el número "0" y eliminar el comentario después del carácter '

Deflcdchar 0 , 32 , 4 , 4 , 31 , 4 , 4 , 32 , 32
Mover el cursor de texto a la siguiente línea vacía, rehacer Tools / LCD designer,
realizar el siguiente grafico.

Deflcdchar ?,32,2,20,14,5,8,32,32' replace ? with number (0-7)


Cambiar el "?" por el número "1" y eliminar el comentario después del carácter '
Deflcdchar 1 , 32 , 2 , 20 , 14 , 5 , 8 , 32 , 32

Repita este proceso otras cuatro veces (usa tu imaginación) hasta que su programa es el
siguiente:

$regfile = "m8def.dat"
$crystal = 1000000
' proporción del baud
$baud = 19200
' uso 32 predefinido para la pila del hardware
$hwstack = 32
' so 10 predefinido para la pila de SW
$swstack = 10
' uso 40 predefinido para el espacio del marco
$framesize = 40

Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2


Config Lcdpin = Pin , Db6 = Portb.3 , Db7 = Portb.4
Config Lcdpin = Pin , E = Portb.5 , Rs = Portb.6
Dim Star As Byte
Config Lcd = 16 * 2

Deflcdchar 0 , 32 , 4 , 4 , 31 , 4 , 4 , 32 , 32
Deflcdchar 1 , 32 , 2 , 20 , 14 , 5 , 8 , 32 , 32
Deflcdchar 2 , 32 , 2 , 26 , 4 , 11 , 8 , 32 , 32
Deflcdchar 3 , 32 , 17 , 10 , 4 , 10 , 17 , 32 , 32
Deflcdchar 4 , 32 , 8 , 11 , 4 , 26 , 2 , 32 , 32
Deflcdchar 5 , 32 , 8 , 5 , 14 , 20 , 2 , 32 , 32

Cls
Do
For Star = 0 To 5 Step 1
Locate 1 , 16
Lcd Chr(star)
Next Star
Loop
End

Compilar y Simulación. El resultado es una estrella de rotación rápida en la posición


más a la derecha de la línea de LCD de la primera fila.
CONTADOR DE PULSOS CON LCD
Este proyecto, consiste en contar el numero de pulsos que ingresan por un pin en un
determinado periodo, este a su vez visualiza en un LCD, si la cantidad de este supera a
los 120 pulsos por segundo es decir 120Hz, se encenderá una alarma visual (un led
rojo), y si la cantidad de pulsos baja a menos de 100Hz, este encenderá un led Verde, si
la frecuencia se mantiene entre estos 2 rangos, no se encenderá ningún led.
Para esta practica utilizaremos el C.I 555 que nos ayuda a generar un tren de pulsos
variable, el cual lo conectamos al AVR para su posterior conteo.

DECLARACIÓN PULSEIN. Sirve para contar el número de pulsos que ingresan por
un pin en un determinado tiempo, este a su vez lo guarda en una variable para su
posterior procesamiento, la manera de utilizarlo es la siguiente.

var Una palabra variable que se asigna con el resultado


PINX Puero a usar
PIN Pin del Puerto con el que se contar
STATE Podria ser 0 or 1.

0 Medio de muestreo. Transición 0 to 1.

1 Medio de muestreo. Transición 1 to 0.

Algo muy importante de conocer, es como conocer verdaderamente la cantidad de


pulsos que el AVR esta detectando en la entrada, para ello debemos primeramente
tomar en cuenta que clase de variable es la que esta almacenado el conteo. La cantidad
de pulsos del conteo obtengo dividiendo la cantidad máxima que puede almacenar dicha
variable para el dato almacenado de conteo.

Pulsos = 26315 / Variable


Uso variable Word = 26315 = 2 bytes
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40
' Configuro todo el puerto D.2, D.3 como salida
Ddrd.2 = 1
' led rojo
Portd.2 = 0
Ddrd.3 = 1
' led verde
Portd.3 = 0

Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2


Config Lcdpin = Pin , Db6 = Portb.3 , Db7 = Portb.4
Config Lcdpin = Pin , E = Portb.5 , Rs = Portb.6
Dim Puls As Word
Config Lcd = 16 * 2
Prog:
' escondo el cursor
Cursor Off Noblink
Pulsein Puls , Pind , 0 , 1
Puls = 26315 / Puls
Cls
Lcd " Frecuencia"
' localizo al cursos fila 2 columna 6
Locate 2 , 6
Lcd Puls
Locate 2 , 10
Lcd "Hz"
If Puls > 120 Then Goto Alarmah
If Puls < 100 Then Goto Alarmal
Pind.2 = 0 : Pind.3 = 0
Goto Prog
Alarmah:
Pind.2 = 1 : Pind.3 = 0
Goto Prog
Alarmal:
Pind.3 = 1 : Pind.2 = 0
Goto Prog
End

También podría gustarte