Está en la página 1de 8

MICROCONTOLADORES INFORME DE PRCTICA 03 Alu de 3 bits y 4 operaciones Implementacin en microbasic pro

I. TRABAJO EN LABORATORIO: En el diagrama esquemtico anterior, completar a 8leds el puerto RC Realizar los incisos a), b) y c) usando el lenguaje de lato nivel MikroBasic Pro. Para ello recurrir a: operadores y estructuras de control y decisin (if, for, while, select case, etc) Para cada uno de los incisos realizar: Proyecto MikroBasic Cdigo fuente (impreso) Diagrama de flujo (impreso) Simulacin en ISIS-Proteus (confirmacin con firma) Grabado del microcontrolador Armado y funcionamiento en PROTOBOARD (confirmacin con firma) CIRCUITO IMPLEMNTADO:

a) Realizar un contador binario infinito de paso variable (de 0 a 7) definido por los tres interruptores (switches) correspondientes al Dato A. el conteo debe ejecutarse a una velocidad de 1/8 de segundo.

Cdigo fuente:
program CONTB dim Paso, cont as byte main: PORTC = $00 PORTD = $00 TRISC = $00 TRISD = $FF cont = 0 bucle: Paso = (PORTD and %00000111) select case Paso case 0 cont = cont + 0 case 1 cont = cont + 1 case 2 cont = cont + 2 case 3 cont = cont + 3 case 4 cont = cont + 4 case 5 cont = cont + 5 case 6 cont = cont + 6 case 7 cont = cont + 7 end select PORTC = cont delay_ms(125) goto bucle end.

CONTB

Diagrama de flujo:
Configuracin de puertos CONT =0 Enmascarar el paso

Seleccionar el paso

Cont = cont + paso

Mostrar el resultado en RC

b) Realizar un juego secuencial de luces con 1 led desplazndose continuamente de Izquierda a Derecha y viceversa. La secuencia se detiene cuando se ingresa un valor de 5 a travs de los interruptores (switches) correspondientes al Dato B. la secuencia de ejecuta cada 200mseg. Cdigo fuente:
program LUCES dim valor, cont, cinco as byte main: PORTC = $00 PORTD = $00 TRISC = $00 TRISD = $FF 'cont = 1 bucle: cinco = (PORTD and %00111000)>>3 if cinco = $05 then else cont=1 for valor =0 to 6 portc =cont cont=cont*2 delay_ms(200) next valor cont=128 for valor =0 to 6 portc =cont cont=cont/2 delay_ms(200) next valor end if goto bucle end.

LUCES

Configuracin de puertos Cinco = Dato B Enmascarar cinco

Cinco = $05

no Diagrama de flujo:
Valor = 0 to 6

Cont = 1

Cont =cont * 2

Mostrar el resultado en RC Cont = 128


Valor = 0 to 6

Cont =cont * 2

Mostrar el resultado en RC

c) Realizar un juego secuencial de luces con dos leds desplazndose continuamente de los extremos hacia el centro y viceversa. La secuencia se ejecuta normalmente cada 300 mseg., pero si se activan (ponen a 1) los dos interruptores (switches) correspondientes a Operacin, entonces la secuencia incrementa su velocidad a 100 mseg. Cdigo fuente:
program LUCES2 dim valor, cont1, cont2, cont, tres as byte main: PORTC = $00 PORTD = $00 TRISC = $00 TRISD = $FF bucle: tres = (PORTD and %11000000) cont1=1 cont2=128 cont = cont1 + cont2 for valor = 0 to 3 portc = cont cont1 = cont1*2 cont2 = cont2/2 cont = cont1 + cont2 if tres = $C0 then delay_ms(100) else delay_ms(300) end if next valor cont1 = 4 cont2 = 32 cont = cont1 + cont2 for valor = 0 to 2 portc = cont cont1 = cont1/2 cont2 = cont2*2 cont = cont1 + cont2 if tres = $C0 then delay_ms(100) else delay_ms(300) end if next valor goto bucle end.

Diagrama de flujo:
LUCES2

Configuracin de puertos Cinco = Dato B Enmascarar cinco


Cont1 = 1 Cont2 = 128 Cont = 1

no
Valor = 0 to 3

Cont =cont * 2

Mostrar el resultado en RC Cont = 128


Valor = 0 to 6

Cont =cont * 2

Mostrar el resultado en RC

II. TRABAJO DE INVESTIGACION: Realizar una tabla detallada y completa del funcionamiento de cada uno de los puertos del PIC16F887 (RA, RB, RC, RD y RE) explicando sus particularidades y las funciones adicionales o especiales de cada pin en dichos puertos. Adicionar diagramas o figuras que ayuden en la explicacin. PORTA:

PORTB:

PORTC:

PORTD:

PORTE:

ALIMENTACIN:

CONCLUSIONES: Se logro comprender como se podan realizar operaciones con bits con el microcontrolador usando estructuras de fcil manejo dentro de mikroBasic. Se realizo la implementacin en hardware del ALU, comprobando un buen funcionamiento del mismo, para cada operacin y con cada dato. Se realizaron los programas a), b) y c) en simulacin, comprobando su funcionamiento correcto, adems de entender con ello, mucho mejor la programacin en mikroBasic. Se logro comprender de una mejor manera las estructuras que se pueden utilizar dentro de mikroBasic, as como if, for, while, y los bucles. Se comprendi en una forma general las funciones de los puertos junto a las aplicaciones que se le pueden dar de acuerdo a las caractersticas de cada puerto. Se logro comprender como debamos ahorrar memoria en las variables, usando variables del tipo byte en cada situacin, esto para acostumbrarnos y cuando tengamos q realizar proyectos mucho ms grandes, no puedan ocupar mucho espacio en la memoria de datos RAM.

También podría gustarte