0% encontró este documento útil (0 votos)
48 vistas13 páginas

Microcontroladoress Modulo I

Un microcontrolador es un circuito integrado que incluye CPU, memorias y circuitos de entrada/salida, que debe ser programado para realizar diversas tareas. El PIC16F628A, fabricado por MICROCHIP, es un microcontrolador popular por su versatilidad, bajo costo y facilidad de uso, siendo ideal para estudiantes y aficionados. Su arquitectura Harvard y características como memoria FLASH y EEPROM lo hacen eficiente y adecuado para aplicaciones prácticas.

Cargado por

beto chavez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
48 vistas13 páginas

Microcontroladoress Modulo I

Un microcontrolador es un circuito integrado que incluye CPU, memorias y circuitos de entrada/salida, que debe ser programado para realizar diversas tareas. El PIC16F628A, fabricado por MICROCHIP, es un microcontrolador popular por su versatilidad, bajo costo y facilidad de uso, siendo ideal para estudiantes y aficionados. Su arquitectura Harvard y características como memoria FLASH y EEPROM lo hacen eficiente y adecuado para aplicaciones prácticas.

Cargado por

beto chavez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO PÚBLICO

GRAL. GC. “OSCAR ARTETA TERZI”

MODULO I

EL MICROCONTROLADOR PIC

2. ¿QUÉ ES UN MICROCONTROLADOR?

Un microcontrolador es un circuito integrado, en cuyo interior posee toda la arquitectura de un


computador, esto es CPU, memorias RAM, EEPROM, y circuitos de entrada y salida.

Un microcontrolador de fábrica, no realiza tarea alguna, este debe ser programado para
que realice desde un simple parpadeo de un led hasta un sofisticado control de un robot. Un
microcontrolador es capaz de realizar la tarea de muchos circuitos lógicos como compuertas
AND, OR, NOT, NAND, conversores A/D, D/A, temporizadores, decodificadores, etc.,
simplificando todo el diseño a una placa de reducido tamaño y pocos elementos.

2.1. EL MICROCONTROLADOR PIC16F628A.

Los microcontroladores PIC (Peripheral interface Controller), son fabricados por la empresa
MICROCHIP Technology INC. cuya central se encuentra en Chandler, Arizona, esta empresa
ocupa el primer lugar en venta de microcontroladores de 8 bits desde el año 2002. Su gran éxito
se debe a la gran variedad (más de 180 modelos), gran versatilidad, gran velocidad, bajo costo,
bajo consumo de potencia, y gran disponibilidad de herramientas para su programación. Uno de
los microcontroladores más populares en la actualidad es el PIC16F628A y sus variantes
PIC16F627A y PIC16F648A, estos modelos (serie A) soportan hasta 100.000 ciclos de escritura
en su memoria FLASH, y 1’000.000 ciclos en su memoria Eeprom, este está reemplazando
rápidamente al popular PIC16F84A, pues presenta grandes ventajas como son:

PIC16F84 PIC16F627 PIC16F628 PIC16F648


A A A A
Memoria de programa 1024 x 14 1024 x 14 2048 x 14 4096 x 14
Flash
Memoria datos RAM 68 x 8 224 x 8 224 x 8 256 x 8
Memoria datos EEPROM 64 x 8 128 x 8 128 x 8 256 x 8
Pines de entrada/salida 13 16 16 16
Comparadores de voltaje 0 2 2 2
Interrupciones 4 10 10 10
Timers 8/16 bits 1 3 3 3
Módulos PWM / CCP No Si Si Si
Comunicación serial No Si Si Si
USART
Figura 2.1.1. Tabla de comparación entre el PIC16F84A y los PIC16F6XX.
Todas estas y otras ventajas más como el oscilador interno RC de 4MHZ, MCLR programable,
mayor capacidad de corriente, Programación en bajo voltaje, etc. Lo hacen al PIC16F628A,
como el microcontrolador ideal para estudiantes y aficionados, ya que al tener oscilador interno
y el MCLR (master clear) sea programable, es mucho más sencillo ponerlo en funcionamiento,
basta con conectar al pin 14 a 5V y el pin 5 a tierra para que empiece a trabajar (ver figura
2.7.1).

2.2. ARQUITECTURA DEL PIC16F628A.

El PIC16F628A utiliza un procesador con arquitectura Harvard, consiguiendo mayor


rendimiento en el procesamiento de las instrucciones, esta arquitectura a diferencia de la Von
Neumann, utiliza dos bloques de memorias independientes, una contiene instrucciones y la otra
sólo datos, cada una con su respectivo sistema de buses de acceso, 8 líneas para los datos y 14
líneas para las instrucciones, con lo que es posible realizar operaciones de acceso lectura o
escritura simultáneamente en las 2 memorias, a esto se conoce como paralelismo (figura 2.2.1).

11 bits 9 bits

Memoria de Bus de dirección Bus de dirección Memoria de


de Instrucciones de Datos
Instrucciones CPU Datos
14 bits 8 bits

Bus de Bus de
Instrucciones Datos

Figura 2.2.1. La arquitectura Harvard maneja la memoria de datos y la memoria de


instrucciones por separado y con diferentes capacidades.

9 bits
Memoria única
Bus común de direciones
de
Instrucciones y 8 bits
CPU
Datos
Bus de Datos e Instrucciones

Figura 2.2.2. En la arquitectura Von Neumann se conecta el CPU con una memoria única en
donde se almacenan datos e instrucciones en forma indistinta, compartiendo el mismo bus.

El CPU del microcontrolador 16F6XX emplea una avanzada arquitectura RISC (computador
con juego de instrucciones reducido) con un set de 35 instrucciones poderosas pertenecientes a
la gama media de la familia de los microcontroladores PIC, la mayoría de instrucciones se
ejecutan en un ciclo de instrucción a excepción de los saltos que requieren de 2 ciclos, dentro de
su Procesador existe una PILA de 8 niveles que permiten el anidamiento de subrutinas, esto
quiere decir que puede retomar 8 lugares diferentes de línea de programa e ir regresando a cada
uno en el orden inverso al que fueron anidados (ver figura 2.3.1).
Bus de Datos
Contador Prog.
Memoria 8
13
Flash de
Programa Memoria
16F628A Pila de 8 Niveles Memoria
EEPROM
2K x 14 (13 bits) RAM
de Datos Bus
PORT A
14
Reg. Instrucción M R
Bus U A
de X B 0
direcc u /
A
iona 8 s N
mient d 0
o e R
Direct di A
o r. 1
in /
di A
re N
ct 1
o

R
A
2
/
A
N
2
/
V
R
E
F

R
A
3
/
A
N
3
/
C
M
P
1
uc a gramación
cio n
ne q
u
s
8 e
o
s
G ci
e la
T
n e
d
o
e m r
C
r p
o or Cir
n a
iz cui
t d a to
r o d de
o r or RE
l d SE
d e
OSC1/CLK
D e e
IN e Cir
ti n
c cui
OSC2/CLK e c
o e to
OUT d m de
n
i p di vigi
f o d lan
cia
i s o
P W
c DT
a W
d R Detec
T
o
Brow
r Te n-out
m
I po Baj
n riz
s ad volt
or aje
t
de de
r arr Pro
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 19
Reg. O N R
SFR
R
A S B
rama . uí se escribe
4 C 6 de las ordenes
R. T 2 /
ST O / RB T bloque C para que el
AT PORT
C C 0/I 1 s o CPU las
US K L NT O
B
1 K RB S funcion n ejecute. En el
C
M
O
U
1/
RX
O ales o caso del
/
1 MUX
P T /D T del c microcontrola
2 T 1
R RB C
PIC, i dor
R
A A
A
2/T K conexi d PIC16F628A
L 5/ X/ I
U M 7 CK ón o tiene memoria
/
8
C
O
RB
3/ R
interna de programa
L
R/ S CC B es t no volátil tipo
R T C P1 7
e H 1 RB / median a FLASH, en
/ te comparación a
g
.
V
C
4/ T m
R PG 1
A L M O buses, b su antecesor la
K S
W
6/
I
RB
I
se i memoria
5
aprecia é EEPROM,
la n este se
MCLR VDD
conexi caracteriza por
VSS ón c ser más rápido
las o en el proceso
Comparadores memori m de
as o escritura/borra
Timer 0 Flash, do eléctrico,
Ram m además
Timer 1
Eepro e dispone de
Timer 2 m. m mayor
o capacidad de
r almacenamien
i to, esta
2.3. L a característica
CCP1 USART A hace que sea
d ideal para
M e prácticas de
F E laboratorio en
i M donde la
i
g O n grabación y el
u R borrado son
s
r I t frecuentes
a A (recuerde que
r
u soporta
2 D c 100.000 ciclos
. E c de
2 i escritura/borra
. P o do). El bus de
3 R n direcciones de
. O e la memoria de
G programa es
s
D R
, de 13 bits, por
i A
lo que el
a M
a Contador de
g A
q Programa (PC)
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 20
puede
direcci
onal
8192
posicio
nes de
14 bits
cada
una
(desde
la
0000h
hasta
1FFFh)
, de las
cuales
sólo las
primera
s 2048
líneas
tiene
implem
entadas
(desde
la
0000h
hasta la
07FFh)
, es
decir
que el
PC sólo
utiliza
los 11
primer
os bits
de
direcci
ones
los
demás
bits los
ignora.

------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 21


PC
<12:0> 1
CALL,
RETURN 3
RETFIE,
RETLW Nivel 1 de la Pila
Nivel 2 de la Pila

Nivel 8 de la Pila
Figura 2.3.1. Mapa de la memoria de
Vector de
Programa, de las 8196 posiciones, sólo tiene
RESET0000h
implementado las primeras 2048 posiciones, la

2048 Posiciones
dirección 0000h está reservada para el vector de
reset y la 0004h está reservada para el vector de Vector de
interrupción. INTERRUPCION 0004h
0005h
MEMORIA DE
PROGRAMA
PIC16F628A
07FFh

NO

IMPLEMEN
TADO 1FF
Fh

2.4. LA MEMORIA DE DATOS.

El PIC16F628A, tiene dos tipos de memorias de datos, la RAM estática o SRAM (Random
Access Memory) o memoria de acceso casual que es un tipo de memoria volátil, es decir sus
datos permanecen en la memoria mientras exista alimentación en el dispositivo y es de vital
importancia porque ahí residen dos tipos de datos, los registros de propósito general (GPR), en
donde se almacenan las variables y los registros especiales (SFR), que son los encargados de
llevar el contador de programa, el conteo del Temporizador, el estado de los puertos, la
configuración de las interrupciones, etc.
El otro tipo de memoria es una memoria auxiliar no volátil llamada EEPROM, con
capacidad de 128 posiciones de 8 bits cada una. Esta memoria puede ser accedida por el usuario
mediante programación, es muy útil para almacenar datos que el usuario necesita que se
conserven aún sin alimentación, tal es el caso de la clave de una alarma, esta puede ser
modificada, pero no debe perderse por un corte de energía, el fabricante asegura que la serie
PIC16F6XXA, tiene una retención de datos en esta memoria mayor a 100 años.
Como este microcontrolador es fabricado con tecnología CMOS, su consumo de
potencia es muy bajo (2 mA a 4 Mhz) y además es completamente estático, lo que significa que
si el reloj se detiene los datos de la memoria RAM no se pierden, esto mientras el micro sigue
alimentado. La memoria de datos RAM, tiene 512 líneas de 8 bits cada una y está particionada
por 4 bancos; el banco 0, banco 1, banco 2 y banco 3, cada uno con 128 bytes, el acceso a cada
banco de memoria lo realiza los bits RP1 y RP0 del registro STATUS, la mayoría de los bytes
son ocupados por los Registros de Funciones Especiales (SFR) o no están implementadas. Para
el caso del PIC16F628A sólo 224 posiciones de memoria RAM están disponibles para los
Registros de Propósito General (GPR), la distribución de memoria se muestra en la tabla de la
figura 2.4.1.
00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh Dir. indirecto
Dir. indirecto 80h Dir. indirecto 100h Dir. indirecto 180h
0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h (1) 15h 16h 17h (1) (1) (1)
81h 101h 181h
18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1FhTMR0 OPTION TMR0 OPTION
PCL 82h 102h 182h
20h PCL PCL PCL
STATUS 83h 103h 183h
STATUS STATUS STATUS
FSR 84h 104h 184h
FSR FSR FSR
TRISA 85h 105h 185h
PORTA
TRISB 86h 106h 186h
PORTB PORTB TRISB
87h 107h 187h
88h 108h 188h
70h 89h 109h 189h
PCLACH PCLATH 8Ah PCLATH 10Ah PCLATH 18Ah
INTCON INTCON 8Bh INTCON 10Bh INTCON 18Bh
PIR1 PIE1 8Ch 10Ch 18Ch
8Dh 10Dh 18Dh
TMR1L PCON 8Eh 10Eh 18Eh
TMR1H 8Fh 10Fh 18Fh
T1CON 90h
TMR2 91h
T2CON PR2 92h
93h
94h
CCPR1L 95h
CCPR1H 96h
CCP1CO 97h
N TXSTA
98h
RCSTA SPBRG
99h
TXREG EEDATA
9Ah
RCREG EEADR
EECON1 9Bh
EECON2 9Ch
(1) 9Dh
9Eh
CMCON VRCON 9Fh 11Fh
A0h 48 Bytes 120h
80 Registros
Bytes Propósito 14Fh
Registr G.
96 150h
os
Bytes Propós
Registr EFh 16Fh 1EFh
ito
os Gener F0h 170h 1F0h
Propós al acce
ito acce
so 70h
Gener so 70h
7Fh acce FFh 17Fh – 7Fh 1FFh
al – 7Fh
so 70h
Banco 0 Banco 1 Banco 2 Banco 3

Posiciones no implementadas (1) No es un registro físico.

Figura 2.4.1. Mapa de la memoria de DATOS SRAM, los bloques marcados con tramas no son
implementados, se leen “0” las localidades marcadas con (1) no son registros físicos, las
localidades 20h a 7Fh, corresponden a los 96 bytes de los registros de propósito general GPR,
80 bytes GPR en el banco 1(A0h – EFh) y 48 bytes GPR en el banco 2 (120h – 14Fh), dando un
total de 224 bytes disponibles para el usuario. Para mayor información y utilización de los
SFR, refiérase al datasheet del PIC16F6XXA que se incluye en el CD de este libro.
2.5. CARACTERÍSTICAS GENERALES.

Hasta aquí se puede resumir las características más relevantes del PIC16F628A, estas son:

 Velocidad de operación hasta 20 MHZ con oscilador externo.


 Oscilador interno RC (resistencia condensador) de 4 MHZ calibrado de fábrica al ±1 %.
 Admite 8 configuraciones de oscilador.
 8 niveles de PILA.
 Procesador con arquitectura HARVARD.
 Conjunto reducido de instrucciones RISC (35) gama media.
 Instrucciones de un ciclo excepto los saltos (200nS por instrucción a 20 MHZ).
 Resistencias PULL-UP programables en el puerto B.
 Pin RA5 MCLR programable como reset externo o pin de entrada.
 Rango de operación desde 3V. hasta 5.5V.
 15 pines de I/O y 1 sólo de entrada (RA5).
 Temporizador Perro guardián WDT independiente del oscilador.
 Programable con bajo voltaje LPV (5V.).
 Programación serial en Circuito ICSP por 2 pines: RB6 reloj y RB7 datos.
 Código de protección programable por sectores.
 Memoria de programa FLASH 2048K. de 100.000 ciclos escritura/borrado.
 Memoria de datos EEPROM de 1.000.000 ciclos escritura/borrado de 100 años retención.
 2 circuitos comparadores análogos con entradas multiplexadas.
 3 Timers, Timer 0 a 8 bits, Timer 1 a 16 bits y Timer 2 a 8 bits.
 Módulos CCP, Captura compara 16 bits, y PWM, modulación de ancho de pulso 10 bits.
 10 fuentes de interrupción.
 Módulo de comunicación serial USART/SCI.
 Capacidad de corriente para encender leds directamente (25 mA I/O) por cada pin.

2.6. DIAGRAMA DE PINES Y FUNCIONES.

Excluyendo los dos pines de alimentación, todos los 16 pines restantes pueden ser configurados
como entradas o salidas, algunos de ellos tienen funciones especiales, ver figura 2.6.2.

RA2/AN2VREF RA1/AN1
RA3/AN3/CMP1 RA0/AN0
RA4/TOCKI/CMP2 RA7/OSC1/CLKIN
RA5/MCLR/THV RA6/OSC2/CLKOUT
VSS VDD
RB0/INT RB7/T1OSI
RB1/RX/DT RB6/T1OSO/T1CKI
RB2/TX/CK RB5
RB3/CCP1 RB4/PGM

Figura 2.6.1. Presentación más popular del PIC16F628A el PDIP y su diagrama de pines.
P NOMBRE DESCRIPCI
I ON
N
1 RA0/AN0 Pin bidireccional I/O, entrada comparador análogo.
7
1 RA1/AN1 Pin bidireccional I/O, entrada comparador análogo.
8
1 RA2/AN2/VREF Pin bidireccional I/O, entrada comp. análogo y Voltaje de referencia.
2 RA3/AN3/CMP1 Pin I/O, entrada comp. análogo y salida del comparador análogo 1.
3 RA4/T0CKI/CMP2 Pin I/O, entrada reloj TIMER0 y salida del comparador análogo 2.
4 RA5/MCLR/VPP Pin de entrada, en modo MCLR activa RESET externo.
1 RA6/OSC2/CLKO Pin I/O, entrada oscilador externo, salida de ¼ de la frecuencia OSC 1.
5 UT
1 RA7/OSC1/CLKIN Pin I/O, entrada oscilador externo, entrada del reloj externo.
6
6 RB0/INT Pin I/O, resistencia Pull-Up programable, entrada de interrupción ext.
7 RB1/RX/DT Pin I/O, resist. Pull-Up, entrada dato RS232, I/O dato serial
asincrónico.
8 RB2/TX/CK Pin I/O, resist. Pull-Up, salida dato RS232, I/O señal de reloj
asincrónico.
9 RB3/CCP1 Pin I/O, resist. Pull-Up, módulo CCP/PWM entrada o salida.
1 RB4/PGM Pin I/O, resist. Pull-Up, entrada del voltaje bajo de programación.
0
1 RB5 Pin I/O, resistencia Pull-Up programable.
1
1 RB6/T1OSO/T1CK Pin I/O, resist. Pull-Up, salida oscilador TIMER1, entrada reloj de
2 I ICSP.
1 RB7/T1OSI Pin I/O, resist. Pull-Up, entrada oscilador TIMER1, I/O datos de ICSP.
3

Figura 2.6.2. Tabla de pines con sus funciones especiales.

NOTA: sus 2 puertos el A y el B entregan un total de 200mA cada uno, es decir 25 mA cada
pin. En modo sumidero pueden soportar cada uno de sus puertos 200mA. es decir 25 mA. cada
pin.

2.7. CONSIDERACIONES BÁSICAS PERO MUY ÚTILES A LA HORA DE MONTAR


UN PROYECTO.

Es muy importante tomar en cuenta estas recomendaciones ya que si no se las sigue podría
correr el riesgo de dañar el PIC:
1. recuerde que el PIC tiene tecnología CMOS, esto quiere decir que consume muy poca
corriente pero que a la vez es susceptible a daños por estática, se recomienda utilizar pinzas para
manipular y así poder transportar desde el grabador al protoboard o viceversa, o a su vez utilizar
una manilla antiestática.
2. procure utilizar un regulador de voltaje como el 7805 que nos entrega exactamente 5V. y no
un adaptador de pared, ya que el voltaje de salida no siempre es el mismo del que indica su
fabricante, por último puede utilizar un circuito con un diodo zener de 5.1 V.
3. no sobrepase los niveles de corriente, tanto de entrada como de salida, recuerde que el PIC
puede entregar por cada uno de sus pines una corriente máxima de 25 mA. Asimismo soporta
una corriente máxima de entrada de 25 mA., esto quiere decir que puede encender un led con
una resistencia de 330 Ω, revisemos:

Voltaje que sale de un pin del PIC, si es alimentado con 5 V. = 5V.


Corriente que requiere el led para un encendido normal = 15 mA.
¿Qué resistencia es necesario para encender el led correctamente?.

V=R x I R= V R= 5 V. R= 333,33 Ω ≈ 330



I 0,015 A.

Ahora un ejemplo de corriente de entrada al PIC, si queremos poner un pulsador ¿Qué


resistencia sería la mínima a colocarse?.
Como sabemos la corriente de entrada que soporta por cada pin del PIC
es de 25mA entonces para un pulsador tenemos que:

V=R x I R= V R= 5 V. R= 200 Ω ≈ 220



I 0,025 A.

Esto quiere decir que la resistencia mínima a colocarse sería de


220 Ω para estar al límite de la capacidad que soporta el PIC, pero no
es muy aconsejable trabajar con los límites, por lo que se recomienda
utilizar una resistencia de 1 KΩ a 10 KΩ, así el PIC estaría trabajando
tranquilamente con una corriente de entrada de 5 mA o 0,5 mA
respectivamente.
4. En algunos proyectos es necesario conectar un capacitor de 0,1uF o
1 uF en paralelo al PIC, este evita mal funcionamientos que podrían
ocurrirle, en especial cuando se utiliza teclados matriciales y se tiene
conectado adicionalmente un buzzer activo (parlante activo o
chicharra) y relés.
5. Cuando se necesite precisión en el trabajo del PIC (comunicación
serial, tonos DTMF, etc.), se recomienda utilizar un cristal oscilador
externo de 4 MHZ en adelante, ya que el oscilador interno RC que
posee no tiene muy buena precisión. En un experimento realizado se
conectó dos PIC idénticos con el mismo programa el cual consistía en
hacer parpadear un led con intervalos de 1 segundo, ambos PIC
compartían la misma fuente y al momento de arrancar los dos
parpadeos eran iguales, al transcurso de unos minutos los leds se
habían desigualado, esto demuestra que la calibración interna no es
igual en todos los micros, si utilizáramos cristales externos de 4 MHZ
en ambos PIC, no se desigualan nunca, esto debido a que los cristales
son muy precisos en cuanto a la frecuencia que entregan.
Con todas estas recomendaciones se tiene el siguiente diagrama
para encender un led y conectar un pulsador sin que el PIC sufra
ningún daño.

Figura 2.7.1. Diagrama básico para conectar un PIC con un LED y un


pulsador, noten que el PIC no necesita oscilador externo ni tampoco
resistencia pull-up conectado al MCLR o puerto RA5 como lo
necesitaba su antecesor el PIC16F84A.

También podría gustarte