Está en la página 1de 39

Microcontroladores PIC

Clase 1
INTRODUCCION

El microcontrolador PIC es un circuito integrado programable que pertenece


a la familia de microcontroladores tipo RISC (Conjunto reducido de
instrucciones de computacin) lo cual facilita su programacin.
La empresa creadora de estos circuitos integrados es Microchip Technology.
Microcontroladores
Arquitectura del microcontrolador

El microcontrolador PIC es de arquitectura Harvard el cual posee 2 memorias


separadas, las cuales son la memoria de datos y la memoria de programa.
Al poseer memoria separadas lo convierte en un microcontrolador rpido a diferencia
de la arquitectura Von Newman que sus dos memorias estn juntas.
Gamas del microcontrolador PIC

Se clasifican en tres grupos:


Gama base: 33 instrucciones de 12 bits de longitud.
MCU: 10FXXX/12F5XXX/16F5X.
Gama media: 35 instrucciones de 14 bits de longitud.
MCU: 12FXXX/16FXXX.
Gama mejorada: 77 instrucciones de 16 bits de longitud.
MCU: 17CXXX/17CRXX/18FXXXX.
GAMAS Y MODELOS DE MICROCONTROLADORES

Gama base Gama media Gama alta


Microcontrolador a utilizar

El microcontrolador que usaremos es el PIC 16F877A que es un microcontrolador de


gama media. Lo usaremos debido a que posee muchas funcionalidades debido a
la cantidad de pines que se puede manejar.
Caracterstica del microcontrolador

Velocidad de operacin hasta 20Mhz.


Memoria de programa tipo flash 8Kx14.
Memoria de datos de 368 bytes.
Memoria EEPROM de 256 bytes.
33 puertos de Entrada/Salida (Puerto A, B, C, D, E).
3 timers (timer0 a 8 bits, timer1 a 16 bits y timer2 a 8
bits).
8 canales de A/D.
2 puertos CCP (comparador, captura y PWM).
Resistencias PULL-UP programable en el puerto B.
14 fuentes de interrupciones.
Mdulo de comunicacin USART/SCI
Arquitectura
Configuracin del reloj

Para configurar el reloj del microcontrolador se puede realizar de diversas


formas como se muestra en el cuadro:

Oscilador Descripcin
LP Cristal de bajo consumo de potencia
XT Cristal/Resonador
HS Cristal/Resonador de alta velocidad
RC Resistencia-condensador
Cristal oscilador de cuarzo
Configuracin de reloj a utilizar

Alimentacin
Configuracin cristal de cuarzo de 4Mhz PIN 11 y 32 (+)
PIN 12 y 31 (-)
Tarjeta de desarrollo
Programador

1: pin1
2: pin11
3: pin12
4: pin40
5: pin39
6:Libre
Software de programacin

El software de programacin es el MikroC PRO for PIC y se le denomina Entorno de desarrollo


integrado IDE y este incluye todas las herramientas necesarias para desarrollar los proyectos
(editor, depurador, etc.).
MikroC PRO dor PIC contiene informacin sobre la arquitectura de los microcontroladores PIC
(registros, modulos de memoria, funcionamiento de circuitos particulares, etc.).
Ventana principal de CCS C COMPILER
Software de simulacin PROTEUS

El programa a utilizar ser PROTEUS, este software de simulacin es el ms usado


debido a que contiene una gran variedad componentes como resistencias,
condensadores, diodos, teclados matriciales, LCD, variedad de
microcontroladores, motores, etc.
Ventana de trabajo
Primer programa

Primer paso: En la ventada de componentes seleccionamos el botn con


la letra P, se abrir una ventana donde escribiremos en Keywords 16f877a.

El componente aparecer en Results, lo seleccionaremos con doble click y ahora lo


tendremos disponible en la ventana de componentes
Los componentes ms usados son:

Componentes Keyword Proteus


Resistencia res
Condensador cermico Cap
Potencimetro Pot-hg
Batera Battery
PIC 16F877A 16f877a
Teclado matricial Keypad
LCD 16x2 LM016L
Cristal de cuarzo crystal
Led Led
Construccin del circuito elctrico y conexin de los componentes.

Para realizar las conexiones solo debemos acercar el puntero a la salida de los
componentes y lo seleccionamos con un clic luego seleccionamos el extremo de otro
componente y se genera una lnea verde que representa una conexin elctrica.
Importar el archivo .HEX para simular el microcontrolador. Para ello nos dirigimos al
microcontrolador y le damos doble clic aparecer la siguiente ventana:

Seleccionamos el icono de PROGRAM FILE e importamos el archivo .HEX. Tambin


debemos cambiar la frecuencia de reloj de 1MHz a 4MHz .
Cuarto paso: Para empezar la simulacin nos dirigimos a la barra de
herramientas ubicado en la parte inferior izquierdo y seleccionamos PLAY
como en la imagen.
Manipulacin de puertos entrada y salida
Registro TRISx

Cada puerto tiene su propio registro de control de flujo, o sea el registro


TRIS correspondiente: TRISA, TRISB, TRISC, etc.
Al poner a CERO un bit de registro TRIS (pin=0), el pin correspondiente del
puerto se configurar como SALIDA.
Al poner a UNO un bit de registro TRIS (pin=1), el pin correspondiente del
puerto se configurar como ENTRADA.
Ejemplo:
Ej. TRISD = 0b11110000;
//PIN_D0_D1_D2_D3 SALIDAS
//PIN_D4_D5_D6_D7 ENTRADAS
Manipulacin de puertos entrada y salida
PORTx

El puerto PORTA es un puerto bidireccional. Los bits de los registros


TRISA(todos los pics) y ANSEL(solo en algunos pics) controlan los pines del
PORTA. Todos los pines del PORTA se comportan como entradas/salidas
digitales. Cinco de lelos pueden ser analgicas, las cuales son
determinadas por el registro ANSEL.
PORTB , PORTC, PORTD , etc.
Si asignamos el valor de 0 al puerto B estamos diciendo que todo el
puerto B se encuentra en nivel bajo.
Si asignamos el valor de 1 al puerto B estamos diciendo que todo el
puerto B se encuentra en nivel alto.
Manipulacin de pin digital
PORTx.Fy

Para la manipulacin de los pines digitales se usara el comando PORTx.Fy,


donde x toma el valor del puerto A, B, C, D, etc. Y toma el valor de 0-7,
que es la cantidad de pines que posee un puerto.
Ejemplo:
PORTB.F3 = 1; //salida del pin_b3 en nivel alto.
PORTC.F5 = 0; //salida del pin_c5 en nivel bajo.
Programa encendido y apagado de
un led cada 500ms
Lenguaje C en microcontroladores

El lenguaje C es lenguaje de preferencia para programar microcontroladores debido


es de fcil uso, el cual te resuelve un problema de programacin rpidamente cosa
que no encontramos en ensamblador. Adems en C podemos crear y encontrar en
internet libreras las cuales podemos hacer uso y esto nos permite ahorrar tiempo en
programacin.
En C se definen los siguientes temas:
Tipos de datos.
Constantes/Variables.
Operadores
Funciones
Estructuras de control
Tipo de datos

Tipo Tamao Rango Descripcin

CHAR 8 0 a 255 Permite almacenar caracteres.


INT 16 -32768 a 32767 Permite almacenar valores enteros.
FLOAT 32 1.1754943508210-38 a 6.805647744071038 Permite almacenar valores en punto flotante.
DOUBLE 32 1.1754943508210-38 a 6.805647744071038 Permite almacenar valores en punto flotante.
UNSIGNED INT 16 0 a 65535 Valores entero sin signo
SHORT INT 8 0 a 255 Valor entero corto
SIGNED SHORT INT 8 -128 a 127 Valor entero cortos con signo
LONG INT 32 0 a 4294967295 Valores enteros largos
SIGNED LONG INT 32 -2147483648 a 2147483648 Valores enteros largos con signo
Constantes

Valor Descripcin Equivalente


decimal
12 Decimal 12
011 Octal (0) 9
0x11 Hexadecimal 17
(0x)
0b00000011 Binario (0b) 3
A Carcter 65
Variables

Variables locales: Las variables globales se pueden usar solo en las funciones
donde se crearon.
Variables globales Las variables globales se pueden usar en cualquier parte del
programa.
Las variables poseen la siguiente estructura:
<tipo> variable; Declarando una sola variable.
<tipo> variable1, variable2, variable3; Declarando ms de una variable.
Ejemplo:

unsigned int peso1 = peso2 = peso3 = 20;


int valor_inicial = 0;
Operadores aritmticos y lgicos

Aritmticos Descripcin

+ Suma
- Resta Lgicos Descripcin

* Multiplicacin ! NOT

/ Divisin && AND

% Resto de una divisin || OR


-- Decremento en 1
++ Incremento en 1
Operadores de asignacin

Asignacin Descripcin
+= Asignacin de suma (x+=y es equivalente x = x + y)
-= Asignacin de resta (x-=y es equivalente x = x - y)
*= Asignacin de multiplicacin (x*=y es equivalente x = x * y)
/= Asignacin de divisin (x/=y es equivalente x = x / y)
%= Asignacin del resto de la divisin (x%=y es equivalente x = x % y)
<<= Asignacin de desplazamiento a la derecha (x<<=y es equivalente
x = x << y)
>>= Asignacin de desplazamiento a la izquierda (x>>=y es
equivalente x = x >> y)
&= Asignacin AND de bits (x&=y es equivalente x = x & y)
|= Asignacin OR de bits (x|=y es equivalente x = x | y)
^= Asignacin OR EXCLUSIVA de bits (x^=y es equivalente x = x ^ y)
Operadores de relacin y por bits

Relacionales Descripcin Bits


> Menor que ~ Complemento a 1
< Mayor que & AND
^ OR EXCLUSIVA
>= Mayor igual que
| OR
<= Menor igual que
>> Desplazamiento a la derecha
== Igual
<< Desplazamiento a la izquierda
!= Distinto
Declaracin de control

Las declaraciones de control son usadas para controlar el proceso


de ejecucin de programa.
If-else
If-else if -else
Switch-case
For
While
Do-while
IF-ELSE
SWITCH - CASE FOR
WHILE DO-WHILE
Desarrollo de ejercicios

1.- Led intermitente cada 1s haciendo uso del puerto B.


2.- Contador de 0-8 binario haciendo uso del puerto D.
3.- Realizar la siguiente operacion:
Encender el led conectado al PIN_B1 por un tiempo de 1000ms luego
Encender el led conectado PIN_B4 por un tiempo de 500ms despus
Encender el led conectado PIN_B6 por un tiempo de 2000ms por ultimo
Apagar todos los leds encendidos por un tiempo de 300ms
4.- Encender led conectado a pin_b0 al presionar un pulsador conectado al pin_d0.
5.- Contador de binario utilizar el puerto D (salidas) y B (entradas)
Al presionar un pulsador incrementar la cuenta
Al presionar otro pulsador decrementar la cuenta
Evitar rebotes mediante programacin.

También podría gustarte