Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ELECTRÓNICA
ELECTRÓNICA DIGITAL Y
MICROCONTROLADORES
Observaciones:
• Durante el parcial está prohibido el uso de libros, notas de clase y cualquier tipo de ayuda tecnológica
como: Smartphone, celulares, tablets, dispositivos de audio (mp3, ipod), calculadoras programables,
PC, etc.
• Lea todo el examen antes de comenzar a responderlo. Es importante que se haga una idea general
del problema a resolver. “RECUERDE LA PRIMERA REGLA DEL DISEÑO”
• Duración del examen = 2 horas
Competencia a evaluar:
- Diseña circuitos electrónicos digitales de mediana complejidad basado en microcontroladores como
solución a un problema real planteado.
Suponga que ha sido contratado por una empresa especializada en el desarrollo de pruebas
rápidas para análisis microbiológico en la industria de alimentos para desarrollar el próximo
producto que pondrán en el mercado. El nuevo producto consiste en un biosensor que
detecta el crecimiento de bacterias en la muestra a analizar.
2
ELECTRÓNICA DIGITAL Y MICROCONTROLADORES - FINAL
2. (Valor 3.0) Diseñe un programa en PIC C que pueda usar para programar el
PIC16F887 y solucionar el problema planteado.
DECLARACIÓN DE HONESTIDAD ACADÉMICA
Doy mi palabra ante la Universidad y la sociedad que demanda ciudadanos comprometidos con un actuar correcto, que la presente evaluación fue desarrollada
con completa honestidad y responsabilidad, atendiendo a la misión institucional de formar seres íntegros y líderes que ayuden a construir una mejor sociedad.
RESISTENCIA
T1
CAJA
T2 MUESTRA
SENSOR
LED COLOR
LCD B1
POT
Fig. 1
T.CONTROL=37 oC
T = 30.5 oC
Fig. 2
3
ELECTRÓNICA DIGITAL Y MICROCONTROLADORES - FINAL
R=2.5V V=3.2V
A=1.2V
Fig. 3
En
Proceso
Fig. 4
Evento Deteccion
X > 35%
CODIGOS PIC C
#include<16F887.h>
#use delay(clock = 4000000)
#fuses XT, NOLVP, NOPROTECT, NOWDT, PUT
#use fast_IO(B)
void main(){
set_tris_B(0);
output_B(0);
for(;;){
output_B(0);
delay_ms(100);
output_B(1);
delay_ms(100);
output_B(3);
delay_ms(100);
output_B(7);
delay_ms(100);
output_B(15);
delay_ms(100);
output_B(31);
delay_ms(100);
output_B(63);
delay_ms(100);
output_B(127);
delay_ms(100);
output_B(0b11111111);
delay_ms(100);
}
}
4
ELECTRÓNICA DIGITAL Y MICROCONTROLADORES - FINAL
#include <16F887.h>
#device ADC = 10
#use delay(clock = 4000000)
#fuses XT, NOWDT, NOPROTECT, NOLVP, PUT
#include <LCD.C>
void main(){
int16 x = 0;
int16 y = 0;
float z = 0.0;
setup_adc_ports(0);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
delay_ms(300);
for(;;){
set_adc_channel(0);
delay_us(20);
x = read_adc();
y = 5*x;
z = y/1023.0;
printf(lcd_putc,"\fADC = %4ld",x);
printf(lcd_putc,"\nVoltaje = %1.2f V",z);
delay_ms(500);
}
}
#include<16F887.h>
#use delay(clock = 4000000)
#fuses XT, NOWDT, NOLVP, PUT
#use fast_IO(C)
#use fast_IO(D)
void main(){
int16 x = 0;
set_tris_D(3);
set_tris_C(0);
output_C(0);
output_D(0);
for(;;){
if (input(PIN_D0) == 1){
delay_ms(100);
5
ELECTRÓNICA DIGITAL Y MICROCONTROLADORES - FINAL
x = x + 200;
setup_timer_2(T2_DIV_BY_1,224,1);
setup_CCP1(CCP_PWM);
set_pwm1_duty(x);
}
if (input(PIN_D1) == 1){
delay_ms(100);
x = x - 200;
setup_timer_2(T2_DIV_BY_1,224,1);
setup_CCP1(CCP_PWM);
set_pwm1_duty(x);
}
}
}