Está en la página 1de 26

MICROCONTROLADORES Y MICROPROCESADORES

Paso 5 - Componente Práctico

CAMILO ANDRÉS MEJIA


1001271703

GRUPO
15

TUTOR

OSCAR ALBERTO

Universidad Nacional Abierta y a Distancia, UNAD


Automatización electronica

2020
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

OSC2/CLKOU Salida del oscilador a cristal. En el modo RC, es una salida


15 O
T con 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://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=3175505&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.01.pdf
 https://www.academia.edu/9869924/309696_MICROPROCESADORES_Y_MIC
ROCOTROLADORES_INDICE_DE_CONTENIDO
 file:///E:/Trabajo/UF923739/archivos/UNAD/VI.
%20Semestre/MICROPROCESADORES/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/

También podría gustarte