Sei sulla pagina 1di 20

UNIDAD I: Introducción

La Sociedad día con día se ha visto invadida de proyectos que se han desarrollado
con la tecnología de la actualidad, que cada vez es más robusta y hace que un sistema pueda
ser un sistema maestro con poco espacio y una efectividad inigualable a la que se veía en
tiempos de la década pasada.

El desarrollo de tecnologías modernas y de estos sistemas han puesto mucha de su


atención en los sistemas de diseño pequeño y baratos, al ver que su aplicación es en lugares
de pequeño espacio donde un PLC sería inimaginable de usar, por ejemplo en una cocina ó
un cuarto de entretenimiento, y es donde se han desarrollo potencialmente los
microcontroladores y microprocesadores debido a sus características flexibles en
programación, diseño, consumo, y costo.

Los microcontroladores y microprocesadores presentan una gran oportunidad de


desarrollo en el ámbito tecnológico debido a su potencialidad en programación, versatilidad
en su ejecución y la aparición de nuevos modelos con tecnología de punta como lo pueden
ser los microcontroladores con dsp, los microprocesadores de alta velocidad, etc.

Definiciones

a) Microcontrolador: Es una computadora con un solo chip con funciones lógicas,


direccionamiento de bits, barato y sencillo.
b) Microprocesador: Es una computadora de propósito general y requiere de otros
chips para ejecutar operaciones.

Estructura

Una gran diferencia entre un microcontrolador y un microprocesador se puede ver


en su estructura, debido a que un microcontrolador es equiparable a una microcomputadora
que se podría comparar con una computadora con un microprocesador y todos sus
periféricos.

Figura 1. Estructura General de un Microprocesador

Apuntes de Microprocesadores y Microcontroladores 1


Figura 2. Estructura de un microcontrolador

Los microcontroladores habitualmente incluyen:

• CPU
• PROM, EPROM, EEPROM, ROM
• RAM
• I/O (Serie y paralelo)
• Temporizadores y Contadores
• Sistemas de Interrupciones
• Sistemas Auxiliares:
• ADC
• DAC
• DSP

Debido a que los microcontroladores ofrecen grandes ventajas como tener un sólo
circuito con varios periféricos internos, además de ser económicos, los vamos a abordar en
la primera parte del programa, en especifico un tipo de microcontroladores de la marca
Microchip que nos ofrece una gran simplicidad en su programación, y en la segunda parte
del programa volveremos a abordar los microprocesadores y veremos que ventajas y
desventajas ofrecen con los microcontroladores, una vez probados de manera práctica.

VENTAJAS DE LOS MICROCONTROLADORES

• Reunen en un sólo circuito integrado varios elementos


• Mayor fiabilidad del sistema
• Tecnología CMOS
• Disminución de costos.
DESVENTAJAS DE LOS MICROCONTROLADORES

Apuntes de Microprocesadores y Microcontroladores 2


• DISEÑO – Es necesario realizar el diseño del programa adecuandote a las
instrucciones de cada fabricante.
• PRUEBAS – Es en veces difícil probar el funcionamiento de un microcontrolador ya
que la señal es interna.

TIPOS DE MICROCONTROLADORES

• CISC (Complex Instruction Set Control)

+ Maneja más de 100 instrucciones


+ Bus común (datos e instrucciones) – el bus tiene el mismo tamaño en
instrucciones que en datos.

• RISC (Reduced Instruction Set Control)

+ Menos instrucciones
+ Buses separados (datos de 8 bits e instrucciones de 12, 14, 16 bits)
+ Arquitectura Pipeline o de Canalización

APLICACIONES DE LOS MICROCONTROLADORES

• Robótica
• Captura de Datos
• Sistemas portátiles de bajo consumo
• Automóviles (Frenos, Inyección, Encendido, sistemas de diagnóstico, etc.)
• Equipos Informáticos y electrónicos
• Aparatos electrodomésticos

Microcontroladores PIC

Los microcontroladores PIC son de tipo RISC (Reduced Instruction Set Control),
por lo que cuentan con un juego reducido de instrucciones que abarcan las 35 instrucción, a

Apuntes de Microprocesadores y Microcontroladores 3


diferencia de los de tipo CISC; los microcontroladores PIC utilizan un bus de 14 bits para
leer la memoria y un bus de 8 bits para los datos, teniendo buses separados para datos y
direcciones con lo cual le permite tener un ahorro de tiempo.

Debido a que maneja un ancho de 14 bits para leer la memoria del programa, le
permite leer las instrucciones completas en un solo ciclo, además de que ahorra tiempo de 2
a 1 en comparación con la arquitectura CISC y además un espacio en memoria de 2 a 1.

Está basado en una arquitectura PIPELINE ó de canalización que se comporta de la


siguiente manera:

a) Ciclo Fetch  Lectura de la instrucción de Memoria


b) Decoder  Decodificación de la instrucción
c) Ejecuta la operación
d) Escribe resultados en la memoria de datos.

CLK

Instrucción 1 Fetch Decoder Ejecuta Escribe


Instrucción 2 Fetch Decoder Ejecuta Escribe
Instrucción 3 Fetch Decoder Ejecuta Escribe
Instrucción 4 Fetch Decoder Ejecuta Escribe
Instrucción 5 Fetch Decoder Ejecuta Escribe

Cada pulso de reloj realiza una instrucción diferente después del 4 pulso.

El tiempo de ciclo de trabajo real de un microcontrolador PIC se calcula en base al


cristal que se este utilizando, y debido a que después de 4 ciclos se ejecuta la instrucción, el
trabajo real se calcula con la siguiente expresión:

4
Tiempo de ciclo de instrucció n= = XXX µseg
Frec . del Cristal

Y la frecuencia con la que trabaja es el inverso del resultado, por ejemplo si


empleamos un cristal de 4 Mhz, la frecuencia de trabajo real del microcontrolador es de 1
Mhz.

Existen cinco familias de microcontroladore PIC que se pueden encontrar en el


mercado, cada una ofrece características diferentes para las diversas aplicaciones, las cuales
son:

a) PIC12CXXX (8 pin 12 bit/14bit program word)

Tiene una arquitectura RISC en 8 pines, con 12 o 14 bit de instrucción, 1024


palabras de programa, 2.5 volts de operación, manejo de interrupciones y pila por
hardware, tiene 33 instrucciones, 128 bytes EEPROM y 64 bytes RAM

Apuntes de Microprocesadores y Microcontroladores 4


b) PIC16C5X (12 bit program word)

Tienen un juego de instrucciones de 12 bits de ancho y vienen en empaques de


18, 20, o 28 pines, operan a bajo voltaje (menor de 2 volts), haciendo a estos micros
ideales para operar con baterías.

c) PIC16CXXX (14 bit program word)

Ofrecen un amplio rango de opciones, con empaques de 18 a 44 pines, además


de integración de periféricos. Tienen un juego de instrucciones de 14 bits, capacidad
de manejo de interrupciones y un snack de 8 niveles.

d) PIC17CXX (16 bit program word)

Ofrece un alto desempeño, y una alta velocidad de ejecución, tiene un juego de


instrucciones reforzado con un ancho de 16 bits, además de manejo de vectores de
interrupción.

e) PIC18CXX (16 bit program word)

Tienen Arquitectura RISC Harvard avanzada, tienen 77 instrucciones y hasta


64k bytes de programa y 40Mhz, pila de 32 niveles, múltiples fuentes de
interrupción, hasta 1536 bytes de RAM y 1KB de EEPROM.

Familia de los microcontroladores de Microchip

Todos los microcontroladores de la marca Microchip tienen una arquitectura


Harvard, que los hace tener mayor rapidez que los de tipo CISC.

Apuntes de Microprocesadores y Microcontroladores 5


Arquitectura Harvard y Von Neumann

La arquitectura Harvard separa la memoria de datos de la memoria de programa y se


accede a ellas mediante buses diferentes.

PIC16F7877. 8 BIT CMOS FLASH MICROCONTROLLER

Características Generales:

• 35 instrucciones
• Todas las instrucciones son de ciclo sencillo, excepto los saltos que son de 2 ciclos
• Velocidad de operación: Oscilador de 20 MHz, ciclo de instrucción de 200ns.
• 8k de memoria de programa
• 256b de memoria de datos
• 256b de memoria de eeprom

Apuntes de Microprocesadores y Microcontroladores 6


• 14 interrupciones
• 8 niveles de stack
• Modos de direccionamiento directo, indirecto y relativo
• Protección de código
• Modo de SLEEP para ahorro de energía
• Opciones para el oscilador
• Bajo consumo, alta velocidad con tecnología CMOS Flash/EEPROM
• Diseño completamente estático
• Sistema de programación en serie, vía 2 pines
• Rango de alimentación de 2 volts a 5.5 volts
• Corriente de sink/source de 25mA max.

Periféricos:

• Timer0: 8 bits timer/contador con pre-escalar de 8 bits


• Timer1: 16 bits timer/contador con pre-escalar
• Timer 2: 8 bits timer/contador con 8 bits de registro de periodo, pre-escalar y post-
escalar
• Modulo de PWM
• Convertidor Análogo- Digital de 10bits en 8 canales
• Comunicación Serie USART
• Puerto paralelo

Apuntes de Microprocesadores y Microcontroladores 7


ARQUITECTURA

Diagrama a bloques del PIC16F877

Apuntes de Microprocesadores y Microcontroladores 8


Pinout Description del PIC16F877(1)

Apuntes de Microprocesadores y Microcontroladores 9


Pinout Description del PIC 16F877 (2)

Características de los Puertos

Puerto A
RA0/AN0 I/O Entrada Analógica 0
RA1/AN1 I/O Entrada Analógica 1
Voltaje de ref.
RA2/AN2/Vref - I/O Entrada Analógica 2
negativo
Voltaje de ref.
RA3/AN3/Vref + I/O Entrada Analógica 3
positivo
Entrada Timer o
RA4/ TOCK1 I/O
Contador
___
RA5/AN4/ SS I/O Entrada Analógica 4 Comunicación Serie

Puerto B
RB0/INT I/O Interrupción Externa
RB1 I/O
RB2 I/O
Entrada de Voltaje de
RB3/PGM I/O
programación
RB4 I/O
RB5 I/O
RB6/PGC I/O Reloj de Programación
RB7/PGD I/O Datos de Programación

Apuntes de Microprocesadores y Microcontroladores 10


Puerto C
RC0/T1OSC/T1CLKI I/O Salida del Oscilador Timer 1 Entrada Cont/Timer 1
RC1/T1OSI/CCP2 I/O Entrada del Oscilador Timer 1 Salida PWM 2
RC2/CCP1 I/O I/O de CCP1 Salida PWM1
RC3/SCK/SCL I/O Reloj de Comunicación Serie
RC4/SDI/SDA I/O Datos de Comunicación Serie
RC5/SD0 I/O Datos de Salida de Com. Serie
(SPI)
RC6/TX/CK I/O Transmisión Datos Serie Reloj Sincrónico
RC7/RX/DT I/O Recepción datos Serie Datos (en Sincronía)

Nota: El puerto C tiene entrada y salida digitales como un disparador Schmitt

Puerto D

Puede funcionar como Puerto I/O o como un puerto paralelo esclavo cuando lo conectamos
al bus de un microprocesador.

Puerto E

____
RE0/ RD
I/O Control RD en un Bus E
/AN5
____
RE1/ WR
I/O Control WR en un bus R/S
/AN6
____
RE2/ CS
I/O Control CS en un bus R/W
/AN7

Organización de la Memoria

Existen 2 bloques de memoria. Estos son la memoria de programa y la memoria de datos,


cada bloque tiene su propio bus, por lo que el acceso a estos bloques puede hacerse
simultáneamente.

La memoria de datos puede separarse en 2 bloques, los registros de funciones especiales


(SFR’s) y registros de propósito general. La memoria de datos también contiene la memoria
EEPROM de datos, esta memoria no está mapeada directamente en la memoria de datos,
pero esta mapeada indirectamente, esto es, que un apuntador especifica la dirección de la
EEPROM que será leída o escrita.

Organización de la memoria del programa

Apuntes de Microprocesadores y Microcontroladores 11


Los PIC16F877 tienen la dirección de reset en la posición 00H, y el vector de
interrupciones en la dirección 04H, cuenta con un contador de programa de 13 bits llamado
PC (contador de direcciones que indica hacia que localidad se va a leer.

Para llamar una rutina el PC guarda el valor en el snack, el PC se va a ejecutarla y después


regresa a recuperar el valor que tiene el snack para seguir (Nota: No anida más de 8
subrutinas).

Mapa de la memoria de programa del PIC16F877

El contador del programa (PC) es de 13 bits de ancho. El byte bajo es el registro PCL, el
cual es de lectura y escritura. El byte alto del PC (PC<12:8>) no se puede leer ni escribir
directamente y viene del registro PCLATH. EL valor del PCLATH se transfiere al PC
cuando éste es cargado por un nuevo valor, por ejemplo después de un CALL, GOTO o una
escritura al PCL.

Cuando se ejecuta la instrucción CALL o se genera una instrucción, los 13 bits del PC se
guardan en el STACK.

Organización de la memoria de datos

Apuntes de Microprocesadores y Microcontroladores 12


Registros de funciones especiales

Apuntes de Microprocesadores y Microcontroladores 13


Apuntes de Microprocesadores y Microcontroladores 14
Registro Status (03H, 83H, 103H, 183H)

Apuntes de Microprocesadores y Microcontroladores 15


El registro STATUS contiene el status aritmético del ALU, del Reset y de los bits
de selección para los bancos de memoria.

___ ___
IRP RP1 RP0 T0 PD Z DC C
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

IRP: Selección de Banco (direccionamiento indirecto)

0 Banco 0,1
1 Banco 2,3

RP1,RP0: Selección de Banco (direccionamiento directo)

0 Banco 0
1 Banco 1
10 Banco 2
11 Banco3

___
T 0 : Timer out bit (Sólo de lectura)

0 Después del desborde del Watchdog timer


1 Después de una instrucción CLRWDT ó SLEEP

___
PD : Power Down Bit. (Sólo lectura)

0 Por la ejecución de SLEEP


1 Despues de un CLRWDT

Z: Bit de Cero

1 Cuando el resultado de una operación aritmética o lógica es cero


0 Cuando el resultado de la operación aritmética o lógica no es cero

DC: Auxiliar de carry, para operaciones de suma y resta

1 Cuando hay un acarreo del 4to al 5to bit


0 Cuando no hay acarreo

C: Bit de carry, para operaciones de suma y resta

1 Cuando existe un acarreo de salida del bit más significativo


0 Cuando no existe un acarreo

Apuntes de Microprocesadores y Microcontroladores 16


Ejemplos de Activación de las Banderas Z, DC, y C

0101 0100 El resultado genera un cero lo que hace que la bandera


And 0000 0000 Z=1, como no existió un acarreo del 4to al 5to bit DC=0
0000 0000 y como no existió un acarreo al final el C=0

0101 0100 El resultado genera un resultado diferente de cero lo que


0000 0000 hace que la bandera Z=0, como no existió un acarreo del
Or
0101 0100 4to al 5to bit DC=0 y como no existió un acarreo al final
el C=0

Acarreo 1111 111


111 1111 El resultado genera un resultado diferente de cero lo que
1 hace que la bandera Z=0, como un acarreo del 4to al 5to
111 1111 bit DC=1 y como no existió un acarreo al final el C=0
Or
1
1111 1110
1

Registro OPTION_REG (81H, 181H)

El registro OPTION_REG, es un registro de lectura y escritura, el cual contiene


varios bits de control para configurar el prescalar del Timer y el WDT, la interrupción
externa INT, el Timer (TMR0) y los pull - ups del Puerto B

___
RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Direccionamiento Directo e Indirecto

En todos los bancos de memoria el primer registro que se encuentra es un registro


INDF y no es un registro físico, es decir, no lo podemos utilizar para almacenar un dato y
solamente se utiliza para direccionamiento indirecto.

Apuntes de Microprocesadores y Microcontroladores 17


El direccionamiento directo, utiliza 7 bits procedentes de la instrucción y 2 bits que
son RP1:RP0 del registro STATUS[6:5] para formar la dirección de 9 bits.

En el direccionamiento indirecto a la posición de memoria que se accede es la


contenida en el registro FSR, como la dirección es de 9 bits, el registro FSR concatena el
bit IRP del registro STATUS[7].

Ejemplo:

Movlw 20H ;inicializar el apuntador a la memoria en 20H


Bcf IRP ;poner en cero el IRP
Movwf FSR ;Hacia la RAM
Clrf INDF ;limpia el registro INDF

Puertos de Entrada y Salida

Puerto A

El puerto A esta compuesto por 6 pines bidireccionales (I/O), además de ser la


entrada analógica para el ADC. El registro que maneja al Puerto A y lo configura se llama
TRISA, el cual cuando se limpia (se pone todo el registro en 0), se configura el puerto A

Apuntes de Microprocesadores y Microcontroladores 18


como una salida, mientras que si el registro TRISA se pone todo en uno se configura como
entrada, ya sea digital o analógica.

Cada uno de los pines del Puerto A pueden ser configurados de manera individual,
modificando el registro TRISA por bit, por ejemplo si solo queremos que el bit 0 del Puerto
A sea entrada, le escribimos al registro TRISA la siguiente palabra b’00000001’, y
tendremos todos los pines de salida excepto el bit 0.

El registro ADCON1 es el encargado de configurar la entrada analógica en el puerto


A.

Nota: La entrada analógica debe ser menor o igual a 5v, y en corriente menor a
25mA.

Apuntes de Microprocesadores y Microcontroladores 19


Apuntes de Microprocesadores y Microcontroladores 20

Potrebbero piacerti anche