Sunteți pe pagina 1din 24

1 UNIDAD. ARQUITECTURA DE MICROCONTROLADORES.

1.1 DIFERENCIA ENTRE MICROCOMPUTADORA, MICROPROCESADOR Y


MICROCONTROLADOR.

El Microcontrolador est formado por un


Microprocesador y el conjunto de subsistemas que
normalmente requiere un microprocesador:
memoria voltil (calculo temporal), memoria no
voltil (donde almacena el programa), entrada y
salida.

Microprocesador. Es un dispositivo
integrado digital capaz de interpretar y
ejecutar un conjunto secuencial de
instrucciones (programa). Bsicamente
contiene circuitos electrnicos que
realizan operaciones aritmticas, lgicas y
de control. Se trata de un sistema muy
complejo, por eso debe ir integrado en
chips.

Una microcomputadora o microordenador es una


computadora pequea, con un microprocesador como
su unidad central de procesamiento (CPU).2 El
microprocesador incluye los circuitos de
almacenamiento (o memoria cach) y entrada/salida
en el mismo circuito integrado (o chip).

El microprocesador es la forma ms simple, para poder crear un microcontrolador,


la microcomputadora es una forma compleja, que contiene microprocesadores y
microcontroladores

1
1.2 Caractersticas y aplicaciones de los microcontroladores.

Los microcontroladores estn siendo empleados en multitud de sistemas


presentes en nuestra vida diaria, como pueden ser juguetes, horno microondas,
frigorficos, televisores, computadoras, impresoras, mdems, el sistema de
arranque de nuestro coche, etc. Y otras aplicaciones con las que seguramente no
estaremos tan familiarizados como instrumentacin electrnica, control de
sistemas en una nave espacial, etc. Una aplicacin tpica podra emplear varios
microcontroladores para controlar pequeas partes del sistema. Estos pequeos
controladores podran comunicarse entre ellos y con un procesador central,
probablemente ms potente, para compartir la informacin y coordinar sus
acciones, como, de hecho, ocurre ya habitualmente en cualquier PC.

2
1.2 Tipos de arquitecturas computacionales.
Arquitectura de von Neumann
Tradicionalmente los sistemas con microprocesadores se basan en esta
arquitectura, en la cual la unidad central de proceso (CPU), est conectada a una
memoria principal nica (casi siempre slo RAM) donde se guardan las
instrucciones del programa y los datos. A dicha memoria se accede a travs de un
sistema de buses nico (control, direcciones y datos).

Las principales limitaciones que nos encontramos con la arquitectura Von


Neumann son:
1.-La limitacin de la longitud de las instrucciones por el bus de datos, que hace
que el microprocesador tenga que realizar varios accesos a memoria para buscar
instrucciones complejas.
2.-La limitacin de la velocidad de operacin a causa del bus nico para datos e
instrucciones que no deja acceder simultneamente a unos y otras, lo cual impide
superponer ambos tiempos de acceso

Arquitectura Harvard
Este modelo, que utilizan 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.

3
Ventajas de esta arquitectura:
* El tamao de las instrucciones no est relacionado con el de los datos, y por lo
tanto puede ser optimizado para que cualquier instruccin ocupe una sola posicin
de memoria de programa, logrando as mayor velocidad y menor longitud de
programa.
* El tiempo de acceso a las instrucciones puede superponerse con el de los datos,
logrando una mayor velocidad en cada operacin.
1.4 Tipos de microcontroladores y sus fabricantes.

Los microcontroladores ms populares se encuentran, sin duda, entre las mejores


elecciones:

8048 (Intel). Es el padre de los microcontroladores actuales, el primero de todos.


Su
precio, disponibilidad y herramientas de desarrollo hacen que todava sea muy
popular.

8051 (Intel y otros). Es sin duda el microcontrolador ms popular. Fcil de


programar, pero potente. Est bien documentado y posee cientos de variantes e
incontables herramientas de desarrollo.

4
80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares
microprocesadores 8086 y 8088. Su principal ventaja es que permiten aprovechar
las herramientas de desarrollo para PC.

68HC11 (Motorola y Toshiba). Es un microcontrolador de 8 bits potente y popular


con gran cantidad de variantes.

683xx (Motorola). Surgido a partir de la popular familia 68k, a la que se incorporan


algunos perifricos. Son microcontroladores de altsimas prestaciones.

PIC (Microchip). Familia de microcontroladores que gana popularidad da a da.


Fueron los primeros microcontroladores RISC.

1.5 Componentes del microcontrolador


Memoria del programa
Por lo general es de tipo rom flash. aqu se almacenan dats de instrucciones que
han de ser ejecutadas por el microcontrolador. es de tipo no volatil es decir que su
informacion no se brra aunque desaparezca la alimentacion. El tamao varia
dependiendo del fabricante y gama del microcontrolador
Memoria EEPROM de datos
Es una pequea area de memoria de datos de lectura y escritura no volatil en la
cual se puede guardar unformacion que ha de ser utilizada en cada ejecucion del
programa. El tamao varia dependendo del fabricante y gama del microcontrolador
Modulos
Dependiendo del coste y de la gama del microcontrolador este se incorpora
ciertos modulor, los cuales son utilizados para la aplicacin especificas como:
rs232,conversion A/D comunicacin USB comunicacin J2C,comparadores
interupciones, nucleos de control de motores etc.
Cpu
Unidad central de procesamiento. Es la encargada de controlar todo el sistema del
microcontrolados, es decir ejecuta cada instruccin.
Memoria de datos ram
Se destina para almacenar variables y datos necesarios durante la ejecucion de
algun priceso. Es volatil, la informacion no desaparece cuando no hay
alimentacion. El tamao varia dependiendo del fabricante y gama del
microcontrolador
Puertos de entrada y salida

5
Con los pines de entrada/salida el micro PIc puede monitorizar y controlar otros
dispositivos, para aadir flexibilidad al micro muchos de sus pines estan
multiplexados con funciones alternativas la direccion del pin es controlado por el
registro de direccion de datos llamado TRIS, TRISX<n> controlada la direccion del
pin n del puerto x un 1 indica que el pin es de entrada y un 0 inica que es de salida

1.5.1 Registros internos.

La MAR :es el registro de direcciones de memoria (memory adress register).


MBR: Este registro es el buffer de datos de la memoria (memory buffer register).
ROP: Este registro contiene el cdigo de operacin de la ALU

El Registro de Instruccin (RI) almacena la instruccin que est siendo ejecutada


por la CPU. El RI es invisible para el programador.

El Acumulador (ACC: Accumulator), es el registro asociado a al operaciones


aritmticas y lgicas que se pueden realizar en la ALU. En cualquier operacin,
uno de los adatos debe estar en el ACC y el resultado se obtiene en ACC.
El ACC no existe en los microcontroladores PIc que tienen en cambio en el
registro W (Working Register), con caractersticas muy parecidas a las del ACC.

El Registro de estado (STATUS) agrupa los bits indicadores de las caractersticas


del resultado de las operaciones aritmticas y lgicas realizadas en la ALU. Entre
los indicadores estn el signo el resultado ( si es + o -) si el resultado es 0, si hay
acarreos o prstamos, el tipo de paridad (par o Impar) del resultado, etc.

El contador de Programa (PC. Program Counter) es el registro de la CPU donde


se almacenan direcciones de instrucciones. cada vez que la CPU busca una
instruccin en la memoria, el PC se incrementa, apuntando as a la siguiente
instruccin. En un instante de tiempo dado, el PC contiene la direccin de las
instruccin que ser ejecutada a continuacin. Las instrucciones de transferencia
de control modifican el valor del PC.

El registro de Direcciones de Datos (RDD) almacenan direcciones de datos


situados en la memoria. este registro de datos (RDD) amacena direcciones de
datos situados en la memoria. este registro es indispensable para el
direccionamiento indirecto de datos en al memoria. El RDD toma diferentes
nombres segn el micro controlador . En los PIC, el RDD es el registro FSR (File
Select Register).

1.5.2 Tipos y distribucin de las memorias internas.

6
La memoria RAM est destinada al almacenamiento de informacin temporal que
ser utilizada por el procesador para realizar clculos u otro tipo de operaciones
lgicas. En el espacio de direcciones de memoria RAM se ubican adems los
registros de trabajo del procesador y los de configuracin y trabajo de los distintos
perifricos del microcontrolador. El tipo de memoria utilizada en las memorias
RAM de los microcontroladores es SRAM, lo que evita tener que implementar
sistemas de refrescamiento, poseen pequeas cantidades de memoria RAM.

Memoria PROM (Programable Read-Only Memory) tambin conocida como OTP


(One Time Programable). Este tipo de memoria, tambin es conocida como PROM
o simplemente ROM. Los microcontroladores con memoria OTP se pueden
programar una sola vez, con algn tipo de programador. Se utilizan en sistemas
donde el programa no requiera futuras actualizaciones y para series relativamente
pequeas, donde la variante de mscara sea muy costosa, tambin para sistemas
que requieren socializacin de datos, almacenados como constantes en la
memoria de programas.

Memoria EPROM (Erasable Programmable Read Only Memory). Los


microcontroladores con este tipo de memoria son muy fciles de identificar porque
su encapsulado es de cermica y llevan encima una ventanita de vidrio desde la
cual puede verse la oblea de silicio del microcontrolador. Se fabrican as porque la
memoria EPROM es reprogramable, pero antes debe borrase, y para ello hay que
exponerla a una fuente de luz ultravioleta, el proceso de grabacin es similar al
empleado para las memorias OTP.
Al aparecer tecnologas menos costosas y ms flexibles, como las memorias
EEPROM y FLASH, este tipo de memoria han cado en desuso, se utilizaban en
sistemas que requieren actualizaciones del programa y para los procesos de
desarrollo y puesta a punto.

Memoria flash. En el campo de las memorias reprogramables para


microcontroladores, son el ltimo avance tecnolgico en uso a gran escala, y han
sustituido a los microcontroladores con memoria EEPROM.
1.5.3 Perifricos
Entradas y salidas de propsito general
Tambin conocidos como puertos de E/S, generalmente agrupadas en puertos de
8 bits de longitud, permiten leer datos del exterior o escribir en ellos desde el
interior del microcontrolador, el destino habitual es el trabajo con dispositivos
simples como rels, LED, o cualquier otra cosa que se le ocurra al programador.
Algunos puertos de E/S tienen caractersticas especiales que le permiten manejar
salidas con determinados requerimientos de corriente, o incorporan mecanismos
especiales de interrupcin para el procesador
Temporizadores y contadores

7
Son circuitos sincrnicos para el conteo de los pulsos que llegan a su poder para
conseguir la entrada de reloj. Si la fuente de un gran conteo es el oscilador interno
del microcontrolador es comn que no tengan un pin asociado, y en este caso
trabajan como temporizadores. Por otra parte, cuando la fuente de conteo es
externa, entonces tienen asociado un pin configurado como entrada, este es el
modo contador.
Conversor analgico/digital
Como es muy frecuente el trabajo con seales analgicas, stas deben ser
convertidas a digital y por ello muchos microcontroladores incorporan un conversor
analgico-digital, el cual se utiliza para tomar datos de varias entradas diferentes
que se seleccionan mediante un multiplexor.
Las resoluciones ms frecuentes son 8 y 10 bits, que son suficientes para
aplicaciones sencillas. Para aplicaciones en control e instrumentacin estn
disponibles resoluciones de 12bit, 16bit y 24bit. 6 Tambin es posible conectar un
convertidor externo, en caso de necesidad
Puerto serie
Este perifrico est presente en casi cualquier microcontrolador, normalmente en
forma de UART (Universal Asynchronous Receiver Transmitter)
o USART (Universal Synchronous Asynchronous Receiver Transmitter)
dependiendo de si permiten o no el modo sincrnico de comunicacin.
SPI
Este tipo de perifrico se utiliza para comunicar al microcontrolador con otros
microcontroladores o con perifricos externos conectados a l, por medio de una
interfaz muy sencilla. Hay solo un nodo controlador que permite iniciar cualquier
transaccin, lo cual es una desventaja en sistemas complejos, pero su sencillez
permite el aislamiento galvnico de forma directa por medio de optoacopladores.

I2C
Cumple las mismas funciones que el SPI, pero requiere menos seales de
comunicacin y cualquier nodo puede iniciar una transaccin. Es muy utilizado
para conectar las tarjetas grficas de las computadoras personales con los
monitores, para que estos ltimos informen de sus prestaciones y permitir la
autoconfiguracin del sistema de vdeo.
USB
Los microcontroladores son los que han permitido la existencia de este sistema de
comunicacin. Es un sistema que trabaja por polling (monitorizacin) de un
conjunto de perifricos inteligentes por parte de un amo, que es normalmente un
computador personal. Cada modo inteligente est gobernado inevitablemente por
un microcontrolador.
Ethernet

8
Es el sistema ms extendido en el mundo para redes de rea local cableadas. Los
microcontroladores ms poderosos de 32 bits se usan para implementar
perifricos lo suficientemente poderosos como para que puedan ser accesados
directamente por la red. Muchos de los enrutadores caseros de pequeas
empresas estn construidos sobre la base de un microcontrolador que hace del
cerebro del sistema.
Can
Este protocolo es del tipo CSMA/CD con tolerancia a elevados niveles de tensin
de modo comn y orientado al tiempo real. Este protocolo es el estndar ms
importante en la industria automotriz (OBD). Tambin se usa como capa fsica
del "field bus" para el control industrial.
Modulador de ancho de pulsos
Los PWM (Pulse Width Modulator) son perifricos muy tiles sobre todo para el
control de motores, sin embargo hay un grupo de aplicaciones que pueden
realizarse con este perifrico, dentro de las cuales podemos citar: inversin DC/AC
para UPS, conversin digital analgica D/A, control regulado de luz (dimming)
entre otras.
1.5.4 Instrucciones del microcontrolador.
f: cualquier registro del microcontrolador
W: registro de trabajo
b: posicion de un bit en el registro 'f'
d: destino, puede ser 'f' (d=1) o 'W' (d=0)
etiqueta: grupo de caracteres que marcan el inicio de una parte del programa
[]: opcional
: posicion de un bit dentro de un registro

Instrucciones orientadas a registros

ADDWF: Suma W y f
Suma el contenido del registro 'W' y el registro 'f'. Si "d" es 0, el resultado se
almacena en el registro W. Si 'd' es 1 el resutado se almacena en el registro 'f'.
Sintaxis: [etiqueta] ADDWF f,d
Operacin: (W) + (f) --> (destino)
Flags afectados: C, DC, Z
Ejemplo: ADDWF REG,1
Antes de la instruccin: W=0x03, REG=0x04
Despus de la instruccin: W=0x03, REG=0x07

ANDWF: W AND f
Realiza la operacin lgica AND entre el registro W y el registro "f". Si "d" es 0 el
resultado se almacena en el registro W. Si "d" es 1, el resultado se almacena en el
registro "f".
Sintaxis: [etiqueta] ANDWF f,d
Operacin: (W) AND (f) --> (destino)

9
Flags afectados: Z
Ejemplo: ANDWF REG,1
Antes de la instruccin: W=0x17, REG= 0xC2
Despus de la instruccin: W=0x17, REG= 0x02

CLRF: Borra un registro


Borra el contenido del registro 'f' y se activa el flag Z.
Sintaxis: [etiqueta] CLRF f
Flags afectados: Z
Ejemplo: CLRF REG
Antes de la instruccin: REG=0x54
Despus de la instruccin: REG=0x00, Z=1

CLRW: Borra el registro de trabajo W


Borra el contenido del registro 'W' y se activa el flag Z. Esta instruccion no tiene
operandos.
Sintaxis: [etiqueta] CLRW
Flags afectados: Z
Ejemplo: CLRW
Antes de la instruccin: W=0x54
Despus de la instruccin: W=0x00, Z=1

COMF: Complementa el registro f


El contenido del registro 'f' se complementa. Si d=0 el resultado se almacena en el
registro W. Si d=1 el resultado se almacena en el registro 'f'.
Sintaxis: [etiqueta] COMF f,d
Flags afectados: Z
Ejemplo: COMF REG,0
Antes de la instruccion: REG=0x13
Despus de la instruccin: REG=0x13, W=0xEC

DECF: Decrementa f en 1
De decrementa en uno el contenido del registro 'f'. Si d=0, el resultado se
almacena en W. Si d=1, el resultado se almacena en 'f'.
Sintaxis: [etiqueta] DECF f,d
Flags afectados: Z
Ejemplo: DEC CONT, 1
Antes de la instruccin: CONT=0x01, Z=0
Despus de la instruccin: CONT=0x00, Z=1

DECFSZ: Decrementa en 1 y salta si el resultado es 0


El contenido del registro 'f' se decrementa. Si 'd=0, el resultado se coloca en el
registro W. Si d=1, el resultado se coloca en el registro 'f'. Si el resultado es 0, se
salta la siguiente instruccin y se contina con la ejecucin.
Sintaxis: [etiqueta] DECFSZ f,d
Flags afectados: Ninguno

10
INCF: Incrementa el registro f
Incrementa en uno el contenido del registro 'f'. Si d=0, el resultado se almacena en
W. Si d=1, el resultado se almacena en 'f'.
Sintaxis: [label] INCF f,d
Flags afectados: Z
Ejemplo: INCF CONT,1
Antes de la instruccin: CONT=0xFF, Z=0
Despus de la instruccin: CONT=0x00, Z=1

INCFSZ: Incrementa en 1 y salta si el resultado es 0


El contenido del registro 'f' se incrementa. Si d=0, el resultado se coloca en el
registro W. Si d=1, el resultado se coloca en el registro 'f'. Si el resultado es 0, se
salta la siguiente instruccin y se contina con la ejecucin.
Sintaxis: [etiqueta] DECFSZ f,d
Flags afectados: Ninguno

IORWF: W OR f
Realiza la operacin lgica OR entre el registro W y el registro 'f'. Si d=0 el
resultado se almacena en el registro W. Si d=1, el resultado se almacen en el
registro 'f'.
Sintaxis: [etiqueta] IORWF f,d
Flags afectados: Z
Ejemplo: IORWF REG,0
Antes de la instruccin: REG=0x13, W=0x91
Despus de la instruccin: REG=0x13, W=0x93

MOVF: Mover el registro f


El contenido del registro 'f' se mueve al destino 'd'. Si d=0, el destino es el registro
W. Si d=1, el destino es el propio registro 'f'.
Sintaxis: [etiqueta] MOVF f,d
Flags afectados: Z
Ejemplo: MOVF REG,0
Despus de la instruccin: W=REG

RLF: Rota el registro f a la izquierda


El contenido del registro 'f' se rota una posicin a la izquierda. El bit de ms peso
pasa al carry y el carry se introduce por el bit de menos peso de 'f'. Si d=0, el
resultado se coloca en el registro W. Si d=1, el resultado queda en el registro 'f'.
Sintaxis: [etiqueta] RLF f,d
Flags afectados: C
Ejemplo: RLF REG,1
Antes de la instruccin: REG=b'11100110', C=0
Despus de la instruccin: REG=b'11001100', C=1

RRF: Rota el registro f a la derecha


El contenido del registro 'f' se rota una posicin a la derecha. El bit de menos peso
pasa al carry y el carry se introduce por el bit de ms peso de 'f'. Si d=0, el
11
resultado se coloca en el registro W. Si d=1, el resultado queda en el registro 'f'.
Sintaxis: [etiqueta] RLF f,d
Flags afectados: C
Ejemplo: RLF REG,1
Antes de la instruccin: REG=b'11100110', C=0
Despus de la instruccin: REG=b'01110011', C=0

SUBWF: Resta f - W
Resta el contenido del registro 'f' menos el contenido del registro W. Si d=0, el
resultado se almacena en el registro W. Si d=1, el resultado se almacena en el
registro 'f'.
Sintaxis: [etiqueta] SUBWF f,d
Flags afectados: C, DC, Z
Ejemplo: SUBWF REG,1
Antes de la instruccin: REG=0x01, W=0x02
Despus de la instruccin: REG=0xFF, W=0x02

SWAPF: Intercambio de f
El nibble bajo del registro 'f' se intercambia con el nibble alto del mismo. Si d=0, el
resultado se coloca en el registro W. Si d=1, el resultado queda en el registro 'f'.
Sintaxis: [etiqueta] SWAPF f,d
Flags afectados: Ninguno
Ejemplo: SWAPF REG,1
Antes de la instruccin: REG=0x54
Despus de la instruccin: REG=0x45

XORWF: W XOR f
Realiza la funcin lgica OR exclusiva entre el contenido del registro W y el
registro 'f'. Si d=0, el resultado se almacena en el registro W. Si d=1 el resultado se
almacena en el registro 'f'.
Sintaxis: [etiqueta] XORWF f,d
Flags afectados: Z
Ejemplo: XORWF REG,1
Antes de la instruccin: REG=0xAF, W=0xB5
Despus de la instruccin: REG=0x1A, W=0xB5

NOP: No operacion
No realiza ninguna operacion, solo consume un ciclo de reloj
Sintaxis: [etiqueta] NOP

Instrucciones orientadas a bits

BCF: Borra un bit


Borra el bit 'b'del registro 'f'
Sintaxis: [etiqueta] BCF f,b
Ejemplo: BCF REG,0
Antes de la instruccin: REG=b'01101101'
12
Despus de la instruccin: REG=b'01101100'

BSF: Activa un bit


Activa el bit 'b' del registro 'f'
Sintaxis: [etiqueta] BSF f,b
Ejemplo: BSF REG,2
Antes de la instruccin: REG=b'01001001'
Despus de la instruccin: REG=b'01001011'

BTFSC: Checa un bit y salta si es 0


Si el bit "b" del registro "f" es 0, se salta una instruccin y se contina con la
ejecucin.
Sintaxis: [etiqueta] BTFSC f,b

BTFSS: Checa un bit y salta si es 1


Si el bit "b" del registro "f" es 1, se salta una instruccin y se contina con la
ejecucin.
Sintaxis: [etiqueta] BTFSS f,b

Instrucciones orientadas a constantes y de control

ANDLW: W AND literal


Realiza la operacin lgica AND entre el registro W y la constante "k". El resultado
se almacena en el registro W.
Sintaxis: [label] ANDWL k
Flags afectados: Z
Ejemplo: ANDLW 0x5F
Antes de la instruccin: W=0xA3
Despus de la instruccin: W=0x03

CALL: Llamada a subrutina


Llamada y salto a subrutina. La direccin de retorno se guarda en el stack. La
constante "k" de 8 bits forma la direccin de salto y se carga en los bits del PC.
Los bits del PC se cargan con los bits del registro "STATUS". PC se pone a 0.
Sintaxis: [etiqueta] CALL k
Ejemplo: INICIO CALL DESTINO
Antes de la instruccin: PC=INICIO
Despus de la instruccin: PC=DESTINO

CLRWDT: Borra el watchdog timer


Esta instruccin borra tanto el "watchdog" como el prescaler. Los bits TO y PD del
registro de estado se ponen a "1".
Sintaxis: [label] CLRWDT
Flags afectados: TO, PD

GOTO: Salto incondicional


13
Se trata de un salto incondicional. Los 9 bits de la constante "k" que forman la
instruccin, se cargan en los bits del PC y forman la direccin de salto. Los bits del
PC se cargan con los bits del registro de estado.
Sintaxis: [etiqueta] GOTO k
Ejemplo: INICIO GOTO DESTINO
Antes de la instruccin: PC=0
Despus de la instruccin: PC=DESTINO

IORLW: W OR literal
Se realiza la funcin lgica OR entre el registro W y la contante "k". El resultado se
almacena en el registro W.
Sintaxis: [etiqueta] IORLW k
Flags afectados: Z
Ejemplo: IORLW Ox35
Antes de la instruccin: W=0x9A
Despus de la instruccin: W=0xBF

MOVLW: Carga un literal en W


El registro W se carga con el valor de 8 bits expresado mediante la literal "k".
Sintaxis: [etiqueta] MOVLW k
Ejemplo: MOVLW 0x5A
Despus de la instruccin: W=0x5A

RETURN: Regresa de una subrutina


El programa regresa de la subrutina y ejecuta la instruccion que sigue a CALL
Sintaxis: [etiqueta] RETURN

RETLW: Regresa de una subrutina y carga el valor K en W


El programa regresa de la subrutina y carga el valor de 8 bits del registro k en el
registro W
Sintaxis: [etiqueta] RETLW,k
Ejemplo: RETLW,0x45
Antes de la instruccion: W=xx
Despues de la instruccion: W=0x45

RETFIE: Regresa de la rutina de servicio


Sintaxis: [etiqueta] RETFIE

SLEEP: Entra en estado de reposo


Al salir, activa el bit de estado TO y borra el PD. El WDT y el prescaler se borran.Al
entrar en el modo SLEEP, se detiene el oscilador.
Sintaxis: [etiqueta] SLEEP
Flags afectados: TO, PD, GPWUF

14
XORLW: W XOR literal
Realiza la funcin lgica OR exclusiva entre el contenido del registro W y la
constante "k" de 8 bits. El resultado se almacena en el registro W.
Sintaxis: [etiqueta] XORLW k
Flags afectados: Z
Ejemplo: XORLW 0xAF
Antes de la instruccin: W = 0xB5
Despus de la instruccin: W = 0x1A

SUBLW: Resta L - W
A una constante "k" de 8 bits se le resta el registro W. El resultado es guardado en
el mismo registro W.
Sintaxis: [etiqueta] SUBLW k
Flags afectados: C,DC,Z

MOVWF: Mover el valor del registro W al registro f


El contenido del registro W se mueve al registro f.
Sintaxis: [etiqueta] MOVWF f
Flags afectados: Ninguno
Ejemplo: MOVWF REG
Antes de la instruccin: REG=0x03, W=0xA4
Despus de la instruccin: REG=0xA4, W=0xA4

Y estas son las 35 instrucciones que podemos utilizar para programar los
microcontroladores PIC. La razon para que solo se utilicen 35 instrucciones en la
programacion es que los PIC son microcontroladores RISC, y estas instrucciones
estan bien optimizadas para tener una mayor velocidad de trabajo, una
arquitectura mas simple y un codigo mas compacto.

1.5.5 Distribucin de terminales.


Patas 1, 2, 3, 17 y 18 (RA0-RA4/TOCKI): Es el PORT A. Corresponden a 5 lneas
bidireccionales de E/S (definidas por programacin). Es capaz de entregar niveles
TTL cuando la alimentacin aplicada en VDD es de 5V 5%. El
pin RA4/TOCKI como entrada puede programarse en funcionamiento normal o
como entrada del contador/temporizador TMR0. Cuando este pin se programa
como entrada digital, funciona como un disparador de Schmitt (Schmitt trigger),
puede reconocer seales un poco distorsionadas y llevarlas a niveles lgicos (cero
y cinco voltios). Cuando se usa como salida digital se comporta como colector
abierto; por lo tanto se debe poner una resistencia de pull-Up (resistencia externa
conectada a un nivel de cinco voltios, ...no te preocupes, mas abajo lo entenders
mejor). Como salida, la lgica es inversa: un "0" escrito al pin del puerto entrega a
la salida un "1" lgico. Este pin como salida no puede manejar cargas como
fuente, slo en el modo sumidero.

15
Patas 1, 2, 3, 17 y 18 (RA0-RA4/TOCKI): Es el PORT A. Corresponden a 5 lneas
bidireccionales de E/S (definidas por programacin). Es capaz de entregar niveles
TTL cuando la alimentacin aplicada en VDD es de 5V 5%. El
pin RA4/TOCKI como entrada puede programarse en funcionamiento normal o
como entrada del contador/temporizador TMR0. Cuando este pin se programa
como entrada digital, funciona como un disparador de Schmitt (Schmitt trigger),
puede reconocer seales un poco distorsionadas y llevarlas a niveles lgicos (cero
y cinco voltios). Cuando se usa como salida digital se comporta como colector
abierto; por lo tanto se debe poner una resistencia de pull-Up (resistencia externa
conectada a un nivel de cinco voltios, ...no te preocupes, mas abajo lo entenders
mejor). Como salida, la lgica es inversa: un "0" escrito al pin del puerto entrega a
la salida un "1" lgico. Este pin como salida no puede manejar cargas como
fuente, slo en el modo sumidero.

Pata 4 (MCLR / Vpp): Es una pata de mltiples aplicaciones, es la entrada de


Reset (master clear) si est a nivel bajo y tambin es la habilitacin de la tensin
de programacin cuando se est programando el dispositivo. Cuando su tensin
es la de VDD el PIC funciona normalmente.

Patas 5 y 14 (VSS y VDD): Son respectivamente las patas de masa y


alimentacin. La tensin de alimentacin de un PIC est comprendida entre 2V y
6V aunque se recomienda no sobrepasar los 5.5V.

Patas 6, 7, 8, 9, 10, 11, 12, 13 (RB0-RB7): Es el PORT B. Corresponden a ocho


lneas bidireccionales de E/S (definidas por programacin). Pueden manejar
niveles TTL cuando la tensin de alimentacin aplicada en VDD es de 5V 5%.
RB0 puede programarse adems como entrada de interrupciones externas INT.
Los pines RB4 a RB7 pueden programarse para responder a interrupciones por
cambio de estado. Las patas RB6 y RB7 se corresponden con las lneas de
entrada de reloj y entrada de datos respectivamente, cuando est en modo

16
programacin del integrado.

Patas 15 y 16 (OSC1/CLKIN y OSC2/CLKOUT): Corresponden a los pines de la


entrada externa de reloj y salida de oscilador a cristal respectivamente.

1.5.6 El reset y sus posibles fuentes.

MCLR (Master Clear Reset)


El MCLR es un pin del microcontrolador que se utiliza como entrada para las
funciones de programacin. Sin embargo es una fuente de Reset durante la
operacin normal del dispositivo cuando se encuentra activo bajo (a 0V). Para
evitar comportamientos inapropiados el sistema maneja un filtro contra ruido que
ignora pequeos pulsos.
Durante el modo SLEEP ( Power-down Mode) en el cual el PIC se encuentra en
estado de bajo consumo de corriente y que puede ser ejecutado mediante la
instruccin sleep , el microcontrolador puede ser despertado a travs de un valor
de 0V en el pin MCLR, lo cual tambin generara una nueva condicin de RESET
en el dispositivo.
Watchdog Timer (WDT)
El Watchdog Timer es un oscilador RC que esta activo de manera independiente
dentro del microcontrolador y que no requiere componentes externos para su
funcionamiento. Esto significa que este oscilador sigue corriendo aun si la fuente
de reloj en los pines OSC1/CLKIN y OSC2/CKLOUT es detenida, por ejemplo,
cuando es ejecutada la instruccin sleep.
El WDT posee un periodo de tiempo nominal de 18 ms (sin prescaler), aunque
este valor puede variar de acuerdo a la temperatura y a condiciones externas del
PIC. Si el valor del WDT se desborda, lo cual significa que llega al limite de su
periodo se genera una condicin de RESET. Prescalizando el WDT con una
relacin de 1:128 lo cual puede ser asignado mediante software escribiendo en el
registro OPTION _REG, el mximo periodo alcanzado puede ser de 2.3 segundos.

Desbordamiento del WDT mientras s esta en modo SLEEP.


Si el microcontrolador se encuentra en modo de bajo consumo de corriente
(SLEEP), el valor del Watchdog Timer se borra al entrar en ese estado, pero este
sigue activo, si se produce un desbordamiento del WDT durante el modo SLEEP el
dispositivo despertara, creando una condicin de RESET y seguir con su
operacin normal.

17
Power-On Reset (POR):
Una condicin de Power-On Reset es generada a travs de un pulso dentro del
PIC, cuando se detecta una variacin en el voltaje de alimentacin V DD en el rango
de 1.2V a 1.7V. Para evitar esta condicin de Reset es necesario conectar el pin
MCLR (a travs de una resistencia) directamente a V DD, con lo que se consigue
eliminar componentes RC externos que pueden dar lugar a un POR.
Power-up Timer (PWRT):
Para evitar la posibilidad de un reset debido a POR, el dispositivo tambin posee
un bit de configuracin PWRTE(Power-Up Timer Enable) que puede habilitar o
deshabilitar la accin de PWRT (Power-Up Timer), este mecanismo que opera con
un oscilador interno RC, provee un retardo de 72 ms (en los cuales el PIC se
mantiene en RESET) a partir de una condicin de POR generalmente originada
cuando el microcontrolador es conectado a la fuente de alimentacin debido al
cambio de la seal DC permitiendo que el voltaje de alimentacin V DD llegue hasta
un nivel aceptable de operacin para el microcontrolador.

Oscillator Start-up Timer (OST)


Existe tambin otra fuente de retardo dada a travs del OST (Oscillator Start-Up
Timer), esta caracterstica del microcontrolador provee un retardo de 1024 ciclos
del oscilador (de la entrada OSC1) despus que el retardo de PWRTtermina. Esto
para asegurar que el oscilador utilizado se ha activado y esta estable. (nicamente
para modo XT, LP Y HS).
Cuando el voltaje de alimentacin V DD crece desde 0V hasta su valor final muy
lentamente, es probable que la suma de estos retardos acabe antes que el
microcontrolador pueda tener un voltaje V DD adecuado. En este caso un circuito
externo para evitar una condicin de POR puede ser necesario.

1.6 Caractersticas de la fuente de alimentacin y consumo de potencia del


microcontrolador.
Normalmente el microcontrolador e alimenta con 5 voltios aplicados entre los pines
Vdd (Vcc) y Vss (Gnd), que son, respectivamente, la alimentacin y la masa
(tierra) del chip./
/El consumo de corriente para el funcionamiento del microcontrolador depende de
la tensin de alimentacin, de la frecuencia de trabajo y de la carga que soporten
su salida, siendo del orden de unos miliamperios. El circuito de alimentacin de
microcontrolador debe tratarse como el de cualquier otro dispositivo digital,
debiendo conectarse un condensador de desacoplo de unos 100nF (hasta 0.1uF),
lo ms cerca posible de los pines de alimentacin.
/
/

18
19
1.7 Ambiente integrado de desarrollo (IDE)
Entorno de Desarrollo Integrado (IDE).
Un entorno de desarrollo integrado, es un entorno de programacin que ha sido
empaquetado como un programa de aplicacin, es decir, consiste en un editor de
cdigo, un compilador, un depurador y un constructor de interfaz grfica (GUI).
Los IDE proveen un marco de trabajo amigable para la mayora de los lenguajes
de programacin tales como C++, PHP, Python, Java, C#, Delphi, Visual Basic,
etc. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de
ejecucin, en donde se permite utilizar el lenguaje de programacin en forma
interactiva, sin necesidad de trabajo orientado a archivos de texto.
Es posible que un mismo IDE pueda funcionar con varios lenguajes de
programacin. Este es el caso de Eclipse, al que mediante plagios se le puede
aadir soporte de lenguajes adicionales.
Un IDE debe tener las siguientes caractersticas:
Multiplataforma
Soporte para diversos lenguajes de programacin
Integracin con Sistemas de Control de Versiones
Reconocimiento de Sintaxis
Extensines y Componentes para el IDE
Integracin con Framework populares
Depurador
Importar y Exportar proyectos
Mltiples idiomas
Manual de Usuarios y Ayuda
Componentes
Editor de texto.
Compilador.
Intrprete.
Herramientas de automatizacin.
Depurador.
Posibilidad de ofrecer un sistema de control de versiones.
Factibilidad para ayudar en la construccin de interfaces grficas de
usuarios.
Ventajas de los IDEs.
La curva de aprendizaje es muy baja.
Es ms gil y ptimo para los usuarios que no son expertos en manejo de
consola.
20
Formateo de cdigo.
Funciones para renombrar variables, funciones.
Warnings y errores de sintaxis en pantalla de algo que no va a funcionar al
interpretar o compilar.
Poder crear proyectos para poder visualizar los archivos de manera grfica.
1.7.1 Ensamblador y compilador.
Ensamblador se refiere a un tipo de programa, informtico que se encarga de
traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto
que contiene cdigo mquina ejecutable directamente por la mquina para la que
se ha generado.
La tarea fundamental de un ensamblador es traducir un programa en lenguaje de
ensamblador al cdigo correspondiente en lenguaje de mquina.
ENSAMBLADORES CRUZADOS: Se denominan as a los ensambladores que se
utilizan en una computadora que posee el procesador diferente al que tendrn las
computadoras donde se va a ejecutar el programa objeto producido.
Son aquellas que permanecen en la memoria principal de la computadora y cargar
para su ejecucin al programa objeto producido.
Un compilador es querer traducir un programa de un lenguaje de alto nivel, a otro
lenguaje de nivel inferior (tpicamente lenguaje mquina).
Los compiladores son programas o herramientas encargadas de compilar. Un
compilador toma un texto (cdigo fuente) escrito en un lenguaje de alto nivel y lo
traduce a un lenguaje comprensible por las computadoras (cdigo objeto).
1.7.2 Simulador, debugger y emulador.
Emulador
Un emulador (imitar lo que otro hace, procurando ventaja) es un programa capaz
de actuar de intrprete en la mquina destino (nuestra PC o en una Mac, por
ejemplo) para que un software originalmente escrito para otra plataforma pueda
ser ejecutado en ella (PalmOS en nuestro caso).
El emulador traduce el cdigo de la mquina original al cdigo de la de destino
(nuestra PC), por lo que nuestra computadora ni siquiera sabe que est
comportndose como otra plataforma (otro sistema operativo diferente al que
ejecuta por defecto), y tan solo ejecuta el programa siguiendo su propio juego de
instrucciones, pero adaptado desde la plataforma original.

Simulador

21
Simular (que simula o finge). Aparato o instalacin que simula un fenmeno o
reproduce el funcionamiento de una mquina, vehculo, etc. Es muy utilizado en
adiestramientos. Para comprender mejor la diferencia entre un emulador y un
simulador
un simulador solo trata de reproducir el comportamiento del programa, El
simulador de la unidad central de procesamiento (CPU) es a menudo la parte ms
compleja de un emulador. Muchos emuladores son escritos utilizando simuladores
de CPU "preempaquetados", para as poder realizar una emulacin fiel y eficiente
de una mquina especfica.

Un depurador (en ingls, debugger)


Es un programa usado para probar y depurar (eliminar) los errores de otros
programas (el programa "objetivo"). El cdigo a ser examinado puede
alternativamente estar corriendo en un simulador de conjunto de
instrucciones (ISS), una tcnica que permite gran potencia en su capacidad de
detenerse cuando son encontradas condiciones especficas pero ser tpicamente
algo ms lento que ejecutando el cdigo directamente en el apropiado (o el
mismo) procesador. Algunos depuradores ofrecen dos modos de operacin - la
simulacin parcial o completa, para limitar este impacto.
Tpicamente, los depuradores tambin ofrecen funciones ms sofisticadas tales
como correr un programa paso a paso (un paso o animacin del programa), parar
el programa (breaking), es decir, pausar el programa para examinar el estado
actual en cierto evento o instruccin especificada por medio de un breakpoint, y el
seguimiento de valores de algunas variables. Algunos depuradores tienen la
capacidad de modificar el estado del programa mientras que est corriendo, en
vez de simplemente observarlo. Tambin es posible continuar la ejecucin en una
posicin diferente en el programa bypaseando un estrellamiento o error lgico.
1.7.3 Equipos programadores (downloaders).
PICkit es una familia de programadores para microcontroladores PIC fabricados
por Microchip Technology . Se utilizan para programar
y depurar microcontroladores, as como el programa EEPROM. Algunos modelos
tambin cuentan con una herramienta de anlisis lgico y comunicaciones en serie
( UART ).
PICkit 1
El PICkit 1 - presentado el 31 de marzo de 2003 por US $ 36
fue un rudimentario programador USB para microcontroladores PIC , producido
por Microchip Technology , el fabricante de la serie PIC de microcontroladores. Se
integr en una placa de demostracin, con ocho LED , un interruptor y

22
un potencimetro . Su programa por defecto, explicado en la documentacin, gira
los LEDs en serie. La direccin y la velocidad de rotacin de la pantalla luminosa
se pueden cambiar con el botn y el potencimetro en la tarjeta PICkit.
PICkit2
El PICkit 2 - introducido en mayo de 2005
reemplaz al PICkit 1. La diferencia ms notable entre los dos es que el PICkit 2
tiene una unidad programadora / depuradora separada que se conecta a la placa
que lleva el chip a programar, PICkit 1 era una sola unidad. Esto hace posible usar
el programador con una tarjeta de circuito personalizado a travs de una cabecera
de programacin en serie del circuito (ICSP). Sin embargo, esta caracterstica no
est destinada a la llamada programacin de "produccin".
El PICkit 2 utiliza un PIC18F2550 interno con USB FullSpeed. El ltimo firmware
PICkit 2 permite al usuario programar y depurar la mayora de los miembros
PICmicro y dsPIC de 8 y 16 bits de la lnea de productos Microchip.
PICkit 3
Microchip ha pasado a fabricar el PICkit 3, una variacin del PICkit 2 con el mismo
factor de forma y un nuevo caso translcido. Cuenta con un procesador PIC24F de
16 bits ms rpido y un rango de regulacin de voltaje ms amplio. Hay algunas
quejas de no ser tan confiable como el Pickit 2.
Tanto el PICkit 2 como el PICkit 3 tienen reguladores de voltaje internos de
conmutacin. Esto les permite, en el caso del PICkit 2, generar voltajes de 2,5 a 5
voltios, o en el caso del PICkit 3, de 2,5 a 5,5 voltios, desde un suministro USB de
5 V, a unos 100 mA. Ambos tienen opciones para calibrar la salida con un
multmetro, para mayor precisin. Adicionalmente, para algunos PIC, se puede
generar el voltaje de programacin MCLR, en torno a 13 a 14 voltios. Este voltaje
es necesario para reprogramar la memoria flash.
El K150 es un programador de PICs de bajo costo que soporta los
microcontroladores ms populares de Microchip.

Orange 5 es un dispositivo de programacin profesional para la memoria y los


microcontroladores. La caracterstica nica de los programadores de la serie
actual se construye el lenguaje de macros para escribir protocolos, lo que da la
capacidad de rpida y fcil de aadir nuevos tipos de esquemas de micro,
cumpliendo con precisin los requisitos de los fabricantes de leer algoritmos de
lectura / escritura.
1.8 Herramientas de desarrollo.
Piklab

23
Es un entorno de desarrollo integrado (IDE) para aplicaciones basadas en
microchip PIC y microcontroladores dsPIC similares al entorno MPLAB . Se integra
con varios toolchains del compilador y del ensamblador (como gputils, sdcc, c18) y
con el simulador de GPSim. Soporta los programadores ms comunes (serial,
paralelo, ICD2, Pickit2, PicStart +), el depurador ICD2 y varios cargadores de
arranque (Tiny, Pickit2 y Picdem).
MPLAB X IDE

Es un programa de software que se ejecuta en un PC (Windows , Mac OS ,


Linux ) para desarrollar aplicaciones para microcontroladores Microchip y
controladores de seales digitales. Se llama un entorno de desarrollo integrado
(IDE), ya que proporciona un nico "entorno" integrado para desarrollar cdigo
para microcontroladores integrados.

El entorno de desarrollo integrado de MPLAB X trae muchos cambios a la cadena


de herramientas de desarrollo de microcontroladores PIC . A diferencia de
versiones anteriores del MPLAB IDE que se desarrollaron completamente en casa,
MPLAB X IDE se basa en el IDE NetBeans de cdigo abierto de Oracle. Tomar
este camino nos ha permitido agregar muchas caractersticas frecuentemente
solicitadas de forma muy rpida y sencilla, al tiempo que nos proporciona una
arquitectura mucho ms extensible para ofrecerle an ms nuevas caractersticas
en el futuro.

24

S-ar putea să vă placă și