Está en la página 1de 113

Universidad del Azuay

Facultad de Ciencias de la
Administracin Escuela de
Ingeniera de Sistemas y Telemtica

Gua de Microcontroladores

Autores:

Danny Noboa
Daro Espinoza

Revisin:

Ing. talo Mogrovejo

Febrero/2014

Contenido
1.

Elementos Generales de Arquitectura Interna de la IBM PC.....................................3

Gua de Microcontroladores
Sumario

2.

3.

4.

5.

6.

1.1.

Introduccin a los Sistemas Microprocesados....................................................3

1.2.

Descripcin de la Arquitectura IBM PC/AT..........................................................4

1.3.

Evolucin de la Arquitectura AT.........................................................................6

1.4.

Inside the MainBoard.........................................................................................6

1.5.

Discusin sobre Partes Componentes................................................................7

1.5.1.

Procesadores (Microcontroladores)................................................................7

1.5.2.

Bus de Sistema.............................................................................................. 8

1.5.3.

Chipset.......................................................................................................... 8

1.5.4.

Memorias....................................................................................................... 9

Interrupciones en la IBM PC Generalidades............................................................11


2.1.

Tratamiento de interrupciones en la PC...........................................................11

2.2.

Interrupciones por hardware en la Pc..............................................................15

2.3.

Controladores de interrupcin 8259A..............................................................17

2.4.

Evolucin en el manejo de interrupciones.......................................................20

2.5.

Registros y transferencias para el manejo de interrupciones..........................23

Puerto Paralelo....................................................................................................... 27
3.1.

Tipos de Puertos.............................................................................................. 27

3.2.

Pines y Registros............................................................................................. 29

Puerto Serial........................................................................................................... 32
4.1.

Conectores y pines.......................................................................................... 32

4.2.

Protocolo de comunicacin..............................................................................33

Puerto USB............................................................................................................. 35
5.1.

Especificaciones generales..............................................................................35

5.2.

Historia............................................................................................................ 35

5.3.

Evolucin de los estndares USB.....................................................................36

5.3.1.

USB 2.0........................................................................................................ 40

5.3.2.

USB 2.X vs Firewire......................................................................................43

5.3.3.

Interface USB en la IBM Pc...........................................................................44

5.3.4.

Cables y Conectores....................................................................................44

5.4.

Especificaciones Elctricas..............................................................................45

5.5.

Administracin de la energa en el bus............................................................45

Microcontroladores................................................................................................. 47
6.1.

Definicin........................................................................................................ 47

6.2.

Diferencia entre microprocesadores y microcontroladores..............................47

6.3.

Arquitectura de un microcontrolador...............................................................48

Ing. talo Mogrovejo


Universidad del Azuay

Gua de Microcontroladores
Sumario
6.4.
7.

Microcontroladores de 8 bits...........................................................................49

PIC.......................................................................................................................... 50
7.1.

Definicin........................................................................................................ 50

7.2.

Pic 16X84........................................................................................................ 50

7.3.

PIC 16X (F) XX................................................................................................. 50

7.4.

PIC 16F87X...................................................................................................... 52

7.5.

17CXXX........................................................................................................... 57

7.6.

PIC 18C(F)XXX................................................................................................. 61

8.

Programacin de PIC.............................................................................................. 70
8.1.

Instalacin del software necesario..................................................................70

8.2.

PIC 16F877A.................................................................................................... 70

8.3.

Diagrama de pines y funciones.......................................................................72

9.

El lenguaje de programacin MIKROC....................................................................75


9.1.

Ventajas e inconvenientes...............................................................................75

9.2.

Los lenguajes usados para microcontroladores...............................................76

9.3.

Repertorio de instrucciones MikroC.................................................................77

10.

Prcticas............................................................................................................. 79

10.1. Manejo de LEDS.............................................................................................. 79


10.2. Manejo de Repeticiones...................................................................................80
10.3. Manejo de Pulsadores......................................................................................82
10.4. Manejo de Displays......................................................................................... 84
10.5. Manejo de LCD................................................................................................ 86
10.6. Manejo de Sonido............................................................................................ 89
10.7. Manejo de Teclados......................................................................................... 91
10.8. Manejo de Interrupciones................................................................................91
Referencias................................................................................................................. 102
Anexos........................................................................................................................ 103
ndice de Tablas y Figuras........................................................................................... 103
Biografas.................................................................................................................... 106

Ing. talo Mogrovejo


Universidad del Azuay

Gua de Microcontroladores
Elementos Generales de Arquitectura de la IBM PC

1. Elementos Generales de Arquitectura Interna de la IBM PC

1.1.

Introduccin a los Sistemas Microprocesados

Figura 1 Diagrama de Bloques de


(Mogrovejo, 2013)

un Sistema Microprocesado

Partes

del Sistema Micropocesado

CPU:

Unidad Central de Proceso

ALU:

Unidad aritmtica Lgica


Contador
ejecutar.

de Programa: Se encarga de ver la siguiente lnea a

Reset: Vuelve a 0 en micro.


Decodificador de Instrucciones: Decodifica las instrucciones que se guardan en la
memoria de programa a lenguaje ensamblador que es el lenguaje de mquina.
Circuito de Reloj: Generador de reloj
Memoria de Datos: Es la que se encarga de guardar datos que usa el programa de
manera voltil, es decir clculos, valores etc.
Memoria de Programa: Es la que se encarga de guardar las instrucciones del
programa a realizarse.
Memoria de Perifricos: Son memorias para controlar perifricos.
Buses: Son los encargados de la comunicacin de todos los componentes del sistema.
Bus de Direcciones: Es el que se encarga de llevar la direccin o ubicacin de un
componente o de un dato guardado en memoria.
Bus de Control: Es el encargado de controlar los procesos de lectura o escritura,
controla la habilitacin de los dispositivos.

Ing. talo Mogrovejo


Universidad del Azuay

Gua de Microcontroladores
Elementos Generales de Arquitectura de la IBM PC

Figura 2 Buses de datos, direcciones y control


Perifrico de Sistemas Microprocesados: Es todo aquello que puede ser
controlado por un microprocesador

1.2.

Descripcin de la Arquitectura IBM PC/AT

En julio de 1980 IBM decide empezar a desarrollar su primera computadora personal


pretendiendo as irrumpir en todos nuestros hogares. La primera y ms importante
decisin que adopt la comisin de este proyecto fue que su PC debera basarse en
una arquitectura abierta, seleccionando los mejores componentes y software de las
mejores empresas. Esta poltica fue la clave del xito del IBM PC y lo que ms tarde
hara que se convirtiera en un estndar. Si no lo hubieran decidido as, seguramente el
IBM-PC sera un ordenador personal ms, aadidos a la lista de los ya comercializados
Apple II, Commodore PET, etc. IBM era consciente de que si quera que su trabajo
tuviera xito debera aportar algo ms que sus competidores en ordenadores
personales, ya que estos le llevaban una ventaja muy considerable. (Ibez) Recuerde
el

lector

que

la

primera

microcomputadora

de

la

historia

la

fabric

Micro

Instrumentation Telemetry Systems en 1975 con el nombre de Altair 8800. Es por ello
la decisin de fabricar su PC a golpe de talonario, comprando todo el trabajo que le
llevaban de ventaja sus competidores. Esto era un lujo que una empresa de la
envergadura de IBM se poda permitir. No obstante, destacar que IBM no era consciente
del xito que iba a tener su producto. (Alonso130, 2010)
MEMORI
A
EXTERNA

AO

PC

UP

ISA

DISCO
DURO

1981

PC

8088

8 bits

1983

PC/XT

8088/86

8/16 bits

10M

Ing. talo Mogrovejo


Universidad del Azuay

Gua de Microcontroladores
Elementos Generales de Arquitectura de la IBM PC
1984

PC/AT

80286

16 bits

1987

EISA

386 486

32 bits

20M
-

5
-

Tabla 1 Aparicin Computadoras IBM (Mogrovejo, 2013)

Todo empez a finales del Siglo XIX. En plena revolucin industrial EEUU reciba a diario
miles y miles de inmigrantes que buscaban fortuna en el nuevo continente. Esto
provoco semejante caos en las oficinas del censo que las autoridades no tuvieron ms
remedio que convocar un concurso pblico para mejorar el sistema existente.
Precisamente un inmigrante alemn llamado Herman Hollerith, que era empleado del
censo en Nueva York, desarrollo una mquina perforadora que bautiz como "Punch
Card Tabulating Machine". Este invento fue un gran xito e hizo que Hollerith ganara el
concurso. Todo ello llev al alemn a crear su propia empresa que llam "Tabulating
Machine" y durante ms de 10 aos se dedic a fabricar mquinas perforadoras con
mucho xito.
Pero no fue hasta 1911 cuando Charles R. Flint gestion la fusin de esta empresa con
dos ms del sector (Computing Scale e International Time Recording). El resultado fue
Computing-Recording Company (C-T-R), una empresa de unos 1300 empleados que se
dedicaba a fabricar todo tipo de maquinaria: balanzas industriales, cronmetros y
hasta cortadores de carne o queso. A los pocos aos la economa de esta empresa
empezo a tambalearse. Entonces tomo sus riendas, Thomas J. Watson (para algunos el
autntico fundador de IBM). Watson consigui elevar C-T-R a la cumbre, adems de
extenderla por todo el mundo, y en 1924 le cambi el nombre a International Bussines
Machines (IBM). Dos aos despus, IBM irrumpe en el mercado espaol con grn exito.
(Innovador, 2011)
Desde los tiempos de Watson hasta nuestros das, IBM ha sido lider de su sector, y
parece ser que lo seguir siendo durante muchos aos.

1.3.

Evolucin de la Arquitectura AT

AO

HECHOS HISTORICOS

1944

Primer computador electromecnico

1952

Primer computador con tubos de vacio

1969

IBM est en la NASA (viaje a la luna)

Ing. talo Mogrovejo


Universidad del Azuay

Gua de Microcontroladores
Elementos Generales de Arquitectura de la IBM PC
1970

Concepto de base de datos relacional

1971

Disco Flexible

1981

Aparicin del primer PC comercial basado en el primer procesador

1983

Intel 8088
PC/XT con procesador 8086 que permite trabjar de 8 a 16 bits

1984

PC/AT con microprocesador 80286, trabaja a 16 bits

1987

IBM crea EISA(interfaz de perifricos y memorias) a 32 bits

1987

IBM + Microsoft crean OS/2 como sistema operativo

1990

Primera hoja de clculo LOTUS123

1992

Primer porttil IBM

1995

Primera hoja de calculo

Tabla 2 Hechos importantes en lnea de tiempo para los PC's (Mogrovejo, 2013)

1.4.

Inside the MainBoard

Definicin de Mainboard.
La Mainboard o tarjeta madre no es ms que una placa cuya funcin es conectar todos
los dispositivos tanto externos como internos, que necesite un computador. A
continuacin vemos algunos de los componentes que utiliza la Mainboard:

Ing. talo Mogrovejo


Universidad del Azuay

Gua de Microcontroladores
Elementos Generales de Arquitectura de la IBM PC

Figura 3 Mainboard (Rojas)

1.5.

Discusin sobre Partes Componentes

1.5.1.

Procesadores (Microcontroladores)

Qu es un Microprocesador?
Es un conjunto de dispositivos electrnicos que interactan entre s para realizar una
tarea determinada.
Microcontroladores:
Los microcontroladores son computadoras en un solo chip que poseen una Unidad
Central de Procesamiento (CPU, Central processing unit), memoria de programa y de
datos, puertos de entrada/salida (E/S) de serie y paralelo, temporizadores e
interrupciones internas y externas. Los microcontroladores son dispositivos electrnicos
inteligentes que se emplean para aplicaciones de control y monitoreo. Actualmente, los
microcontroladores

se

usan

en

muchos

equipos

comerciales

industriales.

Aproximadamente, el 40% de las aplicaciones de los microcontroladores son para la

Ing. talo Mogrovejo


Universidad del Azuay

Gua de Microcontroladores
Elementos Generales de Arquitectura de la IBM PC
automatizacin de oficinas, como por ejemplo, los ordenadores personales, las
impresoras lser, las mquinas de facsmil y los telfonos inteligentes.

1.5.2.

Bus de Sistema

Tipos de Buses:
Simples: Uso de lneas separadas, direcciones y datos.
Multiplexado: Uso de la misma lnea para transmitir direcciones y datos.

1.5.3.

Chipset

Definicin de un chipset
Un chipset es el conjunto de circuitos integrados diseados con base a la arquitectura
de un procesador (en algunos casos, diseados como parte integral de esa
arquitectura), permitiendo que ese tipo de procesadores funcionen en una placa base.
Sirven de puente de comunicacin con el resto de componentes de la placa, como son
la memoria, las tarjetas de expansin, los puertos USB, ratn, teclado, etc.
Las placas base modernas suelen incluir dos integrados, denominados puente norte y
puente sur.
Puente norte: Se conecta con el procesador y con la memoria. Controla las
funciones de acceso hacia y entre el microprocesador, la memoria RAM, el puerto
grfico AGP o el PCI-Express de grficos, y las comunicaciones con el puente sur.
Puente sur: Tiene comunicacin con todos los perifricos como mouse,
teclado, anteriormente el puerto paralelo actualmente ya no viene en las maquinas
actuales.
Funcionamiento:
Chipset 875 de Intel, usado con procesador Pentium 4 en encapsulado de pines.
El Chipset es el que hace posible que la placa base funcione como eje del sistema,
dando soporte a varios componentes e interconectndolos de forma que se
comuniquen entre ellos haciendo uso de diversos buses. Es uno de los pocos elementos
que tiene conexin directa con el procesador, gestiona la mayor parte de la
informacin que entra y sale por el bus principal del procesador, del sistema de vdeo y
muchas veces de la memoria RAM. (compPC, 2014)

Ing. talo Mogrovejo


Universidad del Azuay

Gua de Microcontroladores
Elementos Generales de Arquitectura de la IBM PC
En la actualidad los principales fabricantes de chipsets son AMD, ATI Technologies
(comprada en 2006 por AMD), Intel, NVIDIA, Silicon Integrated Systems y VIA
Technologies.

1.5.4.

Memorias

Memoria de Programa:
ROM: equivale a Read Only Memory (memoria de slo lectura). Este tipo de memoria
almacena el programa del microcontrolador y los datos que son constantes. Las
memorias ROM se programan durante el proceso de fabricacin por lo que no se puede
alterar su contenido. Las memorias ROM son tiles, solamente, si se ha desarrollado
una versin final del programa y se desean fabricar varios miles de copias de estas.
PROM: Las memorias PROM o ROM programables son bsicamente iguales a las
memorias ROM, pero presentan la particularidad de que la primera y nica grabacin
posible no se realiza durante el proceso de fabricacin necesariamente, por lo que no
se precisa el desarrollo de mscaras especiales para cada contenido determinado de la
memoria (como ocurra en la memoria ROM clsica), reduciendo considerablemente los
gastos del proceso.
EPROM: significa Erasable Programmable Read Only Memory (Memoria de slo lectura
programable y borrable). Esta memoria es muy similar a la memoria ROM, pero la
EPROM puede programarse con un dispositivo programador adecuado. Las memorias
EPROM tienen una pequea ventana de vidrio transparente colocada encima del chip
para que sus datos puedan borrarse al aplicar luz ultravioleta (UV). Estas memorias se
borran y se reprograman hasta que el usuario quede satisfecho con el programa final.
EEPROM: significa Electrically Erasable Programmable Read Only Memory (memoria
de slo lectura, programable y borrable elctricamente). Se trata de una memoria no
voltil por lo que se puede borrar y programar bajo el control del programa. Las
EEPROMs se usan para guardar informacin de configuracin, valores mximos y
mnimos, datos de identificacin, etc. Las memorias EEPROM son, normalmente, muy
lentas.
RMM: Memoria principalmente de lectura.
EAPROM: Elctricamente alterable programable Read-Only tipo PROM cuyo contenido
puede ser alterado.
Memoria de Datos:

Ing. talo Mogrovejo


Universidad del Azuay

Gua de Microcontroladores
Elementos Generales de Arquitectura de la IBM PC
RAM: significa Random Access Memory (memoria de acceso aleatorio). Esta memoria
es de propsito general y normalmente se usa para almacenar los datos usados por los
programas. La memoria RAM es voltil, es decir, sus datos se pierden al desconectar la
alimentacin. La mayora de los microcontroladores poseen una cierta cantidad de
memoria RAM interna.
NRAM: Considerada una memoria RAM no voltil, es decir con el cambio de energa
esta no pierde sus datos.
SRAM: memoria RAM esttica, estas memorias tienen una celda de almacenamiento
bsica constituida por un biestable. Su principal caracterstica son sus pequeos
tiempos de acceso, siendo muy utilizadas en aquellas aplicaciones que precisen de
esta peculiaridad; sin embargo, no suelen ofrecer grandes capacidades, debido a su
limitada capacidad de integracin y al elevado precio que suelen presentar.
DRAM: memoria RAM dinmica, estas memorias presentan una celda elemental de
almacenamiento basada en un condensador. Esta sencillez implica una gran facilidad
de integracin, por lo que es posible alcanzar altos niveles de integracin, con unos
tiempos de acceso bastante aceptables. El principal inconveniente de este diseo es
que el condensador bsico no almacena la informacin indefinidamente, por lo que es
necesario actualizarla o refrescarla peridicamente.

Ing. talo Mogrovejo


Universidad del Azuay

10

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades

2. Interrupciones en la IBM PC Generalidades

2.1.
Las

Tratamiento de interrupciones en la PC

interrupciones

son

seales

recibidas

por

el

procesador

de

un

sistema

microprocesado, indicando que se debe dejar por un momento el curso de ejecucin


actual para ejecutar cierto cdigo especificado en ese momento (subrutinas), una vez
terminada la ejecucin de la subrutina se retoma la ejecucin anterior.
Las interrupciones son provocadas mayoritariamente por hardware de Entrada/Salida.
En un principio para atenderlas se usaba pooling, que consista en que el procesador se
encargue de sondear los perifricos cada cierto tiempo establecido; este mtodo
result ser muy ineficiente puesto que el procesador desperdiciaba tiempo valioso en el
sondeo.
Las interrupciones fueron creadas para manejar perifricos de Entrada/Salida de
velocidades relativamente bajas; esto es porque las velocidades de los procesadores
son muy superiores a las que manejan los perifricos como el ratn, por ejemplo.
Cuando hablamos de latencia nos referimos al tiempo que tome en realizar una tarea,
en el caso de las interrupciones hablamos del tiempo que le tomar al procesador para
atender una interrupcin desde que esta fue provocada hasta que se finalice la
ejecucin del cdigo asociado a esta. A continuacin se puede ver la lnea de tiempos
de procesamiento normal y procesamiento de interrupciones:

Figura 4 Lnea de tiempos en la que se representa las latencias de interrupciones


durante el procesamiento normal (Mogrovejo, 2014)

El procesamiento y la atencin de las interrupciones se pueden representar de la


siguiente forma:

Ing. talo Mogrovejo


Universidad del Azuay

11

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades

Figura 5 Representacin del procesamiento del programa principal y el de una


interrupcin (Mogrovejo, 2014)

Tipos de Interrupciones
Enmascarables
(INT):
Las
interrupciones
enmascarables
pueden
ser
enmascaradas, es decir estas interrupciones pueden ser atendidas si es que se lo
permite. El permiso para la ejecucin de estas interrupciones puede ser gestionado por
software.
No Enmascarables (NMI): A diferencia de las interrupciones enmascarables, las no
enmascarables tienen la particularidad de que su ejecucin se dar en cualquier
circunstancia.
A continuacin una representacin de los tipos de interrupciones:

Figura 6 Representacin figurativa de los tipos de interrupciones (Mogrovejo, 2014)

Ejercicios en clase
Disear un circuito para atender 3 interrupciones, 2 enmascarables (Tx y Px) y 1 no
enmascarable (pulsante).

Ing. talo Mogrovejo


Universidad del Azuay

12

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades

Figura 7 Circuito para manejar 3 interrupciones

En circuitos como el presentado anteriormente, se pueden producir rebotes mecnicos.


Se deben usar mecanismos para evitarlos, por ejemplo un circuito con un 74LS14.

Figura 8 Comparacin de una salida ideal y de una con rebotes

Disear un circuito que permita con un switch o pulsante en estado ON la iluminacin


mxima de un LED, en estado OFF permitir iluminacin variable.

D2

BAT1

LED-RED

5V

R2
233

RV1
+88.8
mA

35K

Figura 9 Resolucin del Ejercicio 2

Ing. talo Mogrovejo


Universidad del Azuay

13

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades
Para el clculo de las resistencias usadas se tienen como datos iniciales el voltaje de la
fuente (Vcc = 5v) el voltaje con el que trabaja un LED (Vl = 1.5v) y su corriente mnima
y mxima (0.1mA y 10mA).
Partimos de:

I=

V
R

La resistencia para obtener menor luminosidad en el LED ser:

I min=

VccVl
R

R=

VccVl
I min

R=

5 v 1.5 v
=35000=35 K 50 K( valor comercial)
0.0001 A

La resistencia para obtener mayor luminosidad en el LED ser:

I max=

VccVl
R

R=

VccVl
I max

R=

5 v 1.5 v
=233.33 220 ( valor comercial )
0.015 A

Ing. talo Mogrovejo


Universidad del Azuay

14

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades

Disear un circuito con 2 pulsantes y 2 leds, la iluminacin de los LEDs debe ser
variable y complementaria entre s mismos. Un pulsante es asignado a cada LED para
poder visualizar su iluminacin.
Se toman los valores de resistencias para generar corriente mxima y mnima del
ejercicio anterior.

D2
+88.8
LED-RED

BAT1

mA

D1

5V

+88.8
LED-GREEN

mA

R2
233

RV1

R1

35k

233

Figura 10 Resolucin del Ejercicio 3

2.2.

Interrupciones por hardware en la Pc

Este tipo de interrupciones son producidas por los dispositivos hardware del sistema,
de igual manera las interrupciones producirn un abandono momentneo del
procesamiento normal del procesador para atender la interrupcin.
A continuacin un ejemplo para comprender una interrupcin de hardware.

Figura 11 Ejemplificacin de una Interrupcin de hardware (Mogrovejo, 2014)

Teniendo en cuenta el grfico en la Figura 6, ejemplificamos una interrupcin hardware,


asumiendo que el procesador se encuentra, en un principio, ejecutando su programa
principal (main).

Ing. talo Mogrovejo


Universidad del Azuay

15

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades
Un perifrico hardware (ratn, teclado, impresora, timer) realiza un pedido de
interrupcin por el canal NMI (Interrupcin no enmascarable) o por INTR (Interrupcin
enmascarable) al microprocesador.
El microprocesador atender a la interrupcin y acudir al Vector de Interrupciones,
donde se encuentran las direcciones de atencin para las interrupciones, para
averiguar la direccin asociada a dicha interrupcin. Por ejemplo ST1.
En el vector de interrupciones se ubica tambin el Vector de Reset, que es un
puntero predeterminado, donde el procesador debe comenzar tan pronto pueda
ejecutar instrucciones.
Conocida la direccin (ST1), esta indicar el cdigo asociado a la interrupcin.
Seguramente encontraremos en ST1 una interrupcin en lenguaje ensamblador como
go to AI1 que llevara a donde se encuentra el Cdigo de las Interrupciones.
Por ltimo en ST1 se encontrar una instruccin IRET o IRETD con la que se finalizar
la interrupcin. El procesador volver a su procesamiento normal.
Para atender interrupciones el procesador deber abandonar momentneamente su
procesamiento anterior, esto incluye el peligro de prdida de informacin para esto
har uso de la pila o Stack. El Stack es un espacio de memoria que est reservado
para resguardar el PC (Contador de Programa), registros importantes (acumulador, de
trabajo, etc) y ciertas variables de inters.
Los vectores de interrupcin son almacenados generalmente en los primeros 1024
bytes de la memoria de programa.

2.3.

Controladores de interrupcin 8259A

Combina mltiples entradas de interrupcin en una simple salida de interrupcin hacia


el microprocesador.
El 8259A fue incluido en el PC original en 1981 y mantenido por el IBM XT cuando se
introdujo en 1983. El IBM AT aadi un segundo 8259A.
Despus de un tiempo ya no fue incluido como un chip separado, sino que las mismas
funcionalidades eran realizadas por una parte del puente sur (SouthBridge) del Chipset
de la Placa Madre.

Ing. talo Mogrovejo


Universidad del Azuay

16

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades
Agrega 8 interrupciones con vector y propiedades codificadas al microprocesador. Se
puede ampliar sin ms circuitos adicionales para aceptar hasta 64 solicitudes de
interrupcin utilizando 1 8259A Maestro y 8 esclavos conectados en cascada.
Fue diseado para minimizar la sobrecarga y el software requerido en el manejo de la
prioridad de interrupciones multinivel.

Figura 12 Diagrama de Pines

Smbolo
VCC
GND

D7 - D0

Tipo
Entrada
Entrada
Entrada

Nombre
SUPPLY
GROUND
CHIP SELECT

Entrada

WRITE

Entrada

READ

Entrada/Salid
a

BIDEIRECTIONAL DATA BUS

Ing. talo Mogrovejo


Universidad del Azuay

17

Funcin
+5V
Tierra
En 0 permite que se
habilite la comunicacin en
Y entre el CPU y el 8259A.
En 0 permite que el CPU
escriba palabras de control
sobre el micro.
En 0 permite al micro
enviar el estado de los
diferentes registros o el
nivel de interrupcin a
travs bus de datos.
Control,
Estado,
Informacin del Vector de
Interrupciones
es
transferida por medio de
este bus.

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades
CAS0
CAS2

Entrada/Salid
a

CASCADE LINES

Entrada/Salid
a

SLAVE PROGRAM/ ENABLE


BUFFER

INT

Salida

INTERRUPT

IR0 IR7

Entrada

INTERRUPT REQUEST

Entrada

INTERRUPT
ACKNOWLEDGE

Entrada

AO ADDRESS LINE

Ao

Forman un bus privado


para
controlar
una
estructura mltiple 8259A.
Estos pines son salidas
para
un
Maestro
y
entradas para un Esclavo.
Es un PIN de doble
funcionalidad: En modo EN
puede ser usado como
salida para control de
Buffer. En el otro modo es
usado como entrada para
designar al micro como
Maestro (SP=1) o como
Esclavo (SP=0).
Salida conectada con la
terminal
INTR
del
microprocesador.
Esta
salida se pone en 1
siempre que una solicitud
de interrupcin vlida sea
confirmada.
Entradas de Solicitud de
Interrupcin: Se emplean
para
solicitar
una
interrupcin que puede ser
ejecutada
por
una
transicin de 0 a 1 en la
entrada o simplemente por
un uno en la entrada.
La CPU genera pulsos de
reconocimiento que harn
que
el
8259A
libere
informacin del vector de
interrupcin sobre el bus
de datos.
Acta junto con el Y . Es
usado para descifrar varios
comandos que el CPU
escribe y estados que el
CPU desea leer.

Tabla 3 Descripcin de pines del 8259A

MODO CASCADA

Ing. talo Mogrovejo


Universidad del Azuay

18

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades

Figura 13 Modela Cascada 8259A, (Microprocesadores Intel, Barry B. Brey)

El 8259A puede fcilmente ser conectado en un sistema de un Maestro con 8 Esclavos


para manejar hasta 64 niveles de prioridad.
El Maestro controla a los esclavos a travs de las 3 lneas de buses (Direccin, Control y
Datos) en cascada.
En la configuracin en cascada, las salidas de interrupcin de los esclavos estn
conectadas a las entradas de solicitud de interrupcin del Maestro.

2.4.

Evolucin en el manejo de interrupciones

PnP, Plug and Play (Enchufar y usar): Surge en 1993, como solucin a los
inconvenientes que se presentaban a la hora de hacer modificaciones a la CPU, ya que
esta supona cambios demasiado drsticos en la arquitectura del PC, puesto que se
deba

desmontar

los

jumpers

especiales

para

cada

dispositivo

configurar

manualmente el componente lgico.


PnP se basa en distintas premisas. De la cuales la principal, es que todos los
dispositivos fueran configurados por software mediante un programa especial de SetUp. Adems tanto hardware como software que son controladores de los dispositivos

Ing. talo Mogrovejo


Universidad del Azuay

19

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades
cargados por el sistema, deberan ser reconfigurables dinmicamente para poder
adaptarse a cambios de configuracin.
(Alvarez, 2012)
Compartir IRQs (Interrupt ReQuest / Solicitud de interrupcin): La tecnologa
PnP simplific mucho algunas tareas, pero aun as existan muchos inconvenientes, ya
que no resolva el problema de fondo, que era la escasez de ciertos recursos,
principalmente

lneas de interrupcin. Por lo que al desarrollar la interfaz PCI, Intel

incluy la posibilidad de que estos dispositivos pudieran compartir la misma IRQ.


(Alvarez, 2012)
DESCRIPTORES
Definicin:
Estructura de ocho bytes que le indica al procesador el tamao y ubicacin de un
segmento, as como informacin de control y estado. Los descriptores son creados
por compiladores, programas cargadores, o el sistema operativo, pero nunca por los
programas de aplicacin. Si bien el tamao de esta estructura es siempre de ocho
bytes, el formato depende de la tabla de descriptores.
Funcionamiento:
Los descriptores contienen atributos sobre una regin de memoria (es decir, un
segmento). Estos atributos incluyen la direccin base de 24 bits, la longitud de 16 bits,
el nivel de proteccin (de 0 a 3), permisos de lectura, escritura o ejecucin y el tipo de
segmento.
Registros de Segmentacin, estos registros no apuntan directamente a memoria como
lo hacan en el 8086. En su lugar, apuntan a tablas especiales llamadas tablas de
descriptores, algunas de las cuales tiene que ver con el usuario y otras con el sistema
operativo.
El usuario nunca sabe en qu posicin real de memoria est ejecutando o dnde se
ubican los datos y siempre se mantiene dentro de ciertas fronteras.
Como proteccin adicional nunca se permite que el usuario escriba en el segmento de
cdigo, lo que en modo real si es permitido.
PL (Privilege Level): Nivel 0 es el ms privilegiado y el 3 el menos privilegiado.

Ing. talo Mogrovejo


Universidad del Azuay

20

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades
DPL (Descriptor Privilege Level): Este es el nivel menos privilegiado para el cual
una tarea puede acceder a ese descriptor. El nivel de privilegio del descriptor se
determina mediante los bits 5 y 6 en el byte de derechos de acceso del descriptor.
DERECHOS DE ACCESO: Permite slo lectura o slo escritura.
SELECTOR: Dos bytes que apunta a un descriptor:
ndice: Selecciona uno de los 8192 descriptores.
TI: Bit indicado de tabla, indica la tabla de descriptores a utilizar, si vale cero se utiliza
la tabla de descriptores globales y si vale 1 utiliza la de locales.
TABLA DE DESCRIPTORES
Son arrays de longitud variable que pueden mantener hasta 8192 descriptores.
TIPOS DE TABLAS:
TABLA DE DESCRIPTORES GLOBALES (GDT)
Contiene descriptores comunes que estn disponibles para todas las tareas del
sistema. Contiene los segmentos de cdigo y datos usados por el sistema operativo.
TABLA DE DESCRIPTORES LOCALES (LDT)
Contienen descriptores asociados con una terea particular. Solo pueden contener
descriptores de cdigo, datos, pila, compuertas de tarea y compuertas de llamada.
TABLA DE DESCRIPTORES DE INTERRUPCION (IDT)
Contiene los descriptores que apunta a la ubicacin de hasta 256 rutinas de servicio de
interrupcin. Cada interrupcin utilizada por el sistema debe tener una entrada propia
en esta tabla. Las entradas de esta tabla se referencian mediante instrucciones INT,
vectores de interrupcin e interrupciones internas del microprocesador.
JERARQUA DE PROTECCION O DE PRIVILEGIO
PL = 0: Kernel.
PL = 1: Servicios del sistema (parte del SO).
PL = 2: Extensiones del sistema operativo.
PL = 3: Aplicaciones.

Ing. talo Mogrovejo


Universidad del Azuay

21

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades
FUNCIONAMIENTO: MODO REAL Y MODO PROTEGIDO
Modo Real:

uP

MP
(Memoria del
Programa)

100H

Figura 14 Diagrama de modo real, Clase micro controladores. Ing. talo Mogrovejo

Modo Protegido:

uP

Descriptores

Ing. talo Mogrovejo


Universidad del Azuay

100H
22

M.P.
(Memoria del
Programa)

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades
800H
100H (No se toca)

Figura 15 Diagrama Modo protegido, Clase de Microcontroladores. Ing. talo


Mogrovejo

2.5.

Registros

transferencias

para

el

manejo

de

interrupciones
Existen 3 registros de 1 byte que en conjunto gobiernan las decisiones del dispositivo:
Registro de Solicitud de Interrupcin: IRR (Interrupt Request Register), controla el
estado de una lnea IRQ. Cuando se detecta una peticin en una de estas lneas, el bit
correspondiente del IRR es puesto a 1.
Registro de Interrupciones Activas: ISR (In Service Register), cada bit indica si ya
existe una interrupcin activada en la lnea correspondiente.
Registro de Mscara de Interrupciones: IMR (Interrupt Mask Register), Cada bit
corresponde a una lnea IRQ e indica si est permitida una interrupcin de ese nivel en
ese momento.

Interrupciones ms comunes.
Tipo

de

Descripcin

Interrupcin
Tipo 0
Tipo 2
Tipo 3

Error de divisin, divisin por cero.


Modo paso a paso o de trampa.
Interrupcin no enmascarable,

Tipo
Tipo
Tipo
Tipo

obligatoriamente
Depuracin de programas, puntos de ruptura.
INTO, overflow.
No hay coprocesador.
Doble falta, se producen 2 o ms interrupciones.

4
5
7
8

Ing. talo Mogrovejo


Universidad del Azuay

23

se

genera

interrupcin

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades
Tipo
Tipo
Tipo
Tipo

9
12
13
16

Sobreflujo del coprocesador.


Desborde del segmento de pila.
Proteccin general, violacin de modo protegido.
Error de coprocesador.
Tabla 4 Interrupciones ms Comunes (Mogrovejo, 2014)

Instrucciones para interrupcin: BOUND, INTO, INT, INT3 e IRET


Entre las cinco instrucciones de interrupcin disponibles para el microprocesador, INT e
INT3, son muy semejantes, BOUNT e INTO son condiciones e IRET es una instruccin
especial para el retorno de interrupcin.
BOUNT
Tiene dos operandos, compara un registro con dos palabras de datos de la memoria.
Por ejemplo si se ejecuta la instruccin BOUND AX, DATA se compara AX con

el

contenido de DATA y de DATA+1, tambin con DATA+2, DATA+3.


Si AX es menor que el contenido de DATA y de DATA+1 ocurre una interrupcin de tipo
5.
Si AX es mayor que el contenido de DATA+2 y de DATA+3 ocurre una interrupcin de
tipo 5.
Si AX est dentro de los lmites de estas dos palabras de la memoria, no ocurre
interrupcin.
INTO
Compara la bandera de sobreflujo (OF). Si OF es = 1, la instruccin INTO llama al
procedimiento cuya direccin esta almacenada en el vector interrupcin tipo 4. Si OF =
0 entonces la instruccin INTO efecta una NOP (No operacin, usado para
sincronizacin) y la siguiente instruccin en secuencia, del programa.
INT
Llama al procedimiento de servicio de interrupcin que comienza en la direccin
representada en el vector numero n, por ejemplo una INT 80H o una INT 128 llama al
procedimiento de servicio de interrupciones cuya direccin esta almacenada en el
vector 80H. Para determinar la direccin del vector se multiplica en nmero del vector
(n) por 4. Con ello se tiene la direccin inicial del vector de interrupcin de 4 bytes de
longitud.

Ing. talo Mogrovejo


Universidad del Azuay

24

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades
Cada instruccin INT se almacena en 2 bytes de memoria, el cual en 1er byte contiene
el cdigo y 2do el nmero de interrupcin.
INT3
Esta es de 1 byte la cual se utiliza como interrupcin de punto de ruptura, porque es
fcil intercalar una instruccin de un byte en un programa. Los puntos de ruptura se
utilizan a menudo para depurar programas.
IRET
Es una instruccin especial para retorno, y se utiliza para retornar de las interrupciones
de hardware y software, es como una instruccin RET normal lejana, porque recupera
la direccin de retorno de la pila, IRET extrae 6 bytes de la pila, 2 para ip (Puntero de
Interrupcin), 2 para CS (control de software), y 2 para las banderas.
Funcionamiento de una interrupcin
Cuando el microprocesador concluye de ejecutar la instruccin en curso, entonces para
determinar si una interrupcin esta activa comprueba;
Alguna instruccin en ejecucin
Trampa
NMI
Sobre flujo de segmento del coprocesador
INTR
La instruccin INT en el orden citado.
Si esta presenta una o ms de estas condiciones de interrupcin ocurre lo siguiente:
Salva el contenido del registro de banderas en la pila.
Se desactiva las banderas de interrupcin (IF) y de trampa (TF). Esto deshabilita la
terminal INTR y tambin la caracterstica de trampa.
Se salva el contenido del registro (CS) de segmento de cdigo hacia la pila.
Se salva el contenido del apuntador de instruccin (IP) en la pila.

Ing. talo Mogrovejo


Universidad del Azuay

25

Gua de Microcontroladores
Interrupciones en la IBM PC Generalidades
Se recupera el contenido del vector de la interrupcin y se coloca en IP y CS, de modo
que la siguiente instruccin se ejecute en el procedimiento de servicio de la
interrupcin, direccionado por el vector.
Siempre que acepta una interrupcin, el microprocesador salva en la pila el contenido
del registro de banderas, de CS e IP, desactiva IF y TF y brinca al procedimiento
direccionado por el vector de la interrupcin
Bits de Bandera de Interrupcin
La Interrupcin (IF) y la bandera de trampa TF se borran una vez que se salvan en la
pila el contenido del registro de bandera durante una interrupcin. Cuando se activa el
bit IF permite que la terminal INTR ocasione una interrupcin; cuando se desactiva el
bit IF impide que la terminal INTR produzca una interrupcin.
Las instrucciones STI (permite la interrupciones del procesador) y CLI (inhibe las
interrupciones del procesador) activan y desactivan respectivamente interrupciones.

Ing. talo Mogrovejo


Universidad del Azuay

26

Gua de Microcontroladores
Puerto Paralelo

3. Puerto Paralelo

3.1.

Tipos de Puertos

Definicin
Un puerto paralelo es una interfaz que posibilita el intercambio de informacin digital.
Dichos puertos pueden ser fsicos (con una entrada en el hardware de la computadora
para permitir la conexin de un perifrico) o virtuales (puertos lgicos gestionados a
travs del software).
En el marco de dicho intercambio de informacin, habr bits que recorrern diferentes
caminos, en ambos sentidos.

IBM
SPP

1981
150 kb/s

1987
PS2

150 kb/s
Bidireccional

IBM
EPP

1994
2 MB/s
Bidireccional

Gua de Microcontroladores
Puerto Paralelo
Intel
ESP

1994
2 MB/s
Bidireccional
Soporta DMA

Todos fueron diseados a 8 bits


Puesto que se utiliza el cdigo ascii
Standard 7 bits
Extendidos 8 bits
Comunicacin en paralelo
Mximo dos metros
Ejemplo:
VA = Vo iR
VA = 5 2.5
VA 2.5

DATOS

Tensin de nivel alto: 3,3 o 5 V.

Gua de Microcontroladores
Puerto Paralelo

Tensin de nivel bajo: 0 V.


Intensidad de salida mxima: 2,6 mA.
Intensidad de entrada mxima: 24 mA

Figura 16 Cable puerto Paralelo

3.2.

Pines y Registros

Figura 17 Composicin del Puerto Paralelo

2-9 Datos Puerto de salida / escritura


10,11,12,13, 15 Estado Puerto de entrada / lectura
1,14,16,17 Control Puertos direccionales/escribir-leer
18 25 Tierra.
Registros

Gua de Microcontroladores
Puerto Paralelo
0 x 378 Datos / Salida
0 x 379 Estado / Entrada.
0x 37 Control / E/S.
Ox378
D7
9

D6
8
N

D5
7
N

D4
6
N

D3
5
N

D2
4
N

D1
3
N

D0
2
N

BIT
PIN
NIVEL

BIT
PIN
NIVEL

BIT
PIN
NIVEL

Tabla 5 Registro 0x378 del LPT

0X379
S7
11

S6
10
I

S5
12
N

S4
13
N

S3
15
N

S2

S1
N

S0
N

Tabla 6 Registro 0x379 del LPT

0X37A
C7
-

C6
N

C5
N

C4
N

C3
17
N

C2
16
I

C1
14
N

C0
1
I

Tabla 7 Registro 0x379A del LPT

Leyenda

N = Normal

I = Invertido

Pin

E/S

Polaridad activa

Descripcin

Salida

Strobe

2~9

Salida

Lneas de datos

10

Entrada

Lnea acknowledge

11

Entrada

Lnea busy

12

Entrada

Lnea Falta de papel


(

13

Entrada

Lnea Select

14

Salida

Lnea Autofeed

15

Entrada

Lnea Error

16

Salida

Lnea Init

17

Salida

Lnea Select input

18 ~ 25

Tierra elctrica

Gua de Microcontroladores
Puerto Paralelo

Tabla 8 Pines del Puerto Paralelo

Gua de Microcontroladores
Puerto Serial

4. Puerto Serial

4.1.

Conectores y pines

El puerto serial se encuentra conformado por 9 pines de los cuales solo 3 de ellos son
empleados para una comunicacin, uno para l envi de informacin, otro para la
recepcin de informacin y un tercero para las referencias de voltajes o tierra. Sus
restantes 5 pines son utilizados para control de datos, peticiones de informacin, etc.
El conector DB-9 es el utilizado para este tipo de comunicacin serial, se lo denomino
DB-9 por poseer 9 pines

Figura 18 Conector DB9

Gua de Microcontroladores
Puerto Serial

Pines a Detalle
Sus nueve pines y sus funciones pertinentes en el caso del conectado macho se detalla
el conector macho puesto que es el implementado en los equipos de computacin para
la comunicacin serial, tener en cuenta que los dispositivos a conectar tendrn que ser
conector hembra en equipos de computacin por una poca el puerto serial fue
utilizado para la conexin del mouse, que posteriormente fue sustituido por el puerto
PS2.

Pin
Pin 1

Funcin
Deteccon de seal recibida en la lnea
(Data Carrier Detect)

Pin 2

Received Data

Pin 3

Transmit Data

Pin 4

Data Terminal Ready

Pin 5

Signal Ground

Figura
19
Pines
del conector DB9
Pin
6
Data
Set Ready
Pin 7

Request To Send

Pin 8

Clear to Send

Pin 9

Ring Indicator

Voltajes Utilizados
En RS232 se emplea niveles lgicos incompatibles con TTL, esto deriva en la necesidad
de la implementacin de un convertidor de niveles lgicos. Se suele utilizar con mayor
frecuencia MAX232 o MAX233 que son los manejadores de lnea ms utilizados sus
caractersticas son sus dos canales, utilizan una sola fuente de alimentacin de 5v, y
en el MAX233 no se requiere de capacitores externos.

Gua de Microcontroladores
Puerto Serial

4.2.

Protocolo de comunicacin

Para el envo de informacin es necesario que tanto el emisor como el receptor estn
configurados para trabajar a la misma tasa de transferencia, ya que la comunicacin es
asncrona y la seal de reloj no es enviada con la informacin.
Para lograr la sincronizacin el puerto utiliza un protocolo el cual enva un bit de
partida, el cual no es configurable. Lo que s es configurable es el bit de parada, la
paridad y el nmero de bits.
La configuracin ms utilizada es la 8N1 (8 bits de informacin, sin paridad y 1 bit de
parada).
En las comunicaciones asncronas el estado de reposo (cuando no se transmite nada)
se identifica con un "1" (marca). Cuando se recibe un bit de inicio, que es un "0"
(espacio), el receptor toma nota que va a comenzar a recibir un dato.
Los parmetros que caracterizan estas comunicaciones son: Velocidad; paridad; bits de
datos y bits de parada. En la literatura sobre el tema es frecuente expresar estos datos
en forma resumida. Por ejemplo: 1200 8 N 1 para indicar una transmisin de 1200
baudios con 8 bits de datos sin paridad y un bit de Stop.
Velocidad de transmisin ("Connection speed") es la cantidad de datos transmitidos en
unidad de tiempo.
Se expresa en bits por segundo (bps). En las transmisiones serie a travs de lneas
telefnicas, en las que se emplean mdems era frecuente utilizar como medida de
velocidad el Baudio ("Baud rate").Baudio se define como el nmero de veces que
cambia la portadora en un segundo. La velocidad que puede emplearse depende en
gran medida de la calidad del medio de transmisin (calidad de la lnea), que si (como
es frecuente) se trata de lneas telefnicas, depende a su vez de la distancia.
Los primeros dispositivos serie operaban a velocidades muy bajas, del orden de 110 a
1200 baudios.
Las comunicaciones telefnicas serie actuales estn muy cerca del mximo terico que
pueden soportar los pares de cobre utilizados en la telefona estndar.

Gua de Microcontroladores
Puerto Serial

Tabla 9 Conexin para transmisin entre 2 equipos

Gua de Microcontroladores
Puerto USB

5. Puerto USB

5.1.

Especificaciones generales

USB significa Universal Serial Bus") o su traduccin al espaol es lnea serial universal
de transporte de datos. Es bsicamente un conector rectangular de 4 terminales que
permite la transmisin de datos entre una gran gama de dispositivos externos
(perifricos) con la computadora; por ello es considerado puerto.
Una de las principales caractersticas de estos es la conexin muy sencilla, ya que
utiliza un nico conector para conectar a travs de un bus serie todos los dispositivos.
En l se definen todos los conectores y los cables, en este es posible conectar hasta
127 dispositivos y protocolos que permiten deteccin automtica de los dispositivos
conectados, adems todas sus versiones son PLUG and PLAY(Es decir se conecta el
dispositivo y el Sistema Operativo lo detecta automticamente al instante).
Las especificaciones del USB proporciona una serie de caractersticas que pueden ser
divididas en categoras estas caractersticas van desde la serie 1.0 hasta la 3.0.

5.2.

Historia

La creacin del USB se remonta al el ao 1994, cuando se public un borrador de un


dispositivo de comunicacin que no necesite el reinicio del sistema para su correcta
deteccin ya que se buscaba la unificacin de los conectores de perifricos creando
unos ms sencillo y de mayores presentaciones, este dispositivo se llam USB.
(Wikipedia)
El estndar USB evolucion a travs de varias versiones antes de su lanzamiento oficial
en 1996:
USB 0.7: Lanzado en noviembre de 1994.
USB 0.8: Lanzado en diciembre de 1994.
USB 0.9: Lanzado en abril de 1995.
USB 0.99: Lanzado en agosto de 1995.
En 1996, cuando un grupo de siete empresas entre ellas Intel, IBM y Microsoft
desarrollo un formato para mejorar la capacidad de interconexin de dispositivos
perifricos y tecnolgicos de distinto mbito, en esta primera versin del puerto USB se
la llamo 1.0, la versin antes dicha no tuvo mucha aceptacin hasta que vino la

Gua de Microcontroladores
Puerto USB
aparicin del USB 1.1. El primer ordenador que incluyo un puerto USB estndar
(USB1.0) fue una iMac de Apple y fue presentada en 1998, esta iMAc usaba el puerto
para la conexin de su ratn y teclado, al contrario en relacin con Pcs de Microsoft
recin lo incorporaban en el sistema operativo OSR2.1 que corresponde a Windows 95,
en servidores se incursiono en desde el Windows server 2000, de esta manera nacin
el USB (Universal Serial Bus) con algunas velocidades en sus diferentes versiones:
USB 1.0 con velocidad de 12Mbpg.
Su evolucin fue
USB 1.1 con velocidad de 12Mbps
USB 2.0 de alta velocidad hasta 480Mbps lanzado en el 2009.
USB 2.0 On the Go con similar caracterstica que el 2.0.
USB 3.0 con velocidad de 4,8 Gbps lanzado en el 2012.

5.3.

Evolucin de los estndares USB

USB 1.0
Este Puerto fue lanzado en Enero de 1996 por (Compaq, Digital Equipment Corp., IBM,
Intel Corp., Microsoft Corp., NEC y Northern Telecom). Esta es la primera versin oficial
que sali al mercado.

Figura 20 UBS1.1

Caractersticas relevantes velocidad baja:


Velocidad de 12Mbps.
Aplicaciones: Ratn y Teclado, perifricos de entretenimiento.
Bajo Coste
DES (Conexin en Caliente).
Mltiples Perifricos.
Caractersticas relevantes velocidad baja:

Gua de Microcontroladores
Puerto USB
Conexiones de: Telfonos Mviles, Audio, Video Comprimido.
Velocidad de 500Kbps a 10Mbps.
Aplicaciones: Audio.
Garantiza el ancho de banda.
Esta versin no es posible enviar y recibir datos a la vez.
USB 1.1.
Esta versin sali en Septiembre de 1998 era una versin dedicada ms para
desarrolladores, las caractersticas de esta son similares a la de su antecesor.

Figura 1 USB1.1

Esta versin no es posible enviar y recibir datos a la vez.


USB 2.0
Esta versin sali al mercado a mediados del 2000 esta fue creada por 3 marcas que se
unieron en el desarrollo (Hewlett Packard, Philips y Lucent).

Figura 21 USB 2.0

Una de las principales novedades fue la velocidad que aumento en gran medida y la
incursin de un dispositivo a velocidad media como se describir en lo siguiente:
Caractersticas relevantes velocidad baja:
Velocidad de 10 a 100 Kbps.
Aplicaciones: Ratn y Teclado, perifricos de entretenimiento.
Bajo Coste
DES (Conexin en Caliente).

Gua de Microcontroladores
Puerto USB
Mltiples Perifricos.
Caractersticas relevantes velocidad media:
Conexiones de: Telfonos Mviles, Audio, Video Comprimido.
Velocidad de 500Kbps a 10Mbps.
Aplicaciones: Audio.
Garantiza el ancho de banda.
Caractersticas relevantes velocidad alta:
Conexiones de: Audio, Video Comprimido, Unidades de almacenamiento (Discos duros
y grabadoras).
Velocidad de 25 a 500Mbps.
Gran ancho de banda.
Esta versin no es posible enviar y recibir datos a la vez.

USB 2.0 OTG


USB OTG USB on the go es una variacin de la especificacin anterior (USB 2.0) es
decir que le permite a el puerto actuar como servidor sin la necesidad de una pc. Esto
le permite comunicarse con cualquier dispositivo sin la necesidad de una pc, esto
conlleva a que los dispositivos se conecten entre si directamente (impresora con
memoria USB).

Figura 22 USB 2.0 On The Go

Caractersticas relevantes aadidas:


Los dispositivos que eran perifricos ahora pueden ser host.
Se crearon los mini conectores.

Gua de Microcontroladores
Puerto USB
El perifrico puede ser host o perifrico segn la conveniencia.
Esta versin no es posible enviar y recibir datos a la vez.

Estas caractersticas nos permiten por ejemplo, una cmara y una impresora que son
perifricos se pueden conectar la una a la otra sin necesidad de una pc de por medio,
es decir la impresora se vuelve el host que alberga a la cmara para imprimir las fotos
que se encuentran en ella, y as tenemos muchos ejemplos ms como los celulares los
reproductores mp3 con los equipos de audio, radios de automviles etc.

Figura 23 USB 2.0 On The Go (Diferentes Tipos de Conexiones)

USB 3.0
El USB 3.0 permite grandes mejoras en su rendimiento, al contrario de su antecesor el
USB anteriores contbamos con cuatro contactos, un par para recibir datos uno de
corriente y otra de tierra, en el USB 3.0 se aaden cuatro contactos ms. Es decir dos
de ellos se utilizan para enviar y los otros dos para la recepcin de archivos, con esto
nos permite que el trafico sea bidireccional al mismo tiempo cosa que los anteriores no
los permita. (InformaticaModerna, 2014)
Caractersticas ms relevantes:
Velocidad 10 veces ms rpida (600Mbps).
Compactible con versiones anteriores.
Velocidad mxima de hasta 4,8Gbps.

Gua de Microcontroladores
Puerto USB
Reduce el consumo energtico.
Color Azul para diferenciarlo.
Esta tecnologa permite o es capaz de enviar y recibir datos simultneamente.

Figura 24 USB 3.0 Super Speed

5.3.1.

USB 2.0

Era necesaria una mejora por parte de los fabricantes para que USB fuera ms
universal de lo que ya era, y sobre todo para ganar en velocidad y variedad de
dispositivos soportados. As, en el ao 2000, nace la tecnologa USB 2.0 creada por
Hewlett Packard, Philips y Lucent.
La evolucin de esta tecnologa es totalmente compatible con versiones anteriores.
Caractersticas:
Facilidad de Uso para los usuarios: Tiene un modelo de cableado y conectores muy
simples. Los usuarios no tienen que preocuparse por los detalles elctricos y la
deteccin

configuracin

de

los

perifricos

la

realiza

el

propio

puerto

automticamente.
Carga: Tiene la capacidad de cargar y transmitir energa desde el cable USB hasta un
dispositivo. Esta fuente de energa tiene un mximo de 5 voltios, por lo que los puertos
2.0 no sirven para dispositivos que requieran un voltaje ms alto. Sin embargo,
permiten que los dispositivos tengan su propia fuente de energa. El cable para
dispositivos que reciben energa mediante el USB est diseado con un cable adicional
interno, que provee energa al voltaje.
Robustez: Permite insertar y expulsar los dispositivos de forma dinmica (percibida
por el usuario en tiempo real).
Velocidad: El cambio ms significativo entre el USB 1.1 y el 2.0 est relacionado con
la velocidad de transferencia de datos, que permiti el desarrollo de aparatos que
necesitan transferencias ms veloces, como grabadoras de DVD y discos externos.

Gua de Microcontroladores
Puerto USB

Velocidad baja:

Velocidad de 10 a 100 Kbps.

Aplicaciones: Ratn y Teclado, perifricos de entretenimiento.

Bajo Coste

DES (Conexin en Caliente).

Mltiples Perifricos.

Velocidad media:

Conexiones de: Telfonos Mviles, Audio, Video Comprimido.

Velocidad de 500Kbps a 10Mbps.

Aplicaciones: Audio.

Garantiza el ancho de banda.

Velocidad alta:

Conexiones de: Audio, Video Comprimido, Unidades de almacenamiento (Discos


duros y grabadoras).

Velocidad de 25 a 500Mbps.

Gran ancho de banda.

Bajo Costo de Implementacin: Adecuado para desarrollo de sistemas con


perifricos, cables y conectores de bajo costo, para poder optimizar e integrar los
perifricos al host.
PLUG & PLAY: El dispositivo es detectado automticamente al conectarlo al equipo y
el sistema operativo instala el driver adecuado. No es necesario apagar, ni siquiera
reiniciar, el equipo para conectar o desconectar los dispositivos, cargndose y
descargndose automticamente de memoria el driver correspondiente. (Victoria, y
otros, 2001)
HOT PLUGGING (Conectar en Caliente): No se necesita apagar ni reiniciar el equipo
para instalar o desinstalar un dispositivo USB. Esto permite conservar recursos de
memoria, ya que cada dispositivo conectado requiere un driver residente, que de este
modo solo se carga cuando se necesita y se descarga al dejar de necesitarlo.

Gua de Microcontroladores
Puerto USB
Arquitectura (dividido en 3 partes)
Interconexin USB.
Es la forma en la que los dispositivos USB estn conectados con el host
(comunicacin).
Utiliza la topologa de bus Estrella Estratificada Piramidalmente, en donde un
hub est en el centro de cada estrella y cada segmento de cable es una
conexin punto a punto: Host / hub (o funcin) o Hub / hub (o funcin).

Dispositivos USB.
Pueden ser de 2 tipos:

Hubs: Proporciona puntos de acoplamiento adicionales.

Funciones: Perifricos que proporcionan prestaciones al sistema como


por ejemplo: joystick, parlantes, teclado, ratn, etc.

Host USB.
En todo sistema USB siempre existe un solo Host, en el cual puede estar
directamente conectado un dispositivo USB o un hub raz, en el segundo caso es
para que as el sistema host pueda disponer de ms puntos de acoplamiento
para distintos perifricos.

Gua de Microcontroladores
Puerto USB

5.3.2.

USB 2.X vs Firewire

Firewire es el nombre que Apple asign a la implementacin de la interfaz IEEE-1394.


Esta es una interfaz estndar de bus serial para comunicaciones de alta velocidad y
trasferencia de datos iscrona en tiempo real, diseada especialmente para
dispositivos multimedia.
Generalmente FireWire es ms rpido y flexible que el USB pero es mucho ms costoso
de implementar.
Caractersticas

Firewire

USB (2.0)

Velocidad de Transferencia datos.

200Mbps

12Mbps

Dispositivos Compactibles (Mximo).

62

128

Cambio en Caliente (Cambiar dispositivos sin


S
necesidad de reiniciar).

Anchos de Banda.

400
Mbps
800
Ninguno
Mbps
1 Gbps

Implementacin en Mac.

No

Conexin de perifricos interna.

No

-Videocmaras DV.

-Teclados.

-Cmaras digitales
-Ratones.
de alta resolucin.
-HDTV (TV de alta
-Monitores.
definicin).
Tipos de dispositivos conectables.

-Cajas
conexiones.

de

-Cmaras digitales
de baja resolucin.

-Discos duros.
-Unidades
ROM.

-Joysticks.

DVD- -Unidades CD-ROM


de baja velocidad.

-Impresoras.
- Escneres.
Tabla 10 Caractersticas Fireware vs USB

- Mdems

Gua de Microcontroladores
Puerto USB

5.3.3.

Interface USB en la IBM Pc

La IBM PC de la Serie 300 fue la primera mquina de IBM con USB.


La PC 330 tena 2 ranuras USB 1.0 en la parte posterior.

5.3.4.

Cables y Conectores

El estndar USB especifica tolerancias mecnicas relativamente amplias para sus


conectores, intentando maximizar la compatibilidad entre los conectores fabricados por
la compaa, una meta a la que se ha conseguido llegar.
El estndar USB, a diferencia de otros estndares tambin define tamaos para el rea
alrededor del conector de un dispositivo, para evitar el bloqueo de un puerto adyacente
por el dispositivo en cuestin.
Las especificaciones USB 1.0, 1.1 y 2.0 definen dos tipos de conectores para conectar
dispositivos al servidor: A y B. Sin embargo, la capa mecnica ha cambiado en algunos
conectores.

Figura 25 Conectores Tipo A (Izquierda), Tipo B (Derecha)

Gua de Microcontroladores
Puerto USB

Tabla 11 Descripcin Fsica del Cable


Conectores

5.4.

Tabla 12 Tipos de

Especificaciones Elctricas

Alimentacin:

Tensin nominal (Vbus): +5V.

Intensidad (ICC): 500 mA 100 mA (segn tipo/estado del dispositivo).

Capacitancia de patilla a masa (CIN): 20 pF mximo.

Impedancia del cable (ZO) a mxima velocidad: 45 W 15%.

5.5.
Consumo:

Administracin de la energa en el bus

Gua de Microcontroladores
Puerto USB
Cada seccin puede proporcionar una determinada potencia mxima siendo el
computador el encargado de suministrar la energa. Adems el perifrico puede estar
autoalimentado (self powered).
El Control de Consumo es realizado por el ordenado, teniendo la capacidad de poner en
reposo (suspend) o en marcha a un perifrico USB.
En reposo, este reduce su consumo (si puede), quedndose la parte USB funcional.
Esta gestin est orientada especialmente a los equipos porttiles.

Tabla 13 USB Especificaciones (Wikipedia)

Gua de Microcontroladores
Microcontroladores

6. Microcontroladores

6.1.

Definicin

Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres


unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir,
se trata de un computador completo en un slo circuito integrado. Aunque sus
prestaciones son limitadas, adems de dicha integracin, su caracterstica principal es
su alto nivel de integracin. (Rodolfo Reyes Serrano)
Dispositivo electrnico que posee un sistema microprocesado embebido
6.2.Diferencia entre microprocesadores y microcontroladores
Una de las diferencias ms relevantes es que los microcontroladores se utilizan para
controlar solamente una cosa o realizar una funcin especfica como controlar una
puerta automtica, una alarma controla, cosas muy puntuales; mientras que los
microprocesadores son ms complejos ya que pueden llevar acabo diferentes tareas a
la vez como el procesamiento masivo de datos matemticos.
El microcontrolador: tiene embebido un sistema microprocesado con limitaciones en
velocidad, memoria de datos y programa.
Microcontrolador

Maneja sistemas embebidos


Bajo costo
Velocidad limitada
Arquitectura Control (Proceso)
o uP
o memoria de programa
o memoria de datos
o buses
o perifricos
TCY= Ciclo de Relog = 4TOSC =Tiempo de Oscilacion

Microprocesador

Maneja multiples procesos


Costo alto
Velocidad alta

6.3.

Arquitectura de un microcontrolador

Arquitectura

Gua de Microcontroladores
Microcontroladores
-

Microprocesador
o Cpu
o Alu
o Decodificador de instrucciones
o Reset
o Reloj
o Pc->controlador de programa
o Registros -> W -> registro de trabajo
Memoria de programa -> flash de 8 kword x 14 bits
o Las instrucciones son de 14 bits con una capacidad de 2^n donde el nmero
de bits de PC
o Cap =2^13 =8192 espacios de memoria
Memoria de dato
o Sfr -> registro de control y configuracin
o Gpr
-> 368 bytes de usuario -> registros de propsito general
o Eeprom de datos
Buses
o De datos
o De direcciones
o De control
Perifricos
o Timer 0,2,3
o Ccp 1,2
o Mssp
o Adc
o Puertos I/O
o Usart

6.4.Microcontroladores de 8 bits
Entre los diferentes microcontroladores las principales diferencias estn en el nmero
de instrucciones y su longitud, numero de puertos y funciones, la complejidad interna y
de programacin.
Lo primero que notamos en estos microcontroladores es su tamao reducido ya que
solamente disponen de 8 pines de los cuales se pueden destinar 6 de ellos como E/S de
perifricos tienen un oscilador interno R-C .el voltaje que soportan es de corriente
continua entre 2.5 V y 5.5 V consumen menos de 2mA cuando trabajan a 5V y 4MHz.
las instrucciones son 12 o 14 bits y el nmero de instrucciones que puede manejar es
de 33 0 35 instrucciones.
(Mogrovejo, 2013)

Gua de Microcontroladores
Programacin de PIC

7. PIC

7.1.

Definicin

El nombre completo es PICmicro

Peripheral Interface Controller (controlador de

interfaz perifrico) se trata de un diseo RISC que ejecuta una instruccin cada
4 ciclos del oscilador.

7.2.

Pic 16X84

Las altas prestaciones de los microcontroladores PIC derivan de las caractersticas de


su arquitectura. Estn 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
ms rpidos que los microcontroladores basados en la arquitectura tradicional de Von
Neuman.

7.3.

PIC 16X (F) XX

16F28

Conjunto reducido de instrucciones (RISC). 35 instrucciones para utilizar.


Oscilador interno de 4Mhz.
Las Instrucciones se ejecutan en un ciclo de maquina menos los saltos (goto y

call) que se ejecutan en 2 ciclos.


Un ciclo de maquina se lleva 4 ciclos de reloj, es decir a una frecuencia de 1Mhz,

cada instruccin se ejecutara en 1uS (microsegundo).


Con la estructura segmentada se realizan simultneamente la ejecucin de la
instruccin y la bsqueda de la siguiente.

16F48
El PIC16F648A cuenta con oscilador de 4 MHz interna, 256 bytes de memoria de datos
EEPROM, una captura / comparacin / PWM, un USART, 2 comparadores y una
referencia de voltaje programable que lo hacen ideal para aplicaciones analgicas /
nivel integrado en los aparatos de automocin, industriales y aplicaciones de consumo.
PWM (permitir el control de la potencia suministrada a los dispositivos elctricos,
especialmente a las cargas inerciales tales como motores.) de 10 bits.

La programacin de la baja tensin.


El modo de reloj de baja velocidad.

Gua de Microcontroladores
Programacin de PIC

BOR programmable.
4 MHz oscilador interno.
On-chip de referencia de tensin.
256 bytes de memoria EEPROM de datos.

16F54
El PIC16F54 de Microchip Technology es un micro de bajo costo, alto rendimiento, de 8
bits, completamente esttico, microcontroladores Flash basados en tecnologa CMOS.
El PIC16F5X ofrece un rendimiento un orden de magnitud superior a sus competidores
en la misma categora de precios.
Las instrucciones de ancho de 12 bits son altamente simtricas lo que resulta en una
compresin de 2:1 en cdigo a travs de otros microcontroladores de 8 bits de su
clase. El conjunto de instrucciones fciles de usar y de recordar easy to reduce el
tiempo de desarrollo significativamente.

Tabla 14 PIC 16F54, 16F57, 16F59

16F84
Todas las instrucciones se ejecutan en un solo ciclo excepto las de salto que necesitan
dos.
Frecuencia de trabajo mxima de 10MHZ para PIC16F84 y de 20MHZ para PIC16F84A.
Memoria de datos EEPROM de 64 bytes.
Contador de programa de 13 bit (lo que en teora permitira direccionar 4 KB de
memoria, aunque el 16F84 solo dispone de 1KB de memoria implementada).
Pila con 8 niveles de profundidad.
1,000,000 de ciclos de borrado/escritura de la memoria EEPROM.

Gua de Microcontroladores
Programacin de PIC
40 aos de retencin de la memoria EEPROM.
13 pines de E/S con control individual de direccin.
Rango de alimentacin:

16LF84A: De 2 a 5,5 V en configuracin de oscilador XT, RC y LP.


16F84A: De 4 a 5,5 v en configuracin de oscilador XT, RC y LP.
De 4,5 a 5.5 v en configuracin de oscilador HS.

7.4.

PIC 16F87X

CPU de arquitectura RISC (Reduced Instruction Set Computer).


Set de 35 instrucciones.
Frecuencia de reloj de hasta 20MHz (ciclo de instruccin de 200ns).
Todas las instrucciones se ejecutan en un nico ciclo de instruccin, excepto las de
salto.
Hasta 8K x 14 palabras de Memoria de Programa FLASH (ver tabla a continuacin).
Hasta 368 x 8 bytes de Memoria de Datos tipo RAM (ver tabla a continuacin).
Hasta 256 x 8 bytes de Memoria de Datos tipo EEPROM (ver tabla a continuacin).
Hasta 15 fuentes de Interrupcin posibles.
8 niveles de profundidad en la Pila hardware.
Modo de bajo consumo (Sleep).
Tipo de oscilador seleccionable (RC, HS, XT, LP y externo).
Rango de voltaje de operacin desde 2,0V a 5,5V.
Conversor Analgico/Digital de 10 bits multicanal.
3 Temporizadores.
Watchdog Timer o Perro Guardin.
Mdulos de captura/comparacin/PWM.
Comunicaciones por interfaz USART (Universal Synchronous Asynchronous Receiver
Transmitter).

Gua de Microcontroladores
Programacin de PIC
Puerto Paralelo Esclavo de 8 bits (PSP).
Puerto Serie Sncrono (SSP) con SPI e IC.

Tabla 15 PIC 16F873, 16F874, 16F876, 16F877

16F 871

Gua de Microcontroladores
Programacin de PIC

Tabla 16 Caractersticas 16F871

16F 873

Tabla 17 Caractersticas 16F873

16F 876

Gua de Microcontroladores
Programacin de PIC
CPU tipo RISCC de altas prestaciones.
Repertorio de 35 instrucciones de una palabra.
Todas las instrucciones son de un nico ciclo, excepto las de salto, que llevan doble
velocidad de trabajo de 20 Mhz, con un ciclo de instruccin de 200ns.
Memoria de programa tipo flash de 8 Kpalabras.
Memoria de datos de 368 bytes.-Memoria EEPROM de datos de 256 bytes.
Patillaje compatible con PIC16C73B/74B/76/77.-Hasta 14 fuentes de interrupcin.
Pila por hardware de 8 niveles.-Modos de direccionamiento directo, indirecto y relativo.
Reset de conexin (POR).-Temporizacin de conexin y temporizacin de inicio de
oscilacin.
Circuito supervisor (watchdog).-Cdigo de proteccin programable.
Tecnologa de alta velocidad y bajo consumo en la memoria CMOSEEPROM/FLASH.
Programacin in-situ va serie con dos patillas.
Posibilidad de programacin in-situ, va serie, mediante tensin simple de 5 voltios.
Acceso para lectura o escritura a la memoria de programa.
Gran margen de alimentacin entre 2 y 5,5 voltios.-Corriente de salida de 25 mA.
Bajo consumo:
Menor de 2 mA a 5V y 4 Mhz.
20 A a 3V y 32 Khz.
Menor de 1 A en reposo.
Caractersticas perifricos:
Timer0: Temporizador-Contador de 8 bits, con Predivisor tambin de 8 bits.
Timer1: Temporizador-Contador de 16 bits con Predivisor, que puede trabajar conreloj
externo en el modo reposo (sleep).
Timer2: Temporizador-Contador de 8 bits con registro de perodo de la mismalongitud,
con Predivisor y Postdivisor.
Dos mdulos de Captura y Comparacin y uno PWM (modulacin por ancho de impulso:
La captura es de 16 bits, con resolucin mxima de 12,5 ns.
La comparacin es de 16 bits, con resolucin mxima de 200 ns.

Gua de Microcontroladores
Programacin de PIC
El bloque PWM tiene una resolucin mxima de 10 bits.-Convertidor multicanal
analgico digital de 10 bits.
Puerto serie sncrono (SSP), con modo Maestro (SPI) e I2C (maestro/servidor).
Transmisor Receptor Universal Sncrono Asncrono (USART/SCI) con deteccinde 9 bits y
de direccin.
Circuito de deteccin de BROWN-OUT (bajada de tensin).
16F 877

CARACTERSTICAS

16F877

Frecuencia mxima

DX-20MHz

Memoria de programa flash palabra de 14


bits

8KB

Posiciones RAM de datos

368

Posiciones EEPROM de datos

256

Puertos E/S

A,B,C,D,E

Nmero de pines

40

Interrupciones

14

Timers

Mdulos CCP

Comunicaciones Serie

MSSP, USART

Comunicaciones paralelo

PSP

Lneas de entrada de CAD de 10 bits

Juego de instrucciones

35 Instrucciones

Longitud de la instruccin

14 bits

Arquitectura

Harvard

CPU

Risc

Canales Pwm

Pila Harware

Ejecucin En 1 Ciclo Mquina

Tabla 18 Caractersticas 16F877

7.5.

17CXXX

Gua de Microcontroladores
Programacin de PIC
Un PIC17CXXX posee un alto rendimiento que se le puede atribuir a varias
caractersticas de la arquitectura RISC.
Esta familia de microcontroladores tiene una arquitectura Harvard, es decir con
memoria de datos y de programa separadas, usando un bus de comunicacin para
cada una. Esta separacin de memoria permite operar con instrucciones simples de 16
bits, contrario a la arquitectura tradicional Von Neumann, permitiendo ejecuciones en
un ciclo con velocidades de 121 ns a 33MHz.
Puede direccionar directa o indirectamente sus registros o memoria de datos, los
registros especiales PC y WREG estn mapeados en la memoria de datos.
Los PIC17CXXX tienen un set ortogonal (simtrico) set de instrucciones que hace
posible

realizar

cualquier

operacin

en

cualquier

registro

usando

cualquier

direccionamiento, dando una programacin eficiente y simple.


A diferencia de la familia PIC16CXXX, permiten el uso de 2 registros de archivos en
algunas operaciones de 2 operandos, esto permite mover datos entre estos 2 registros
sin pasar por el WREG (Registro de Trabajo) lo que incrementa el rendimiento y reduce
el uso de memoria de programa.
Posee adems una ALU de 8 bits que puede trabajar con WREG (tambin de 8 bits) o
cualquier otro registro.
Aaden cuatro nuevas instrucciones (TLRD, TLWT, TABLRD, TABLWT), respecto a la
familia PIC16CXXX, para la transferencia de datos entre los datos la memoria y la
memoria de programa. Pueden ser utilizadas para auto programar la memoria EPROM.

Gua de Microcontroladores
Programacin de PIC

Figura 26 Diagrama de Bloques del PIC17CXXX

Clasificacin.

Gua de Microcontroladores
Programacin de PIC
A continuacin se muestra la familia de Microcontroladores PIC17CXXX:

Figura 27 Familia de Microcontroladores PIC17CXXX

Caractersticas
Los PIC17CXXX tienen un repertorio de 58 instrucciones de 16 bits cada una.
La memoria de datos puede llegar a tener hasta 1k (1024) registros de 8 bits. La
memoria de programa de los PIC17CXXX es EPROM, ROM u OTP. Su sistema de
interrupciones incluye el tratamiento de prioridades.
Una caracterstica interesante de los PIC17 es su arquitectura abierta, que consiste en
la posibilidad de ampliacin del microcontrolador con elementos externos. Para esto,
los pines sacan al exterior las lneas de los buses de datos, direcciones y control, a las
que se conectan dispositivos de memoria o controladores de perifricos. Esta facultad
obliga a estos componentes a tener un elevado nmero de pines partiendo desde los
40 y 44.

Estos microcontroladores pueden trabajar en cuatro modos diferentes como:

Gua de Microcontroladores
Programacin de PIC

Microcontrolador
Microcontrolador protegido
Microcontrolador ampliado
Microprocesador

En los modos microcontrolador y microcontrolador protegido solo se tiene acceso a la


memoria de programa interna del microcontrolador.
En los modos microcontrolador ampliado y microprocesador, es posible acceder a
ampliaciones externas de la memoria de programa.
Estos microcontroladores disponen de una amplia gama de dispositivos de entradasalida y cuentan con un sistema de gestin de interrupciones vectorizadas muy
potente.
En la siguiente tabla se muestran las caractersticas ms relevantes de los modelos de
esta gama, que slo se utilizan en aplicaciones muy especiales con grandes
requerimientos.
En la siguiente tabla se muestran las caractersticas ms relevantes de los modelos de
esta gama, que slo se utilizan en aplicaciones muy especiales con grandes
requerimientos.

Figura 28 Caractersticas PIC17CXXX

Aplicaciones
La familia PIC17CXXX es ideal para aplicaciones que requieren una ejecucin
extremadamente rpida de software complejo.
Estos incluyen aplicaciones que van desde el control preciso de un motor hasta el
control de la transformacin industrial para la automocin, instrumentacin y
telecomunicaciones.

Gua de Microcontroladores
Programacin de PIC

7.6.

PIC 18C(F)XXX

ARQUITECTURA DE LOS

MICROCONTROLADORES PIC 18

Figura 29 Diagrama PIC 18

Arquitectura Harvard: Utilizada por los Microcontroladores PIC, tiene la unidad


central de proceso (CPU) conectada a dos memorias (una con las instrucciones y otra
con los datos) por medio de dos buses diferentes. Una de las memorias contiene
solamente las instrucciones del programa (Memoria de Programa), y los otros
almacenos datos (Memoria de Datos).
HISTORIA Y EVOLUCION DE LOS PIC 18.
Hacia finales del siglo XX (1999) Microchip se encamina a transformarse en el lder
indiscutible de los microcontroladores de 8 bits. El PIC16f84 revolucion el campo de
los microcontroladores y la familia PIC16F87X potenci la evolucin de los sistemas de
control embebido. Pero el gran salto final lo produce la compaa al responder a una
necesidad de mercado, los PIC18. Esta familia, resultado de la convergencia de las
tecnologas usadas en las familias PIC16 y PIC17, provoc la segunda revolucin
tecnolgica iniciada con el PIC 16F84.

Gua de Microcontroladores
Programacin de PIC
Dentro de la familia de los PIC18 contamos con micros de propsito general, as como
microcontroladores especficos para conectividad USB y Ethernet. La familia PIC18C fue
la evolucin de la primera familia fabricada y presenta por Microchip en junio de 1999.
La serie original estuvo formada por 4 dispositivos bsicos:

PIC18C242
PIC18C252
PIC18C442
PIC18C452

Los cuales rpidamente fueron transformados a versiones FLASH en el 2002 pasando a


llamarse PIC18FXX2 (PIC18F242/252/442/452).
En el ao 2004 Microchip presenta al mercado su nueva renovacin con los
PIC18F2525/2620/4524/4620.
CLASIFICACIN

PIC18F242
PIC18F252
PIC18F442
PIC18F452
PIC18F2550
PIC18F4550
PIC18K
PIC18FK
PIC18J

Gua de Microcontroladores
Programacin de PIC
CARACTERSTICAS
PIC18F242

Tabla 19 Caractersticas PIC18F242

Gua de Microcontroladores
Programacin de PIC
PIC18F252

Tabla 20 Caractersticas PIC18f252

PIC18F442

Gua de Microcontroladores
Programacin de PIC

Tabla 21 Caractersticas PIC18F452

PIC18F452

Gua de Microcontroladores
Programacin de PIC

Tabla 22 Caractersticas PIC18F2550

PIC18F2550

Gua de Microcontroladores
Programacin de PIC

Tabla 23 Caractersticas PIC18F4550

PIC18F4550

Gua de Microcontroladores
Programacin de PIC

Tabla 24 Caractersticas PIC18F4550

APLICACIONES
La familia PIC18 permite una amplia variedad de aplicaciones incluyendo:

Gua de Microcontroladores
Programacin de PIC
Industrial:

Cerraduras de Puertas Electrnicas.


Iluminacin.
Sistemas de Alarma.

Dispositivos:

Energa Inteligente
Lavadoras
Refrigeradoras

Medicina:

Dispositivos de Diagnstico
Medidores Portables

Automotores:

Accesos automticos.
Control interior.
Control puerta Garaje.
Control de Tablero.

Gua de Microcontroladores
Programacin de PIC
8. Programacin de PIC

8.1.Instalacin del software necesario


Para realizar las prcticas con microcontroladores necesitaremos los siguientes
programas (Software):

1. PROTEUS, software para simulacin de circuitos. (Instrucciones y


Software Anexos).
2. MPLAB, ambiente para grabacin de PIC. (Instrucciones y Software
Anexos).
3. MIKROC, ambiente para programacin en C. (Instrucciones y Software
Anexos).
En cuanto a Hardware, es indispensable contar con un grabador de PIC, como PicKit2
o PicKit3, para poder transferir los programas desarrollados al PIC fsicamente.

8.2.PIC 16F877A
Este PIC pertenece a la familia 16, de gama media, del fabricante Microchip. Es un
microcontrolador de 8 bits y posee una arquitectura Harvard - RISC. Harvard, puesto
que para la comunicacin entre la CPU y las Memorias de Datos (MD) y Programas (MP)
se realizan por buses independientes, al contrario de la arquitectura Von Newman. Esto
deriva en una mejora sustancial en el rendimiento del microcontrolador. RISC (Reduced
Instruction Set Computing) maneja el concepto de, simpleza frente a complejidad, en
las instrucciones que manejar el CPU para sus operaciones.
Arquitectura Von Neumann
CPU

Memoria de Programa
(MP)
Arquitectura Harvard
Memoria de
Programa
(MP)

CPU

Memoria de
Datos (MD)

Figura 30 Comparativa de Arquitecturas Harvard y Von Neumann.

Este PIC puede encontrarse en presentaciones de 40 pines (presentacin PDIP) y de 44


pines (presentacin PLCC y TQFP), siendo la presentacin PDIP la usada para nuestras
prcticas. Cuenta con un repertorio de 35 instrucciones, que son normalmente
ejecutadas en un Tcy (Ciclo de instruccin).

Gua de Microcontroladores
Programacin de PIC

Tcy ( Ciclo de Instrucci n )=4TOsc (Tiempos de Oscilaci n o Ciclo de Reloj)


Entre sus caractersticas principales podemos destacar:

Caracterstica
Memoria de Programa
(Tipo)
Memoria de Programa
(KB)
Velocidad del CPU (MIPS)
Memoria de Datos, RAM
(Bytes)
EEPROM de Datos (Bytes)
Puertos de Comunicacin

Puertos
de
Captura/Comparacin/PW
M
Timers
ADC (Conversor Analgico
- Digital)
Comparadores
Rango de Temperaturas
(C)
Rango de Operacin (V)
Pines

Valor
Flash
14
5
368
256
1-UART,
1A/E/USART, 1-SPI, 1I2C1-MSSP(SPI/I2C)
2 CCP

2 x 8-bits, 1 x 16bits
8 canales de 10-bits
2
-40 to 125
2 to 5.5
40

Tabla 25 Caractersticas relevantes del PIC16F877 (Microchip, 2014).

As tambin, mencionamos algunos registros de configuracin, que sern usados en las


del PIC, para las prcticas de captulos siguientes.

TRISA, TRISB, TRISC, TRISD, TRISDE. Para configuracin de los puertos

I/O.
STATUS. Para configuracin de los bancos de memoria, estado aritmtico

de la ALU, estado de reset, entre otras configuraciones.


OPTION. Para configuracin de TMR0, y WDT (Watch Dog Timer),

prescaler del TMR0, entre otras configuraciones.


INTCON. Contiene bits para habilitar y bits banderas de fuentes de
interrupciones.

Gua de Microcontroladores
Programacin de PIC

PIR1, PIR2. Contienen bits banderas de interrupciones de ciertas fuentes

de interrupcin.
PIE1, PIE2. Contienen bits de habilitacin de ciertas fuentes de
interrupcion.

Para ms detalles acerca de este microcontrolador anexamos el Datasheet del mismo,


que se encuentra distribuido de forma gratuita en el sitio web de Microchip (Microchip,
2014).

8.3.Diagrama de pines y funciones


A continuacin presentamos el diagrama de pines del PIC16F877A en su presentacin
PDIP:

Figura 31 Pines del PIC16F877A (Microchip, 2014).

Tambin la tabla de descripcin de Pines:


Nombre del Pin

Pin

Tipo

OSC1/CLKIN

13

OSC2/CLKOUT
MCLR/Vpp/THV

14
1

O
I/P

Tipo
de
Buffer
ST/MO
S
ST

RA0/AN0
RA1/AN1
RA2/AN2/ VrefRA3/AN3/Vref+
RA4/T0CKI

2
3
4
5
6

I/O
I/O
I/O
I/O
I/O

TTL
TTL
TTL
TTL
ST

Descripcin

Entrada del oscilador de cristal /


Entrada de seal de reloj externa.
Salida del oscilador de cristal.
Entrada del Master Clear (Reset) o
entrada de voltaje de programacin o
modo de control high voltaje test.
PORTA es un puerto I/O bidireccional
RAO: puede ser salida analgica 0
RA1: puede ser salida analgica 1
RA2: puede ser salida analgica 2 o

Gua de Microcontroladores
Programacin de PIC
RA5/SS/AN4

I/O

TTL

RBO/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

33
34
35
36
37
38
39
40

I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O

TTL/ST
TTL
TTL
TTL
TTL
TTL
TTL/ST
TTL/ST

RCO/T1OSO/T1CKI
RC1/T1OS1/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SD1/SDA
RC5/SD0
RC6/Tx/CK
RC7/RX/DT

15
16
17

I/O
I/O
I/O

ST
ST
ST

18

I/O

ST

23
24
25
26

I/O
I/O
I/O
I/O

ST
ST
ST
ST

RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7

19
20
21
22
27
28
29
30

I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O

ST/TTL
ST/TTL
ST/TTL
ST/TTL
ST/TTL
ST/TTL
ST/TTL
ST/TTL

referencia negativa de voltaje


RA3: puede ser salida analgica 3 o
referencia positiva de voltaje
RA4: puede ser entrada de reloj el
timer0.
RA5: puede ser salida analgica 4 o el
esclavo seleccionado por el puerto
serial sncrono.
PORTB es un puerto I/O bidireccional.
Puede ser programado todo como
entradas
RB0 pude ser pin de interrupcin
externo.
RB3: puede ser la entada de
programacin de bajo voltaje
Pin de interrupcin
Pin de interrupcin
Pin
de
interrupcin.
Reloj
de
programacin serial
PORTC es un puerto I/O bidireccional
RCO puede ser la salida del oscilador
timer1 o la entrada de reloj del timer1
RC1 puede ser la entrada del oscilador
timer1 o salida PMW 2
RC2 puede ser una entrada de captura
y comparacin o salida PWN
RC3 puede ser la entrada o salida
serial de reloj sncrono para modos SPI
e I2C
RC4 puede ser la entrada de datos SPI
y modo I2C
RC5 puede ser la salida de datos SPI
RC6 puede ser el transmisor asncrono
USART o el reloj sncrono.
RC7 puede ser el receptor asncrono
USART o datos sncronos
El PORTD es un puerto bidireccional
paralelo.

Gua de Microcontroladores
Programacin de PIC
REO/RD/AN5

I/O

ST/TTL

PORTE es un puerto I/O bidireccional.

RE1/WR/AN

I/O

ST/TTL

RE2/CS/AN7

10

I/O

ST/TTL

Vss

12.3
1

REO: puede ser control de lectura para


el puerto esclavo paralelo o entrada
analgica 5.
RE1: puede ser escritura de control
para el puerto paralelo esclavo o
entrada analgica 6
RE2: puede ser el selector de control
para el puerto paralelo esclavo o la
entrada analgica 7.
Referencia de GND para los pines
lgicos y de I/O.

Vdd

11.3
2

Fuente positiva para los pines lgicos y


de I/O.

NC

Sin conectar internamente.

Tabla 26 Descripcin de Pines del PIC16F877A (Microchip, 2014).

Leyenda
I = input (entrada), O = output (salida), I/O = input/output (entrada/salida), P = power
(Vcc o GND).
= Sin usar o implementar, TTL = Entrada TransistorTransistor Logic, ST = Entrada
Schmitt Trigger.
La informacin se puede encontrar, de igual manera, en el Datasheet del PIC16F877A
que se encuentra como anexo.

Gua de Microcontroladores
Lenguaje de Programacin MIKRO C
9. El lenguaje de programacin MIKROC

9.1.Ventajas e inconvenientes
El programa cargado en la memoria Flash del microcontrolador est compuesto por
cadenas de unos y ceros los cuales representan las operaciones que realizar. Trabajar
en lenguaje binario resulta una tarea bastante complicada por lo que en un inicio se
us la notacin hexadecimal para facilitarlo.
Sin embargo programar con notacin hexadecimal (HEX) sigue siendo bastante arduo,
por lo que se adopta la programacin en lenguaje ensamblador (ASM). Aun as el
lenguaje ensamblador tiene sus desventajas, por eso se adopta la programacin en
alto nivel con lenguajes como C.
Para un mejor entendimiento, presentamos la siguiente comparativa de C frente al
leguaje ensamblador. (MikroElektronika, 2014)

Lenguaje Ensamblador

Lenguaje C (Alto nivel)

Ventajas

Frente

Ventajas

al

codificar

en

hexadecimal, permite un

mejor manejo del cdigo.


Frente a C, este permite
saber

con

detalle

cual

es

capaz

de

optimizar el cdigo.
Transforma el cdigo a

lenguaje mquina.
Es
un
lenguaje

exactitud las operaciones

Posee un compilador, el

ampliamente

que realizara el cdigo.

incluso

fuera

de

los

microcontroladores.
Reduce notablemente, la
cantidad

usado,

generado.
El
cdigo

de

cdigo
generado

puede ser usado en otros


microcontroladores

sin

muchas modificaciones.
Desventajas

Una

Desventajas

sola

operacin

8. No permite conocer a detalle

involucra muchas lneas

las operaciones, como en

de cdigo.
El cdigo depender de

ensamblador.

Gua de Microcontroladores
Lenguaje de Programacin MIKRO C

la

arquitectura

del

microcontrolador.
El programador

debe

conocer

profundamente

al microcontrolador.

Tabla 27 Cuadro comparativo, Ensamblador vs C. (MikroElektronika, 2014)

Figura 32 Proceso que se sigue desde C hasta el lenguaje mquina


(MikroElektronika, 2014)
Es importante decir que el entorno que usaremos, MikroC, pone a disposicin el cdigo
hexadecimal y en lenguaje ensamblador del programa que se compile.

9.2.Los lenguajes usados para microcontroladores


Existe una gran variedad de lenguajes usados para trabajar con microcontroladores
desde el mismo lenguaje ensamblador a otros de alto nivel como:

Basic, usado por programas como:


o PicBasic.
o MicroBasic.
C, usado por programas como:
o CSS C (CCS).
o C18, C30, C32 (Microchip).
o Byte Craft C (Byte Craft).
o PCW C (PCW).
o MikroC (MikroElektronika).
o IAR C (IAR).

Como se puede observar, el lenguaje C es de hecho el ms conocido y usado en cuanto


a programacin para microcontroladores debido a sus ventajas. Como ya mencionamos
anteriormente el usado para las prcticas ser MikroC.

Gua de Microcontroladores
Lenguaje de Programacin MIKRO C

9.3.Repertorio de instrucciones MikroC


Las instrucciones especifican el flujo que tendr el programa, ante la ausencia de estas
la ejecucin sera secuencial.

Instrucciones de Seleccin, seleccionan una opcin disponible luego de


evaluar valores.
o Instruccin IF, estado condicional.
if (valor == 1) {
proceso1();
}else{
procesoOtro();
}
o

Instruccin

SWITCH,

evaluacin

para

distintas

posibles

condiciones.
switch (valor) {
case 0: proceso0();
break;
case 1: proceso1();
break;
default:
break;
}

Instrucciones de bucle, permiten ejecutar cdigo repetitivamente en


base a condiciones.
o Instruccin WHILE, las instrucciones dentro del bloque se repiten
mientras que se cumpla una condicin.
while (valor < n) {
proceso1();
valor++;
}
o

Instruccin DO, las instrucciones dentro del bloque se repetirn


hasta que se cumpla una condicin, a diferencia de WHILE las
instrucciones se ejecutarn al menos una vez.
do {
proceso1();
valor++;
} while ( valor < n );

Instruccin FOR, las instrucciones se ejecutarn de manera


repetitiva. Se usa una variable de conteo para controlar las
repeticiones.

Gua de Microcontroladores
Lenguaje de Programacin MIKRO C

for ( i = 0, i = 0; i < 10; i++ ){


proceso1();
}

Instrucciones

de

Salto,

detienen

la

ejecucin

de

un

bloque

incondicionalmente.
o Instruccin BREAK, detiene la ejecucin de un bucle, por ejemplo.
En la instruccin SWITCH, la instruccin BREAK se usa para evitar
o

que se evalen solo las condiciones necesarias.


Instruccin GOTO, se usa para dar un salto a otra seccin de
cdigo, de forma incondicional.
for (...) {
...
if (desastre) goto Error;
...
}
Error: /* cdigo de manejo para el error */

Instruccin RETURN, se utiliza para salir de la funcin actual de


vuelta a la rutina de llamada, opcionalmente devolviendo un valor.

Para ms detalles acerca de otras instrucciones usadas en mikroC, anexamos el


documento Gua de Referencia Rpida a mikroC disponible para su descarga en el
sitio web de MikroElektronika. (MikroElektronika, 2014)

Gua de Microcontroladores
Practicas
10.Prcticas
En las siguientes prcticas se usarn los paquetes de software instalados previamente
en captulos anteriores. Esta gua proporcionar fragmentos de cdigo, imgenes de los
circuitos y fragmentos de diagramas de flujo para el funcionamiento de cada prctica.
Recomendamos tambin el uso de la plantilla de programacin que se podr encontrar
adjunta a este documento. (Mogrovejo, 2014)

10.1.

Manejo de LEDS

Para el manejo de LEDS se armar un circuito con el microcontrolador PIC16F877A,


como se muestra en la siguiente figura:

Figura 33 Circuito para el manejo de LEDS


Para su funcionamiento el circuito obedecer al siguiente flujograma. Como se podr
observar, se envan valores decimales al PORTC, los cuales representan los bits que
encendern a los LEDS.

Gua de Microcontroladores
Practicas
Figura 34 Flujograma para el manejo de LEDS
Recomendamos crear la subrutina o procedimiento iConfigPeripherals, donde se
configuren los puertos a usar, interrupciones, prescalers, registros, etc. En esta prctica
la subrutina se usa para configurar el PORTC como salida digital, puerto al que estn
conectados los LEDS.

Figura 35 Flujograma para la subrutina de configuracin.


En el lenguaje C, tendremos que el cdigo generado a partir de los flujogramas, ser:
void iConfigPeripherals()
TRISC=0;
PORTC=0;
}
void main() {
iConfigPeripherals();
while(1){
PORTC = 255;
Delay_ms(1000);
PORTC = 240;
Delay_ms(1000);
PORTC = 15;
Delay_ms(1000);
PORTC = 0;
Delay_ms(1000);
}
}

10.2.

{
//PuertoC como salidas digitales
//Encerar el puerto C

//Enciende todos los LEDs


//Pausa de 1 segundo
//Enciende los LEDs en RC4 a RC7
//Pausa de 1 segundo
//Enciende los LEDs en RC0 a RC3
//Pausa de 1 segundo
//Apaga todos los LEDs
//Pausa de 1 segundo

Manejo de Repeticiones

En esta prctica, similar a la anterior, se hace uso de la misma subrutina


iConfigPeripherals y el mismo circuito indicados anteriormente. Manejo de LEDS 10.1.
Para el manejo de repeticiones usamos las instrucciones de repeticin o bucle, en el
siguiente flujograma mostramos el uso de los bucles FOR, WHILE y DO para encender
los LEDS conectados al PORTC de nuestro PIC.

Gua de Microcontroladores
Practicas

Figura 36 Flujograma para el manejo de Repeticiones

El cdigo que se produce del flujograma es el siguiente:


void main() {
unsigned char i;
iConfigPeripherals();
while(1){
for (i = 0; i < 3; i++){
PORTC = 255;
//Enciende todos los LEDs
Delay_ms(500);
//Pausa medio segundo
PORTC = 240;
//Enciende los LEDs en RC4 a RC7
Delay_ms(500);
//Pausa medio segundo
PORTC = 15;
//Enciende los LEDs en RC0 a RC3
Delay_ms(500);
//Pausa medio segundo
PORTC = 0;
//Apaga todos los LEDs
Delay_ms(500);
//Pausa medio segundo
}
i = 0;

Gua de Microcontroladores
Practicas
do{
PORTC = 1;
Delay_ms(500);
PORTC = 3;
Delay_ms(500);
PORTC = 7;
Delay_ms(500);
PORTC = 15;
Delay_ms(500);
PORTC = 0;
Delay_ms(500);
i++;
}while(i < 3);

//Enciende el
//Pausa medio
//Enciende el
//Pausa medio
//Enciende el
//Pausa medio
//Enciende el
//Pausa medio
//Apaga todos
//Pausa medio

LED en RB0
segundo
LED en RB1
segundo
LED en RB2
segundo
LED en RB3
segundo
LEDs
segundo

}
}

10.3.

Manejo de Pulsadores

Para el manejo de pulsadores se modificar el circuito inicial, se agregarn 4


pulsadores que estarn conectados al PORTB. Ntese el uso de una resistencia de
PULL-UP para cada pulsador.

Figura 37 Circuito para manejo de Pulsadores

El flujograma que se usar incluye la operacin de los pulsadores, siendo cada uno de
ellos los que active cierto funcionamiento de los LEDS. Cada pulsador activar una
instruccin IF.

Gua de Microcontroladores
Practicas

Figura 38 Flujograma para el manejo de Pulsadores


Se modifica tambin ligeramente la subrutina iConfigPeripherals para configurar el
PORTB como entrada digital donde se colocarn los pulsadores.

Figura 39 Flujograma para la subrutina de configuracin

El cdigo en C que se genera a partir de los flujogramas es el siguiente:

Gua de Microcontroladores
Practicas
void iConfigPeripherals() {
TRISC = 0;
//Puerto C como salidas digitales
TRISB = 255;
//Puerto B como entradas digitales
PORTC = 0;
//Encerar el puerto C
PORTB = 0;
//Encerar el puerto B
}
void main() {
iConfigPeripherals();
while(1){
if (RB0_bit == 0){
PORTC = 255;
Delay_ms(500);
PORTC = 0;
Delay_ms(500);
}
if (RB1_bit == 0){
PORTC = 192;
Delay_ms(500);
PORTC = 48;
Delay_ms(500);
PORTC = 12;
Delay_ms(500);
PORTC = 3;
Delay_ms(500);
}
if (RB2_bit == 0){
PORTC = 240;
Delay_ms(500);
PORTC = 15;
Delay_ms(500);
}
if (RB3_bit == 0){
PORTC = 129;
Delay_ms(500);
PORTC = 66;
Delay_ms(500);
PORTC = 36;
Delay_ms(500);
PORTC = 24;
Delay_ms(500);
}
PORTC = 0;
}

10.4.

//El pulsador en RB0 es activado


//Enciende todos los LEDs
//Pausa de medio segundo
//Apaga todos los LEDs
//Pausa de medio segundo
//El pulsador en RB1 es activado
//Enciende los leds en RB7 y RB6
//Pausa de medio segundo
//Enciende los leds en RB5 y RB4
//Pausa de medio segundo
//Enciende los leds en RB3 y RB2
//Pausa de medio segundo
//Enciende los leds en RB1 y RB0
//Pausa de medio segundo
//El pulsador en RB2 es activado
//Enciende los leds en RB4 a RB7
//Pausa de medio segundo
//Enciende los leds en RB0 a RB3
//Pausa de medio segundo
//El pulsador en RB3 es activado
//Enciende los leds en RB7 y RB0
//Pausa de medio segundo
//Enciende los leds en RB6 y RB1
//Pausa de medio segundo
//Enciende los leds en RB5 y RB2
//Pausa de medio segundo
//Enciende los leds en RB4 y RB3
//Pausa de medio segundo
//Apaga todos los LEDS

Manejo de Displays

El manejo de displays es muy similar al manejo de LEDS, teniendo en cuenta que un


display comn de 7 segmentos en realidad es un empaquetado de 7 u 8 LEDS. Para
esta prctica usaremos un display de nodo comn conectado al PORTC y 2 pulsadores
conectados al PORTB.
El circuito que a usarse es:

Gua de Microcontroladores
Practicas

Figura 40 Circuito para el manejo de un Display de nodo comn.

La subrutina de configuracin iConfigPeripherals sigue siendo la misma que para el


manejo de pulsadores, ya que usamos de igual manera los puertos PORTB y PORTC.
El flujograma para esta prctica es el siguiente:

Figura 41 Flujograma para el manejo de Display nodo Comn.

El cdigo generado a partir del flujograma es el siguiente:


void main() {
iConfigPeripherals();

Gua de Microcontroladores
Practicas
while(1){
if (RB0_bit == 0){
PORTC = 192;
Delay_ms(1000);
PORTC = 249;
Delay_ms(1000);
PORTC = 164;
Delay_ms(1000);
PORTC = 176;
Delay_ms(1000);
PORTC = 153;
Delay_ms(1000);
PORTC = 146;
Delay_ms(1000);
PORTC = 130;
Delay_ms(1000);
PORTC = 248;
Delay_ms(1000);
PORTC = 128;
Delay_ms(1000);
PORTC = 144;
Delay_ms(1000);
}
if (RB1_bit == 0){
PORTC = 144;
Delay_ms(1000);
PORTC = 128;
Delay_ms(1000);
PORTC = 248;
Delay_ms(1000);
PORTC = 130;
Delay_ms(1000);
PORTC = 146;
Delay_ms(1000);
PORTC = 153;
Delay_ms(1000);
PORTC = 176;
Delay_ms(1000);
PORTC = 164;
Delay_ms(1000);
PORTC = 249;
Delay_ms(1000);
PORTC = 192;
Delay_ms(1000);
}
PORTC = 255;
}

//El pulsador en RB0 es activado, cuenta de 0 a 9


//Numero 0 en el Display
//Pausa de 1 segundo
//Numero 1 en el Display
//Pausa de 1 segundo
//Numero 2 en el Display
//Pausa de 1 segundo
//Numero 3 en el Display
//Pausa de 1 segundo
//Numero 4 en el Display
//Pausa de 1 segundo
//Numero 5 en el Display
//Pausa de 1 segundo
//Numero 6 en el Display
//Pausa de 1 segundo
//Numero 7 en el Display
//Pausa de 1 segundo
//Numero 8 en el Display
//Pausa de 1 segundo
//Numero 9 en el Display
//Pausa de 1 segundo
//El pulsador en RB1 es activado, cuenta de 9 a 0
//Numero 9 en el Display
//Pausa de 1 segundo
//Numero 8 en el Display
//Pausa de 1 segundo
//Numero 7 en el Display
//Pausa de 1 segundo
//Numero 6 en el Display
//Pausa de 1 segundo
//Numero 5 en el Display
//Pausa de 1 segundo
//Numero 4 en el Display
//Pausa de 1 segundo
//Numero 3 en el Display
//Pausa de 1 segundo
//Numero 2 en el Display
//Pausa de 1 segundo
//Numero 1 en el Display
//Pausa de 1 segundo
//Numero 0 en el Display
//Pausa de 1 segundo
//Apaga todo el Display

10.5.

Manejo de LCD

En esta prctica usaremos un Display LCD de 2x16 el cual tiene 32 segmentos


divididos en 2 lneas, de ah su denominacin, para representar caracteres. El LCD es
un sistema microprocesado, para trabajar conjuntamente con el microntrolador PIC
MikroC provee una librera dedicada a su manejo.

Gua de Microcontroladores
Practicas
El circuito con el trabajaremos es el siguiente:

Figura 42 Circuito para manejo de LCD

La subrutina de configuracin iConfigPeripherals configura el PORTD como salida digital


y llama al procedimiento de inicializacin del LCD.

Figura 43 Flujograma de la subrutina de configuracin

Mientras que le flujograma ser el siguiente, notar el uso de llamadas a mtodos como
Lcd_Out y Lcd_Cmd pues estas son subrutinas propias de la librera LCD provista por
MikroC para el manejo del LCD.

Gua de Microcontroladores
Practicas

Figura 44 Flujograma para el manejo del LCD

El programa en MikroC que se generar es el siguiente. Ntese el uso de los bits de


configuracin necesarios para el manejo del LCD.
//Configuracion de los bits que usara el LCD
sbit LCD_RS at RD2_bit;
sbit LCD_EN at RD3_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;
sbit
sbit
sbit
sbit
sbit
sbit

LCD_RS_Direction
LCD_EN_Direction
LCD_D4_Direction
LCD_D5_Direction
LCD_D6_Direction
LCD_D7_Direction

at
at
at
at
at
at

TRISD2_bit;
TRISD3_bit;
TRISD4_bit;
TRISD5_bit;
TRISD6_bit;
TRISD7_bit;

void iConfigPeripherals() {
TRISD = 0;
//Puerto D como salidas digitales
PORTD = 0;
//Encerar el Puerto D
Lcd_Init();
//Procedimiento para inicializar el LCD
}
void main() {

Gua de Microcontroladores
Practicas
iConfigPeripherals();
Lcd_Cmd(_LCD_CURSOR_OFF);
while(1){
Lcd_Out(1,3,"Hola Mundo");
Delay_ms(1000);
Lcd_Cmd(_LCD_CLEAR);

//Apaga el cursor del LCD


//Mostrar un mensaje
//Pausa de 1 segundo
//Limpiar el LCD

Lcd_Out(1,3,"Manejo de LCD");
Lcd_Out(2,8,"2X16");
Delay_ms(1000);
Lcd_Cmd(_LCD_CLEAR);

//Mostrar otro mensaje


//Mostrar otro mensaje mas
//Pausa de 1 segundo
//Limpiar el LCD

Lcd_Out(1,3,"PIC16F877A");
Lcd_Out(2,3,"Microchip");
Delay_ms(1000);
Lcd_Cmd(_LCD_CLEAR);

//Mostrar un mensaje mas


//Mostrar otro mensaje mas
//Pausa de 1 segundo
//Limpiar el LCD

}
}

10.6.

Manejo de Sonido

El manejo de sonido con MikroC se realiza usando la librera Sound, librera que est
disponible en dicho entorno de programacin. La prctica de sonido requiere el
siguiente circuito:

Figura 45 Circuito para manejo de sonido.

La subrutina de configuracin iConfigPeripherals, para manejar el sonido es:

Figura 46 Flujograma para la subrutina de configuracin

Gua de Microcontroladores
Practicas
Mientras que el flujograma en el que se reproducirn los sonidos es el siguiente:

Figura 47 Flujograma para el manejo de sonidos

As tenemos que el cdigo en lenguaje C siguiendo los flujogramas es:


void iConfigPeripherals() {
TRISB = 255;
//Puerto B como entradas digitales
PORTB = 0;
//Encerar el Puerto B
Sound_Init(&PORTD, 0);

//Se configura el pin RD0 como salida del sonido

}
void main() {
iConfigPeripherals();
while(1){
if(RB0_bit == 0){
Sound_Play(659,
}
if(RB1_bit == 0){
Sound_Play(698,
}
if(RB2_bit == 0){
Sound_Play(784,
}
if(RB3_bit == 0){
Sound_Play(880,
}
}

250);

// Frequencia = 659Hz, duracion = 250ms

250);

// Frequencia = 698Hz, duracion = 250ms

250);

// Frequencia = 784Hz, duracion = 250ms

250);

// Frequencia = 880Hz, duracion = 250ms

Gua de Microcontroladores
Practicas
}

10.7.

Manejo de Teclados

Un teclado matricial es en realidad un conjunto de pulsadores. Los teclados matriciales


vienen en varias formas siendo la ms conocida la presentacin de 16 botones (4 filas
x 4 columnas).
Comnmente el manejo de teclados matriciales se realiza por medio de interrupciones
de cambio de estado, ya que es el mtodo ms eficiente en cuanto a hardware y
software.
Por lo que pasaremos al siguiente tema que trata dichas interrupciones entre otras.

10.8.

Manejo de Interrupciones

Un PIC16F877A puede manejar varias fuentes de interrupciones ya sean internas o


externas.

Interrupciones Externas

Como mencionamos anteriormente, para el manejo de teclados matriciales se usan las


interrupciones externas por cambio de estado. Complementando al tema anterior, el
circuito que manejaremos dispone de un teclado matricial (4x4) y un display LCD 2x16.

Figura 48 Circuito para el manejo de un teclado matricial y LCD

Para el manejo de las interrupciones por cambio de estado deberemos configurar el


registro INTCON. Esta configuracin se llevar a cabo en la subrutina
iConfigPeripherals. Debemos poner a 1 el bit RBIE puesto que es el que activa las
interrupciones por cambio de estado en los pines RB4 a RB7 del PORTB.

Gua de Microcontroladores
Practicas

GIE

PEIE

TMROI
E
0

INTE

RBIE

TMR0I
F
0

INTF

RBIF

Tabla 28 Configuracin del registro INTCON, para habilitar RBIE

En la subrutina iConfigPeripherals tambin se configuran los parmetros necesarios


para el manejo del LCD, y al final se habilita las interrupciones de forma global
(GIE_bit).

Figura 49 Flujograma para la subrutina de configuracin

A continuacin presentamos el flujograma para el manejo de interrupciones. Ntese el


proceso de deshabilitar interrupciones, llamar al procedimiento de interrupcin y
habilitar interrupciones. Es recomendable el uso de este proceso, pues en ambientes
ruidosos (ruidos electromagnticos) se pueden dar habilitaciones o interrupciones no
deseadas, con este procedimiento se reduce al mnimo la posibilidad de que se den
estos errores. (Mogrovejo, 2014)

Gua de Microcontroladores
Practicas

Figura 50 Flujograma para el tratamiento de interrupciones

La subrutina para atender a las interrupciones detectar una interrupcin por cambio
de estado, la cual ser tratada por el siguiente flujograma. Notar el uso de variables CX
y FX, estas identifican las filas y columnas del teclado matricial.

Gua de Microcontroladores
Practicas

Figura 51 Flujograma para el tratamiento de la interrupcin por cambio de estado

Gua de Microcontroladores
Practicas
La condicin de Mismatch y la variable iLeerPuertoB sern usadas para identificar la
tecla presionada al producirse una nueva interrupcin.
El flujograma del programa principal, es el siguiente.

Figura 52 Flujograma para el manejo de teclado matricial y LCD

Para finalizar, el cdigo C generado a partir de estos flujogramas ser:


// Configuracion de bits para el LCD
sbit LCD_RS at RD2_bit;
sbit LCD_EN at RD3_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;
sbit
sbit
sbit
sbit
sbit
sbit

LCD_RS_Direction
LCD_EN_Direction
LCD_D4_Direction
LCD_D5_Direction
LCD_D6_Direction
LCD_D7_Direction

// Pines del Puerto B


//Columnas
sbit C1 at RB3_bit;
sbit C2 at RB2_bit;
sbit C3 at RB1_bit;
sbit C4 at RB0_bit;
//Filas

at
at
at
at
at
at

TRISD2_bit;
TRISD3_bit;
TRISD4_bit;
TRISD5_bit;
TRISD6_bit;
TRISD7_bit;

Gua de Microcontroladores
Practicas
sbit F1 at RB7_bit;
sbit F2 at RB6_bit;
sbit F3 at RB5_bit;
sbit F4 at RB4_bit;
void iScanTecla(void) {
Delay_Ms(20);
//Espera para evitar rebotes mecanicos del teclado
C1=0; C2=1; C3=1; C4=1;
if(!F1) iTecla=1;
if(!F2) iTecla=4;
if(!F3) iTecla=7;
if(!F4) iTecla=14;
C1=1; C2=0; C3=1; C4=1;
if(!F1) iTecla=2;
if(!F2) iTecla=5;
if(!F3) iTecla=8;
if(!F4) iTecla=0;
C1=1; C2=1; C3=0; C4=1;
if(!F1) iTecla=3;
if(!F2) iTecla=6;
if(!F3) iTecla=9;
if(!F4) iTecla=15;
C1=1; C2=1; C3=1; C4=0;
if(!F1) iTecla=10;
if(!F2) iTecla=11;
if(!F3) iTecla=12;
if(!F4) iTecla=13;
Delay_Ms(20);

//Espera para evitar rebotes mecanicos del teclado

/* Mismatch Teclado*/
C1=0; C2=0; C3=0; C4=0;
iLeePuertoB=PORTB;
}
void interrupt() {
GIE_bit=0;
if(RBIE_bit && RBIF_bit) {
RBIE_bit=0;
iScanTecla();
RBIF_bit=0;
RBIE_bit=1;
}
GIE_bit=1;
}
void iConfigPeripherals() {
TRISB = 240;
//RB4:RB7 como ingresos y RB0:RB3 como salidas
TRISD = 0;
//puerto D como salidas digitales
PORTB = 0;
PORTD = 0;
Lcd_Init();

Gua de Microcontroladores
Practicas
/* Configuracion de registros, para interrupcion por cambio de estado */
INTCON = 0x08;
//bits = 1(RBIE) y bit0 = 0(RBIF)
/* Mismatch Teclado */
C1=0; C2=0; C3=0; C4=0;
iLeePuertoB=PORTB;
GIE_bit = 1;

//Habilitacion Global de Interrupciones

}
void main() {
iConfigPeripherals();
Lcd_Out(1,6,"HOLA");
Lcd_Out(2,5,"MUNDO.");
Delay_Ms(2000);
Lcd_Cmd(_LCD_CLEAR);
while(1) {
if(iTecla>=10)
iTecla+=55;
else
iTecla+=48;
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out_Cp("La tecla presio");
Lcd_Out(2,1,"nada es:
");
Lcd_Chr(2,16,iTecla);
iTecla=0;
Delay_Ms(250);
}
}

Interrupciones Internas

Estas interrupciones son producidas internamente por el PIC, un ejemplo de estas son
las producidas por el TMR0 al ocurrir un desbordamiento de su registro de operacin.
Para esta prctica usaremos el mismo circuito que para el manejo de LEDS. En el
Subtema 10.1.
La ventaja de trabajar con una interrupcin del TMR0 es que trabaja en segundo plano,
as el PIC puede ocuparse de otras tareas y el TMR0 es atendido solo cuando lo
requiera. Para trabajar con el TMR0 deberemos configurar el registro OPTION, ya que
aqu se encuentran los parmetros con los que trabajar, PRESCALER, MODO DE
OPERACIN (temporizador o contador). Debemos habilitar tambin las interrupciones
TMR0, esto se hace en el registro INTCON.
Los clculos necesarios para la operacin del TMR0 se hacen en base al tiempo con el
que esperamos una interrupcin y la frecuencia del oscilador.
Tiempo = 4* Tosc * (256 - valor cargado en TMR0)*(prescaler)
Tocs = 1/Fosc (frecuencia del oscilador)

Gua de Microcontroladores
Practicas
Carga inicial TMR0 = 256 - (Tiempo* Fosc/4*prescaler))

Deseamos una precisin de 1 centsima de segundo y usamos un oscilador de 4MHz,


entonces los resultados de carga inicial para el TMR0 y su PRESCALER ser:

Elegimos un PRESCALER de 1:64 y una carga inicial de 100 (valor aproximado entero).
La configuracin del PRESCALER se coloca en el registro INTCON, y la carga inicial en la
subrutina de configuracin iConfigPeripherals.
GIE

PEIE

TMROI
E
1

INTE

RBIE

TMR0I
F
0

INTF

RBIF

Tabla 29 Habilitacin de interrupciones TMR0 en el registro INTCON

RBPU

INTED
G
0

T0CS

T0SE

PSA

PS2

PS1

PS0

Tabla 30 Configuracin de prescaler 1:64 para el TMR0 en el registro OPTION

La subrutina iConfigPeripherals es:

Gua de Microcontroladores
Practicas

Figura 53 Flujograma para la subrutina de configuracin

El flujograma para la atencin las interrupciones es el siguiente:

Figura 54 Flujograma para atencin de interrupciones

La subrutina para atender las interrupciones TMR0 es la siguiente, se ejecutar cada


segundo:

Gua de Microcontroladores
Practicas

Figura 55 Flujograma para atencin a las interrupciones TMR0

El programa principal solo llamar a la subrutina iConfigPeripherals, puesto que un en


segundo plano el TMR0 estar trabajando por si solo para encender y apagar los leds
conectados al PORTC.

Figura 56 Flujograma del programa principal

El cdigo C resultante de estas configuraciones y flujogramas es el siguiente:


unsigned char CENTESIMAS = 0;
void iSubTmr0(void){
//CONTADOR DE CENTESIMAS DE SEGUNDO
CENTESIMAS++;
//Se encenderan y apagaran los leds conectados al PORTC cada segundo
if(CENTESIMAS == 100){

Gua de Microcontroladores
Practicas
if(PORTC == 255){
PORTC = 0;
}else{
PORTC = 255;
}
CENTESIMAS = 0;
}
//Nuevamente asignamos la carga inicial para un tiempo de 1cs con FOSC=4Mhz
TMR0=100;
}
void interrupt() {
GIE_bit=0;
if(TMR0IE_bit && TMR0IF_bit) {
TMR0IE_bit=0;
iSubTmr0();
TMR0IF_bit=0;
TMR0IE_bit=1;
}
GIE_bit=1;
}
void iConfigPeripherals() {
TRISC = 0;
//Puerto C como salidas digitales
PORTC = 0;
//Encerar el Puerto C
/* Configuracion de interrupciones */
INTCON=0x20;
//interrupciones TMR0 habilitadas
/* Configuracion del Timer 0 */
OPTION_REG=0x85; //prescaler 1:64 al TMR0, modo temporizador
TMR0=100;
//carga inicial para un tiempo de 1cs con FOSC=4MHz
/* Habilitacion global de interrupciones */
GIE_bit=1;
}

void main() {
iConfigPeripherals();
}

Gua de Microcontroladores
Referencias y AnexosTabla 30 Configuracin de prescaler 1:64 para el TMR0 en el
registro OPTION............................................................................................................. 97

Biografas

Italo Mogrovejo, naci el 16 de Mayo de 1979 en El Triunfo/Guayas - Ecuador, curs sus estudios en la ciudad de Cuenca: Primaria
Escuela Padre Carlos Crespi, Secundaria Instituto Tcnico Superior Salesiano, Superior Universidad Politcnica Salesiana,
actualmente desarrollando su Tesis Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de
Potencia.
Se ha desarrollado en el mbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Crdova Toral 2002-2006,
2009-2011, SECAP 2006-2008, Universidad Politcnica Salesiana (UPS) 2011-Presente, Universidad del Azuay (UDA) 2013-Presente,
en las reas de conocimiento terico-prctico en: Elctrica - Electrnica y Ciencias Exactas.
Su principal experiencia radica en el Diseo e Implementacin de Sistemas Embebidos para Control y Automatizacin de Procesos
Domticos e Industriales.
Daro Espinoza, naci el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay Ecuador, curs sus estudios primarios en la ciudad de
Azogues en la Escuela Emilio Abad y en la Escuela La Salle, sus estudios secundarios los realiz en el ITS Luis Rogerio Gonzales
y en el Colegio Militar Abdn Caldern. Actualmente cursa sus estudios en la superiores de Ingeniera en Sistemas y Telemtica en la
Universidad del Azuay.
Experiencia laboral en diseo de pginas web y manejo de base de datos.

Danny Noboa, naci el 01 de Enero de 1983, en la ciudad de Milagro/Guayas Ecuador. Sus estudios primarios los realiz en la escuela
Luis Cordero, mientras que sus estudios de secundaria los realiz en el colegio 17 de Septiembre. Actualmente realiza sus estudios
superiores para Ingeniero de Sistemas y Telemtica en la Universidad del Azuay. Su amplia experiencia laboral, se destaca por hitos
como Soporte para Servidores, Soluciones de Cableado Estructurado, Soporte tcnico y Programacin Web.

Referencias
Alonso130. 2010. El Ibm Pc Y Componentes De Procesamiento. [En lnea] Abril de
2010.
http://www.buenastareas.com/ensayos/El-Ibm-Pc-y-ComponentesDe/223839.html.
Alvarez,
Jorge
Corts.
2012.
Slideshare.
[En
lnea]
http://www.slideshare.net/cortesalvarez/interrupciones-sistemas-operativos.
Andrs, Bruno y Coria
microcontroladores. 2010.

Ariel.

2010.

Arquitectura

2012.

Programacin

de

compPC. 2014. Los chipsets compPC. [En lnea] 2014.


Ibez, Luis Lucas. Historia de IBM
http://www.alu.ua.es/l/lli/articuloIBM/index.htm.

atravz

de

su

PC.

[En

lnea]

InformaticaModerna. 2014. El puerto USB3.0 caratersticas y funciones. [En lnea]


2014. http://informaticamoderna.com/El_puerto_USB.htm.
Innovador. 2011. PC de IBM: a 30 aos de revolucionar la historia. [En lnea] 2011.
http://el-innovador.blogspot.com/2011/08/pc-de-ibm-30-anos-de-revolucionar-la.html.

Gua de Microcontroladores
Referencias y AnexosTabla 30 Configuracin de prescaler 1:64 para el TMR0 en el
registro OPTION............................................................................................................. 97

Biografas

Italo Mogrovejo, naci el 16 de Mayo de 1979 en El Triunfo/Guayas - Ecuador, curs sus estudios en la ciudad de Cuenca: Primaria
Escuela Padre Carlos Crespi, Secundaria Instituto Tcnico Superior Salesiano, Superior Universidad Politcnica Salesiana,
actualmente desarrollando su Tesis Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de
Potencia.
Se ha desarrollado en el mbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Crdova Toral 2002-2006,
2009-2011, SECAP 2006-2008, Universidad Politcnica Salesiana (UPS) 2011-Presente, Universidad del Azuay (UDA) 2013-Presente,
en las reas de conocimiento terico-prctico en: Elctrica - Electrnica y Ciencias Exactas.
Su principal experiencia radica en el Diseo e Implementacin de Sistemas Embebidos para Control y Automatizacin de Procesos
Domticos e Industriales.
Daro Espinoza, naci el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay Ecuador, curs sus estudios primarios en la ciudad de
Azogues en la Escuela Emilio Abad y en la Escuela La Salle, sus estudios secundarios los realiz en el ITS Luis Rogerio Gonzales
y en el Colegio Militar Abdn Caldern. Actualmente cursa sus estudios en la superiores de Ingeniera en Sistemas y Telemtica en la
Universidad del Azuay.
Experiencia laboral en diseo de pginas web y manejo de base de datos.

Danny Noboa, naci el 01 de Enero de 1983, en la ciudad de Milagro/Guayas Ecuador. Sus estudios primarios los realiz en la escuela
Luis Cordero, mientras que sus estudios de secundaria los realiz en el colegio 17 de Septiembre. Actualmente realiza sus estudios
superiores para Ingeniero de Sistemas y Telemtica en la Universidad del Azuay. Su amplia experiencia laboral, se destaca por hitos
como Soporte para Servidores, Soluciones de Cableado Estructurado, Soporte tcnico y Programacin Web.

Microchip. 2014. PIC16F877A - 8 bit PIC Microcontrollers. [En lnea]


01
de
Febrero
de
2014.
http://www.microchip.com/wwwproducts/Devices.aspx?
dDocName=en010242.
MikroElektronika. 2014. Gua de Referencia Rpida a MikroC. [En lnea] 2014.
[Citado
el:
31
de
Enero
de
2014.]
http://www.mikroe.com/downloads/get/945/es_c_syntax_v102.pdf.
. 2014. Programacin de los microcontroladores - Microcontroladores PIC Programacin en C con ejemplos. [En lnea] 2014. [Citado el: 01 de Febrero de 2014.]
http://www.mikroe.com/chapters/view/80/capitulo-2-programacion-de-losmicrocontroladores/.
Mogrovejo, Italo. 2014. Manejo de Interrupciones. Cuenca : s.n., 2014.
. 2013. Microcontroladores de 8 bits. 2013.
. 2013. Sistemas Microprocesados. Cuenca, Azuay, Ecuador : s.n., 2013.
Otrebeh, Baos. Scribd - Caracteristicas del PIC16F628A. [En lnea] [Citado el: ]
Palacios Municio, Jos Mara, S. Romero Yesa y I. Angulo Martnez. 2006.
Microcontroladores PIC. Diseo prctico de aplicaciones. s.l. : McGraw-Hill, 2006. 847897-691-4.

Gua de Microcontroladores
Referencias y AnexosTabla 30 Configuracin de prescaler 1:64 para el TMR0 en el
registro OPTION............................................................................................................. 97

Biografas

Italo Mogrovejo, naci el 16 de Mayo de 1979 en El Triunfo/Guayas - Ecuador, curs sus estudios en la ciudad de Cuenca: Primaria
Escuela Padre Carlos Crespi, Secundaria Instituto Tcnico Superior Salesiano, Superior Universidad Politcnica Salesiana,
actualmente desarrollando su Tesis Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de
Potencia.
Se ha desarrollado en el mbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Crdova Toral 2002-2006,
2009-2011, SECAP 2006-2008, Universidad Politcnica Salesiana (UPS) 2011-Presente, Universidad del Azuay (UDA) 2013-Presente,
en las reas de conocimiento terico-prctico en: Elctrica - Electrnica y Ciencias Exactas.
Su principal experiencia radica en el Diseo e Implementacin de Sistemas Embebidos para Control y Automatizacin de Procesos
Domticos e Industriales.
Daro Espinoza, naci el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay Ecuador, curs sus estudios primarios en la ciudad de
Azogues en la Escuela Emilio Abad y en la Escuela La Salle, sus estudios secundarios los realiz en el ITS Luis Rogerio Gonzales
y en el Colegio Militar Abdn Caldern. Actualmente cursa sus estudios en la superiores de Ingeniera en Sistemas y Telemtica en la
Universidad del Azuay.
Experiencia laboral en diseo de pginas web y manejo de base de datos.

Danny Noboa, naci el 01 de Enero de 1983, en la ciudad de Milagro/Guayas Ecuador. Sus estudios primarios los realiz en la escuela
Luis Cordero, mientras que sus estudios de secundaria los realiz en el colegio 17 de Septiembre. Actualmente realiza sus estudios
superiores para Ingeniero de Sistemas y Telemtica en la Universidad del Azuay. Su amplia experiencia laboral, se destaca por hitos
como Soporte para Servidores, Soluciones de Cableado Estructurado, Soporte tcnico y Programacin Web.

Polilibros. Micontroladores de 8 y 16 bits. [En lnea] [Citado el: 2013


de
12
de
25.]
http://148.204.211.134/polilibros/portal/Polilibros/P_terminados.../SisDig2Ses/UMD/Unidad%20V/Informacion/53.htm.
Rodolfo Reyes Serrano. Universidad Autonoma del estado de Hidalgo. [En lnea]
http://repository.uaeh.edu.mx/bitstream/handle/123456789/11073.
Rojas,
Jefferson.
Galeon.
http://programacionjj.galeon.com/Mainboard/Mainboard.html.

[En

lnea]

Victoria, Clara Berg, y otros. 2001. Dispositivos USB. [En lnea] Junio de 2001.
http://grupousb.8m.com/trajabofinal.htm.
Wikipedia. PIC microcontrolador. [En lnea] [Citado el: Noviembre de 30 de 2013.]
http://en.wikipedia.org/wiki/PIC_microcontroller..
. PIC16F87X. [En lnea] [Citado el: ] http://es.wikipedia.org/wiki/PIC16F87X.
. Universal Serial Bus. [En lnea] http://es.wikipedia.org/wiki/Universal_Serial_Bus.
Yadav, Arun Kumar Singh. 2004. Microcontroller: Features and Applications. s.l. :
New Age International, 2004.

Gua de Microcontroladores
Referencias y AnexosTabla 30 Configuracin de prescaler 1:64 para el TMR0 en el
registro OPTION............................................................................................................. 97

Biografas

Italo Mogrovejo, naci el 16 de Mayo de 1979 en El Triunfo/Guayas - Ecuador, curs sus estudios en la ciudad de Cuenca: Primaria
Escuela Padre Carlos Crespi, Secundaria Instituto Tcnico Superior Salesiano, Superior Universidad Politcnica Salesiana,
actualmente desarrollando su Tesis Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de
Potencia.
Se ha desarrollado en el mbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Crdova Toral 2002-2006,
2009-2011, SECAP 2006-2008, Universidad Politcnica Salesiana (UPS) 2011-Presente, Universidad del Azuay (UDA) 2013-Presente,
en las reas de conocimiento terico-prctico en: Elctrica - Electrnica y Ciencias Exactas.
Su principal experiencia radica en el Diseo e Implementacin de Sistemas Embebidos para Control y Automatizacin de Procesos
Domticos e Industriales.
Daro Espinoza, naci el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay Ecuador, curs sus estudios primarios en la ciudad de
Azogues en la Escuela Emilio Abad y en la Escuela La Salle, sus estudios secundarios los realiz en el ITS Luis Rogerio Gonzales
y en el Colegio Militar Abdn Caldern. Actualmente cursa sus estudios en la superiores de Ingeniera en Sistemas y Telemtica en la
Universidad del Azuay.
Experiencia laboral en diseo de pginas web y manejo de base de datos.

Danny Noboa, naci el 01 de Enero de 1983, en la ciudad de Milagro/Guayas Ecuador. Sus estudios primarios los realiz en la escuela
Luis Cordero, mientras que sus estudios de secundaria los realiz en el colegio 17 de Septiembre. Actualmente realiza sus estudios
superiores para Ingeniero de Sistemas y Telemtica en la Universidad del Azuay. Su amplia experiencia laboral, se destaca por hitos
como Soporte para Servidores, Soluciones de Cableado Estructurado, Soporte tcnico y Programacin Web.

Anexos

Anexo

Descripcin

ANEXO CIRCUITOS

Contiene simulaciones para usar en


el software Proteus.
Adems, los circuitos para cada una
de las prcticas del captulo 10.
Contiene varios datasheets de la
familia PIC 16, 17 y 18.
Libros y documentos de apoyo.

ANEXO DATASHEETS
ANEXO GUIAS
ANEXO SOFTWARE

Contiene los instaladores de los


programas:

PROTEUS.
MPLAB.
MIKROC.

ndice de Tablas y Figuras


Figura 1 Diagrama de Bloques de un Sistema Microprocesado (Mogrovejo, 2013)..........3
Figura 2 Buses de datos, direcciones y control................................................................4

Gua de Microcontroladores
Referencias y AnexosTabla 30 Configuracin de prescaler 1:64 para el TMR0 en el
registro OPTION............................................................................................................. 97

Biografas

Italo Mogrovejo, naci el 16 de Mayo de 1979 en El Triunfo/Guayas - Ecuador, curs sus estudios en la ciudad de Cuenca: Primaria
Escuela Padre Carlos Crespi, Secundaria Instituto Tcnico Superior Salesiano, Superior Universidad Politcnica Salesiana,
actualmente desarrollando su Tesis Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de
Potencia.
Se ha desarrollado en el mbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Crdova Toral 2002-2006,
2009-2011, SECAP 2006-2008, Universidad Politcnica Salesiana (UPS) 2011-Presente, Universidad del Azuay (UDA) 2013-Presente,
en las reas de conocimiento terico-prctico en: Elctrica - Electrnica y Ciencias Exactas.
Su principal experiencia radica en el Diseo e Implementacin de Sistemas Embebidos para Control y Automatizacin de Procesos
Domticos e Industriales.
Daro Espinoza, naci el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay Ecuador, curs sus estudios primarios en la ciudad de
Azogues en la Escuela Emilio Abad y en la Escuela La Salle, sus estudios secundarios los realiz en el ITS Luis Rogerio Gonzales
y en el Colegio Militar Abdn Caldern. Actualmente cursa sus estudios en la superiores de Ingeniera en Sistemas y Telemtica en la
Universidad del Azuay.
Experiencia laboral en diseo de pginas web y manejo de base de datos.

Danny Noboa, naci el 01 de Enero de 1983, en la ciudad de Milagro/Guayas Ecuador. Sus estudios primarios los realiz en la escuela
Luis Cordero, mientras que sus estudios de secundaria los realiz en el colegio 17 de Septiembre. Actualmente realiza sus estudios
superiores para Ingeniero de Sistemas y Telemtica en la Universidad del Azuay. Su amplia experiencia laboral, se destaca por hitos
como Soporte para Servidores, Soluciones de Cableado Estructurado, Soporte tcnico y Programacin Web.

Figura 3 Mainboard (Rojas)...................................................................7


Figura 4 Lnea de tiempos en la que se representa las latencias de
interrupciones durante el procesamiento normal..........................................................11
Figura 5 Representacin del procesamiento del programa principal y el de una
interrupcin................................................................................................................... 11
Figura 6 Representacin figurativa de los tipos de interrupciones................................12
Figura 7 Circuito para manejar 3 interrupciones...........................................................12
Figura 8 Comparacin de una salida ideal y de una con rebotes...................................13
Figura 9 Resolucin del Ejercicio 2................................................................................13
Figura 10 Resolucin del Ejercicio 3..............................................................................15
Figura 11 Ejemplificacin de una Interrupcin de hardware..........................................15
Figura 12 Diagrama de Pines........................................................................................17
Figura 13 Modela Cascada 8259A, (Microprocesadores Intel, Barry B. Brey).................19
Figura 14 Diagrama de modo real, Clase micro controladores. Ing. talo Mogrovejo.....22

Gua de Microcontroladores
Referencias y AnexosTabla 30 Configuracin de prescaler 1:64 para el TMR0 en el
registro OPTION............................................................................................................. 97

Biografas

Italo Mogrovejo, naci el 16 de Mayo de 1979 en El Triunfo/Guayas - Ecuador, curs sus estudios en la ciudad de Cuenca: Primaria
Escuela Padre Carlos Crespi, Secundaria Instituto Tcnico Superior Salesiano, Superior Universidad Politcnica Salesiana,
actualmente desarrollando su Tesis Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de
Potencia.
Se ha desarrollado en el mbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Crdova Toral 2002-2006,
2009-2011, SECAP 2006-2008, Universidad Politcnica Salesiana (UPS) 2011-Presente, Universidad del Azuay (UDA) 2013-Presente,
en las reas de conocimiento terico-prctico en: Elctrica - Electrnica y Ciencias Exactas.
Su principal experiencia radica en el Diseo e Implementacin de Sistemas Embebidos para Control y Automatizacin de Procesos
Domticos e Industriales.
Daro Espinoza, naci el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay Ecuador, curs sus estudios primarios en la ciudad de
Azogues en la Escuela Emilio Abad y en la Escuela La Salle, sus estudios secundarios los realiz en el ITS Luis Rogerio Gonzales
y en el Colegio Militar Abdn Caldern. Actualmente cursa sus estudios en la superiores de Ingeniera en Sistemas y Telemtica en la
Universidad del Azuay.
Experiencia laboral en diseo de pginas web y manejo de base de datos.

Danny Noboa, naci el 01 de Enero de 1983, en la ciudad de Milagro/Guayas Ecuador. Sus estudios primarios los realiz en la escuela
Luis Cordero, mientras que sus estudios de secundaria los realiz en el colegio 17 de Septiembre. Actualmente realiza sus estudios
superiores para Ingeniero de Sistemas y Telemtica en la Universidad del Azuay. Su amplia experiencia laboral, se destaca por hitos
como Soporte para Servidores, Soluciones de Cableado Estructurado, Soporte tcnico y Programacin Web.

Figura 15 Diagrama Modo protegido, Clase de Microcontroladores. Ing.


talo Mogrovejo..................................................................................23
Figura 16 Cable puerto Paralelo....................................................................................29
Figura 17 Composicin del Puerto Paralelo....................................................................29
Figura 18 Conector DB9................................................................................................ 32
Figura 19 Pines del conector DB9..................................................................................32
Figura 20 UBS1.1........................................................................................................... 36
Figura 21 USB 2.0.......................................................................................................... 37
Figura 22 USB 2.0 On The Go........................................................................................38
Figura 23 USB 2.0 On The Go (Diferentes Tipos de Conexiones)...................................39
Figura 24 USB 3.0 Super Speed.....................................................................................40
Figura 25 Conectores Tipo A (Izquierda), Tipo B (Derecha)............................................44
Figura 26 Diagrama de Bloques del PIC17CXXX............................................................57
Figura 27 Familia de Microcontroladores PIC17CXXX.....................................................58

Gua de Microcontroladores
Referencias y AnexosTabla 30 Configuracin de prescaler 1:64 para el TMR0 en el
registro OPTION............................................................................................................. 97

Biografas

Italo Mogrovejo, naci el 16 de Mayo de 1979 en El Triunfo/Guayas - Ecuador, curs sus estudios en la ciudad de Cuenca: Primaria
Escuela Padre Carlos Crespi, Secundaria Instituto Tcnico Superior Salesiano, Superior Universidad Politcnica Salesiana,
actualmente desarrollando su Tesis Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de
Potencia.
Se ha desarrollado en el mbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Crdova Toral 2002-2006,
2009-2011, SECAP 2006-2008, Universidad Politcnica Salesiana (UPS) 2011-Presente, Universidad del Azuay (UDA) 2013-Presente,
en las reas de conocimiento terico-prctico en: Elctrica - Electrnica y Ciencias Exactas.
Su principal experiencia radica en el Diseo e Implementacin de Sistemas Embebidos para Control y Automatizacin de Procesos
Domticos e Industriales.
Daro Espinoza, naci el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay Ecuador, curs sus estudios primarios en la ciudad de
Azogues en la Escuela Emilio Abad y en la Escuela La Salle, sus estudios secundarios los realiz en el ITS Luis Rogerio Gonzales
y en el Colegio Militar Abdn Caldern. Actualmente cursa sus estudios en la superiores de Ingeniera en Sistemas y Telemtica en la
Universidad del Azuay.
Experiencia laboral en diseo de pginas web y manejo de base de datos.

Danny Noboa, naci el 01 de Enero de 1983, en la ciudad de Milagro/Guayas Ecuador. Sus estudios primarios los realiz en la escuela
Luis Cordero, mientras que sus estudios de secundaria los realiz en el colegio 17 de Septiembre. Actualmente realiza sus estudios
superiores para Ingeniero de Sistemas y Telemtica en la Universidad del Azuay. Su amplia experiencia laboral, se destaca por hitos
como Soporte para Servidores, Soluciones de Cableado Estructurado, Soporte tcnico y Programacin Web.

Figura 28 Caractersticas PIC17CXXX.................................................59


Figura 29 Diagrama PIC 18.................................................................60
Figura 30 Comparativa de Arquitecturas Harvard y Von Neumann................................69
Figura 31 Pines del PIC16F877A (Microchip, 2014)........................................................71
Figura 32 Proceso que se sigue desde C hasta el lenguaje mquina (MikroElektronika,
2014)............................................................................................................................ 75
Figura 33 Circuito para el manejo de LEDS...................................................................78
Figura 34 Flujograma para el manejo de LEDS..............................................................78
Figura 35 Flujograma para la subrutina de configuracin..............................................78
Figura 36 Flujograma para el manejo de Repeticiones..................................................80
Figura 37 Circuito para manejo de Pulsadores..............................................................81
Figura 38 Flujograma para el manejo de Pulsadores.....................................................82
Figura 39 Flujograma para la subrutina de configuracin..............................................82
Figura 40 Circuito para el manejo de un Display de nodo comn................................84

Gua de Microcontroladores
Referencias y AnexosTabla 30 Configuracin de prescaler 1:64 para el TMR0 en el
registro OPTION............................................................................................................. 97

Biografas

Italo Mogrovejo, naci el 16 de Mayo de 1979 en El Triunfo/Guayas - Ecuador, curs sus estudios en la ciudad de Cuenca: Primaria
Escuela Padre Carlos Crespi, Secundaria Instituto Tcnico Superior Salesiano, Superior Universidad Politcnica Salesiana,
actualmente desarrollando su Tesis Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de
Potencia.
Se ha desarrollado en el mbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Crdova Toral 2002-2006,
2009-2011, SECAP 2006-2008, Universidad Politcnica Salesiana (UPS) 2011-Presente, Universidad del Azuay (UDA) 2013-Presente,
en las reas de conocimiento terico-prctico en: Elctrica - Electrnica y Ciencias Exactas.
Su principal experiencia radica en el Diseo e Implementacin de Sistemas Embebidos para Control y Automatizacin de Procesos
Domticos e Industriales.
Daro Espinoza, naci el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay Ecuador, curs sus estudios primarios en la ciudad de
Azogues en la Escuela Emilio Abad y en la Escuela La Salle, sus estudios secundarios los realiz en el ITS Luis Rogerio Gonzales
y en el Colegio Militar Abdn Caldern. Actualmente cursa sus estudios en la superiores de Ingeniera en Sistemas y Telemtica en la
Universidad del Azuay.
Experiencia laboral en diseo de pginas web y manejo de base de datos.

Danny Noboa, naci el 01 de Enero de 1983, en la ciudad de Milagro/Guayas Ecuador. Sus estudios primarios los realiz en la escuela
Luis Cordero, mientras que sus estudios de secundaria los realiz en el colegio 17 de Septiembre. Actualmente realiza sus estudios
superiores para Ingeniero de Sistemas y Telemtica en la Universidad del Azuay. Su amplia experiencia laboral, se destaca por hitos
como Soporte para Servidores, Soluciones de Cableado Estructurado, Soporte tcnico y Programacin Web.

Figura 41 Flujograma para el manejo de Display nodo Comn........84


Figura 42 Circuito para manejo de LCD..............................................86
Figura 43 Flujograma de la subrutina de configuracin.................................................86
Figura 44 Flujograma para el manejo del LCD...............................................................87
Figura 45 Circuito para manejo de sonido.....................................................................88
Figura 46 Flujograma para la subrutina de configuracin..............................................88
Figura 47 Flujograma para el manejo de sonidos..........................................................89
Figura 48 Circuito para el manejo de un teclado matricial y LCD..................................90
Figura 49 Flujograma para la subrutina de configuracin..............................................91
Figura 50 Flujograma para el tratamiento de interrupciones.........................................92
Figura 51 Flujograma para el tratamiento de la interrupcin por cambio de estado.....93
Figura 52 Flujograma para el manejo de teclado matricial y LCD..................................94
Figura 53 Flujograma para la subrutina de configuracin..............................................98
Figura 54 Flujograma para atencin de interrupciones.................................................98

Gua de Microcontroladores
Referencias y AnexosTabla 30 Configuracin de prescaler 1:64 para el TMR0 en el
registro OPTION............................................................................................................. 97

Biografas

Italo Mogrovejo, naci el 16 de Mayo de 1979 en El Triunfo/Guayas - Ecuador, curs sus estudios en la ciudad de Cuenca: Primaria
Escuela Padre Carlos Crespi, Secundaria Instituto Tcnico Superior Salesiano, Superior Universidad Politcnica Salesiana,
actualmente desarrollando su Tesis Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de
Potencia.
Se ha desarrollado en el mbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Crdova Toral 2002-2006,
2009-2011, SECAP 2006-2008, Universidad Politcnica Salesiana (UPS) 2011-Presente, Universidad del Azuay (UDA) 2013-Presente,
en las reas de conocimiento terico-prctico en: Elctrica - Electrnica y Ciencias Exactas.
Su principal experiencia radica en el Diseo e Implementacin de Sistemas Embebidos para Control y Automatizacin de Procesos
Domticos e Industriales.
Daro Espinoza, naci el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay Ecuador, curs sus estudios primarios en la ciudad de
Azogues en la Escuela Emilio Abad y en la Escuela La Salle, sus estudios secundarios los realiz en el ITS Luis Rogerio Gonzales
y en el Colegio Militar Abdn Caldern. Actualmente cursa sus estudios en la superiores de Ingeniera en Sistemas y Telemtica en la
Universidad del Azuay.
Experiencia laboral en diseo de pginas web y manejo de base de datos.

Danny Noboa, naci el 01 de Enero de 1983, en la ciudad de Milagro/Guayas Ecuador. Sus estudios primarios los realiz en la escuela
Luis Cordero, mientras que sus estudios de secundaria los realiz en el colegio 17 de Septiembre. Actualmente realiza sus estudios
superiores para Ingeniero de Sistemas y Telemtica en la Universidad del Azuay. Su amplia experiencia laboral, se destaca por hitos
como Soporte para Servidores, Soluciones de Cableado Estructurado, Soporte tcnico y Programacin Web.

Figura 55 Flujograma para atencin a las interrupciones TMR0.........99


Figura 56 Flujograma del programa principal.....................................99

Tabla 1 Aparicin Computadoras IBM..............................................................................5


Tabla 2 Hechos importantes en lnea de tiempo para los PC's.........................................6
Tabla 3 Descripcin de pines del 8259A........................................................................18
Tabla 4 Interrupciones ms Comunes...........................................................................24
Tabla 5 Registro 0x378 del LPT......................................................................................30
Tabla 6 Registro 0x379 del LPT......................................................................................30
Tabla 7 Registro 0x379A del LPT...................................................................................30
Tabla 8 Pines del Puerto Paralelo...................................................................................31
Tabla 9 Conexin para transmisin entre 2 equipos......................................................34
Tabla 10 Caractersticas Fireware vs USB......................................................................43

Gua de Microcontroladores
Referencias y AnexosTabla 30 Configuracin de prescaler 1:64 para el TMR0 en el
registro OPTION............................................................................................................. 97

Biografas

Italo Mogrovejo, naci el 16 de Mayo de 1979 en El Triunfo/Guayas - Ecuador, curs sus estudios en la ciudad de Cuenca: Primaria
Escuela Padre Carlos Crespi, Secundaria Instituto Tcnico Superior Salesiano, Superior Universidad Politcnica Salesiana,
actualmente desarrollando su Tesis Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de
Potencia.
Se ha desarrollado en el mbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Crdova Toral 2002-2006,
2009-2011, SECAP 2006-2008, Universidad Politcnica Salesiana (UPS) 2011-Presente, Universidad del Azuay (UDA) 2013-Presente,
en las reas de conocimiento terico-prctico en: Elctrica - Electrnica y Ciencias Exactas.
Su principal experiencia radica en el Diseo e Implementacin de Sistemas Embebidos para Control y Automatizacin de Procesos
Domticos e Industriales.
Daro Espinoza, naci el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay Ecuador, curs sus estudios primarios en la ciudad de
Azogues en la Escuela Emilio Abad y en la Escuela La Salle, sus estudios secundarios los realiz en el ITS Luis Rogerio Gonzales
y en el Colegio Militar Abdn Caldern. Actualmente cursa sus estudios en la superiores de Ingeniera en Sistemas y Telemtica en la
Universidad del Azuay.
Experiencia laboral en diseo de pginas web y manejo de base de datos.

Danny Noboa, naci el 01 de Enero de 1983, en la ciudad de Milagro/Guayas Ecuador. Sus estudios primarios los realiz en la escuela
Luis Cordero, mientras que sus estudios de secundaria los realiz en el colegio 17 de Septiembre. Actualmente realiza sus estudios
superiores para Ingeniero de Sistemas y Telemtica en la Universidad del Azuay. Su amplia experiencia laboral, se destaca por hitos
como Soporte para Servidores, Soluciones de Cableado Estructurado, Soporte tcnico y Programacin Web.

Tabla 11 Descripcin Fsica del Cable


Tabla
12 Tipos de Conectores......................................................................45
Tabla 13 USB Especificaciones.....................................................................................46
Tabla 14 PIC 16F54, 16F57, 16F59...............................................................................50
Tabla 15 PIC 16F873, 16F874, 16F876, 16F877............................................................52
Tabla 16 Caractersticas 16F871..................................................................................53
Tabla 17 Caractersticas 16F873..................................................................................53
Tabla 18 Caractersticas 16F877...................................................................................55
Tabla 19 Caractersticas PIC18F242..............................................................................62
Tabla 20 Caractersticas PIC18f252..............................................................................63
Tabla 21 Caractersticas PIC18F452.............................................................................64
Tabla 22 Caractersticas PIC18F2550...........................................................................65
Tabla 23 Caractersticas PIC18F4550...........................................................................66
Tabla 24 Caractersticas PIC18F4550...........................................................................67

Gua de Microcontroladores
Referencias y AnexosTabla 30 Configuracin de prescaler 1:64 para el TMR0 en el
registro OPTION............................................................................................................. 97

Biografas

Italo Mogrovejo, naci el 16 de Mayo de 1979 en El Triunfo/Guayas - Ecuador, curs sus estudios en la ciudad de Cuenca: Primaria
Escuela Padre Carlos Crespi, Secundaria Instituto Tcnico Superior Salesiano, Superior Universidad Politcnica Salesiana,
actualmente desarrollando su Tesis Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de
Potencia.
Se ha desarrollado en el mbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Crdova Toral 2002-2006,
2009-2011, SECAP 2006-2008, Universidad Politcnica Salesiana (UPS) 2011-Presente, Universidad del Azuay (UDA) 2013-Presente,
en las reas de conocimiento terico-prctico en: Elctrica - Electrnica y Ciencias Exactas.
Su principal experiencia radica en el Diseo e Implementacin de Sistemas Embebidos para Control y Automatizacin de Procesos
Domticos e Industriales.
Daro Espinoza, naci el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay Ecuador, curs sus estudios primarios en la ciudad de
Azogues en la Escuela Emilio Abad y en la Escuela La Salle, sus estudios secundarios los realiz en el ITS Luis Rogerio Gonzales
y en el Colegio Militar Abdn Caldern. Actualmente cursa sus estudios en la superiores de Ingeniera en Sistemas y Telemtica en la
Universidad del Azuay.
Experiencia laboral en diseo de pginas web y manejo de base de datos.

Danny Noboa, naci el 01 de Enero de 1983, en la ciudad de Milagro/Guayas Ecuador. Sus estudios primarios los realiz en la escuela
Luis Cordero, mientras que sus estudios de secundaria los realiz en el colegio 17 de Septiembre. Actualmente realiza sus estudios
superiores para Ingeniero de Sistemas y Telemtica en la Universidad del Azuay. Su amplia experiencia laboral, se destaca por hitos
como Soporte para Servidores, Soluciones de Cableado Estructurado, Soporte tcnico y Programacin Web.

Tabla 25 Caractersticas relevantes del PIC16F877 (Microchip, 2014).


.......................................................................................................... 70
Tabla 26 Descripcin de Pines del PIC16F877A (Microchip, 2014).................................73
Tabla 27 Cuadro comparativo, Ensamblador vs C. (MikroElektronika, 2014).................74
Tabla 28 Configuracin del registro INTCON, para habilitar RBIE...................................91
Tabla 29 Habilitacin de interrupciones TMR0 en el registro INTCON............................97