Anda di halaman 1dari 7

SISTEMAS MICROPROCESADOS I

TRABAJO PREPARATORIO Nº 02
NIVEL: 6to-G1-Electrónica
TEMA: Manejo de puertos y menús de operación
NOMBRES:

 Milton Elizalde
 Christian Carrion
 Rony Recalde

1. Ejercicios planteados:

Funcionamiento
Nº Enunciado Firma del responsable
Si NO
Mediante el uso de un pulsador conectado en un
terminal de un puerto, dar las siguientes condiciones
de operación a dos leds conectados al mismo puerto:
al inicio del programa uno de los leds esta encendido
1
y el otro apagado, al encender el pulsador los leds
complementan estados. Ante más acciones del
pulsador se repite las condiciones de operación de
los leds.
Mediante el uso de un dip-switch de 8 bits conectado
al puerto C, realizar un menú de operación de
secuencias de 8leds en base a los estados de los 4
bits menos significativos del puerto, según las
siguientes operaciones de actividad:
Switch 1 (bit 0): se encienden los leds pares de uno
en uno desde el LBS hasta el MSB, n número de
veces.
Swich 2(bit 1): se encienden los leds impares de uno
2 en uno desde el MSB hasta el LSB, n es el número de
veces.
Switch 3(bit 2): titilan n veces los números pares del
puerto.
Switch 4(bit 3): titilaran n veces los leds impares del
Puerto.
El numero n proviene de los estados de los 4 swtich
más significativos conectados al puerto c y tendrá un
valor de 0 a 15.

Mediante el uso de una foto-resistencia, acondicione


la señal que está producida el mismo que controla el
3
para que funcione como u pulsador luminosos que
controlo el enciendo y apagado de un foco de 110v
4
Ejercicio planteado.

1. Mediante el uso de un pulsador conectado en un terminal de un puerto, dar las


siguientes condiciones de operación a dos leds conectados en el mismo puerto: al inicio
del programa uno de los led está encendido y el otro está apagado, al accionar el
pulsador los leds complementan sus estados. Ante más acciones del pulsador se repite
las condiciones de operación de los leds.

#include <16f877a.h> output_low(pin_b2);

#use delay(clock = 4M) delay_ms(100);

#fuses xt }

else

void main() {

{ output_low(pin_b1); //para que se apage el led

while(1) output_high(pin_b2);

{ }

if(input(pin_b0)==1) { }

output_high(pin_b1); }
INICIO
.

PULSADOR =SALIDA
PUERTO B

PUERTO==1

TRUE FALSE

0b10000001 0b10000010

A A

2. Mediante el uso de un dip-switch de 8 bits conectado al puerto C, realizar un menú de


operación de secuencias de 8 leds en base a los estados de los 4 bits menos significativos del
puerto, según las siguientes opciones de activación:
Switch 1 (bit 0): se encienden los leds pares de uno en uno desde el LSB hasta el
MSB, n número de veces.
Switch 2 (bit 1): se encienden los leds impares de uno en uno desde el MSB
hasta el LSB, n número de veces.
Switch 3 (bit 2): titilan n veces los leds pares del puerto.
Switch 4 (bit 3): titilan n veces los leds impares del puerto.

El número n proviene de los estados de los 4 switch más significativos conectados al puerto
C y tendrá un valor a 0 a 15.
Nota: se debe que optimizar el código de las secuencias usando sentencias de control con
bucles repetitivos, no se puede ingresar las acciones de encendido y apagado de una en una.
El puerto C tiene que estar conectado en su totalidad a los dip-switch. Como condición
fundamental no se tiene que esperar al finalizar una secuencia para que inicie la nueva
secuencia seleccionada. Cada secuencia se inicia una vez seteado su valor.
#include <16F877A.h> if (valor2>255){ valor2=128; aux=64; }

#fuses XT,NOWDT while (1) { }

switch (PORTC) { break;

int contador1=0; case 1: if (valor<=255){ case 4: if (contador1<=2){

int contador2=0; PORTD=valor; PORTD=85;

int valor=1; valor+=valor+1; delay_ms(tiempo);

int valor2=128; delay_ms(tiempo); PORTD=0;

int aux=64; if (valor>255){ valor=1; } delay_ms(tiempo);

const tiempo=200; } contador1+=1;

break; }

void main() { case 2: if (valor2<=255){ break;

TRISC=255; PORTD=valor2; case 8: if (contador2<=3){

PORTC=0; valor2+=aux; PORTD=170;

TRISD=0; if (aux>1) { aux/=2; } delay_ms(tiempo);

PORTD=0; delay_ms(tiempo); PORTD=0;


delay_ms(tiempo); valor=1; break;

contador2+=1; valor2=128; }

} aux=64; }

break; contador1=0; }

default: PORTD=0; contador2=0;

INICIO
.

PULSADOR =SALIDA
PUERTO C

A
PUERTO == 0

PUERTO == 1

PUEETO == 2

PUERTO == 3

0 1 2 3

0C10000000 0C10000001 0C10000000 0C10000001


0C10000010 0C10000011
0C10000100 0C10000101
0C10000010 0C10000011
0C10000110 0C10000111
0C10001000 0C10001001
0C10000100 0C10000101 0C10001010 0C10001011
0C10001100 0C10001101
0C10001110 0C10001111
0C10000110 0C10000111
Output_c(0) Output_c(0)

0C10001000 0C10001001

0C10001010 0C10001011

B A B A
0C10001100 0C10001101

0C10001110 0C10001111

B A B
A

3. Mediante el uso de una foto-resistencia, acondicione la señal que esta produce para
que funcione como un pulsador luminoso el mismo que controla el encendido y
apagado de un foco de 110 V.

INICIO
.

PULSADOR =SALIDA
PUERTO B

PUERTO==1
TRUE FALSE

0b10000001 PUERTO == 0

A A

Anda mungkin juga menyukai