Manual de prácticas

70
Manual de prácticas De Laboratorio Materia PROGRAMAR SISTEMAS MECATRONICOS Elaborado Por: Ing. Marcos Antonio Moreno Guzmán Agosto 2011

Transcript of Manual de prácticas

Manual de prácticas

De

Laboratorio

Materia

PROGRAMAR SISTEMASMECATRONICOS

Elaborado Por:

Ing. Marcos Antonio Moreno Guzmán

Agosto 2011

Presentación

Este manual está pensado como una guía para que el

alumno pueda realizar experimentos prácticos necesarios para

comprobar los conocimientos teóricos que se han visto en

clase. También le dará pautas para que pueda resolver

problemas prácticos en aplicaciones de los micros

controladores, al programar y diseñar sistemas mecatronicos

y así realizar aplicaciones reales con los conocimientos

adquiridos en clase y en semestres anteriores.

Lista de Experimentos:

Práctica No. 1: RELEVADOR o RELAY, TEMPORIZADOR (TIMER)

555.PARTE 1: FUNCIONAMIENTO DEL RELAYPARTE 2: CIRCUITO BASICO DEL RELAY CON UN MOTOR.PARTE 3: CIRCUITO BASICO DEL TEMPORIZADOR 555, LUZ INTERMITENTE PARTE 4: TEMPORIZADOR, TRANSISTOR, RELAY Y MOTORPráctica No.2 TRANSISTOR EN CORTE Y SATURACION,TRANSISTOR NPN, PNP Y AMPLIFICADOR DARLINGTONPARTE 1: TRANSISTOR EN CORTE Y SATURACION.PARTE 2: FUNCIONAMIENTO DEL TRANSISTOR NPNPARTE 3: FUNCIONAMIENTO DEL TRANSISTOR PNPPARTE 4: FUNCIONAMIENTO DEL AMPLIFICADOR DARLINGTON Y MOTOR.Práctica No.3 CAMBIO DE GIRO DE UN MOTOR DE DC.PARTE 1: FUNCIONAMIENTO DE UN PAR DE RELAYS PARA CAMBIO DE GIROPráctica No.4 CIRCUITO BASICO PIC 16F84 o 16F628PARTE 1: PRIMER PROGRAMA ENCENDER UN LED (PARPADEANDO CADA SEG)PARTE 2: AHORA CON UN INTERRUPTORPARTE 3: CONTROLAR RELAY CON TRANSISTOR NPN.PARTE 4: CONTROL DE GIRO DE UN MOTOR CON MICROCONTROLADOR.Práctica No.5 MANEJO DE SALIDASPARTE 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 LEDSPráctica 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 DESCENDENTEPARTE 3: DESPLEGAR LETRAS.Practica No.8 MANEJO DE MATRIX 5x7.PARTE 1: DESPLAZAMIENTO POR COLUMNAS EN MATRIX 5x7 DE LEDSPARTE 2: DESPLAZAMIENTO POR FILAS EN MATRIX 5x7 DE LEDSPARTE 3: DESPLAZAMIENTO POR FILAS Y COLUMNAS EN MATRIX 5x7 DE LEDSPractica No.9 MANEJO DE DISPLAY.PARTE 1: EL DISPLAY DE CRISTAL LIQUIDO (LCD)PARTE 2: RECORRER TEXTOSPractica No.10 MANEJO DE TECLADO.PARTE 1: EL TECLADOPractica No.11 PROYECTO FINALPARTE 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 RELEVEDORo RELAY, además del funcionamiento básico de un temporizador 555(timer)

PARTE 1:FUNCIONAMIENTO DEL RELAY

Arme el siguientecircuito en elprotoboard:

Que sucede?

Anote sus conclusiones:

Nota: un relevador o relay es un dispositivo electrónico que trabajacomo un interruptor y consta de una bobina y unos contactosindependientes. Dentro de estos tenemos 2:

El “NC” o normalmente cerrado, donde tenemos un flujo de

corriente antes de energizar la bobina. Terminando siempre enpolo negativo.

El “NA” o normalmente abierto, donde tendremos un flujo decorriente una vez energizada la bobina del relay. Terminandosiempre en polo negativo

El “C” o común, que casi siempre conectamos el polo positivo, dela fuente que vamos a manejar para los dispositivo conectados enlos otros dos contactos.

PARTE 2:

CIRCUITO BASICO DEL RELAY CON UN MOTOR.

Arme el siguientecircuito en elprotoboard:

Que sucede?

Anote susconclusiones:

Nota: un motor es un dispositivo electrónico que en su interior constade una bobina por lo que debemos proteger nuestro circuito de voltajesgenerados por esa bobina, por lo que también debemos agregar un diodo para evitar el regreso de voltaje a nuestro circuito.

PARTE 3:CIRCUITO BASICO DEL TEMPORIZADOR 555, LUZ INTERMITENTE

Arme el siguientecircuito en elprotoboard:

Que sucede?

Qué pasa cuando movemosel potenciómetro?

Apague el circuito ycambie el capacitor poruno 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 oscilación entre positivo y negativo,la frecuencia con que cambia esta oscilación (intermitencia) depende de los valores de las resistencias y el capacitor .entre más grande elcapacitor la frecuencia es más 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 potenciómetro?

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 transistoren corte y saturación, transistor NPN, transistor PNP, y observe elfuncionamiento de amplificar una señal de corriente con 2 transistores(par Darlington)

PARTE 1:TRANSISTOR EN CORTE Y SATURACION

Los transistores pueden ser NPN y PNP, esto depende de cómo estén construidos internamente.

Arme el siguiente circuito:Transistor NO conduce (CORTE)

Que observa del circuito?

Enciende el led?

Porque?

Ahora agregamos otra resistencia alcircuito en la base del transistor y loconectamos al positivo de la batería:

Transistor en conducción (SATURACION)

Que puede concluir del circuito quearmo, al introducir voltaje a la basedel transistor?

Arme el siguiente circuito:

Transistor en configuración de Normalmente abierto.

Que es lo que nota al accionar elswitch?

Porque no prende el led?

Haga sus conclusiones.

Arme el siguiente circuito:Transistor en configuración de Normalmente cerrado

Que es lo que nota al accionar elswitch.?

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 alimentación y el emisor hacia el polo Negativo, se dice que el transistor esta polarizado correctamente.

Arme el siguiente circuito en elprotoboard:

Active el interruptor, que es lo quesucede?

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 dela fuente de alimentación 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 elprotoboard:

Active el interruptor, que es lo quesucede?

PORQUE?

ANOTE SUS CONCLUSIONES:

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

Arme el siguiente circuito enel 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 pequeña y utilizamos dos transistores (par Darlington) para amplificarla y poder encender un LED. Hay interruptores Sensitivos en los televisores que permiten economizar un interruptor mecánico y ofrece una utilización más confortable.

Igualmente si colocamos esas dos puntas en un recipiente con

agua o algún líquido que sea conductor de electricidad, pasara lo mismo que al tocarlo, el LED encenderá por la propiedad de conducción de electricidad en el líquido.

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

Objetivo: Que el alumno identifique y compruebe el funcionamiento delos relevadores, como interruptores mecánicos capaces de cambiar lapolaridad 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 práctica , 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 alimentación , la adecuada para cada componente electrónico. (GUARDAR ESTA PRACTICA PARA USARSE EN PRÁCTICA 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 delos diferentes circuitos (RESET, OSCILADOR, ALIMENTACION, ENTRADAS YSALIDAS, que forman el circuito básico de operación para un microcontrolador. (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 demás 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 losprimeros renglones del programa anota como comentario: NOMBRE, GRUPO YNUMERO 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 salidasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en cero

INICIO: 'etiqueta de inicio de programa

High PORTB.0 'enciende pin 0 del puerto bWaitUs 10 'espera 1 segLow PORTB.0 'apaga el pin 0 del puerto bWaitUs 10 'espera 1 seg Goto INICIO 'regresa a la etiqueta inicio End 'fin del programa

De la pestaña 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 elvalor agrégale 2 ceros, si tienes 10, ahora escribe 1000.

Con los cambios hechos, ahora compílalo 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 quese tenga, será el software a usar.

2. En la pestaña de configuración del programa elige el número correcto del microcontrolador que vas a usar para tu práctica.

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 insértalo 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 elcorrecto, 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 cómo 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 colocadoen 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 salidasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %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 queencendiste 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 cómo 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 elinterruptor programado como entrada del programa anterior.

Anota tus conclusiones:

PARTE 4:CONTROL DE GIRO DE UN MOTOR CON MICROCONTROLADOR (PRÁCTICA#3)

Arme el siguiente circuito en el protoboard, haciendo los cambios paratú práctica 3 quitando los interruptores y mandándolos a voltaje (el que use tu relay) y agrégale en la parte de tierra, los transistores como se ilustra:

Ahora, siguiendo los pasos anteriormente mencionados vamos a hacer queel 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 digitalesTRISB = 0 ‘puerto b como salidasTRISA = 255 ‘puerto a como entradas

PORTA = 0 ‘puerto A apagadosPORTB = 0 ‘puerto B apagados

Inicio:If PORTA.0 = 1 Then Goto izquierdaIf PORTA.1 = 1 Then Goto derechaGoto inicio

Izquierda:PORTB.0 = 1 'ENCIENDE MOTOR 1

PORTB.1 = 1 ‘activa transistor IzquierdaPORTB.2 = 0 ‘desactiva transistor derecha

If PORTA.2 = 1 Then Goto apagarGoto izquierda

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

If PORTA.2 = 1 Then Goto ApagarGoto derecha

Apagar: PORTB = 0 'apagar PUERTO BGoto inicio

End ‘Fin del programa

Presiona el interruptor de Izquierda, y después el de paro. Que sucedeen la barra de leds del simulador?

Haz lo mismo para el interruptor de Derecha, que sucede en la barra deleds 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 cómo funciona:

Practica No.5 MANEJO DE SALIDAS

Objetivo: Que el alumno identifique y compruebe el funcionamiento delas diferentes formas de activar y desactivar las salidas del puertoRB 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 ceroPORTA = %00000000 'aseguramos todo el puerto A en cero

Inicio: ‘etiqueta de inicio de programa

High PORTB.0 'enciende pin 0 del puerto bHigh PORTB.1 'enciende pin 1 del puerto bWaitUs 20 'espera 1 segLow PORTB.0 'apaga el pin 0 del puerto bLow PORTB.1 'apaga el pin 1 del puerto bWaitUs 20 'espera 1 seg

High PORTB.2 'enciende pin 2 del puerto bHigh PORTB.3 'enciende pin 3 del puerto bWaitUs 20 'espera 1 segLow PORTB.2 'apaga el pin 2 del puerto bLow PORTB.3 'apaga el pin 3 del puerto bWaitUs 20 'espera 1 seg

High PORTB.4 'enciende pin 4 del puerto bHigh PORTB.5 'enciende pin 5 del puerto bWaitUs 20 'espera 1 segLow PORTB.4 'apaga el pin 4 del puerto bLow PORTB.5 'apaga el pin 5 del puerto b

WaitUs 20 'espera 1 seg

High PORTB.6 'enciende pin 6 del puerto bHigh PORTB.7 'enciende pin 7 del puerto bWaitUs 20 'espera 1 segLow PORTB.6 'apaga el pin 6 del puerto bLow PORTB.7 'apaga el pin 7 del puerto bWaitUs 20 'espera 1 segGoto inicio 'regresa a la etiqueta inicioEnd 'fin

Una vez que funcione en el simulador cambie los tiempos a Milisegundos y páselo 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 cómo 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 digitalesTRISB = 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 programaHigh PORTB.0 'enciende pin 0 del puerto bWaitUs 10 'espera 1 segLow PORTB.0 'apaga el pin 0 del puerto bWaitUs 10 'espera 1 seg High PORTB.1 'enciende pin 1 del puerto bWaitUs 10 'espera 1 segLow PORTB.1 'apaga el pin 1 del puerto bWaitUs 10 'espera 1 seg

High PORTB.2 'enciende pin 2 del puerto bWaitUs 10 'espera 1 segLow PORTB.2 'apaga el pin 2 del puerto bWaitUs 10 'espera 1 segHigh PORTB.3 'enciende pin 3 del puerto bWaitUs 10 'espera 1 segLow PORTB.3 'apaga el pin 3 del puerto bWaitUs 10 'espera 1 seg

High PORTB.4 'enciende pin 4 del puerto bWaitUs 10 'espera 1 segLow PORTB.4 'apaga el pin 4 del puerto bWaitUs 10 'espera 1 seg

High PORTB.5 'enciende pin 5 del puerto bWaitUs 10 'espera 1 segLow PORTB.5 'apaga el pin 5 del puerto bWaitUs 10 'espera 1 seg

High PORTB.6 'enciende pin 6 del puerto bWaitUs 10 'espera 1 segLow PORTB.6 'apaga el pin 6 del puerto bWaitUs 10 'espera 1 seg

High PORTB.7 'enciende pin 7 del puerto bWaitUs 10 'espera 1 segLow PORTB.7 'apaga el pin 7 del puerto bWaitUs 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 cómo 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 método 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 ceroPORTA = %00000000 'aseguramos todo el puerto A en ceroDim pin As Byte ‘definimos PIN como un ByteDim 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 unoled = LookUp (01, 02, 04, 08, 16, 32, 64, 128), pin ‘led toma el

valor de pinPORTB = led ‘sacamos el valor de pin al Puerto B

WaitUs 1 ‘esperamos un SegundoNext pin ‘siguiente valor para pinGoto 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 cómo funciona:

PARTE 4:

RECORRIDO Y APAGADO DE LEDSEn 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 ByteDim led As Byte

inicio: 'etiqueta de inicio de programa

For pin = 0 To 3 Step 1 '1 2 4 8 16 32 64 128led = LookUp (24, 60, 126, 255), pinPORTB = ledWaitUs 1Next pinPORTB = 0WaitUs 10Goto 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 cómo 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 digitalesTRISB = 0 'configurar puerto B como salidasTRISA = %11111111 'configura puerto A como entradasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en cero

inicio: 'etiqueta de inicio de programa

Goto boton

'PARA EL PUERTO A0puertoa0:PORTB = %00000001

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

simulación!PORTB = ShiftLeft (PORTB, 1)

If PORTB = %10000000 Then Goto dosGoto llenando

dos: PORTB = %10000001WaitUs 30 'esta demora debe ser mayor si no es una

simulación!PORTB = ShiftLeft (PORTB, 1)

If PORTB = %11000000 Then Goto trestres:

PORTB = %11000001WaitUs 30 'esta demora debe ser mayor si no es una

simulación!PORTB = ShiftLeft (PORTB, 1)

If PORTB = %11100000 Then Goto cuatrocuatro:

PORTB = %11100001

WaitUs 30 'esta demora debe ser mayor si no es una simulación!

PORTB = ShiftLeft (PORTB, 1)If PORTB = %11110000 Then Goto cinco

cinco:PORTB = %11110001WaitUs 30 'esta demora debe ser mayor si no es una

simulación!PORTB = ShiftLeft (PORTB, 1)

If PORTB = %11111000 Then Goto seisseis:

PORTB = %11111001WaitUs 30 'esta demora debe ser mayor si no es una

simulación!PORTB = ShiftLeft (PORTB, 1)

If PORTB = %11111100 Then Goto siete

siete: PORTB = %11111101WaitUs 30 'esta demora debe ser mayor si no es una

simulación!PORTB = ShiftLeft (PORTB, 1)

If PORTB = %11111110 Then Goto llenolleno:

PORTB = 255Goto inicio

'PARA EL PUERTO A1puertoa1:

PORTB = 0Goto inicio

'CUAL BOTON SE SELECCIONOboton:

If PORTA.0 = 1 Then Goto puertoa0If PORTA.1 = 1 Then Goto puertoa1Goto 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 cómo 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 salidasTRISA = 1 'configura puerto A como entradasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %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 segundoPORTB = ShiftLeft (PORTB, 1) ‘recorre en uno lo del Puerto BIf PORTB = %10000000 Then Goto derecha ‘si llego al valor RBGoto izquierda ‘ir a etiqueta izquierda

derecha:

WaitUs 1 ‘retardo de un segundoPORTB = ShiftRight (PORTB, 1) ‘recorre en uno lo del Puerto B

If PORTB = %00000001 Then Goto izquierdaGoto 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 digitalesTRISB = 0 'configurar puerto B como salidasTRISA = 1 'configura puerto A como entradasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %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 simulación

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

Goto izquierda

derecha:

WaitUs 1 'esta demora debe ser mayor si no es una simulación

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 cómo funciona:

Practica No.6 MANEJO DE ENTRADAS.

Objetivo: Que el alumno identifique y compruebe el funcionamiento dediferentes dispositivos electrónicos en algunas aplicaciones realesque podemos realizar, con transistores, relevadores, SCR, dispositivosque funcionan como interruptores electrónicos. Ademas de lasdiferentes formas de activar y desactivar las ENTRADAS del puerto RAdel 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 salidasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en cero

inicio: 'etiqueta de inicio de programa

cual:If PORTA.0 = 1 Then Gosub MODO1If PORTA.1 = 1 Then Gosub MODO2If PORTA.2 = 1 Then Gosub MODO3If PORTA.3 = 1 Then Gosub MODO4If PORTA.4 = 1 Then Gosub MODO5HIGH PORTB.7Goto cual

MODO1: ‘INICIO DE MODO 1PORTB = %00000000High PORTB.0 'enciende pin 0 del puerto bWaitMs 300 'espera 3 segLow PORTB.0 'apaga el pin 0 del puerto b

WaitMs 300 'espera 3 segGosub botonGoto MODO1

MODO2: ‘INICIO DE MODO 2

PORTB = %00000000PORTB = %00000001

izquierda:

WaitMs 25 'esta demora debe ser mayor si no es una simulación!PORTB = ShiftLeft(PORTB, 1)

If PORTB = %10000000 Then Goto derechaGosub boton

Goto izquierda

derecha:

WaitMs 25 'esta demora debe ser mayor si no es una simulación!PORTB = ShiftRight(PORTB, 1)

If PORTB = %00000001 Then Goto izquierdaGosub boton

Goto derecha

MODO3: 'INICIO DE MODO 3PORTB = 0WaitMs 200 'espera 1 seg

High PORTB.0 'enciende pin 0 del puerto bWaitMs 200 'espera 1 segLow PORTB.0 'apaga el pin 0 del puerto bWaitMs 200 'espera 1 segGosub boton

High PORTB.1 'enciende pin 1 del puerto bWaitMs 200 'espera 1 segLow PORTB.1 'apaga el pin 1 del puerto bWaitMs 200 'espera 1 segGosub boton

High PORTB.2 'enciende pin 2 del puerto bWaitMs 200 'espera 1 segLow PORTB.2 'apaga el pin 2 del puerto bWaitMs 200 'espera 1 seg

Gosub boton

High PORTB.3 'enciende pin 3 del puerto bWaitMs 200 'espera 1 segLow PORTB.3 'apaga el pin 3 del puerto bWaitMs 200 'espera 1 segGosub boton

High PORTB.4 'enciende pin 4 del puerto bWaitMs 200 'espera 1 segLow PORTB.4 'apaga el pin 4 del puerto bWaitMs 200 'espera 1 segGosub boton

High PORTB.5 'enciende pin 5 del puerto bWaitMs 200 'espera 1 segLow PORTB.5 'apaga el pin 5 del puerto bWaitMs 200 'espera 1 segGosub boton

High PORTB.6 'enciende pin 6 del puerto bWaitMs 200 'espera 1 segLow PORTB.6 'apaga el pin 6 del puerto bWaitMs 200 'espera 1 segGosub boton

High PORTB.7 'enciende pin 7 del puerto bWaitMs 200 'espera 1 segLow PORTB.7 'apaga el pin 7 del puerto bWaitMs 200 'espera 1 segGosub boton

Goto MODO3 'regresa a la etiqueta MODO3

MODO4: 'INICIO DE MODO 4

Dim pin As ByteDim led As BytePORTB = 0WaitMs 200 'espera 1 seg

For pin = 0 To 3 Step 1 '1 2 4 8 16 32 64 128led = LookUp(24, 60, 126, 255), pinPORTB = ledWaitMs 200 'espera 1 seg

Gosub botonNext pin

For pin = 0 To 7 Step 1led = LookUp(254, 252, 248, 240, 224, 192, 128, 0), pinPORTB = ledWaitMs 200 'espera 1 segGosub botonNext pin

PORTB = 0WaitMs 200 'espera 1 segGoto MODO4

MODO5: 'INICIO DESPLEGAR NUMEROS EN DISPLAY DE 7 SEGMENTOS

PORTB = %11111111

Dim cero As Bytecero = %11000000

Dim uno As Byteuno = %11111100

Dim dos As Bytedos = %10010010

Dim tres As Bytetres = %10011000

Dim cuatro As Bytecuatro = %10101100

Dim cinco As Bytecinco = %10001001

Dim seis As Byteseis = %10100001

Dim siete As Bytesiete = %11011100

Dim ocho As Byteocho = %10000000

Dim nueve As Bytenueve = %10001100

numeros:PORTB = ceroWaitMs 1000PORTB = unoWaitMs 1000

Gosub boton

PORTB = dosWaitMs 1000

Gosub botonPORTB = tresWaitMs 1000

Gosub botonPORTB = cuatroWaitMs 1000

Gosub botonPORTB = cincoWaitMs 1000

Gosub botonPORTB = seisWaitMs 1000

Gosub botonPORTB = sieteWaitMs 1000

Gosub botonPORTB = ochoWaitMs 1000

Gosub boton

PORTB = nueveWaitMs 1000

Gosub botonGoto numerosEnd

__________________________________________________ boton:

WaitMs 100If PORTA.0 = 1 Then Goto MODO1If PORTA.1 = 1 Then Goto MODO2If PORTA.2 = 1 Then Gosub MODO3If PORTA.3 = 1 Then Gosub MODO4If PORTA.4 = 1 Then Gosub MODO5Return

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 ELMICROCONTROLLER 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 alos 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 yacciona el interruptor de A0(del programa anterior), si no alcanza a encender el

circuito aumenta el tiempo en que este enciende, para logar activarlo alencender 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 yacciona el interruptor de A4(del programa anterior), si no alcanza a encender el

circuito aumenta el tiempo en que este enciende, para logar activarlo alencender 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 alaccionar el switch?

Quita el switch y toca esoscables con tus dedos.Que sucede?

Donde puede aplicar estecircuito?

Anote sus conclusiones:

Ahora te toca a ti controlar, manda el punto donde está el emisor de salida delpuente Darlington a algún puerto de entrada del microcontrolador, para usarlocomo interruptor táctil y el zumbador o Buzer a alguna salida para que cuando

se active zumbe.

Realiza los cambios necesarios para que eso suceda, escribe aquí

5

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 actúa como amplificador.

Por el agua circula una corriente muy pequeña, el transistor la amplifica (la hace más 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 más abajo que otro.

¿Se Ilumina el LED?

¿Por qué?

Agrega un zumbador como se muestra.Introduce las puntas “A” y “B” en elagua.

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 deltransistor a algún puerto de entrada del microcontrolador, para usarlo como

sensor de humedad y el zumbador o Buzer a alguna salida para que cuando sedetecte 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 activaralarma, el de armar alarma a puertos de salida del microcontrolador y en las

entradas del microcontrolador coloca lo que quieres alarmar cuando se detecteesa entrada.

(Sensor táctil, de agua, de luz, etc.) Recuerda colocar también un interruptor paradesactivar 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 displayde 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 estarán relacionados:

Basándonos en la configuración 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 digitalesTRISB = 0 'configurar puerto B como salidasTRSA = 255 ‘configurar puerto A como entradasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %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 comunDim cero As Byte

cero = %11000000Dim uno As Byte

uno = %11111100Dim dos As Byte

dos = %10010010Dim tres As Byte

tres = %10011000Dim cuatro As Byte

cuatro = %10101100Dim cinco As Byte

cinco = %10001001Dim seis As Byte

seis = %10100001Dim siete As Byte

siete = %11011100Dim ocho As Byte

ocho = %10000000Dim nueve As Byte

nueve = %10001100

numeros:PORTB = ceroWaitMs 1000PORTB = unoWaitMs 1000

Gosub boton

PORTB = dosWaitMs 1000

Gosub botonPORTB = tresWaitMs 1000

Gosub botonPORTB = cuatroWaitMs 1000

Gosub boton

PORTB = cincoWaitMs 1000

Gosub boton

PORTB = seisWaitMs 1000

Gosub botonPORTB = sieteWaitMs 1000

Gosub botonPORTB = ochoWaitMs 1000

Gosub botonPORTB = nueveWaitMs 1000

Gosub botonGoto numerosEnd

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 aplicación:

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 algún 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 cómo 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 cómo funciona:

Practica No.8 MANEJO DE MATRIX DE LEDS 5x7.

Objetivo: Que el alumno compruebe el funcionamiento de una matrix deleds 5x7, observe su funcionamiento y practique configurando lassalidas del microcontrolador.

PARTE 1:DESPLAZAMIENTO POR COLUMNAS EN MATRIX 5x7 DE LEDS

En el siguiente diagrama se ve la configuración 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 AllDigitalTRISA = %00000000TRISB = %00000000PORTB = %00000000'__________________________________________

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

vivorita:

WaitMs 100PORTB = ShiftLeft(PORTB, 1)If PORTB = %10000000 Then Goto botonaGoto vivorita

botona:PORTA = 253 'columna 2

derechaa:WaitMs 100PORTB = ShiftRight(PORTB, 1)If PORTB = %00000001 Then Goto botonbGoto derechaa

'________________________________________botonb:

PORTA = 251 'columna 3izquierdab:

WaitMs 100PORTB = ShiftLeft(PORTB, 1)If PORTB = %10000000 Then Goto botoncGoto izquierdab

'________________________________________botonc:

PORTA = 247 'columna 4derechac:

WaitMs 100PORTB = ShiftRight(PORTB, 1)If PORTB = %00000001 Then Goto botondGoto derechac

'__________________________________________botond:

PORTA = 239 'columna 5izquierdad:

WaitMs 100PORTB = ShiftLeft(PORTB, 1)If PORTB = %10000000 Then Goto llenoGoto izquierdad

'______________________________________________lleno:

PORTA = 0PORTB = 255WaitMs 100Goto 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 FILASAllDigitalTRISA = %00000000TRISB = %00000000PORTB = %00000000Dim numero As ByteDim col As Byte

Inicio:

fila1:PORTB = 1Gosub fwd

fila2:PORTB = 2Gosub rev

fila3:PORTB = 4Gosub fwd

fila4:PORTB = 8Gosub rev

fila5:PORTB = 16Gosub fwd

fila6:PORTB = 32Gosub rev

fila7:PORTB = 64Gosub fwd

Gosub llenoGoto inicioEnd

'________________________________________

lleno:PORTA = 0PORTB = 255WaitMs 500

Return'________________________________________

fwd:PORTA = 255WaitMs 100 'espera 1 segFor numero = 0 To 4 Step 1 'numero de columnascol = LookUp(254, 253, 251, 247, 239), numeroPORTA = colWaitMs 100 'espera 1 segNext numeroReturn

'________________________________________rev:

For numero = 0 To 4 Step 1 'numero de columnascol = LookUp(239, 247, 251, 253, 254), numeroPORTA = colWaitMs 100 'espera 1 segNext numeroReturn

Que sucede en la matrix de leds?

Donde podrías aplicar esta práctica?

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 algún 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 aconectar un display de cristal líquido, al microcontrolador.

PARTE 1:EL DISPLAY DE CRISTAL LÍQUIDO (LCD)

En el siguiente diagrama se ve la configuración de pines de un displayde cristal líquido (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'DEFINICIÓN DE REGISTROS PARA EL LCDDefine LCD_DREG = PORTB 'Utilizar 4 bits del puerto B para tx dedatosDefine LCD_DBIT = 4 'Desde el Bit B.4 al Bit B.7Define LCD_RSREG = PORTB 'Selección del puerto del registroDefine LCD_RSBIT = 1 'En el bit B.1Define LCD_EREG = PORTB 'Utilizar el enable en el puerto BDefine LCD_EBIT = 2 'En el bit B.2Define LCD_INITMS = 1000 '2 'tiempo para iniciar en display

AllDigital 'todos los puertos digitalesTRISB = %00000000 'configurar puerto B como salidasTRISA = %11111111PORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en ceroLcdinit 3 'INICIALIZA DISPLAY

inicio: 'etiqueta de inicio de programaGosub intro 'despliega introducccion en display

cual:If PORTA.0 = 1 Then Gosub practica1If PORTA.1 = 1 Then Gosub practica2If PORTA.2 = 1 Then Gosub practica3If PORTA.3 = 1 Then Gosub practica4If PORTA.4 = 1 Then Gosub practica5FreqOut PORTB.7, 2000, 10

Goto cual

practica1: 'INICIO DE PRACTICA 1'Pausa de inicio del LCD

WaitMs 500'--------------------------------------------------------

Gosub borrar_displayGosub primeraLcdout "MECATRONICA" 'Escribir en la primera líneaWaitMs 1000Gosub segundaLcdout "PRACTICA 1" 'Escribir en la segunda línea

WaitMs 1000practica_uno:

PORTB = %00000000High PORTB.0 'enciende pin 0 del puerto b

WaitMs 300 'espera 3 segLow PORTB.0 'apaga el pin 0 del puerto bWaitMs 300 'espera 3 segGosub boton

Goto practica_uno

practica2: 'INICIO DE PRACTICA 2

'Pausa de inicio del LCDWaitMs 500'--------------------------------------------------------

Gosub borrar_displayGosub primeraLcdout "MECATRONICA" 'Escribir en la primera líneaWaitMs 1000Gosub segundaLcdout "PRACTICA 2" 'Escribir en la segunda línea

WaitMs 500

practica_dos:PORTB = %00000000PORTB = %00000001

izquierda:WaitMs 25 'esta demora debe ser mayor si no es una simulación!PORTB = ShiftLeft(PORTB, 1)

If PORTB = %10000000 Then Goto derechaGosub boton

Goto izquierdaderecha:

WaitMs 25 'esta demora debe ser mayor si no es una simulación!PORTB = ShiftRight(PORTB, 1)

If PORTB = %00000001 Then Goto izquierdaGosub boton

Goto derecha

practica3: 'INICIO DE PRACTICA 3

Gosub borrar_displayGosub primeraLcdout "MECATRONICA" 'Escribir en la primera líneaWaitMs 1000Gosub segundaLcdout "PRACTICA 3" 'Escribir en la segunda líneaWaitMs 500

practica_tres:

PORTB = 0WaitMs 200 'espera 1 seg

High PORTB.0 'enciende pin 0 del puerto bWaitMs 200 'espera 1 segLow PORTB.0 'apaga el pin 0 del puerto bWaitMs 200 'espera 1 segGosub boton

High PORTB.1 'enciende pin 1 del puerto bWaitMs 200 'espera 1 segLow PORTB.1 'apaga el pin 1 del puerto bWaitMs 200 'espera 1 segGosub boton

High PORTB.2 'enciende pin 2 del puerto bWaitMs 200 'espera 1 segLow PORTB.2 'apaga el pin 2 del puerto bWaitMs 200 'espera 1 segGosub boton

High PORTB.3 'enciende pin 3 del puerto bWaitMs 200 'espera 1 segLow PORTB.3 'apaga el pin 3 del puerto bWaitMs 200 'espera 1 segGosub boton

High PORTB.4 'enciende pin 4 del puerto bWaitMs 200 'espera 1 segLow PORTB.4 'apaga el pin 4 del puerto bWaitMs 200 'espera 1 segGosub boton

Goto practica_tres 'regresa a la etiqueta practica3

practica4: 'INICIO DE PRACTICA 4Gosub borrar_displayGosub primeraLcdout "MECATRONICA" 'Escribir en la primera líneaWaitMs 500Gosub segundaLcdout "PRACTICA 4" 'Escribir en la segunda líneaWaitMs 500

practica_cuatro:Dim pin As ByteDim led As Byte

PORTB = 0WaitMs 200 'espera 1 seg

For pin = 0 To 3 Step 1 '1 2 4 8 16 32 64 128led = LookUp(24, 60, 126, 255), pinPORTB = ledWaitMs 200 'espera 1 segGosub botonNext pin

For pin = 0 To 7 Step 1led = LookUp(254, 252, 248, 240, 224, 192, 128, 0), pinPORTB = ledWaitMs 200 'espera 1 segGosub botonNext pin

PORTB = 0WaitMs 200 'espera 1 segGoto practica_cuatro

practica5: 'INICIO DE PRACTICA 5

Gosub borrar_displayGosub primeraLcdout "MECATRONICA" 'Escribir en la primera líneaWaitMs 500Gosub segundaLcdout "PRACTICA 5" 'Escribir en la segunda línea

WaitMs 500

practica_cinco:PORTB = %11111111

Dim cero As Bytecero = %11000000

Dim uno As Byteuno = %11111100

Dim dos As Bytedos = %10010010

Dim tres As Bytetres = %10011000

Dim cuatro As Bytecuatro = %10101100

Dim cinco As Bytecinco = %10001001

Dim seis As Byteseis = %10100001

Dim siete As Bytesiete = %11011100

Dim ocho As Byteocho = %10000000

Dim nueve As Bytenueve = %10001100

numeros:PORTB = ceroWaitMs 1000PORTB = unoWaitMs 1000

Gosub botonPORTB = dosWaitMs 1000

Gosub botonPORTB = tresWaitMs 1000

Gosub botonPORTB = cuatroWaitMs 1000

Gosub botonPORTB = cincoWaitMs 1000

Gosub botonPORTB = seisWaitMs 1000

Gosub boton

PORTB = sieteWaitMs 1000

Gosub botonPORTB = ochoWaitMs 1000

Gosub botonPORTB = nueveWaitMs 1000

Gosub botonGoto numeros

End

‘_________________________________________borrar_display: ‘BORRAR DISPLAY

Lcdcmdout LcdClear 'Limpiar LCDWaitMs 500Return

‘_________________________________________primera:

Lcdcmdout LcdHome 'CURSOR EN LA PRIMER LINEA

WaitMs 500Return

‘______________________________________________segunda:

Lcdcmdout LcdLine2Home 'CURSOR SEGUNDA LINEAWaitMs 500Return

‘_______________________________________________intro: ‘DESPLEGAR TEXTOS 'Pausa de inicio del LCDWaitMs 500

Gosub borrar_displayGosub primera

Lcdout "CECYTE ZONA RIO" 'Escribir en la primera líneaWaitMs 500Gosub segunda

Lcdout "MECATRONICA" 'Escribir en la segunda líneaWaitMs 1000Gosub borrar_displayGosub primeraLcdout "PRACTICA?" 'Escribir en la primera líneaWaitMs 500Return

boton: ‘subrutina que detecta botones presionadosIf PORTA.0 = 1 Then Goto practica1If PORTA.1 = 1 Then Goto practica2If PORTA.2 = 1 Then Gosub practica3If PORTA.3 = 1 Then Gosub practica4If PORTA.4 = 1 Then Gosub practica5Return

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 HEXADECIMAL0123456789101112131415

00000000000000010000001000000011000001000000010100000110000001110000100000001001000010100000101100001100000011010000111000001111

000001002003004005006007010011012013014015016017

0123456789ABCDEF

CODIGO DE COLORES PARA RESISTENCIAS