Anda di halaman 1dari 2

Certamen 1 Microprocesadores y Microntroladores 2012-10-09

NOMBRE:

Tiempo 90 minutos
Observaciones:
-Debe leer los problemas atentamente. La comprensin es parte de la evaluacin.
-Las respuestas a los problemas se contestan en estas hojas.
-El desarrollo es personal y la copia es calificada con nota cero.
-Puede usar como apoyo el siguiente material PROPIO (no de su compaero): calculadora, sus notas o apuntes personales,
datos del 16F877A.
- No es admisible, computador, telefono celular y otro dispositivo de red
- puede usar grafito, pero reclamos posteriores no seran admisibles. Caso contrario pasta

Problema 1
Con el objetivo de controlar dos dispositivos acoplados a un puerto de salida del MCU, en este caso el puerto D, se
activan bits en modo de entrada digital en el puerto C. En el hardware del circuito se tiene los pines C
1
y C
3
alambrados a
tierra.
El programa fuente se muestra en la figura 1.
/*
Source code file: RdWr02.C
Author, date, version: JEA 24/9/2013
Program function: certamen 1 2013
Debugging: realizado en laboratorio
resultado: exitoso
*******************************************************/
#include "16F877A.h"
#fuses XT,PUT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOCPD,NOWRT,NODEBUG

void main()
{
int entrada, auxi_1=0x0F,auxi_2;

while(1)
{
entrada=input_C();
auxi_2=auxi_1&entrada;
switch(auxi_2)
{
case 0x00: output_high(PIN_D0);output_high(PIN_D1);break;
case 0x04: output_low(PIN_D1);output_high(PIN_D0);break;
case 0x05: output_high(PIN_D1);output_low(PIN_D0);break;
default: output_low(PIN_D0);output_low(PIN_D1);
}
}
}
Figura 1.
1.1 (10)Determine cuales pines estn conectados en modo de salida, con el objetivo de controlar dispositivos conectados
al MCU. A continuacin, marque con una X los pines participantes
D7 D6 D5 D4 D3 D2 D1 D0

X X

1.2 (20)Determine cuales son los pines del MCU que intervienen en modo de entrada, de forma operativa activa, es
decir, no debe tomar en cuenta aquellos bit de entrada enmascarados ya sea por hwr o por swr, si no solamente
aquellos que un operador cambia de estado digitando un switch.

C7 C6 C5 C4 C3 C2 C1 C0

X X





1.3 (30)Escriba sobre la tabla 1, los estados digitales (1 o 0) que adquiere la salida, versus los valores digitales de la
entrada:
BIT ENTRADA BIT SALIDA
C7 C6 C5 C4 C3 C2 C1C0
0 0

D7D6D5D4D3 D2D1D0
1 1

C7 C6 C5 C4 C3 C2 C1C0
0 1

D7D6D5D4D3 D2D1D0
0 0

C7 C6 C5 C4 C3 C2 C1C0
1 0

D7D6D5D4D3 D2D1D0
0 1

C7 C6 C5 C4 C3 C2 C1C0
1 1

D7D6D5D4D3 D2D1D0
1 0

C7 C6 C5 C4 C3 C2 C1C0

D7D6D5D4D3 D2D1D0

Tabla 1
La 2. Fila de la tabla es por default

Problema 2(40)
Escriba un programa que lea el puerto D, y de acuerdo al valor ledo, despliegue un valor determinado en la salida del
puerto C

Si en la entrada del puerto D se lee 1, la salida en el puertoC ser 1. Si en la entrada del puerto D se lee 2, la salida en el
puerto C ser 3. Si en la entrada del puerto D se lee 3, la salida en el puerto C ser 7. Para todo otro valor distinto de los
mencionados anteriormente la salida en el puerto C es cero. Debe usar sentencia SWITCH obligatoriamente. El programa
debe operar en un lazo indefinido

Respuesta:

#include "16F877A.h"
void main()
{
int8 entrada;
while(1)
{
entrada = input_D();
switch(entrada)
{
case 1: output_C(1);
break;
case 2: output_C(3);
break;
case 3: output_C(7);
break;
default:output_C(0);
}

}
}








JEA/jea/ 24-09-3013/ C1_MCU_PIECII_130924.docx

Anda mungkin juga menyukai