Está en la página 1de 5

Facultad de Ingeniería Arquitectura de computadoras

Laboratório 01

Tema: Arquitectura de computadoras

Logro: Al término de la sesión, el estudiante diseña un bloque secuenciador de LEDs


basado en las características de la arquitectura Harvard controlando los puertos
de entrada y salida del microcontrolador PIC 16F628A y 16F877A, utilizando
software de simulación Proteus; con precisión de hasta 8 bits.

ACTIVIDAD No 1

1. Observa el diagrama interno del PIC 16F628A

Ing.Miguel Levano S. mlevano@gmail.com


Identifica los siguientes elementos de una arquitectura en el bloque mostrado:

a) Tipo de arquitectura:
b) CPU :
c) Memorias :
d) Buses :
e) Puertos de entrada/salida

EXPERIENCIA No 2 Manejo de puertos de E/S basado en Leds

EJERCICIO 1

1. Armar en el simulador proteus la siguiente configuración del PIC 16F628A

2. Edita el siguiente programa en el compilador CSS:

#include <16f628a.h> //define el microntrolador a usar


#use delay(clock=4M)//define la frecuencia de oscilación del cristal a 4MHz

void main( ) //función principal, la idea es hacer oscilar el pin bo a f=1 Hz

{
while(1)// mientras la condición sea verdadera o true
{
output_high(pin_b0);// coloca en alto el pin b0
delay_ms(500);// mantiene encendido el pin b0 durante 0.5 segundo
output_low(pin_b0);// coloca en bajo el pin b0
delay_ms(500);// mantiene apagado el pin b0 durante 0.5 segundo
}
}

3. Compila el programa y cárgalo en la configuración mostrada en el simulador Proteus

2
Ing.Miguel Lévano S. mlevano@gmail.com
¿Qué función realiza el circuito?

Ejercicio 2

Definición de estados de puertos con valores en decimal

1. Armar en el simulador proteus la siguiente configuración del PIC 16F877A

2. Edita el siguiente programa en el compilador CSS, analiza el código y determina la función de


cada línea:

#include<16f877a.h>
#fuses XT,NOWDT,PUT,NOPROTECT
#USE delay(clock=4000000)
#use fast_io(B)
void main()
{
set_tris_B(0);

{
output_high(PIN_B0);
output_low(PIN_B1);
delay_ms(1000);
output_low(PIN_B0);
output_high(PIN_B1);
delay_ms(1000);
}
}

3
Ing.Miguel Lévano S. mlevano@gmail.com
3. Compila el programa y cárgalo en la configuración mostrada en el simulador Proteus
¿Qué función realiza el circuito?

Ejercicio 3

1. Armar en el simulador proteus la siguiente configuración del PIC 16F877A

2. Analiza el código y observa la función de cada línea.

#include <16f877a.h>
//configura los fusibles
#FUSES XT //No watch Dog Timer
#use delay(clock=4000000)//OSCILADOR <=4MHZ
#FUSES NOWDT//No watch Dog Timer
#FUSES NOPUT//No power up Timer,no espera
#FUSES NOPROTECT//No protegemos el código.
#FUSES NOBROWNOUT//No Brown out reset, no se resetea si cae la tension
#FUSES NOLVP//No programacion en bajo voltaje
#FUSES NOCPD//No EE protection
//#fuse intrc_io,nowdt,noput,noprotected
void main()
{
set_tris_b(0);//indica que el puerto b sera de salida
output_b(0); //indica que todas las lineas del puerto b estarán en cero.

do
{
output_high(pin_b0);//pongo el pin b0 en alto
delay_ms(500); // por un tiempo de 500 ms (introduce un retardo de 500ms)

4
Ing.Miguel Lévano S. mlevano@gmail.com
output_low(pin_b0);//se apaga el pin b0
delay_ms(500);//por un tiempo de 500 ms

output_high(pin_b1);//pongo el pin b1 en alto


delay_ms(500); //por un tiempo de 500 ms
output_low(pin_b1);//se apaga el pin b1
delay_ms(500);//por un tiempo de 500 ms

output_high(pin_b2);//pongo el pin b2 en alto


delay_ms(500); //por un tiempo de 500ms
output_low(pin_b2);//se apaga el pin b2
delay_ms(500);//por un tiempo de 500 ms

output_high(pin_b3);//pongo el pin b3 en alto


delay_ms(500); //por un tiempo de 500ms
output_low(pin_b3);//se apaga el pin b3
delay_ms(500);//por un tiempo de 500 ms

}
WHILE(TRUE);
}

3. Compila el programa y cárgalo en la configuración mostrada en el simulador Proteus


¿Qué función realiza el circuito?

4. Modifica el programa de tal manera que se enciendan los 8 leds se prendan secuencialmente
de b0 a b7.

TRABAJO PRÁCTICO 1

1. ¿Qué modificaciones realizarías en el programa del ejercicio 1 para que el led se prenda y
encienda solo una vez?, adjunta la simulación.
2. ¿Qué modificaciones realizarías en el programa del ejercicio 1 para realizar la misma
función pero utilizando el PIC 16F877A? , adjunta la simulación.
3. Modifica el código del ejercicio 3 de tal manera que el desplazamiento de encendido de
los leds sea tenga el sentido contrario. Adjunta la simulación.
4. Basado en la experiencia del ejercicio 3, diseña un programa que realice la secuenciación de
8 leds de izquierda a derecha y derecha izquierda en forma continua (“Auto fantástico”) en
implementa el circuito correspondiente cuya presentación será la próxima semana.

5
Ing.Miguel Lévano S. mlevano@gmail.com

También podría gustarte