Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Un microcontrolador es todo un sistema mínimo dentro de un solo dispositivo lo cual ofrece enormes
beneficios tecnológicos. En estos circuitos se puede programar en un solo “chip”, para desarrollar e
implementar varias aplicaciones y funciones con menos componentes que la circuitería tradicional
de compuertas lógicas, optimizando mucho espacio físico, son más económicos y sin la limitación
de que un cambio de lógica del usuario, ocasione un cambio en el diseño del hardware, ya que los
cambios ampliaciones futuras del sistema son casi nulos (solo se requieren cambios en el software).
Los microcontroladores PIC, pueden ser programados tanto en lenguaje ensamblador como en Basic
y principalmente en lenguaje C, para el que existen numerosos compiladores.
Microcontrolador PIC16F628A
Es un dispositivo electrónico capaz de llevar a cabo procesos lógicos, ya que en su interior posee
toda la arquitectura de un computador, esto es CPU, memorias RAM, EEPROM, y circuitos de
entrada y salida. Un microcontrolador de fábrica, no realiza tarea alguna, este debe ser programado
para que realice desde un simple parpadeo de un led hasta un sofisticado control de un robot. Un
microcontrolador es capaz de realizar la tarea de muchos circuitos lógicos como compuertas AND,
OR, NOT, NAND, conversores A/D, D/A, temporizadores, decodificadores, etc., simplificando todo
el diseño a una placa de reducido tamaño y pocos elementos. Estos procesos o acciones son
programados en lenguaje ensamblador por el usuario, y son introducidos en este a través de un
programador.
El PIC 16f628A es un microcontrolador de 8 bit, posee una arquitectura RISC (computador con juego
de instrucciones reducido) avanzada así como un juego reducido de 35 instrucciones. Este
microcontrolador es el remplazo del obsoleto PIC16f84A, los pines del PIC16f628a son compatibles
con el PIC16f84A, así se podrían actualizar proyectos que hemos utilizado con el PIC16f84A.
Los microcontroladores más utilizados hoy en día, son los del fabricante MICROCHIP, por la amplia
variedad de microcontroladores que nos ofrece, y la información de cada uno de los
microcontroladores que nos proporciona sin ningún costo alguno.
El CPU puede procesar un total de 35 instrucciones. Cada una de las instrucciones está contenida en
una palabra de 14 bits y todas se ejecutan en un ciclo de instrucción, con excepción de las
instrucciones que modifican el contenido del contador del programa. Lo anterior es debido al
esquema de “pipeline” usado en arquitecturas HARVARD y que permiten al procesador realizar el
FETCH (ir a buscar) y el EXECUTE (ejecutar) simultáneamente con excepción de las instrucciones
de salto.
El microcontrolador 16F628 contiene los siguientes registros principales: el registro W, de 8 bits,
que es el único acumulador del procesador, el registro PC (program counter) contador de programa,
que es un apuntador de 10 bits y que direcciona a la siguiente localidad de memoria de código que
habrá de leerse y ejecutarse. También existe una PILA ó STACK, que se usa para el manejo de las
instrucciones de CALL (llamar), RETURN (volver), RETFIE (recuperar), RETLW (volver). Es una
pila de 8 niveles que se encuentra en una memoria independiente de la memoria de programa y
código, y allí se almacenan y recuperan las direcciones de retorno después de los llamados a
subrutina. Es importante señalar que, dado que se trata de una pila de solo 8 localidades, solo pueden
anidarse hasta 8 llamados a subrutinas o interrupciones dentro del programa.
Memoria de programación
La arquitectura HARVARD permite el uso de dos buses de datos separados para la memoria de
programa y de datos. La memoria de programa es del tipo FLASH, con capacidad de programar y
borrar hasta 10,000 veces, y cuenta con 2048 localidades de 14 bits, con direcciones de la 000H a la
7FFH. Las direcciones 0 y la 4 de esta memoria son usadas para los vectores de RESET e interrupción
respectivamente, es decir, después de RESET, al contador del programa apunta hacia la dirección 0
y después de la ocurrencia de una interrupción (que se encuentre habilitada), el contador del programa
apuntará a la dirección 4. La memoria de datos es de 8 bits, e incluye 224 localidades de RAM, y
128 localidades de EEPROM (con capacidad de programar y borrar hasta 10 millones de veces). La
memoria de datos RAM está organizada en 4 bancos y se encuentra debajo de los registros especiales
(SFR) del 16F628. Las direcciones disponibles de RAM son: BANCO 0: 20H A 7FH (96 bytes),
BANCO 1: A0H a EFH (80 bytes) y BANCO 2: 120H a 14FH (48 bytes). Las localidades pueden
ser accesadas con direccionamiento directo o indirecto.
La memoria de datos
El PIC16F628A, tiene dos tipos de memorias de datos, la RAM estática o SRAM o memoria de
acceso casual que es un tipo de memoria volátil, es decir sus datos permanecen en la memoria
mientras esta alimentación en el dispositivo y es de vital importancia porque ahí residen dos tipos de
datos, los registrados de propósito general, en donde se almacenan las variables y los registros
especiales, que son los encargados de llevar al contador de programa, el conteo del Temporizador, el
estado de los puertos, la configuración de las interrupciones, etc.
El otro tipo de memoria es una memoria auxiliar no volátil llamada EEPROM, con capacidad de 128
posiciones de 8bits cada una. Esta memoria puede ser accedida por el usuario mediante
programación, es muy útil para almacenar datos que el usuario necesita que se conserven aun sin
alimentación, tal es el caso de la clave de una alarma, esta puede ser modificada, pero no debe
perderse por un corte de energía.
Como este microcontrolador es fabricado con tecnología CMOS, su consumo de potencia es muy
bajo (2mA a 4Mhz) y además es completamente estático, lo que significa que si el reloj se detiene
los datos de la memoria RAM no se pierden, esto mientras el microprocesador siga alimentado. La
memoria de datos RAM, tiene 512 líneas de 8 bits cada una de estas será particionada por 4 bancos;
el banco 0, banco 1, banco 2 y banco 3, cada uno con 128 bytes, el acceso a cada banco de memoria
lo realiza los bits RP1 y RP0 del registro STATUS, la mayoría de los bytes son ocupados por los
registros de funciones especiales o no están implementadas. Para el caso del PIC16F628A solo 224
posiciones de memoria RAM están disponibles para los registros del propósito general, la
distribución de memoria se muestra en la siguiente tabla:
Ocsilador
Hay que tener cuidado y no confundir "circuito oscilante" con "oscilador". El circuito oscilante es el
encargado de producir las oscilaciones deseadas; sin embargo, no es capaz de mantenerlas por sí
solo. El oscilador es el conjunto que forman el circuito oscilante, el amplificador y la red de
realimentación juntos. En definitiva el oscilador es una etapa electrónica que, siendo alimentada con
una tensión continua, produce a su salida una señal periódica, que puede ser aproximadamente
sinusoidal, o cuadrada, o de diente de sierra, triangular, etc. La esencia del oscilador es “crear” una
señal periódica por sí misma, sin que haya que aplicarle ninguna señal a la entrada.
Con circuitos electrónicos pueden generarse señales alternas de una gran variedad de formas de onda
en un amplio intervalo de frecuencias. De hecho los osciladores a transistores constituyen una forma
eficaz de generar tensiones a frecuencias elevadas.
El 16F628 funciona con un oscilado cristal de 4 Mhz.. El oscilador principal es dividido entre 4 para
formar los pulsos Q1, Q2, Q3, y Q4, estos 4 pulsos hacen un ciclo de máquina. En el siguiente
diagrama se muestra el diagrama básico de operación del reloj, en donde se divide el oscilador
principal en 4 ciclos, por cada ciclo de máquina.
Tipos de osciladores.
XT ->Cristal de cuarzo.
HS -> Cristal de alta velocidad
LP -> Cristal de baja frecuencia y bajo consumo de potencia.
INTOSC -> oscilador interno de precision de 4mhz(2modos)
EC -> señal externa de entrada de reloj
En la siguiente figura esta el diagrama de bloques del oscilador:
Al momento de programar un micro se debe especificar qué tipo de oscilador se usa. Internamente
la frecuencia del oscilador es dividida por 4, así que tenemos un oscilador de 4 MHz, la frecuencia
de trabajo es de 1MHz, por lo que cada instrucción se ejecuta cada 1 microsegundo.
Conclusiones
Recomendación
Bibliografía
ALGARREYROCHTORR. (26 de 04 de 2011). "FUNCIONAMIENTO DEL PIC 16F628A".
Obtenido de PIC16F628A: http://proyecto-aula-
pic16f628a.blogspot.com/2011/04/pic16f628a.html
EDUPIC 16F628 Punto Flotante. (2010). EDUPIC Módulo 16F628 Manual del Usuario. Punto
Flotante, 2, 3, 5, 6, 12, 18, 25, 26. Obtenido de
http://www.tecnovirtual.edu.ec/virtual/pluginfile.php/20391/mod_resource/content/1/PIC1
6F628MANUAL.pdf