reporte microcontroladores

Upload: alonsoezqueda

Post on 14-Jan-2016

224 views

Category:

Documents


0 download

DESCRIPTION

introduccion a microcontroladores

TRANSCRIPT

Colegio de estudios cientficos y tecnolgicos del estado de baja California

Alumno: Medina Arteaga Ernesto.

Grupo: 4BMT.

Nombre de la prctica: Reporte Final.

Parcial: 3

Materia: Utiliza y programa micro controladores.

Profesor: Jos Cruz Miranda Herrera.

Fecha: 01 de Junio del 2015

ndice

Material y equipo ......................................3

Desarrollo...................................................4

Programas ................................................4

Programas LCD .........................................24

Conclusin ..................................................29

Material y equipo

-Computadora

-Programa PIC C

-Programa PROTEUS

Desarrollo

Durante este semestre estuvimos aprendiendo a programar un microcontrolador.Todo este semestre consta de 20 programas diferentes junto a 3 programas sobre el LCD.

A continuacin presento los 23 programas correspondientes.

Programa #1Hacer un programa que haga que encienda el bit 3 del puerto D.

Programa #2Hacer que se encienda el bit D7 y despus de 5 segundos se apague.

Para hacer este programa solo encendimos el BIT 7 y usamos un delay para retasar 5 segundos el apagado del mismo Bit. El delay se utiliza en ms donde 1 segundo equivale a 1000 ms.

Programa #3Un programa que haga que el bit 3 del puerto D flashee 3 veces, tiene que durar medio segundo apagado y 1 prendido.

Este programa funciona mediante Delays, es similar al anterior solo que usamos un delay antes de apagar el bit para cumplir con lo requerido.

Programa #4Hacer que flasee el Bit 3 y 7 al mismo tiempo 3 veces. Deber quedar encendido por 1.5 segundos y apago 2 segundos.

Para hacer este programa se hizo casi lo mismo que el anterior pero en lugar de tomar un solo BIT tomamos todo el puerto, se puso 0x88Hporque es la suma de los bits en sus respectivas posiciones. El bit 3 es el bit ms alto del nibble bajo, por lo que es el ocho de la derecha.El bit 7 es el bit ms alto del nibble alto, por lo que es el ocho de la izquierda.

Programa #5Realizar el programa que permita encender los bits 0, 1, 3,5 y 7del puerto D.

Es lo mismo que el anterior, solo ponemos los bits en sus respectivas posiciones y hacemos la suma en el nibble bajo y la suma en el nibble alto. Y para ponerlo en PIC C se pone en Hexadecimal, por ejemplo, en el nibble alto se suma 10 y se pone una A.En el nibble bajo se suma 11 y se pone una B.Poniendo como comando Portd=OxAB

Programa #6Realizar un programa que permita monitorear el estado del bit B0 en el bit D0.

Este programa hace que lo que pase en el Bit 0 del puerto B se refleje en el bit o del puerto D.Es decir, si el bit B0 tiene un 1 lgico, reflejara ese 1 en el Bit D0.

Programa #7: Todo lo que pase en el puerto B se reflejara en el puerto D.

Este programa funciona similar al anterior, solo que en lugar de usar un solo bit para reflejar otro bit, usamos el puerto entero para reflejar otro puerto entero.

Programa #8Un programa que lea el puerto de entrada B y lo sume con la cantidad 05H y lo despliegue en el puerto B.

Es como el anterior, solo que a la hora de reflejar el puerto B se le suma 0x05 , lo que quiere decir que el puerto D estar recibiendo lo que le mande el puerto B mas 0x05.Por ejemploSi mandamos 0x01 del puerto B al puerto D a esa cantidad se le sumara 0x05 lo que dar igual a 0x06.

Programa #9Realizar un programa que permitir hacer la funcin espejo en el puerto B, el nibble bajo ser de entrada y el nibble alto ser de salida, permitiendo monitorear el estado de el nibble de entrada y el de salida.Este programa funciona mediante el comando swap y una variable.Primero se declara dicha variable y despus se le da el valor del puerto B, proseguimos dndole un swap a la variable (Lo que hace un swap es cambiar el nibble bajo por el nibble alto y viceversa, dando de esta forma el monitoreo espejo que deseamos) y dando el valor de la variable al puerto B de regreso.

Programa #10Una alarma que se active cuando el sensor RB2 encienda activando RD0.

Es lo mismo que el programa #6, si el bit RB2 (En este caso, un sensor) se activa, encender la salida RD0.

Programa #11Una alarma que se active (RD0) cuando cualquiera de los siguientes sensores se active; (RB0, RB1, RB2, RB3 Y RB4). Este programa funciona con la premisa de que cuando se presione cualquiera de las 5 entradas, se activara la salida RD0.

Cada comando If que se encuentra en el programa tiene el motivo de activar la salida cuando cualquiera de las entradas se active.

Programa #12La misma alarma se activara solo cuando dos sensores sean presionados el mismo tiempo (RA0 Y RA2)Este programa tiene como base el comando IF, lo que significa que solo dejara que se active la salida RD0 si se cumple lo dicho por el comando. En este caso usamos la operacin AND para que solo funcionara si los dos sensores son activados al mismo tiempo.

Programa #13Realizar un programa que permita tener una seal cuadrada simtrica de 5Hz en el bit 5 del puerto D.Este programa es interesante. Para producir una onda Hz es necesario mandar un 1 lgico por una cierta cantidad de tiempo para producir cierta onda.En el caso de esta prctica se necesitaba una onda de 50 hz y para saber cundo tiempo mandaramos un 1 lgico usamos la formula 1/f=1/50hz dndonos un resultado de 0.02 que vendran siendo 20 ms.

Entonces lo que hicimos para programar fue encender el bit 5, poniendo un delay de 10 ms, apagarlo y poner otro delay de 10ms y repetirlo constantemente para que la onda se mantenga.Son solo 10 ms por que la parte positiva de la onda (10 ms) y la negativa (10 ms) nos dan como resulta la onda de 50hz.

Programa #14Realizar un programa que permita tener una seal cuadrada donde sea a 100 heartz de periodo y la parte positiva sea de 5 ms en el bit 5.Este programa funciona similar al anterior, despus de sacar el resultado de nuestra formula nos dan 10 ms.Entonces encendemos el bit duran 5 ms y lo apagamos durante otros 5 ms constantemente gracias a un while y se forma la onda que requeramos.

Programa #15Realizar un programa que controle un semforo en el puerto D.Este programa funciona usando el puerto entero para encender varios leds al mismo tiempo.Lo que quiero decir es que para encender el Led rojo y el verde (que simulan los dos semforos) al mismo tiempo solo se encendieron los bits del mismo puerto como lo sugiere la imagen.

Programa #16Realizar un semforo con el foco amarillo flasheando 3 veces por medio segundo.Este programa funciona igual que el anterior solo que es un poco ms largo ya que se requieren un par de lneas extras para hacer el parpadeo del led amarillo.

Programa #17Hacer un semforo con cruce peatonal.Donde;Luz verde: 5 seg.Amarilla: 3 seg. (Donde los ltimos dos seg. Flashea medio segundo)Rojo: 8 seg.Azul (cruce peatonal): dos veces prendido, dos apago (2 seg)

Esto funciona mediante muchos comandos If.Lo que hace este programa es poner el comando If regularmente entre la rutina normal del semforo, poniendo como ejemplo, es poner entre la luz verde y la luz amarilla dos comandos If con dos rutinas distintas, las cuales son las rutinas de los focos cuando tienen encendido el cruce peatonal.Cuando una de estas dos rutinas se activa, poner una variable a 0 y hacen que se regrese y se repita de nuevo la rutina normal.

Programa #18Realizar un programa que permita rotar el dato 01h en el puerto D de manera infinita desde el bit 0 al bit7.

Lo primero que se hace es darle el valor de 0x01 al puerto d y despus usamos el comando portb