Manual De Pic´s
cacatuo219 de Septiembre de 2013
13.675 Palabras (55 Páginas)347 Visitas
MANUAL DE MICROCONTROLADORES PIC
Contenido:
CAPITULO 1
Introducción a los microcontroladores ( Microcontroladores PIC de Microchip)
CAPITULO 2
Programación en lenguaje ensamblador
CAPITULO 3
Técnicas en lenguaje ensamblador
CAPITULO 4
Experimentos Introductorios
CAPITULO 5
Experimentos avanzados
1.1 Arquitectura Harvard La arquitectura tradicional:
La arquitectura tradicional de computadoras y microprocesadores se basa en el esquema
propuesto por John Von Neumann, en el cual la unidad central de proceso, o CPU, esta
conectada a una memoria única que contiene las instrucciones del programa y los datos
(figura 1.1.1). El tamaño de la unidad de datos o instrucciones esta fijado por el ancho del
bus de la memoria. Es decir que un microprocesador de 8 bits, que tiene además un bus
de 8 bits que lo conecta con la memoria, deberá manejar datos e instrucciones de una o
más unidades de 8 bits (bytes) de longitud. Cuando deba acceder a una instrucción o dato
de más de un byte de longitud, deberá realizar más de un acceso a la memoria. Por otro
lado este bus único limita la velocidad de operación del microprocesador, ya que no se
puede buscar de memoria una nueva instrucción, antes de que finalicen las transferencias
de datos que pudieran resultar de la instrucción anterior. Es decir que las dos principales
limitaciones de esta arquitectura tradicional son :
a) que la longitud de las instrucciones esta limitada por la unidad de longitud de los datos,
por lo tanto el microprocesador debe hacer varios accesos a memoria para buscar
instrucciones complejas,
b) que la velocidad de operación (o ancho de banda de operación) esta limitada por el
efecto de cuello de botella que significa un bus único para datos e instrucciones que
impide superponer ambos tiempos de acceso.
La arquitectura von Neumann permite el diseño de programas con código automodificable,
práctica bastante usada en las antiguas computadoras que solo tenían acumulador y
pocos modos de direccionamiento, pero innecesaria, en las computadoras modernas.
FIG. 1.1.1 Arquitectura Von Newmann
La arquitectura Harvard y sus ventajas:
La arquitectura conocida como Harvard, consiste simplemente en un esquema en el que el
CPU esta conectado a dos memorias por intermedio de dos buses separados. Una de las
memorias contiene solamente las instrucciones del programa, y es llamada Memoria de
Programa. La otra memoria solo almacena los datos y es llamada Memoria de Datos
(figura 1.1.2). Ambos buses son totalmente independientes y pueden ser de distintos
anchos. Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced
Instrucción Set Computer), el set de instrucciones y el bus de la memoria de programa
pueden diseñarse de manera tal que todas las instrucciones tengan una sola posición de
memoria de programa de longitud. Además, como los buses son independientes, el CPU
puede estar accediendo a los datos para completar la ejecución de una instrucción, y al
mismo tiempo estar leyendo la próxima instrucción a ejecutar. Se puede observar
claramente que las principales ventajas de esta arquitectura son:
a) que el tamaño de las instrucciones no esta relacionado con el de los datos, y por lo
tanto puede ser optimizado para que cualquier instrucción ocupe una sola posición de
memoria de programa, logrando así mayor velocidad y menor longitud de programa,
b) que el tiempo de acceso a las instrucciones puede superponerse con el de los datos,
logrando una mayor velocidad de operación.
Una pequeña desventaja de los procesadores con arquitectura Harvard, es que deben
poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser
necesario incluir en los programas, ya que estas tablas se encontraran físicamente en la
memoria de programa (por ejemplo en la EPROM de un microprocesador).
FIG. 1.1.2 Arquitectura Harvard
Los microcontroladores PIC 16C5X, 16CXX y 17CXX poseen arquitectura Harvard, con una
memoria de datos de 8 bits, y una memoria de programa que, según el modelo, puede ser
de 12 bits para los 16C5X, 14 bits para los 16CXX y 16 bits para los 17CXX.
1.2 Diagrama de bloques
Diagrama de bloques de los microcontroladores PIC16F8X
1.3 Mapas de memoria Memoria Interna (RAM)
Organización
La memoria interna de datos, también llamada archivo de registros (register file), esta
dividida en dos grupos: los registros especiales, y los registros de propósito generales. Los
primeros ocupan las 11 posiciones primeras que van desde la 00 a la 0B, y los segundos
las posiciones que siguen, o sea de la 08 a la 4F.
Los registros especiales contienen la palabra de estado (STATUS), los registros de datos
de los tres puertos de entrada salida (Puerto A, Puerto B, Puerto C), los 8 bits menos
significativos del program counter (PC), el contador del Real Time Clock/Counter (RTCC) y
un registro puntero llamado File Select Register (FSR). La posición 00 no contiene ningún
registro en especial y es utilizada en el mecanismo de direccionamiento indirecto.
Los registros de propósito general se dividen en dos grupos : los registros de posición fija
y los bancos de registros. Los primeros ocupan las 8 posiciones que van de la 08 a la 0F.
los bancos de registros consisten en hasta cuatro grupos o bancos de 16 registros cada
uno, que se encuentran superpuestos en las direcciones que van de la 10 a la 1F. Se
puede operar con un solo banco a la vez, el cual se selecciona mediante los bits 5 y 6 del
File Select Register (FSR)
FIG. 1.3.1 Organización de la memoria Interna (RAM) en la familia PIC16C5X
Memoria de Programa
Organización
La memoria de programa, que en los PIC16C5X puede ser de 512 a 2K instrucciones, debe
ser considerada a los efectos de la programación, como compuesta por secciones o
páginas de 512 posiciones. A su vez cada página debe considerarse dividida en dos
mitades de 128 posiciones cada una. Esto se debe, como se verá, a las limitaciones de
direccionamiento de las instrucciones de salto
FIG. 1.3.2 Organización de la memoria de programa en la familia PIC16C5X
1.4 Registros de funciones especiales Camino de los datos y registro W
La figura 1.4.2 representa un diagrama simplificado de la arquitectura interna del camino
de los datos en el CPU de los microcontroladores PIC. Este diagrama puede no representar
con exactitud el circuito interno de estos microcontroladores, pero es exacto y claro desde
la óptica del programador. La figura 1.4.1 representa el mismo diagrama para un
microprocesador ficticio de arquitectura tradicional. Se puede observar que la principal
diferencia entre ambos radica en la ubicación del registro de trabajo, que para los PIC’s se
denomina W (Working Register), y para los tradicionales es el Acumulador (A).
En los microcontroladores tradicionales todas las operaciones se realizan sobre el
acumulador. La salida del acumulador esta conectada a una de las entradas de la Unidad
Aritmética y Lógica (ALU), y por lo tanto éste es siempre uno de los dos operandos de
cualquier instrucción. Por convención, las instrucciones de simple operando (borrar,
incrementar, decrementar, complementar), actúan sobre el acumulador. La salida de la
ALU va solamente a la entrada del acumulador, por lo tanto el resultado de cualquier
operación siempre quedara en este registro. Para operar sobre un dato de memoria, luego
realizar la operación siempre hay que mover el acumulador a la memoria con una
instrucción adicional.
En los microcontroladores PIC, la salida de la ALU va al registro W y también a la memoria
de datos, por lo tanto el resultado puede guardarse en cualquiera de los dos destinos. En
las instrucciones de doble operando, uno de los dos datos siempre debe estar en el
registro W, como ocurría en el modelo tradicional con el acumulador. En las instrucciones
de simple operando el dato en este caso se toma de la memoria (también por
convención). La gran ventaja de esta arquitectura es que permite un gran ahorro de
instrucciones ya que el resultado de cualquier instrucción que opere con la memoria, ya
sea de simple o doble operando, puede dejarse en la misma posición de memoria o en el
registro W, según se seleccione con un bit de la misma instrucción. Las operaciones con
constantes provenientes de la memoria de programa (literales) se realizan solo sobre el
registro W.
En la memoria de datos de los PIC’s se encuentran ubicados casi todos los registros de
control del microprocesador y sus periféricos autocontenidos, y también las posiciones de
memoria de usos generales. En el caso de los 16C5X, algunos registros especiales de solo
escritura (TRIS y OPTION) no están accesibles dentro del bloque de memoria de datos,
sino que solo se pueden cargar desde el registro W por medio de instrucciones especiales.
Contador de Programa
Este registro, normalmente denominado PC, es totalmente equivalente al de
...