Está en la página 1de 64

Manual de prcticas

De
Laboratorio

Materia
PROGRAMAR SISTEMAS
MECATRONICOS

Elaborado Por:

Ing. Marcos Antonio Moreno Guzmn

Agosto 2011

Presentacin
Este manual est pensado como una gua para que el alumno

pueda realizar experimentos prcticos necesarios para comprobar los

conocimientos tericos que se han visto en clase. Tambin le dar

pautas para que pueda resolver problemas prcticos en aplicaciones de

los micros controladores, al programar y disear sistemas mecatronicos

y as realizar aplicaciones reales con los conocimientos adquiridos en

clase y en semestres anteriores.


Lista de Experimentos:
Prctica No. 1: RELEVADOR o RELAY, TEMPORIZADOR

(TIMER) 555.
PARTE 1: FUNCIONAMIENTO DEL RELAY
PARTE 2: CIRCUITO BASICO DEL RELAY CON UN MOTOR.
PARTE 3: CIRCUITO BASICO DEL TEMPORIZADOR 555, LUZ INTERMITENTE
PARTE 4: TEMPORIZADOR, TRANSISTOR, RELAY Y MOTOR
Prctica No.2 TRANSISTOR EN CORTE Y SATURACION,
TRANSISTOR NPN, PNP Y AMPLIFICADOR DARLINGTON
PARTE 1: TRANSISTOR EN CORTE Y SATURACION.
PARTE 2: FUNCIONAMIENTO DEL TRANSISTOR NPN
PARTE 3: FUNCIONAMIENTO DEL TRANSISTOR PNP
PARTE 4: FUNCIONAMIENTO DEL AMPLIFICADOR DARLINGTON Y MOTOR.
Prctica No.3 CAMBIO DE GIRO DE UN MOTOR DE DC.
PARTE 1: FUNCIONAMIENTO DE UN PAR DE RELAYS PARA CAMBIO DE GIRO
Prctica No.4 CIRCUITO BASICO PIC 16F84 o 16F628
PARTE 1: PRIMER PROGRAMA ENCENDER UN LED (PARPADEANDO CADA SEG)
PARTE 2: AHORA CON UN INTERRUPTOR
PARTE 3: CONTROLAR RELAY CON TRANSISTOR NPN.
PARTE 4: CONTROL DE GIRO DE UN MOTOR CON MICROCONTROLADOR.
Prctica No.5 MANEJO DE SALIDAS
PARTE 1: PAR DE LED PARPADEANDO CADA SEGUNDO.
PARTE 2: RECORRIDO DE LEDS USANDO SALIDAS DIRECTAMENTE.
PARTE 3: RECORRIDO DE LEDS USANDO TABLA DE VALORES.
PARTE 4: RECORRIDO Y APAGADO DE LEDS.
PARTE 5: LLENANDO UNA FILA DE LEDS.
PARTE 6: IDA Y VUELTA EN UNA FILA DE LEDS
Prctica No.6 MANEJO DE ENTRADAS.
PARTE 1: COMO USAR UN INTERRUPTOR (SWITCH).
PARTE 2: FOTOTRANSISTOR, FOTORESISTENCIA.
PARTE 3: SENSOR TACTIL.
PARTE 4: SENSOR DE HUMEDAD.
PARTE 5: ALARMA CONTRA INTRUSOS CON SCR.
Practica No.7 MANEJO DE DISPLAY DE 7 SEGMENTOS.
PARTE 1: DESPLEGAR LOS NUMEROS 0-9 ASCENDENTE
PARTE 2: DESPLEGAR LOS NUMEROS 0-9 DESCENDENTE
PARTE 3: DESPLEGAR LETRAS.
Practica No.8 MANEJO DE MATRIX 5x7.
PARTE 1: DESPLAZAMIENTO POR COLUMNAS EN MATRIX 5x7 DE LEDS
PARTE 2: DESPLAZAMIENTO POR FILAS EN MATRIX 5x7 DE LEDS
PARTE 3: DESPLAZAMIENTO POR FILAS Y COLUMNAS EN MATRIX 5x7 DE LEDS
Practica No.9 MANEJO DE DISPLAY.
PARTE 1: EL DISPLAY DE CRISTAL LIQUIDO (LCD)
PARTE 2: RECORRER TEXTOS
Practica No.10 MANEJO DE TECLADO.
PARTE 1: EL TECLADO
Practica No.11 PROYECTO FINAL
PARTE 1: APLICACIONES DEL MICROCONTROLADOR.MANUAL DE PRACTICAS
PARTE 2: PROYECTO FINAL.
Practica No.1
RELEVADOR o RELAY, TEMPORIZADOR (TIMER) 555.

Objetivo: Que el alumno compruebe el funcionamiento de un RELEVEDOR o


RELAY, adems del funcionamiento bsico de un temporizador 555 (timer)

PARTE 1:
FUNCIONAMIENTO DEL RELAY

Arme el siguiente circuito en el protoboard:

Que sucede?

Anote sus conclusiones:

Nota: un relevador o relay es un dispositivo electrnico que trabaja como un


interruptor y consta de una bobina y unos contactos independientes. Dentro de
estos tenemos 2:
El NC o normalmente cerrado, donde tenemos un flujo de corriente antes
de energizar la bobina. Terminando siempre en polo negativo.
El NA o normalmente abierto, donde tendremos un flujo de corriente una
vez energizada la bobina del relay. Terminando siempre en polo negativo
El C o comn, que casi siempre conectamos el polo positivo, de la fuente
que vamos a manejar para los dispositivo conectados en los otros dos
contactos.
PARTE 2:

CIRCUITO BASICO DEL RELAY CON UN MOTOR.

Arme el siguiente circuito


en el protoboard:

Que sucede?

Anote sus conclusiones:

Nota: un motor es un dispositivo electrnico que en su interior consta de una


bobina por lo que debemos proteger nuestro circuito de voltajes generados por esa
bobina, por lo que tambin debemos agregar un diodo para evitar el regreso de
voltaje a nuestro circuito.

PARTE 3:
CIRCUITO BASICO DEL TEMPORIZADOR 555, LUZ INTERMITENTE
Arme el siguiente circuito en
el protoboard:

Que sucede?

Qu pasa cuando movemos


el potencimetro?

Apague el circuito y cambie el capacitor por uno de 100 microfaradios y encienda el


circuito y observe lo que sucede.

Anote sus conclusiones:

Nota: el circuito integrado 555 (timer) es un circuito que en su salida (pin 3) vamos
a tener una oscilacin entre positivo y negativo, la frecuencia con que cambia esta
oscilacin (intermitencia) depende de los valores de las resistencias y el capacitor
.entre ms grande el capacitor la frecuencia es ms lenta.

PARTE 4:
TEMPORIZADOR, TRANSISTOR, RELAY Y MOTOR
Arme el siguiente circuito en el protoboard: agrega el transistor y relay al circuito
anterior de la parte 3
Que sucede?

Qu pasa cuando movemos el potencimetro?

Agregamos ahora un motor:


Anote sus conclusiones:

Practica No.2
TRANSISTOR EN CORTE Y SATURACION, TRANSISTOR NPN,
PNP Y AMPLIFICADOR DARLINGTON.
Objetivo: Que el alumno compruebe el funcionamiento de un transistor en corte
y saturacin, transistor NPN, transistor PNP, y observe el funcionamiento de
amplificar una seal de corriente con 2 transistores (par Darlington)

PARTE 1:
TRANSISTOR EN CORTE Y SATURACION

Los transistores pueden ser NPN y PNP, esto depende de cmo estn construidos
internamente.
Arme el siguiente circuito:
Transistor NO conduce (CORTE)

Que observa del circuito?

Enciende el led?

Porque?

Ahora agregamos otra resistencia al circuito


en la base del transistor y lo conectamos al
positivo de la batera:

Transistor en conduccin (SATURACION)

Que puede concluir del circuito que armo, al introducir voltaje a la base del
transistor?

Arme el siguiente circuito:

Transistor en configuracin de
Normalmente abierto.

Que es lo que nota al accionar el switch?

Porque no prende el led?

Haga sus conclusiones.


Arme el siguiente circuito:
Transistor en configuracin de
Normalmente cerrado

Que es lo que nota al accionar el


switch.?

Qu pasa con el Led?

Haga sus conclusiones:

PARTE 2:
FUNCIONAMIENTO DEL TRANSISTOR NPN.

Nota: Cuando el colector y la base de un transistor NPN se conectan hacia el polo


Positivo de la fuente de alimentacin y el emisor hacia el polo Negativo, se dice que
el transistor esta polarizado correctamente.

Arme el siguiente circuito en el protoboard:

Active el interruptor, que es lo que sucede?

PORQUE?

ANOTE SUS CONCLUSIONES:

PARTE 3:
FUNCIONAMIENTO DEL TRANSISTOR PNP.

Nota: Cuando el colector y la base de un transistor


PNP se conectan hacia el polo Negativo de la
fuente de alimentacin y el emisor hacia el polo
Positivo, se dice que el transistor esta polarizado
correctamente.
(Se conecta contrario que el transistor NPN)
Arme el siguiente circuito en el protoboard:

Active el interruptor, que es lo que sucede?

PORQUE?

ANOTE SUS CONCLUSIONES:

PARTE 4:
AMPLIFICADOR DE SENAL, CON TRANSISTORES (PAR DARLINGTON)

Arme el siguiente circuito en el protoboard:

Que sucede?

Anote sus conclusiones:

Nota: Si colocamos el dedo


entre los puntos A y B (donde est
colocado el switch) se encender el
LED. Lo que ocurre es que la
corriente que atraviesa el cuerpo
humano es muy pequea y
utilizamos dos transistores (par
Darlington) para amplificarla y poder
encender un LED. Hay interruptores
Sensitivos en los televisores que
permiten economizar un interruptor mecnico y ofrece una utilizacin ms
confortable.
Igualmente si colocamos esas dos puntas en un recipiente con agua o algn
lquido que sea conductor de electricidad, pasara lo mismo que al tocarlo, el LED
encender por la propiedad de conduccin de electricidad en el lquido.

Practica No.3
CAMBIO DE GIRO DE UN MOTOR DE CORRIENTE DIRECTA.

Objetivo: Que el alumno identifique y compruebe el funcionamiento de los


relevadores, como interruptores mecnicos capaces de cambiar la polaridad en un
circuito para el control de un motor de DC.

PARTE 1:
FUNCIONAMIENTO DE UN PAR DE RELAYS PARA CAMBIO DE GIRO

Arme el siguiente circuito en el protoboard:


NOTA: Para realizar esta prctica , es necesario que tengas mucho cuidado con los
voltajes a utilizar , los relevadores pueden tener un voltaje y los motores pueden
ser de uno diferente, por lo que si se desea controlar motores con diferentes
voltajes se deben hacer los cambio a la alimentacin , la adecuada para cada
componente electrnico. (GUARDAR ESTA PRACTICA PARA USARSE EN PRCTICA
POSTERIOR)

Encienda el interruptor del MOTOR 1.


Presione uno a uno de los interruptores (IZQUIERDA o DERECHA), que es lo que
sucede?

Anote sus conclusiones:


Practica No.4
CIRCUITO BASICO PIC 16F84 o 16F628
Objetivo: Que el alumno identifique y compruebe el funcionamiento de los
diferentes circuitos (RESET, OSCILADOR, ALIMENTACION, ENTRADAS Y SALIDAS,
que forman el circuito bsico de operacin para un micro controlador. (pic16f84 o
pic16f628)

PARTE 1:
PRIMER PROGRAMA ENCENDER UN LED (PARPADEANDO CADA SEG)

Arme con mucho cuidado el siguiente circuito:


NOTA: para las entradas, no agregue todos los interruptores, solo uno, el de RA0 y
a los dems puertos de RA solo la resistencia de 10K a TIERRA. ESTE CIRCUITO
LO USAREMOS EN TODAS LAS PRACTICAS SIGUIENTES Y PROYECTO !NO LO
DESARMES!

SIMULANDO EL PROGRAMA:

En el simulador PIC SIMULATOR IDE edite, compile y simule el siguiente


programa en PICBASIC tal y como se muestra, para ello abra el programa PIC
SIMULATOR IDE, selecciona el microcontrolador, el cristal o reloj a usar y en TOOLS
saca el compilador de Basic y en los primeros renglones del programa anota como
comentario: NOMBRE, GRUPO Y NUMERO DEL EQUIPO.

Nota: cada programa debe ser trabajado en el simulador y en el protoboard.

'Programa que enciende y apaga el pin 0 del puerto B


'cada 1 segundos

AllDigital 'todos los puertos digitales


TRISB = 0 'configurar puerto B como salidas
PORTB = %00000000 'aseguramos todo el puerto B en cero
PORTA = %00000000 'aseguramos todo el puerto A en cero

INICIO: 'etiqueta de inicio de programa

High PORTB.0 'enciende pin 0 del puerto b


WaitUs 10 'espera 1 seg
Low PORTB.0 'apaga el pin 0 del puerto b
WaitUs 10 'espera 1 seg

Goto INICIO 'regresa a la etiqueta inicio

End 'fin del programa

De la pestaa de TOOLS, saca el microcontrolador, la barra de leds y simula


el programa.

Que es lo que sucede en la barra de leds del simulador?

Una vez ya simulado y comprobado que funciona, vamos a cambiar los


tiempos a MILISEGUNDOS, para poderlo llevar al microcontrolador.

Cambia las TODAS instrucciones de esperar WaitUs por WaitMs y el valor


agrgale 2 ceros, si tienes 10, ahora escribe 1000.

Con los cambios hechos, ahora complalo y recuerda donde se guard para
poder tener acceso al archivo .HEX que es el que vamos a meter en el micro
controlador.

DE LA SIMULACION A LA REALIDAD:

1. Primero vamos a abrir el programa para programar el microcontrolador,


que es el ICPROG o el que est disponible en el laboratorio, ya que
depende del aparato programador que se tenga, ser el software a usar.

2. En la pestaa de configuracin del programa elige el nmero correcto del


microcontrolador que vas a usar para tu prctica.

3. carga el programa .HEX que editaste en el simulador y que compilaste.

4. Inserta tu microcontrolador en el aparato programador.

5. Haz click en el icono de borrar microcontrolador.

6. Haz click en el icono de mandar archivo al microcontrolador.


7. Quita el microcontrolador de la base del programador e insrtalo donde
va en el protoboard.

Ahora ya estamos listos para ver si funciona en la practica el programa.

Que es lo que sucede en el protoboard, que es lo que observas?

NOTA: si ves que el tiempo que diste para el microcontrolador no es el correcto,


vuelve a editar el programa y a compilarlo y repite los pasos anteriores para
corregir el tiempo.

Ahora te toca a ti encender un LED de alguna otra salida que


no sea la que encendiste anteriormente.

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.

Anota tus conclusiones, describe lo que hiciste y cmo funciona:

PARTE 2:
AHORA CON UN INTERRUPTOR

Ahora, siguiendo los pasos anteriormente mencionados vamos a hacer que el


microcontrolador controle el encendido de un LED colocado en una de las 8 salidas,
por medio de un interruptor colocado en una de sus entradas:

Edita el siguiente programa:

Nota: cada programa debe ser trabajado en el simulador y en el protoboard.

'Programa que enciende y apaga un LED en el pin 0 del puerto B por medio de un
interruptor colocado en el pin 0 del puerto A.

AllDigital 'todos los puertos digitales


TRISB = 0 'configurar puerto B como salidas
PORTB = %00000000 'aseguramos todo el puerto B en cero
PORTA = %00000000 'aseguramos todo el puerto A en cero

INICIO: 'etiqueta de inicio de programa

PORTB.0 = PORTA.0 'enciende el LED del pin B.0 al accionar


el interruptor del pin A.0
Goto INICIO 'regresa a la etiqueta inicio

End 'fin del programa

Que sucede en la barra de leds del simulador?

Que ocurre en la figura del microcontrolador del simulador?

Ahora te toca a ti controlar un LED de alguna otra salida que


no sea la que encendiste anteriormente, con un interruptor
colocado en otro puerto de entrada.

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.

Anota tus conclusiones, describe lo que hiciste y cmo funciona:

PARTE 3:
CONTROLAR RELAY CON TRANSISTOR

Arme el siguiente circuito en el protoboard:


Accione el interruptor. Que es lo que sucede?

Porque?

Ahora quita el switch y conecta la resistencia con el microcontrolador, al puerto de


salida que t configuraste en el programa anterior, para que acciones el relay cada
vez que acciones el interruptor programado como entrada del programa anterior.

Anota
tus
conclusiones:

PARTE 4:
CONTROL DE GIRO DE UN MOTOR CON MICROCONTROLADOR (PRCTICA#3)

Arme el siguiente circuito en el protoboard, haciendo los cambios para t prctica 3


quitando los interruptores y mandndolos a voltaje (el que use tu relay) y agrgale
en la parte de tierra, los transistores como se ilustra:

Ahora, siguiendo los pasos anteriormente mencionados vamos a hacer que el


microcontrolador controle el giro del motor con los interruptores en las entradas del
microcontrolador, que se colocaran para IZQUIERDA o DERECHA.

Edita, simula, compila y carga , el siguiente programa:

Nota: cada programa debe ser trabajado en el simulador y en el protoboard.

'Programa que controla el giro de un motor, por medio de interruptores


para IZQUIERDA, DERECHA Y PARO del motor.

AllDigital todos los puertos digitales


TRISB = 0 puerto b como salidas
TRISA = 255 puerto a como entradas

PORTA = 0 puerto A apagados


PORTB = 0 puerto B apagados
Inicio:
If PORTA.0 = 1 Then Goto izquierda
If PORTA.1 = 1 Then Goto derecha
Goto inicio

Izquierda:
PORTB.0 = 1 'ENCIENDE MOTOR 1
PORTB.1 = 1 activa transistor Izquierda
PORTB.2 = 0 desactiva transistor derecha

If PORTA.2 = 1 Then Goto apagar


Goto izquierda

Derecha:
PORTB.0 = 1 'ENCIENDE MOTOR
PORTB.1 = 0 desactiva transistor izquierda
PORTB.2 = 1 activa transistor derecha

If PORTA.2 = 1 Then Goto Apagar


Goto derecha

Apagar:
PORTB = 0 'apagar PUERTO B
Goto inicio

End Fin del programa

Presiona el interruptor de Izquierda, y despus el de paro. Que sucede en la barra


de leds del simulador?

Haz lo mismo para el interruptor de Derecha, que sucede en la barra de leds del
simulador?

Ahora te toca a ti controlar un MOTOR, ahora usando un


tiempo de encendido y que se apague cuando pase ese tiempo o
cuando presionen el interruptor de paro.
Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.

Anota tus conclusiones, describe lo que hiciste y cmo funciona:


Practica No.5
MANEJO DE SALIDAS
Objetivo: Que el alumno identifique y compruebe el funcionamiento de las
diferentes formas de activar y desactivar las salidas del puerto RB del
microcontrolador.

PARTE 1:
PAR DE LEDS PARPADEANDO CADA SEGUNDO
En el simulador PIC SIMULATOR IDE edite, compile y simule el siguiente
programa en PICBASIC:
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.

'Programa que recorre del pin 0 - 7


'del puerto B prendiendo y apagando 2 puertos
'cada 1 segundos
AllDigital 'todos los puertos digitales

TRISB = 0 'configurar puerto B como salidas

PORTB = %00000000 'aseguramos todo el puerto B en cero


PORTA = %00000000 'aseguramos todo el puerto A en cero

Inicio: etiqueta de inicio de programa

High PORTB.0 'enciende pin 0 del puerto b


High PORTB.1 'enciende pin 1 del puerto b
WaitUs 20 'espera 1 seg
Low PORTB.0 'apaga el pin 0 del puerto b
Low PORTB.1 'apaga el pin 1 del puerto b
WaitUs 20 'espera 1 seg

High PORTB.2 'enciende pin 2 del puerto b


High PORTB.3 'enciende pin 3 del puerto b
WaitUs 20 'espera 1 seg
Low PORTB.2 'apaga el pin 2 del puerto b
Low PORTB.3 'apaga el pin 3 del puerto b
WaitUs 20 'espera 1 seg

High PORTB.4 'enciende pin 4 del puerto b


High PORTB.5 'enciende pin 5 del puerto b
WaitUs 20 'espera 1 seg
Low PORTB.4 'apaga el pin 4 del puerto b
Low PORTB.5 'apaga el pin 5 del puerto b
WaitUs 20 'espera 1 seg

High PORTB.6 'enciende pin 6 del puerto b


High PORTB.7 'enciende pin 7 del puerto b
WaitUs 20 'espera 1 seg
Low PORTB.6 'apaga el pin 6 del puerto b
Low PORTB.7 'apaga el pin 7 del puerto b
WaitUs 20 'espera 1 seg
Goto inicio 'regresa a la etiqueta inicio
End 'fin

Una vez que funcione en el simulador cambie los tiempos a Milisegundos y


pselo al microcontrolador.

Ahora te toca a ti controlar, enciende los LEDS que se


enciendan y apaguen del bit 7 al bit 0.

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.

Anota tus conclusiones, describe lo que hiciste y cmo funciona:

PARTE 2:
RECORRIDO DE LEDS USANDO SALIDAS DIRECTAMENTE
En el simulador PIC SIMULATOR IDE edite, compile y simule el siguiente
programa en PICBASIC:

'Programa que recorre del pin 0 - 7


'del puerto B prendiendo y apagando cada puerto
'cada segundo.

AllDigital 'todos los puertos digitales


TRISB = 0 'configurar puerto B como salidas
PORTB = %00000000 'aseguramos todo el puerto B en cero
PORTA = %00000000 'aseguramos todo el puerto A en cero

Inicio: 'etiqueta de inicio de programa


High PORTB.0 'enciende pin 0 del puerto b
WaitUs 10 'espera 1 seg
Low PORTB.0 'apaga el pin 0 del puerto b
WaitUs 10 'espera 1 seg

High PORTB.1 'enciende pin 1 del puerto b


WaitUs 10 'espera 1 seg
Low PORTB.1 'apaga el pin 1 del puerto b
WaitUs 10 'espera 1 seg

High PORTB.2 'enciende pin 2 del puerto b


WaitUs 10 'espera 1 seg
Low PORTB.2 'apaga el pin 2 del puerto b
WaitUs 10 'espera 1 seg
High PORTB.3 'enciende pin 3 del puerto b
WaitUs 10 'espera 1 seg
Low PORTB.3 'apaga el pin 3 del puerto b
WaitUs 10 'espera 1 seg

High PORTB.4 'enciende pin 4 del puerto b


WaitUs 10 'espera 1 seg
Low PORTB.4 'apaga el pin 4 del puerto b
WaitUs 10 'espera 1 seg

High PORTB.5 'enciende pin 5 del puerto b


WaitUs 10 'espera 1 seg
Low PORTB.5 'apaga el pin 5 del puerto b
WaitUs 10 'espera 1 seg

High PORTB.6 'enciende pin 6 del puerto b


WaitUs 10 'espera 1 seg
Low PORTB.6 'apaga el pin 6 del puerto b
WaitUs 10 'espera 1 seg

High PORTB.7 'enciende pin 7 del puerto b


WaitUs 10 'espera 1 seg
Low PORTB.7 'apaga el pin 7 del puerto b
WaitUs 10 'espera 1 seg

Goto Inicio 'regresa a la etiqueta inicio

End FIN DEL PROGRAMA

Ahora te toca a ti controlar, enciende los LEDS que se


enciendan y apaguen del bit 7 al bit 0 con un puerto de entrada y
con otro puerto que se deje de recorrer.

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.
Anota tus conclusiones, describe lo que hiciste y cmo funciona:

PARTE 3:
RECORRIDO DE LEDS USANDO TABLA DE VALORES

En el simulador PIC SIMULATOR IDE edite, compile y simule el siguiente


programa en PICBASIC:

'Programa que recorre del pin 0 - 8


'del puerto B prendiendo y apagando cada puerto
'Por medio de una variable y el mtodo de mirar tabla
cada 1 segundos

AllDigital 'todos los puertos digitales

TRISB = 0 'configurar puerto B como salidas

PORTB = %00000000 'aseguramos todo el puerto B en cero


PORTA = %00000000 'aseguramos todo el puerto A en cero
Dim pin As Byte definimos PIN como un Byte
Dim led As Byte definimos led como byte
inicio: 'etiqueta de inicio de programa

For pin = 0 To 7 Step 1 para pin de 0-7 de uno en uno


led = LookUp (01, 02, 04, 08, 16, 32, 64, 128), pin led toma el valor de pin
PORTB = led sacamos el valor de pin al Puerto B
WaitUs 1 esperamos un Segundo
Next pin siguiente valor para pin
Goto inicio regresa a inicio

End 'fin del programa

Ahora te toca a ti controlar, haz que los leds comiencen a


encender del bit 7 al 0, que se enciendan y apaguen.

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.

Nota: cada programa debe ser trabajado en el simulador y en el protoboard.

Anota tus conclusiones, describe lo que hiciste y cmo funciona:


PARTE 4:

RECORRIDO Y APAGADO DE LEDS


En el simulador PIC SIMULATOR IDE edite, compile y simule el siguiente
programa en PICBASIC y agregue los comentarios a las instrucciones:

'Programa que recorre del pin 0 - 8


'del puerto B prendiendo y apagando cada puerto
'de en medio hacia afuera por medio de una variable
'cada 1 segundos

AllDigital

TRISB = 0

PORTB = %00000000
PORTA = %00000000
Dim pin As Byte
Dim led As Byte

inicio: 'etiqueta de inicio de programa

For pin = 0 To 3 Step 1 '1 2 4 8 16 32 64 128


led = LookUp (24, 60, 126, 255), pin
PORTB = led
WaitUs 1
Next pin
PORTB = 0
WaitUs 10
Goto inicio

End

Ahora te toca a ti controlar, haz que los leds comiencen


encendidos y que se apague uno por uno.

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.

Nota: cada programa debe ser trabajado en el simulador y en el protoboard

Anota tus conclusiones, describe lo que hiciste y cmo funciona:


PARTE 5:
LLENANDO UNA FILA DE LEDS.
En el simulador PIC SIMULATOR IDE edite, compile y simule el siguiente
programa en PICBASIC y agregue los comentarios a las instrucciones:

'Programa que llena una fila de leds


'al presionar un switch y se borra con otro switch.

AllDigital 'todos los puertos digitales


TRISB = 0 'configurar puerto B como salidas
TRISA = %11111111 'configura puerto A como entradas
PORTB = %00000000 'aseguramos todo el puerto B en cero
PORTA = %00000000 'aseguramos todo el puerto A en cero
inicio: 'etiqueta de inicio de programa

Goto boton

'PARA EL PUERTO A0
puertoa0:
PORTB = %00000001

llenando:
WaitUs 1 'esta demora debe ser mayor si no es una simulacin!
PORTB = ShiftLeft (PORTB, 1)
If PORTB = %10000000 Then Goto dos
Goto llenando
dos:
PORTB = %10000001
WaitUs 30 'esta demora debe ser mayor si no es una simulacin!
PORTB = ShiftLeft (PORTB, 1)
If PORTB = %11000000 Then Goto tres
tres:
PORTB = %11000001
WaitUs 30 'esta demora debe ser mayor si no es una simulacin!
PORTB = ShiftLeft (PORTB, 1)
If PORTB = %11100000 Then Goto cuatro
cuatro:
PORTB = %11100001
WaitUs 30 'esta demora debe ser mayor si no es una simulacin!
PORTB = ShiftLeft (PORTB, 1)
If PORTB = %11110000 Then Goto cinco
cinco:
PORTB = %11110001
WaitUs 30 'esta demora debe ser mayor si no es una simulacin!
PORTB = ShiftLeft (PORTB, 1)
If PORTB = %11111000 Then Goto seis
seis:
PORTB = %11111001
WaitUs 30 'esta demora debe ser mayor si no es una simulacin!
PORTB = ShiftLeft (PORTB, 1)
If PORTB = %11111100 Then Goto siete
siete:
PORTB = %11111101
WaitUs 30 'esta demora debe ser mayor si no es una simulacin!
PORTB = ShiftLeft (PORTB, 1)
If PORTB = %11111110 Then Goto lleno
lleno:
PORTB = 255
Goto inicio

'PARA EL PUERTO A1
puertoa1:
PORTB = 0
Goto inicio
'CUAL BOTON SE SELECCIONO
boton:
If PORTA.0 = 1 Then Goto puertoa0
If PORTA.1 = 1 Then Goto puertoa1
Goto boton
End

Ahora te toca a ti controlar, haz que cada led se encienda cada que
presiones el puerto A0 y se borre con A1

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.

Nota: cada programa debe ser trabajado en el simulador y en el protoboard

Anota tus conclusiones, describe lo que hiciste y cmo funciona:


PARTE 6:
IDA Y VUELTA EN UNA FILA DE LEDS.
En el simulador PIC SIMULATOR IDE edite, compile y simule el siguiente
programa en PICBASIC y agregue los comentarios a las instrucciones:

'Programa que enciende y apaga


'los pin del puerto B de derecha a izquierda
'cada 1 segundos

AllDigital 'todos los puertos digitales

TRISB = 0 'configurar puerto B como salidas


TRISA = 1 'configura puerto A como entradas
PORTB = %00000000 'aseguramos todo el puerto B en cero
PORTA = %00000000 'aseguramos todo el puerto A en cero

inicio: 'etiqueta de inicio de programa

PORTB = %00000001 Inicio con puerto RB0 encendido

Izquierda:

WaitUs 1 demora de un segundo


PORTB = ShiftLeft (PORTB, 1) recorre en uno lo del Puerto B
If PORTB = %10000000 Then Goto derecha si llego al valor RB
Goto izquierda ir a etiqueta izquierda

derecha:

WaitUs 1 retardo de un segundo


PORTB = ShiftRight (PORTB, 1) recorre en uno lo del Puerto B
If PORTB = %00000001 Then Goto izquierda
Goto derecha ir a etiqueta derecha

End fin del programa

Este es otro PROGRAMA de como recorrer 2 led al mismo


tiempo:

'Programa que enciende y apaga


'los pines del puerto B de derecha a izquierda de 2 en 2
'cada 1 segundos
AllDigital 'todos los puertos digitales
TRISB = 0 'configurar puerto B como salidas
TRISA = 1 'configura puerto A como entradas
PORTB = %00000000 'aseguramos todo el puerto B en cero
PORTA = %00000000 'aseguramos todo el puerto A en cero

inicio: 'etiqueta de inicio de programa

PORTB = %00000011
izquierda:

WaitUs 1 'esta demora debe ser mayor si no es una simulacin


PORTB = ShiftLeft (PORTB, 1)
If PORTB = %11000000 Then Goto derecha
Goto izquierda

derecha:

WaitUs 1 'esta demora debe ser mayor si no es una simulacin


PORTB = ShiftRight (PORTB, 1)
If PORTB = %00000011 Then Goto izquierda
Goto derecha
End

Ahora te toca a ti controlar, haz que los leds comiencen encendidos


y que se apague uno por uno.

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.

Nota: cada programa debe ser trabajado en el simulador y en el protoboard

Anota tus conclusiones, describe lo que hiciste y cmo funciona:


Practica No.6
MANEJO DE ENTRADAS.

Objetivo: Que el alumno identifique y compruebe el funcionamiento de


diferentes dispositivos electrnicos en algunas aplicaciones reales que podemos
realizar, con transistores, relevadores, SCR, dispositivos que funcionan como
interruptores electrnicos. Ademas de las diferentes formas de activar y desactivar
las ENTRADAS del puerto RA del microcontrolador.

PARTE 1:
COMO USAR UN INTERRUPTOR (SWITCH).

Ahora, vamos a hacer que el microcontrolador controle el encendido de varios LEDS


colocados en las 8 salidas, por medio de interruptores colocado en una de sus
entradas:

Edita el siguiente programa:

Nota: cada programa debe ser trabajado en el simulador y en el protoboard.

'Programa que por medio de switch se cambia de


'la MODOS de desplegar las salidas, usando el reset (5 diferentes)

'AllDigital 'todos los puertos digitales

TRISB = 0 'configurar puerto B como salidas


PORTB = %00000000 'aseguramos todo el puerto B en cero
PORTA = %00000000 'aseguramos todo el puerto A en cero

inicio: 'etiqueta de inicio de programa

cual:
If PORTA.0 = 1 Then Gosub MODO1
If PORTA.1 = 1 Then Gosub MODO2
If PORTA.2 = 1 Then Gosub MODO3
If PORTA.3 = 1 Then Gosub MODO4
If PORTA.4 = 1 Then Gosub MODO5
HIGH PORTB.7
Goto cual

MODO1: INICIO DE MODO 1


PORTB = %00000000
High PORTB.0 'enciende pin 0 del puerto b
WaitMs 300 'espera 3 seg
Low PORTB.0 'apaga el pin 0 del puerto b
WaitMs 300 'espera 3 seg
Gosub boton
Goto MODO1

MODO2: INICIO DE MODO 2


PORTB = %00000000
PORTB = %00000001

izquierda:

WaitMs 25 'esta demora debe ser mayor si no es una simulacin!


PORTB = ShiftLeft(PORTB, 1)
If PORTB = %10000000 Then Goto derecha
Gosub boton
Goto izquierda

derecha:

WaitMs 25 'esta demora debe ser mayor si no es una simulacin!


PORTB = ShiftRight(PORTB, 1)
If PORTB = %00000001 Then Goto izquierda
Gosub boton
Goto derecha

MODO3: 'INICIO DE MODO 3


PORTB = 0
WaitMs 200 'espera 1 seg

High PORTB.0 'enciende pin 0 del puerto b


WaitMs 200 'espera 1 seg
Low PORTB.0 'apaga el pin 0 del puerto b
WaitMs 200 'espera 1 seg
Gosub boton

High PORTB.1 'enciende pin 1 del puerto b


WaitMs 200 'espera 1 seg
Low PORTB.1 'apaga el pin 1 del puerto b
WaitMs 200 'espera 1 seg
Gosub boton

High PORTB.2 'enciende pin 2 del puerto b


WaitMs 200 'espera 1 seg
Low PORTB.2 'apaga el pin 2 del puerto b
WaitMs 200 'espera 1 seg
Gosub boton

High PORTB.3 'enciende pin 3 del puerto b


WaitMs 200 'espera 1 seg
Low PORTB.3 'apaga el pin 3 del puerto b
WaitMs 200 'espera 1 seg
Gosub boton

High PORTB.4 'enciende pin 4 del puerto b


WaitMs 200 'espera 1 seg
Low PORTB.4 'apaga el pin 4 del puerto b
WaitMs 200 'espera 1 seg
Gosub boton

High PORTB.5 'enciende pin 5 del puerto b


WaitMs 200 'espera 1 seg
Low PORTB.5 'apaga el pin 5 del puerto b
WaitMs 200 'espera 1 seg
Gosub boton

High PORTB.6 'enciende pin 6 del puerto b


WaitMs 200 'espera 1 seg
Low PORTB.6 'apaga el pin 6 del puerto b
WaitMs 200 'espera 1 seg
Gosub boton

High PORTB.7 'enciende pin 7 del puerto b


WaitMs 200 'espera 1 seg
Low PORTB.7 'apaga el pin 7 del puerto b
WaitMs 200 'espera 1 seg
Gosub boton

Goto MODO3 'regresa a la etiqueta MODO3

MODO4: 'INICIO DE MODO 4

Dim pin As Byte


Dim led As Byte
PORTB = 0
WaitMs 200 'espera 1 seg

For pin = 0 To 3 Step 1 '1 2 4 8 16 32 64 128


led = LookUp(24, 60, 126, 255), pin
PORTB = led
WaitMs 200 'espera 1 seg
Gosub boton
Next pin

For pin = 0 To 7 Step 1


led = LookUp(254, 252, 248, 240, 224, 192, 128, 0), pin
PORTB = led
WaitMs 200 'espera 1 seg
Gosub boton
Next pin

PORTB = 0
WaitMs 200 'espera 1 seg
Goto MODO4

MODO5: 'INICIO DESPLEGAR NUMEROS EN DISPLAY DE 7 SEGMENTOS


PORTB = %11111111

Dim cero As Byte


cero = %11000000
Dim uno As Byte
uno = %11111100
Dim dos As Byte
dos = %10010010
Dim tres As Byte
tres = %10011000
Dim cuatro As Byte
cuatro = %10101100
Dim cinco As Byte
cinco = %10001001
Dim seis As Byte
seis = %10100001
Dim siete As Byte
siete = %11011100
Dim ocho As Byte
ocho = %10000000
Dim nueve As Byte
nueve = %10001100

numeros:
PORTB = cero
WaitMs 1000
PORTB = uno
WaitMs 1000
Gosub boton
PORTB = dos
WaitMs 1000
Gosub boton
PORTB = tres
WaitMs 1000
Gosub boton
PORTB = cuatro
WaitMs 1000
Gosub boton
PORTB = cinco
WaitMs 1000
Gosub boton
PORTB = seis
WaitMs 1000
Gosub boton
PORTB = siete
WaitMs 1000
Gosub boton
PORTB = ocho
WaitMs 1000
Gosub boton

PORTB = nueve
WaitMs 1000
Gosub boton
Goto numeros
End
__________________________________________________
boton:
WaitMs 100
If PORTA.0 = 1 Then Goto MODO1
If PORTA.1 = 1 Then Goto MODO2
If PORTA.2 = 1 Then Gosub MODO3
If PORTA.3 = 1 Then Gosub MODO4
If PORTA.4 = 1 Then Gosub MODO5
Return

NOTA: ADEMAS DE CONECTAR LOS LEDS A LOS 8 PUERTOS, TENEMOS QUE


CONECTAR UN DISPLAY DE 7 SEGMENTOS PARA FORMAR LOS NUMEROS DEL
MODO 5, DE LA SIGUIENTE MANERA:

NOTA: SI EL DISPLAY DE 7 SEGMENTOS ES ANODO COMUN, COLOCALOS UNA


RESISTENCIA DE 330 A POSITIVO.

NOTA: RECUERDA QUE PARA


ACCIONAR LOS INTERRUPTORES,
HAY QUE OBTENER EL
MICROCONTROLLER VIEW EN
HERRAMIENTAS DEL SIMULADOR.

Que sucede en la barra de leds del


simulador con cada modo de
desplegar los leds?

MODO 1:

MODO 2:

MODO 3:

MODO 4:

MODO 5:

Que ocurre en la figura del microcontrolador del simulador?


Ahora te toca a ti controlar, haz que los leds enciendan en 2 modos
diferentes a los anteriores, pero ahora al presionar 2 interruptores
diferentes al mismo tiempo.
Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.
NO LO DESARMES LO NESESITARAS EN LAS SIGUIENTES PARTES!

Nota: cada programa debe ser trabajado en el simulador y en el protoboard

ANOTE SUS CONCLUSIONES:

PARTE 2:
FOTOTRANSISTOR, FOTORESISTENCIA.

FOTOTRANSISTOR

Arme el siguiente circuito en el protoboard:


RECUERDA EL VOLTAJE DE TU RELAY PARA HACER EL CAMBIO DE VOLTAJE DE
ENTRADA Y NO SE QUEME.
Acerca alguna haz de luz al fototransistor, que es lo que sucede?

Ahora te toca a ti controlar, acerca el LED del puerto B0 al


fototransistor y acciona el interruptor de A0(del programa
anterior), si no alcanza a encender el circuito aumenta el tiempo en
que este enciende, para logar activarlo al encender un led cerca del
fototransistor usa un popote para alinear el haz de luz .
Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.
NO LO DESARMES LO NESESITARAS EN LAS SIGUIENTES PARTES!

Nota: cada programa debe ser trabajado en el simulador y en el protoboard

Anote sus conclusiones:

FOTO RESISTENCIA

Arme el siguiente circuito en el protoboard:


RECUERDA EL VOLTAJE DE TU RELAY PARA HACER EL CAMBIO DE VOLTAJE DE
ENTRADA Y NO SE QUEME.

Acerca alguna haz de luz a La fotorresistencia, que es lo que sucede?

Donde puede aplicar este circuito?

Ahora te toca a ti controlar, acerca el LED del puerto B7 al


fotorresistencia y acciona el interruptor de A4(del programa
anterior), si no alcanza a encender el circuito aumenta el tiempo en
que este enciende, para logar activarlo al encender un led cerca de
la fotorresistencia cubre la fotorresistencia para que se alinea el
haz de luz .

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.
NO LO DESARMES LO NESESITARAS EN LAS SIGUIENTES PARTES!

Nota: cada programa debe ser trabajado en el simulador y en el protoboard

Anote sus conclusiones:

PARTE 3:
SENSOR TACTIL.
Arma el siguiente circuito:

Que es lo que sucede al accionar el switch?

Quita el switch y toca esos cables con tus dedos.


Que sucede?

Donde puede aplicar este circuito?

Anote sus conclusiones:


5

Ahora te toca a ti controlar,


manda el punto donde est el
emisor de salida del puente
Darlington a algn puerto de entrada del microcontrolador, para
usarlo como interruptor tctil y el zumbador o Buzer a alguna
salida para que cuando se active zumbe.

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.
NO LO DESARMES LO NESESITARAS EN LAS SIGUIENTES PARTES!

Nota: cada programa debe ser trabajado en el simulador y en el protoboard

Anote sus conclusiones:

PARTE 4:
SENSOR DE HUMEDAD.
Arme el siguiente circuito:
Este Circuito nos muestra como un transistor acta como amplificador.

Por el agua circula una corriente muy pequea, el transistor la amplifica (la hace
ms grande) y permite que podamos encender un LED.

Una vez realizado el


montaje anterior, debe de
introducir los dos hilos A y
B en agua uno ms abajo
que otro.

Se Ilumina el LED?

Por qu?

Agrega un zumbador como se muestra.


Introduce las puntas A y B en el agua.

Que sucede?

Donde puede aplicar este circuito?

Anote sus conclusiones:

Ahora te toca a ti controlar, manda el punto donde est el emisor de


salida del transistor a algn puerto de entrada del
microcontrolador, para usarlo como sensor de humedad y el
zumbador o Buzer a alguna salida para que cuando se detecte
humedad zumbe.

NO LO DESARMES LO NESESITARAS EN LAS SIGUIENTES PARTES!

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.

Nota: cada programa debe ser trabajado en el simulador y en el protoboard

Anote sus conclusiones:


PARTE 5:
ALARMA CONTRA INTRUSOS CON SCR

Arme el siguiente circuito:

Accione el interruptor de Activar alarma.

Que sucede?

En donde puede aplicar este circuito?

Anote sus conclusiones:


Ahora te toca a ti controlar, manda el punto donde est el
interruptor de activar alarma, el de armar alarma a puertos de
salida del microcontrolador y en las entradas del microcontrolador
coloca lo que quieres alarmar cuando se detecte esa entrada.
(Sensor tctil, de agua, de luz, etc.) Recuerda colocar tambin un
interruptor para desactivar la alarma por medio del
microcontrolador.

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.

Nota: cada programa debe ser trabajado en el simulador y en el protoboard

Anote sus conclusiones:


Practica No.7
MANEJO DE DISPLAY DE 7 SEGMENTOS.
Objetivo: Que el alumno compruebe el funcionamiento de los display de 7
segmentos como visualizadores de aplicaciones.

PARTE 1:
DESPLEGAR LOS NUMEROS 0-9 ASCENDENTE

Comenzaremos por definir nuestros display de 7 segmentos, En la siguiente figura


se muestran los puertos de salida del microcontrolador a los que estarn
relacionados:

Basndonos en la configuracin anterior armaremos el siguiente circuito:


Edita, compila, simula y carga al microcontrolador, el siguiente programa:

Nota: cada programa debe ser trabajado en el simulador y en el protoboard.


Recuerda cambiar los tiempos a microsegundos para verlo en el simulador.

'DESPLEGAR NUMEROS EN DISPLAY DE 7 SEGMENTOS


EN FORMA ASCENDENTE DE 0-9.

AllDigital 'todos los puertos digitales


TRISB = 0 'configurar puerto B como salidas
TRSA = 255 configurar puerto A como entradas
PORTB = %00000000 'aseguramos todo el puerto B en cero
PORTA = %00000000 'aseguramos todo el puerto A en cero

Inicio: etiqueta de inicio de programa

PORTB = %11111111 hacemos que se apague el display de 7 segmentos


con unos ya que es anodo comun
Dim cero As Byte
cero = %11000000
Dim uno As Byte
uno = %11111100
Dim dos As Byte
dos = %10010010
Dim tres As Byte
tres = %10011000
Dim cuatro As Byte
cuatro = %10101100
Dim cinco As Byte
cinco = %10001001
Dim seis As Byte
seis = %10100001
Dim siete As Byte
siete = %11011100
Dim ocho As Byte
ocho = %10000000
Dim nueve As Byte
nueve = %10001100

numeros:
PORTB = cero
WaitMs 1000
PORTB = uno
WaitMs 1000
Gosub boton
PORTB = dos
WaitMs 1000
Gosub boton
PORTB = tres
WaitMs 1000
Gosub boton
PORTB = cuatro
WaitMs 1000
Gosub boton
PORTB = cinco
WaitMs 1000
Gosub boton

PORTB = seis
WaitMs 1000
Gosub boton
PORTB = siete
WaitMs 1000
Gosub boton
PORTB = ocho
WaitMs 1000
Gosub boton
PORTB = nueve
WaitMs 1000
Gosub boton
Goto numeros
End

Que sucede en el display de 7 segmentos del simulador?

Ahora haz los cambios necesarios para pasar el programa al microcontrolador y


poder verlo.

Donde puedes usar esta aplicacin:

Anota tus conclusiones:


PARTE 2:
DESPLEGAR LOS NUMEROS 0-9 DESCENDENTE

Ahora te toca a ti controlar, un display de 7 segmentos, haz


que comience a contar de 9 a 0 y cuando llegue a cero, se vea algn
efecto en los leds y se repita el proceso.

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.

Nota: cada programa debe ser trabajado en el simulador y en el protoboard.

Anota tus conclusiones, describe lo que hiciste y cmo funciona:


PARTE 3:

DESPLEGAR LETRAS

Ahora te toca a ti controlar, un display de 7 segmentos, haz


que se desplieguen LETRAS que se puedan formar en el display.

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.

Nota: cada programa debe ser trabajado en el simulador y en el protoboard.

Anota tus conclusiones, describe lo que hiciste y cmo funciona:


Practica No.8
MANEJO DE MATRIX DE LEDS 5x7.
Objetivo: Que el alumno compruebe el funcionamiento de una matrix de leds
5x7, observe su funcionamiento y practique configurando las salidas del
microcontrolador.

PARTE 1:
DESPLAZAMIENTO POR COLUMNAS EN MATRIX 5x7 DE LEDS
En el siguiente diagrama se ve la configuracin de la matrix 5x7 y a donde debe ir
conectada:

Edita, compila, simula y carga al microcontrolador, el siguiente programa:

Nota: cada programa debe ser trabajado en el simulador y en el protoboard.


Recuerda cambiar los tiempos a microsegundos para verlo en el simulador.

programa recorre la matrix por las 5 columnas


AllDigital
TRISA = %00000000
TRISB = %00000000

PORTB = %00000000
'__________________________________________
inicio:
PORTA = 254 'columna 1
PORTB = %00000001

vivorita:
WaitMs 100
PORTB = ShiftLeft(PORTB, 1)
If PORTB = %10000000 Then Goto botona
Goto vivorita
botona:
PORTA = 253 'columna 2
derechaa:
WaitMs 100
PORTB = ShiftRight(PORTB, 1)
If PORTB = %00000001 Then Goto botonb
Goto derechaa
'________________________________________
botonb:
PORTA = 251 'columna 3
izquierdab:
WaitMs 100
PORTB = ShiftLeft(PORTB, 1)
If PORTB = %10000000 Then Goto botonc
Goto izquierdab
'________________________________________
botonc:
PORTA = 247 'columna 4
derechac:
WaitMs 100
PORTB = ShiftRight(PORTB, 1)
If PORTB = %00000001 Then Goto botond
Goto derechac
'__________________________________________
botond:
PORTA = 239 'columna 5
izquierdad:
WaitMs 100
PORTB = ShiftLeft(PORTB, 1)
If PORTB = %10000000 Then Goto lleno
Goto izquierdad
'______________________________________________
lleno:
PORTA = 0
PORTB = 255
WaitMs 100
Goto inicio

End

Que sucede en la matrix de leds?

Anota tus conclusiones:


PARTE 2:

DESPLAZAMIENTO POR FILAS EN MATRIX 5x7 DE LEDS.

Ahora nos moveremos por las filas de nuestra matrix 5x7.

Edita, compila, simula y carga al microcontrolador, el siguiente programa:

Nota: cada programa debe ser trabajado en el simulador y en el protoboard.


Recuerda cambiar los tiempos a microsegundos para verlo en el simulador.

PROGRAMA QUE RECORRE LA MATRIX POR LAS 7 FILAS


AllDigital
TRISA = %00000000
TRISB = %00000000
PORTB = %00000000
Dim numero As Byte
Dim col As Byte
Inicio:

fila1:
PORTB = 1
Gosub fwd
fila2:
PORTB = 2
Gosub rev
fila3:
PORTB = 4
Gosub fwd
fila4:
PORTB = 8
Gosub rev
fila5:
PORTB = 16
Gosub fwd
fila6:
PORTB = 32
Gosub rev
fila7:
PORTB = 64
Gosub fwd

Gosub lleno
Goto inicio
End
'________________________________________
lleno:
PORTA = 0
PORTB = 255
WaitMs 500
Return
'________________________________________

fwd:
PORTA = 255
WaitMs 100 'espera 1 seg
For numero = 0 To 4 Step 1 'numero de columnas
col = LookUp(254, 253, 251, 247, 239), numero
PORTA = col
WaitMs 100 'espera 1 seg
Next numero
Return
'________________________________________
rev:
For numero = 0 To 4 Step 1 'numero de columnas
col = LookUp(239, 247, 251, 253, 254), numero
PORTA = col
WaitMs 100 'espera 1 seg
Next numero
Return

Que sucede en la matrix de leds?

Donde podras aplicar esta prctica?

Anota tus conclusiones:


PARTE 3:
DESPLAZAMIENTO POR FILAS Y COLUMNAS
Ahora te toca a ti controlar, una matrix 5x7, haz que se
recorran los leds por las filas y las columnas y terminas con algn
efecto realizado en practica 5 y luego se repita el proceso.

Realiza los cambios necesarios para que eso suceda, escribe aqu el cambio
que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y
CARGALO AL PIC.

Nota: cada programa debe ser trabajado en el simulador y en el protoboard.

Anota tus conclusiones:


Practica No.9
MANEJO DE DISPLAY.
Objetivo: Que el alumno compruebe el funcionamiento y aprenda a conectar un
display de cristal lquido, al microcontrolador.

PARTE 1:
EL DISPLAY DE CRISTAL LQUIDO (LCD)

En el siguiente diagrama se ve la configuracin de pines de un display de cristal


lquido (LCD) y a donde ira conectada al microcontrolador:

Una vez conectado nuestro LCD, desplegaremos textos.

Edita, compila, simula y carga al microcontrolador, el siguiente programa:

Nota: cada programa debe ser trabajado en el simulador y en el protoboard.


Recuerda cambiar los tiempos a microsegundos donde sea necesario para
verlo en el simulador.
'Programa que por medio de switches se cambia de
'practica 1 a la 5 con display
'DEFINICIN DE REGISTROS PARA EL LCD
Define LCD_DREG = PORTB 'Utilizar 4 bits del puerto B para tx de datos
Define LCD_DBIT = 4 'Desde el Bit B.4 al Bit B.7
Define LCD_RSREG = PORTB 'Seleccin del puerto del registro
Define LCD_RSBIT = 1 'En el bit B.1
Define LCD_EREG = PORTB 'Utilizar el enable en el puerto B
Define LCD_EBIT = 2 'En el bit B.2
Define LCD_INITMS = 1000 '2 'tiempo para iniciar en display

AllDigital 'todos los puertos digitales


TRISB = %00000000 'configurar puerto B como salidas
TRISA = %11111111
PORTB = %00000000 'aseguramos todo el puerto B en cero
PORTA = %00000000 'aseguramos todo el puerto A en cero
Lcdinit 3 'INICIALIZA DISPLAY

inicio: 'etiqueta de inicio de programa


Gosub intro 'despliega introducccion en display

cual:
If PORTA.0 = 1 Then Gosub practica1
If PORTA.1 = 1 Then Gosub practica2
If PORTA.2 = 1 Then Gosub practica3
If PORTA.3 = 1 Then Gosub practica4
If PORTA.4 = 1 Then Gosub practica5
FreqOut PORTB.7, 2000, 10

Goto cual

practica1: 'INICIO DE PRACTICA 1


'Pausa de inicio del LCD
WaitMs 500
'--------------------------------------------------------
Gosub borrar_display
Gosub primera
Lcdout "MECATRONICA" 'Escribir en la primera lnea
WaitMs 1000
Gosub segunda
Lcdout "PRACTICA 1" 'Escribir en la segunda lnea
WaitMs 1000
practica_uno:
PORTB = %00000000
High PORTB.0 'enciende pin 0 del puerto b
WaitMs 300 'espera 3 seg
Low PORTB.0 'apaga el pin 0 del puerto b
WaitMs 300 'espera 3 seg
Gosub boton
Goto practica_uno
practica2: 'INICIO DE PRACTICA 2

'Pausa de inicio del LCD


WaitMs 500
'--------------------------------------------------------
Gosub borrar_display
Gosub primera
Lcdout "MECATRONICA" 'Escribir en la primera lnea
WaitMs 1000
Gosub segunda
Lcdout "PRACTICA 2" 'Escribir en la segunda lnea
WaitMs 500

practica_dos:
PORTB = %00000000
PORTB = %00000001
izquierda:
WaitMs 25 'esta demora debe ser mayor si no es una simulacin!
PORTB = ShiftLeft(PORTB, 1)
If PORTB = %10000000 Then Goto derecha
Gosub boton
Goto izquierda
derecha:
WaitMs 25 'esta demora debe ser mayor si no es una simulacin!
PORTB = ShiftRight(PORTB, 1)
If PORTB = %00000001 Then Goto izquierda
Gosub boton
Goto derecha

practica3: 'INICIO DE PRACTICA 3

Gosub borrar_display
Gosub primera
Lcdout "MECATRONICA" 'Escribir en la primera lnea
WaitMs 1000
Gosub segunda
Lcdout "PRACTICA 3" 'Escribir en la segunda lnea
WaitMs 500
practica_tres:

PORTB = 0
WaitMs 200 'espera 1 seg

High PORTB.0 'enciende pin 0 del puerto b


WaitMs 200 'espera 1 seg
Low PORTB.0 'apaga el pin 0 del puerto b
WaitMs 200 'espera 1 seg
Gosub boton

High PORTB.1 'enciende pin 1 del puerto b


WaitMs 200 'espera 1 seg
Low PORTB.1 'apaga el pin 1 del puerto b
WaitMs 200 'espera 1 seg
Gosub boton
High PORTB.2 'enciende pin 2 del puerto b
WaitMs 200 'espera 1 seg
Low PORTB.2 'apaga el pin 2 del puerto b
WaitMs 200 'espera 1 seg
Gosub boton

High PORTB.3 'enciende pin 3 del puerto b


WaitMs 200 'espera 1 seg
Low PORTB.3 'apaga el pin 3 del puerto b
WaitMs 200 'espera 1 seg
Gosub boton

High PORTB.4 'enciende pin 4 del puerto b


WaitMs 200 'espera 1 seg
Low PORTB.4 'apaga el pin 4 del puerto b
WaitMs 200 'espera 1 seg
Gosub boton

Goto practica_tres 'regresa a la etiqueta practica3

practica4: 'INICIO DE PRACTICA 4


Gosub borrar_display
Gosub primera
Lcdout "MECATRONICA" 'Escribir en la primera lnea
WaitMs 500
Gosub segunda
Lcdout "PRACTICA 4" 'Escribir en la segunda lnea
WaitMs 500

practica_cuatro:
Dim pin As Byte
Dim led As Byte
PORTB = 0
WaitMs 200 'espera 1 seg

For pin = 0 To 3 Step 1 '1 2 4 8 16 32 64 128


led = LookUp(24, 60, 126, 255), pin
PORTB = led
WaitMs 200 'espera 1 seg
Gosub boton
Next pin

For pin = 0 To 7 Step 1


led = LookUp(254, 252, 248, 240, 224, 192, 128, 0), pin
PORTB = led
WaitMs 200 'espera 1 seg
Gosub boton
Next pin

PORTB = 0
WaitMs 200 'espera 1 seg
Goto practica_cuatro
practica5: 'INICIO DE PRACTICA 5

Gosub borrar_display
Gosub primera
Lcdout "MECATRONICA" 'Escribir en la primera lnea
WaitMs 500
Gosub segunda
Lcdout "PRACTICA 5" 'Escribir en la segunda lnea
WaitMs 500

practica_cinco:
PORTB = %11111111

Dim cero As Byte


cero = %11000000
Dim uno As Byte
uno = %11111100
Dim dos As Byte
dos = %10010010
Dim tres As Byte
tres = %10011000
Dim cuatro As Byte
cuatro = %10101100
Dim cinco As Byte
cinco = %10001001
Dim seis As Byte
seis = %10100001
Dim siete As Byte
siete = %11011100
Dim ocho As Byte
ocho = %10000000
Dim nueve As Byte
nueve = %10001100

numeros:
PORTB = cero
WaitMs 1000
PORTB = uno
WaitMs 1000
Gosub boton
PORTB = dos
WaitMs 1000
Gosub boton
PORTB = tres
WaitMs 1000
Gosub boton
PORTB = cuatro
WaitMs 1000
Gosub boton
PORTB = cinco
WaitMs 1000
Gosub boton
PORTB = seis
WaitMs 1000
Gosub boton
PORTB = siete
WaitMs 1000
Gosub boton
PORTB = ocho
WaitMs 1000
Gosub boton
PORTB = nueve
WaitMs 1000
Gosub boton
Goto numeros

End

_________________________________________
borrar_display: BORRAR DISPLAY
Lcdcmdout LcdClear 'Limpiar LCD
WaitMs 500
Return
_________________________________________
primera:
Lcdcmdout LcdHome 'CURSOR EN LA PRIMER LINEA
WaitMs 500
Return
______________________________________________
segunda:
Lcdcmdout LcdLine2Home 'CURSOR SEGUNDA LINEA
WaitMs 500
Return
_______________________________________________
intro: DESPLEGAR TEXTOS
'Pausa de inicio del LCD
WaitMs 500
Gosub borrar_display
Gosub primera
Lcdout "CECYTE ZONA RIO" 'Escribir en la primera lnea
WaitMs 500
Gosub segunda
Lcdout "MECATRONICA" 'Escribir en la segunda lnea
WaitMs 1000
Gosub borrar_display
Gosub primera
Lcdout "PRACTICA?" 'Escribir en la primera lnea
WaitMs 500
Return
boton: subrutina que detecta botones presionados
If PORTA.0 = 1 Then Goto practica1
If PORTA.1 = 1 Then Goto practica2
If PORTA.2 = 1 Then Gosub practica3
If PORTA.3 = 1 Then Gosub practica4
If PORTA.4 = 1 Then Gosub practica5
Return
PARTE 2:
RECORRER TEXTOS

Edita, compila, simula y carga al microcontrolador, el siguiente programa:

Nota: cada programa debe ser trabajado en el simulador y en el protoboard.


Recuerda cambiar los tiempos a microsegundos para verlo en el simulador.
TABLA DE CONVERSION DE NUMEROS ENTRE SISTEMAS NUMERICOS

DECIMAL BINARIO OCTAL HEXADECIMAL


0 00000000 000 0
1 00000001 001 1
2 00000010 002 2
3 00000011 003 3
4 00000100 004 4
5 00000101 005 5
6 00000110 006 6
7 00000111 007 7
8 00001000 010 8
9 00001001 011 9
10 00001010 012 A
11 00001011 013 B
12 00001100 014 C
13 00001101 015 D
14 00001110 016 E
15 00001111 017 F

CODIGO DE COLORES PARA RESISTENCIAS

También podría gustarte