You are on page 1of 2

1)

compile el siguiente cdigo en lenguaje C y explique que funcin cumple cada sentencia y corrija los errores

#include <16F877.h> #fuses XT,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) void main() { unsigned int8 i, value, min, max; setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); set_adc_channel(0); do { min=1255; max=0; for(i=0; i<=30; ++i) { delay_ms(100); value = read_adc(); if(value<min) min=value; if(value>max) max=value; } } While (TRUE); } 2) de una definicin de cada uno de los siguientes elementos del microcontrolador y de ejemplos de su aplicacin: 2.1 Defina microprocesador y microcontrolador. 2.2 Cules son los registros fundamentales de un microprocesador o de la CPU de un microcontrolador? 2.3 Cmo se comportan comparativamente las cantidades de memoria ROM y RAM en un sistema basado en un microprocesador y en un microcontrolador. 2.4 Mencione algunas caractersticas deseables en un microcontrolador. 2.5 Explique la necesidad del perro guardin en un sistema basado en un microcontrolador. 2.7 Arquitecturas Von Neumann y Harvard. Explique por qu la arquitectura Von Neumann fue preferida en los primeros microprocesadores. 2.8 En un sistema con arquitectura Harvard, habr instrucciones para leer o escribir en la memoria de programa? 2.9 Por qu la arquitectura predominante en el diseo de microprocesadores y microcontroladores ha pasado a ser la RISC en lugar de la CISC?

3)

explique el funcionamiento del siguiente cdigo y corrija los errores entregados por el compilador y explique cada sentencia : #include <16f84A.h> #fuses INTRC,NOWDT,NOPROTECT, NOMCLR,NOLVP #use delay(clock=4000000) #define GP0 PIN_A0 #define GP1 PIN_A1 #define GP2 PIN_A2 #define GP3 PIN_A3 #define GP4 PIN_B0 #define GP5 PIN_B1 #endif void cycle_atras (void) { output_low (GP5); output_high (GP0); delay_ms (70); output_lowa (GP0); output_high (GP1); delayu_ms (70); output_low (GP1); output_hih (GP2); delay_ms (70); output_low (GP2); output_high (GP4); delay_ms (70); output_low (GP4); output_high (GP5); delayu_ms (70); }

void cycle_adelante(void) { output_low (GP0); output_high (GP5); delay_ms (70); output_low (GP5); output_high (GP4); delay_ms (70); output_low (GP4); output_high (GP2); delay_ms (70); output_low (GP2); output_high (GP1); delay_ms (70); output_low (GP1); output_high (GP0); delay_ms (70); } void main() { while (TRUE) { if (!input (GP3)) cycle_adelante (); else cycle_atras (); } }