Anda di halaman 1dari 29

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 #1
Hacer un programa que haga que encienda el bit 3 del puerto D.

Programa #2
Hacer 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 #3
Un 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 #4
Hacer 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 #5
Realizar 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 #6
Realizar 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 #8
Un 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 ejemplo
Si mandamos 0x01 del puerto B al puerto D a esa cantidad se le
sumara 0x05 lo que dar igual a 0x06.

Programa #9
Realizar 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 #10
Una 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 #11
Una 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 #12
La 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 #13
Realizar 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 #14
Realizar 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 #15
Realizar 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 #16
Realizar 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 #17

Hacer 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 #18

Realizar 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<<1 lo que significa que el bit (o
los bits) se recorrern un lado a la izquierda y seguimos haciendo eso
hasta que llegue al bit 7.
Se usa un delay para poder percibir el cambio.

Programa #19

Realizar un programa que permita rotar el dato 01H de puerto d a la


izquierda y cuando llegue al bit 7 se regrese al bit 0.

Esto al principio hace lo mismo que el programa pasado pero cuando


llega al bit 7 usamos el mismo mtodo pero a la inversa para
regresarlo al bit 0.
Se usa un while para ciclarlo y que se repita infinidad de veces.

Programa #20

Realizar un programa que permita llenar el puerto D de bits, es decir,


que ponga 1 de forma secuencial del bit 0 al bit 7 y despus realizar
el apagado desde el bit 7 hasta el bit 0.

Este programa funciona mediante la premisa de la formula x*2+1 que


es la secuencia que necesitamos para que los los bits se vayan
encendiendo uno a uno sin que se apaguen los dems.
Para regresarlos usamos la formula x-1/2 que es lo contrario a la
primera y hace que los bits se apaguen en secuencia regresiva.

Programa LCD #1

Hacer que tu nombre vaya de lado a lado en un LCD.

Este programa funciona usando un for que mueve la palabra un


renglon a la izquierda por cada vez que se repite la secuencia como
podemos ver en la imagen del pic c.
En donde se pone el rengln donde aparecer la palabra esa la
variable (y) la cual nos indica que empezara en el rengln 16 y se
vendr restando por cada vez que se repita la secuencia.

Programa LCD #2

Llenar el LCD de * e irlos eliminando en la secuencia en la que


aparecieron.

Lo que hace este programa es empezar en el rengln 9 de la


segunda hilera y con el comando for ir poniendo *, cuando el
comando for se repite 9 veces, los valores x y y quedan en 0 y se
inicia un If que hace que mientras ms se incrementa x (hasta 16)
igual se ir aumentando y mientras que los * pasan por los 16
lugares del primer rengln llenndolo. Y por ltimo se declara x=0
para poder iniciar otra secuencia y y=16 para iniciar al final del
segundo rengln para rellenar los* que nos faltaron.
Se hace lo mismo pero con para vaciar el LCD.

Programa LCD #3

Una presentacin Vistosa.

Lo que hace esta presentacin es poner mi nombre en el primer


rengln empezando desde el primer espacio, dando lugar despus a
mis apellidos remplazando las letras que estaban puestas.
Despus desde el otro extremo letra por letra vienen recorrindose
hasta los primeros lugares hasta formar de nuevo mi primer nombre.
Concluyendo con Cecyte en el primer rengln y Xochimilco en el
segundo.

Imgenes de las 3 presentaciones del LCD

Conclusin

Medina Arteaga Ernesto


Este semestre me pareci bastante interesante ya que el hecho de
programar me llama mucho la atencin. Lo que ms me gusto de este
semestre es que tenamos libertad a la hora de trabajar, ya que como
no requiere de algo que no tengamos a nuestra disposicin poda
terminar los trabajos en casa.
Yo solo alcance a terminar hasta el LCD porque lo de los motores no
lo entiendo mucho, un compaero me explico y cuando le iba
entendiendo fue cuando me quedaba poco tiempo as que no tuve la
oportunidad de hacerlo.
De algo que me di cuenta fue que programar un micro controlador es
algo muy delicado ya que el mas mnimo error, como no poner ; o
equivocarte en una letra, conlleva a que todo el programa est mal.
Algo que me gustara hacer es tener un micro controlador y
programarlo pero supongo que no lo vimos porque no estaba en el
programa o no alcanzo el tiempo.
Otra cosa que me disgusto es que como compartimos el taller con los
alumnos de mantenimiento, ellos al hacer sus prcticas hacen mucho
ruido y es difcil concentrarse, entiendo que no se puede tener el taller
para un solo grupo pero eso no quita el hecho de que es un poco
molesto.
En general la materia de este semestre me agrado mucho y no se me
hizo tan complicada de entender, claro tiene sus negativas que es
tener que estar muy concentrado para evitar cualquier error, pero eso
es algo que se tiene que tener con todo lo que se haga y es bueno
empezar a acostumbrarse desde ahora.

Anda mungkin juga menyukai