Está en la página 1de 26

MICROCONTROLADORES Y MICROPROCESADORES

309696

Paso 5 - Componente Práctico

EDINSON MEDINA RIVERA


12458939

GRUPO
15

TUTOR
JULIO BEDOYA

Universidad Nacional Abierta y a Distancia, UNAD


Ingeniería Electrónica
Valledupar-Cesar
2019
INTRODUCCIÓN

Continuando con el aprendizaje y las prácticas de laboratorio, veremos y realizaremos algunos


montajes para ver las ventajas al, usar los microcontroladores y microprocesadores.
Como primer paso realizaremos la descarga de algunos programas para la simulación y montaje
de los circuitos – Proteus. Software para la programar y compilar los códigos que se utilizan en la
programación de los diferentes microcontroladores, el cual conectado a un sistema eléctrico y
mecánico tendremos algunas respuestas.
Para llevar a cabo nuestras prácticas y/o laboratorio de microprocesadores y microcontroladores
es necesario tener algunos componentes eléctricos y saber o recordar su funcionamiento, realizar
los respectivos montajes y desarrollar la guía establecida.

Palabras Claves: compilar, seudocódigo, Hardware, PIC, software, micro, assembler,


programación
OBJETIVOS

1. Adquirir las competencias necesarias que nos permitan trabajar con dispositivos
Microcontroladores que nos permitirán identificar su arquitectura, funcionalidad,
conocimiento del código fuente y las herramientas que nos facilitan la trasferencia de la
información al dispositivo.

2. Realizar un proyecto implementando en un circuito un microcontrolador mediante un


simulador para tener la posibilidad de interactuar de forma directa con el código fuente y
las consolas de trasferencia de datos hacia el dispositivo.

3. Trabajar con diferentes dispositivos que controlan procesos en la implementación de un


circuito que tenga como elemento principal un microcontrolador.
Programación de un Microcontrolador utilizando Mikro C Pro
Partiendo del principio de un circuito integrado podemos decir que el Microcontrolador es un
encapsulado que es programable y que tiene como característica principal que es embebido (todos
sus elementos se encuentran dentro del mismo), también tiene periféricos de entrada y salida como
lo tiene un computador personal, tiene una CPU o Unidad Central de Procesamiento, y la Memoria
que se almacena dentro del mismo dispositivo. Sus frecuencias de operación son bajas si se
compara con un Microprocesador, con velocidades promedio de 4MHz o 20MHz según el
Microcontrolador que se utilice. Al tener una baja frecuencia de operación, no necesita grandes
cantidades de potencia para operar, por lo que opera en el rango de los Microwatts.
Para su programación el Microcontrolador tiene un espacio destinado para ello llamado EEPROM
el cual está vacío desde fábrica y para que este pueda ejercer alguna función se debe programar
utilizando el lenguaje de programación Assembler que es un lenguaje de bajo nivel o lenguaje
máquina, si se utiliza Microcontroladores de la familia MICROCHIP el software de programación
que se utiliza es MPLAB.

CLASIFICACIÓN DE LOS MICROCONTROLADORES PIC

Estos microcontroladores o MCU se caracterizan por su arquitectura Harvard con memorias de


programa y de datos independientes, lo que permite la accesibilidad simultánea y la diversidad en
la longitud de las posiciones y el tamaño de ambas memorias. Genéricamente los
microcontroladores se clasifican según el tamaño de los datos que maneja el repertorio de
instrucciones y existen 4 grandes grupos: de 4, de 8, de 16 y de 32 bits. Microchip sólo fabrica
microcontroladores de 8 y de 16 bits y como se ha indicado es el líder mundial en ventas del primer
grupo.

MICROCONTROLADOR PIC16F84

Características del PIC16F84A

En esta parte estudiaremos la estructura del PIC16F84A con el fin de entender mejor su
funcionamiento. Empezaremos con una relación de sus principales características:

 Repertorio de 35 Instrucciones.
 Todas las instrucciones se ejecutan en un solo ciclo excepto las de salto que necesitan
dos.
 Versiones para bajo consumo (16LF84A), de 4 MHz (PIC16F84A-04) y 20 MHz
(PIC16F84A-20). Un ciclo máquina del PIC son 4 ciclos de reloj, por lo cual si tenemos
un PIC con un cristal de 4 MHz, se ejecutarán 1 millón de instrucciones por segundo.
 Memoria de programa Flash de 1 K x 14 bits.
 Memoria RAM dividida en 2 áreas: 22 registros de propósito específico (SFR) y 68 de
propósito general (GPR) como memoria de datos.
 15 registros de funciones especiales.
 Memoria de datos RAM de 68 bytes (68 registros de propósito general).
 Memoria de datos EEPROM de 64 bytes.
 Contador de programa de 13 bit (lo que en teoría permitiría direccionar 4 KB de
memoria, aunque el 16F84 solo dispone de 1KB de memoria implementada).
 Pila con 8 niveles de profundidad.
 Modos de direccionamiento directo, indirecto y relativo.
 ALU de 8 bits y registro de trabajo W del que normalmente recibe un operando que
puede ser cualquier registro, memoria, puerto de Entrada/Salida o el propio código de
instrucción.
 4 fuentes de interrupciones:
o A través del pin RB0/INT.
o Desbordamiento del temporizador TMR0.
o Interrupción por cambio de estado de los pins 4:7 del Puerto B.
o Completada la escritura de la memoria EEPROM.
 1.000.000 de ciclos de borrado/escritura de la memoria EEPROM.
 40 años de retención de la memoria EEPROM.
 13 pins de E/S con control individual de dirección.
 PortA de 5 bits <RA0:RA4>.
 PortB de 8 bits <RB0:RB7>.
 Contador/Temporizador TMR0 de 8 bits con divisor programable.
 Power-on Reset (POR).
 Power-up Timer (PWRT).
 Oscillator Start-up Timer (OST).
 Watchdog Timer (WDT).
 Protección de código.
 Modo de bajo consumo SLEEP.
 Puede operar bajo 4 modos diferentes de oscilador.
 Programación en serie a través de dos pins.
 Tecnología de baja potencia y alta velocidad CMOS Flash/EEPROM.
 Características eléctricas máximas (no deben ser superadas y de mantenerse por un
tiempo en algún máximo puede dañarse al PIC)
o Temperatura ambiente máxima para funcionamiento de -55°C to +125°C.
o Tensión máxima de VDD respecto a VSS de -0,3 a +7,5V.
o Tensión de cualquier patilla con respecto a VSS (excepto VDD, MCLR, y RA4)
de -0,3V a (VDD + 0.3V).
o Tensión en MCLR con respecto a VSS -0,3 a +14V.
o Tensión en RA4 con respecto a VSS -0,3 a +8,5V.
o Disipación de potencia total de 800 mW.
o Máxima corriente de salida a VSS 150 mA.
o Máxima corriente de salida de VDD 100 mA.
o Máxima corriente del puerto "A" como fuente, 50 mA.
o Máxima corriente del puerto "A" como sumidero, 80 mA.
o Máxima corriente del puerto "B" como fuente, 100 mA.
o Máxima corriente del puerto "B" como sumidero, 150 mA.
o Máxima corriente que puede suministrar una sóla salida como fuente o sumidero,
25 mA.
 Rango de alimentación:
o 16LF84A: de 2 a 5,5 V en configuración de oscilador XT, RC y LP.
o 16F84A:
 de 4 a 5,5 v en configuración de oscilador XT, RC y LP.
 de 4,5 a 5.5 v en configuración de oscilador HS.
 Consumo típico:
o 16LF84A:
 de 1 a 4 mA en configuración de oscilador RC y XT (FOSC=2 MHz,
VDD=5,5V).
 de 15 a 45 μA en configuración de oscilador LP (FOSC=32kHz,
VDD=2V, WDT deshabilitado).
o 16F84A:
 de 1,8 a 4.5 mA en configuración de oscilador RC y XT (FOSC=4 MHz,
VDD=5,5V).
 de 3 a 10 mA en configuración de oscilador RC y XT durante la
programación de la FLASH (FOSC=4MHz, VDD=5,5V).
o 16F84A-20: de 10 a 20 mA en configuración de oscilador HS (FOSC=20 MHz,
VDD=5,5V).

Para mantener la información sobre PIC actualizada es necesario obtener el archivo en PDF que
se puede encontrar en www.microchip.com. También puede encontrarse como anexo 3 el
archivo pic16f84a.pdf, en inglés.

Disposición y descripción de patillas

Disposición de patillas

Disposición de patillas para encapsulado DIL 18:

Descripción de patillas
Nombre Nº Tipo Descripción

Entrada del oscilador a cristal/Entrada de la fuente de reloj


OSC1/CLKIN 16 I
externa

Salida del oscilador a cristal. En el modo RC, es una salida con


OSC2/CLKOUT 15 O
una frecuencia de ¼ OSC1

MCLR 4 I/P Reset/Entrada del voltaje de programación.

RA0 17 I/O Puerto A bidireccional, bit 0

RA1 18 I/O Puerto A bidireccional, bit 1

RA2 1 I/O Puerto A bidireccional, bit 2

RA3 2 I/O Puerto A bidireccional, bit 3

RA4/T0CKI 3 I/O También se utiliza para la entra de reloj para el TMR0

Puerto B bidireccional, bit 0


RB0/INT 6 I/O
Puede seleccionarse para entrada de interrupción externa

RB1 7 I/O Puerto B bidireccional, bit 1

RB2 8 I/O Puerto B bidireccional, bit 2

RB3 9 I/O Puerto B bidireccional, bit 3

Puerto B bidireccional, bit 4


RB4 10 I/O
Interrupción por cambio de estado

Puerto B bidireccional, bit 5


RB5 11 I/O
Interrupción por cambio de estado

Puerto B bidireccional, bit 6


RB6 12 I/O
Interrupción por cambio de estado

Puerto B bidireccional, bit 7


RB7 13 I/O
Interrupción por cambio de estado

Vss 5 P Tierra de referencia

Vdd 14 P Alimentación
Arquitectura interna

Las altas prestaciones de los Microcontroladores PIC derivan de las características de su


arquitectura. Están basados en una arquitectura tipo Harvard que posee buses y espacios de
memoria por separado para el programa y los datos, lo que hace que sean más rápidos que los
Microcontroladores basados en la arquitectura tradicional de Von Neuman.

Otra característica es su juego de instrucciones reducido (35 instrucciones) RISC, donde la


mayoría se ejecutan en un solo ciclo de reloj excepto las instrucciones de salto que necesitan dos.

Posee una ALU (Unidad Aritmético Lógica) de 8 bits capaz de realizar operaciones de
desplazamientos, lógicas, sumas y restas. Posee un Registro de Trabajo (W) no direccionable que
usa en operaciones con la ALU.
MICROCONTROLADOR PIC16F877

Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology
Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de
General Instrument. El nombre actual no es un acrónimo. En realidad, el nombre completo es
PICmicro, aunque generalmente se utiliza como Peripheral Interface Controller (controlador de
interfaz periférico).

El PIC original se diseñó para ser usado con la nueva CPU de 16 bits CP16000. Siendo en general
una buena CPU, ésta tenía malas prestaciones de entrada y salida, y el PIC de 8 bits se desarrolló
en 1975 para mejorar el rendimiento del sistema quitando peso de entrada/salida a la CPU. El PIC
utilizaba microcódigo simple almacenado en ROM para realizar estas tareas; y aunque el término
no se usaba por aquel entonces, se trata de un diseño RISC que ejecuta una instrucción cada 4
ciclos del oscilador.

En 1985 la división de microelectrónica de General Instrument se separa como compañía


independiente que es incorporada como filial (el 14 de diciembre de 1987 cambia el nombre a
Microchip Technology y en 1989 es adquirida por un grupo de inversores) y el nuevo propietario
canceló casi todos los desarrollos, que para esas fechas la mayoría estaban obsoletos. El PIC, sin
embargo, se mejoró con EPROM para conseguir un controlador de canal programable. Hoy en día
multitud de PIC vienen con varios periféricos incluidos (módulos de comunicación serie, UART,
núcleos de control de motores, etc.) y con memoria de programa desde 512 a 32 000 palabras (una
palabra corresponde a una instrucción en lenguaje ensamblador, y puede ser de 12, 14, 16 o 32
bits, dependiendo de la familia específica de PICmicro), sus principales características son:

 Núcleos de CPU de 8/16 bits con Arquitectura Harvard modificada


 Memoria Flash y ROM disponible desde 256 bytes a 256 kilobytes
 Puertos de entrada/salida (típicamente 0 a 5.5 voltios)
 Temporizadores de 8/16/32 bits
 Tecnología Nanowatt para modos de control de energía
 Periféricos serie síncronos y asíncronos: USART, AUSART, EUSART
 Conversores analógico/digital de 8-10-12 bits
 Comparadores de tensión
 Módulos de captura y comparación PWM
 Controladores LCD
 Periférico MSSP para comunicaciones I²C, SPI, y I²S
 Memoria EEPROM interna con duración de hasta un millón de ciclos de lectura/escritura
 Periféricos de control de motores
 Soporte de interfaz USB
 Soporte de controlador Ethernet
 Soporte de controlador CAN
 Soporte de controlador LIN
 Soporte de controlador Irda
Actividades a desarrollar Práctica 1: Diseño e implementación de dos soluciones con
Microcontroladores PIC16F84A o PIC16F628.

Circuitos a realizar:

Utilizando el programa Mplab IDE Versión 8.92 lenguaje asembler (o la actual) El enlace se
encuentra en el entorno de aprendizaje práctico: “Recursos para el desarrollo de las actividades
individuales y colaborativas”.

Para la elaboración de los programas respectivos. Programa Icprog: El enlace se encuentra en el


entorno de aprendizaje práctico: “Recursos para el desarrollo de las actividades individuales y
colaborativas”.

1. Encendido y apagado de 3 LEDS (Rojo, verde, amarillo) que hagan la secuencia de un semáforo
enciende el led rojo 3 segundos, al segundo dos del led rojo se enciende el amarillo se pagan
el led rojo y amarillo al tiempo y se enciende el led verde por 4 segundos y se reinicia la
secuencia.

Insumos necesarios:

Protoboard
Resistencias (según valores calculados en el diseño)
Multímetro
Fuente de poder 5vdc (Laboratorio)
Cables para conexión
3 leds (verde, amarillo, rojo)
3 pulsadores
Display de 7 segmentos (3)
Transistores
Programador Pickit2
Pic16f84a – Pic16f28
Multímetro (Laboratorio)
Desarrollo

Se inicia las prácticas trabajando el microcontrolador PIC16F84A con el software Mikro C PRO
para realizar la programación del microcontrolador el cual está basado en lenguaje C para realizar
un funcionamiento similar al de un semáforo.

//Semáforo #1;
#define LV1 PORTB.RB0
#define LA1 PORTB.RB1
#define LR1 PORTB.RB2

void main() {
TRISB=0;
PORTB=0;

SEMAFORO1:
LV1=0;
LA1=0;
LR1=1;
delay_ms(1000);

goto AMARILLO1;

AMARILLO1:
LR1=1;
LA1=1;
LV1=0;
delay_ms(2000);

goto VERDE1;

VERDE1:
LR1=0;
LA1=0;
LV1=1;
delay_ms(4000);

goto SEMAFORO1;
}
Se procede entonces a realizar el circuito en Proteus donde se utilizan los mismos componentes
con los que se va a armar el circuito en fisico, luego se carga el archivo de programación que se
realizó donde se verifica que el funcionamiento del código sea el adecuado.
.
El codigo funciona correctamente, se procede entonces a realizar el circuito en físico
Durante la realización del trabajo se utilizó la aplicación de programación PICkit 3 que nos permite
convertir el pseudocodigo a lenguaje maquina el cual es el que finalmente leera el
microcontrolador para realizar el proceso.

Con este sencillo trabajo entendemos la aplicabilidad que pueden tener el manejo de iluminación
o señales luminicas en nuestra vida diaría y el como se puede crear todo tipo de circutos mas
complejos utilizando tan solo un mecrocontrolador.
Práctica 2: Diseño e implementación de 2 circuitos en microcontroladores utilizando el
PIC16F877A o PIC16F84A

Circuitos a realiza, se puede escoger uno de los dos programas para el desarrollo del
laboratorio:

Programa 1:

Sensar la humedad y temperatura del ambiente con el sensor dth11, monitorizando las dos
variables y visualizándolas en un display 16 x2 y si la temperatura está menor o igual de 15 grados
el led verde se encenderá, si la temperatura esta entre los 20 y 28 grados se encenderá un led
amarillo, y si supera los 30 grados el led rojo se prendera y debe dar una alarma constante y
prenderse el ventilador hasta que baje la temperatura menor o igual a 20 grados. En el display
se debe visualizar el valor de la temperatura y la activación de motor como MOTOR ON o
MOTOR OFF. Debe sensar a todo momento la humedad del ambiente al pasar por el 60% se debe
activar un motor ventilador y se debe apagar cuando esta baje a menos de 50%.
Se puede utilizar: PicC o MicroC

Programa 2 :

Se debe diseñar un contador utilizando 3 displays de 7 segmentos (El grupo escoge si es de ánodo
o cátodo común), para presentar el valor desde 0.00 hasta 9.99 cada número del reloj es un display
de 7 segmentos, cada LED será la salida del Microcontrolador PIC16F84A (Solo se puede utilizar
un PIC).

Insumos necesarios:

Debe desarrollar los 2 circuitos microcontrolados el cual debe tener los siguientes elementos:

Microcontrolador Pic16f877A o PIC16F84A


1 Display 16 X 2
1 Dth11 (sensor de temperatura y humedad)
3 leds (rojo , amarillo, verde)
2 Motores 12 vdc (ventilador)
3 resistencias de 220 ohmios
3 resistencias de 1 k ohmios
5 pulsadores
3 Potenciometros
Desarrollo

En esta practica se eligió desarrollar el punto 1 trabajando el microcontrolador PIC16F877A, para


crear el pseudocodigo de este programa se utilizo el software CCS Compiler.

#include <16f877a.h>
#device *=16
#device adc=10
#use delay (clock=8m)
#include <lcd.c>

Float temperature;
void main(){

Setup_adc_ports (RA0_ANALOG);
Setup_adc (ADC_CLOCK_INTERNAL);
Setup_COUNTERS (RTCC_internal, rtcc_div_1);
Set_adc_channel(0);

Lcd_init();
Lcd_gotoxy (5, 1);
Printf(lcd_putc, "Temperatura");
Delay_ms (350);
Lcd_init ();

While(true){

Temperature=(Float) read_adc()/2;
Lcd_gotoxy (5, 1);
Printf(lcd_putc,"%f", Temperature);
Lcd_gotoxy (14,1);
Printf(lcd_putc,"Grados");
Delay_ms(200);

If (temperature<=15){

Output_high(pin_a1);
Output_low(pin_a2);
Output_low(pin_a3);
Output_low(pin_a5);

Lcd_gotoxy(5,2);
Printf(lcd_putc,"Motor off");
Delay_ms(200);
}

If(temperature>20&&temperature<=28){

Output_low(pin_a1);
Output_high(pin_a2);
Output_low(pin_a3);
Output_low(pin_a5);

Lcd_gotoxy (5, 2);


Printf(lcd_putc,"Motor off");
Delay_ms(200);
}

If(temperature>30&&temperature<=32){

Output_low(pin_a1);
Output_low(pin_a2);
Output_high(pin_a3);
Output_high(pin_a5);

Lcd_gotoxy(5, 2);
Printf(lcd_putc,"Motor on");
Delay_ms(200);
}
}
}
Luego se utiliza Proteus para simular el circuito y comprobar al funcionamiento del programa.
Por último se debía realizar el circuito en fisico, pero por dificultades para conseguir algunos
componentes se realiza otro circuito para verificar el funcionamiento de microcontrolador con la
pantalla LCD
Durante la realización del trabajo tambien se utilizó la aplicación de programación PICkit 3 que
nos permite convertir el pseudocodigo a lenguaje maquina el cual es el que finalmente leera el
microcontrolador para realizar el proceso.

En trabajo podemos observar como se puede utilizar un microcontrolador para medir diferentes
variables y mostrar esa información inmediatamente en un display, esto tiene aplicabilidad en la
industria donde se necesita monitorear constantemente la variables de un proceso.
Práctica 3: Diseño e implementación de 1 circuito en microcontroladores utilizando el
Arduino Uno, Nano o Leonardo.

Circuitos a realizar:
Donde debe implementar lo siguiente en esta plataforma:
Diseño de un robot controlado por bluetooth (pueden utilizar como bluetooth transmisor el celular
de uno de los compañeros) de 4 motores de 5v DC para realizar cambios de giro y evasión de
obstáculos, regulador de lm7805, sistema de accionamiento de motores por transistores, tiristores
(libre a implementar) y conector de batería de 9vdc. Debe simularse en Proteus y desarrollarse
en laboratorio de componente práctico.

Insumos necesarios:
Plataforma Arduino Uno, Leonardo o Nano u otro
Regulador lm7805
Sistema de control de motores (transistores, mosfets o tiristores)
Motores 5vdc
Fuente de 9vdc
Resistencias y leds de colores
Se realiza la programación del Arduino mediante el software de programación exclusivo del
Arduino, el cual está basado en lenguaje C.
char val;
int ledPin12 = 12;
int ledPin13 = 13;
void setup() {
Serial.begin(9600);
pinMode(ledPin12, OUTPUT);
pinMode(ledPin13, OUTPUT);
}
void loop() {
if( Serial.available() )
val = Serial.read();
if( val == '1' ) {
digitalWrite(ledPin12, HIGH);
digitalWrite(ledPin13, LOW);
}
if( val == '2' ) {
digitalWrite(ledPin12, LOW);
digitalWrite(ledPin13, HIGH);
}
if( val == '3' ) {
digitalWrite(ledPin13, HIGH);
digitalWrite(ledPin12, HIGH);
}
if( val == '4' ) {
digitalWrite(ledPin13, LOW);
digitalWrite(ledPin12, LOW);
}
Para la simulación en Proteus

Este circuito se realizó de forma práctica en el laboratorio presencial y se anexa video del
desarrollo del circuito y su funcionamiento.
BIBLIOGARFIA

 https://www.coursehero.com/file/35645749/Paso-3-Grupo-40docx/

 https://ingenieriaelectronica.org/fotorresistencia-definicion-caracteristicas-y-tipos/

 https://es.slideshare.net/Jomicast/los-circuitos-integrados-92861397

 https://perso.wanadoo.es/pictob/micropic16f84.htm

 Angulo, U. (2001). Microcontroladores PIC: diseño práctico de aplicaciones. Primera


parte: PIC12F508 y PIC16F84A. Lenguajes Ensamblador, C y PBASIC (4ª. Ed.).
McGrau-Hill. (Pp. 1-48, 81-106)Recuperado de:
http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/detail.action?docID=3194849
 Eduardo, G. B. (2008). Compilador CCS y Simular Proteus para Microcontroladores Pic
Cap. 1. México d.f., Alfa Omega - Marcombo. (Pp. 23-55). Recuperado de
https://tecnologialsb.files.wordpress.com/2017/05/compilador-c-ccs-y-simulador-proteus-
para-microcontroladores-pic.pdf
 Dogan, I. (2007). Programación de Microcontroladores PIC. Ed. Marcondo. (Pp. 13-48)
Recuperado de:
http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?ppg=4&docID=31755
05&tm=1527544841827
 Noel Jair, Z. (2017). OVI Unidad 2 Microcontroladores. [Archivo de video]. Recuperado
de: http://hdl.handle.net/10596/11674
 Rodriguez, N. (2018). OVA: Programación de un Microcontrolador utilizando
Assembler. Universidad Nacional Abierta y/a Distancia. Recuperado de:
http://hdl.handle.net/10596/18941
 https://micropic.files.wordpress.com/2007/01/micropicwordpresscom-proyecto1-
ledasm.pdf
 http://riubu.ubu.es/bitstream/10259/3560/1/Crear_un_proyecto_en_MPLAB_X%20V2.0
1.pdf
 https://www.academia.edu/9869924/309696_MICROPROCESADORES_Y_MICROCO
TROLADORES_INDICE_DE_CONTENIDO
 file:///E:/Trabajo/UF923739/archivos/UNAD/VI.%20Semestre/MICROPROCESADORE
S/Microcontrolador-PIC16F84---PALACIOS--REMIRO--L--PEZ.pdf
 https://www.monografias.com/trabajos104/programacion-microcontroladores-pic-
c/programacion-microcontroladores-pic-c.shtml
 Sánchez S. (Año 2014). Microcontroladores y sus Aplicaciones. Desde
https://microcontroladoressesv.wordpress.com/microcontroladores-pic-y-sus-variedades/