Sie sind auf Seite 1von 5

Apuntes de Microprocesadores.

Clase 3

Descripción de algunos Registros de Propósito Especial

Los detalles acerca de estos registros se describen a través de sus bits, a medida que se requiere su uso en las distintas aplicaciones
estudiadas en capítulos posteriores del presente trabajo. A continuación se ofrece una descripción general de las funciones y
características más resaltantes de algunos de ellos.

02H (PCL).

Se trata del byte bajo del Program Counter. Los cinco bits restantes se manejan a través del registro PLATH ubicado en la posición
PCLATH de la misma RAM.

03H, 83H, 103H, 183H (STATUS)

Este es el registro de estados, elemento común en todo dispositivo programable que puede cumplir funciones de controlador. En él se
refleja la condición del sistema luego de procesar cada instrucción. El valor de cada uno de sus bits tiene particular significación, tal
como se explica en la figura 3.1 y en la Tabla III.1.

STATUS (03H, 83H, 103H, 183H)


IRP RP1 RP0 ‘TO ‘PD Z DC C
bit7 bit0

IRP: Bit para selección de un banco de la RAM en el


direccionamiento indirecto
RP1,0: Bits para selección de un banco de la RAM. En los
PIC’s tratados solo hay dos bancos y no se utiliza el
RP1.
‘TO: Este es un bit asociado al circuito de vigilancia
contra el evento conocido como “cuelgue” del
sistema, el cual se conoce como WDT.
‘PD: El nivel bajo en este bit refleja la condición de
mínimo consumo de energía provocado por una
instrucción personal (Sep).
Z: Bit de cero. Su activación ocurre cuando el resultado
de una operación lógica o aritmética es cero.
DC: Digit Carry. Asume el nivel lógico 1, cuando se
genera un acarreo entre los bits 3 y 4 del registro
asociado a la Unidad Aritmética-Lógica.
C: Bit de acarreo. Se activa cuando el resultado de una
operación aritmética o lógica produce un acarreo en
el bit más significativo.
Figura 3.1 Bits del Registro de Estado
Fuente: Data Sheet del PIC16F8XX. Documento 41291D, Microchip

Tabla III.1. Selección de Bancos


RP0 RP1 Banco
00 0
01 1
10 2
11 3

Data Sheet del PIC16F8XX. Documento 41291D, Microchip Technology Inc., 2007

Wilmer Sanz F. 1
Apuntes de Microprocesadores. Clase 3

05H (PORTA), 06H (PORTB), 07H (PORTC), 08H (PORTD), 09H (PORTE)

En estos registros se “mapea” el puerto de entrada/salida identificado como PORTA, PORTB, PORTC, PORTD y PORTE . Una
mayor descripción acerca de estos puertos se ofrece más adelante.

85H (TRISA), 86H (TRISB), 87H (TRISC), 88H (TRISD), 89H (TRISE)

Los bits de estos registros determinan la función de cada uno de los bits de los puertos A, B, C, D y E respectivamente. Un bit
colocado en cero configura el bit correspondiente como salida, mientras que un uno lo configura como entrada.

Interacción entre el Hardware y el Software

Cuando se diseña un circuito sobre la base de un dispositivo microprogramable es fundamental comprender que existe un binomio sin
el cual no hay funcionamiento posible: hardware y software. A diferencia de otros dispositivos digitales un µP o µC requiere de un
programa para definir su funcionamiento, de lo cual deriva su inmensa potencialidad. En efecto, la programación puede hacer que un
µP (o un µC) sustituya gran cantidad de hardware, que se acometa la realización de múltiples tareas, o bien que responda de
diferentes formas ante diversos estímulos.

Ante ese panorama el técnico tradicional se encuentra con que no basta reemplazar un integrado programable con otro de
igual numeración. Sin la misma programación no logrará reproducir las condiciones de funcionamiento del circuito que intenta
reparar. De igual forma, en la fase de diseño la prueba de un circuito no se limita a verificar su funcionamiento después del
ensamblaje; hay que probar mediante ambientes de simulación los bloques o secciones, tanto del hardware como del software.

En lo sucesivo se ilustrará como realizar la programación de los diferentes bloques que componen a un µC y como plasmar
un algoritmo en un lenguaje que pueda traducirse a los términos en que se concrete el pleno control del hardware y la definición de las
acciones a ser ejecutadas.

Intérpretes y Compiladores. Alto nivel y Bajo nivel.

Existen dos clases de lenguaje de programación: intérpretes y compiladores. Los Intérpretes leen las instrucciones de un archivo en
formato editable y las ejecutan al mismo momento. El más conocido de estos lenguajes es el BASIC. En contraste un lenguaje
compilador toma como entrada el archivo fuente y genera a partir de él otro archivo con formato ejecutable (EXE o .COM). El archivo
generado se compone de códigos hexadecimales que corresponden a comandos y entradas para el hardware de un sistema basado en
microprocesador. La gran diferencia entre ambos tipos de lenguajes radica en que el archivo fuente siempre será requerido en el caso
de los intérpretes, pero no así con los compiladores.

Archivo Instrucciones
Fuente Intérprete ejecutadas

Archivo
Fuente Compilador Archivo Instrucciones
Ejecutable ejecutadas

Figura 3.2. Intérpretes y Compiladores

Por otra parte, todos los lenguajes se ubican en dos categorías: de alto nivel, como C, Pascal (compiladores) y BASIC; y los
de bajo nivel, como el Assembler. Los primeros codifican comandos poderosos que generan un gran número de instrucciones en
lenguaje de máquina. Cuando se escribe un programa en un lenguaje ensamblador de bajo nivel, se codifican las instrucciones
simbólicas, donde cada una genera una instrucción en lenguaje de máquina.

Ventajas ofrece la programación en lenguaje ensamblador:

a) Proporciona más control sobre el manejo particular de los requerimientos del hardware.
b) Genera módulos ejecutables más pequeños y más compactos.
c) Su ejecución es más rápida.

Wilmer Sanz F. 2
Apuntes de Microprocesadores. Clase 3
Dependiendo de su arquitectura y elementos internos, cada dispositivo programable cuenta con un lenguaje de programación
llamado assembler, el cual permite a los usuarios escribir los archivos fuentes correspondientes a los diversos algoritmos que se
deseen implementar. Dicho lenguaje se compone de instrucciones sencillas concebidas en forma de mnemónicos, cada una de las
cuales permite generar directamente un código en lenguaje de máquina. Debe contar además de elementos auxiliares, definición de
constantes, variables y reglas de sintaxis para garantizar una que posea una estructura lógica.

Formato de las instrucciones

La figura 3 muestra cual es el formato de una instrucción en asesmbler de los microncontroladores PIC.

Etiqueta Mnemónico Operando,Operando ;Comentario


Figura 3.3 Formato de una instrucción en assembler de los µC PIC

El uso de etiquetas está restringido por los siguientes requerimientos:

- Deben iniciar en la primera columna,


- Deben comenzar con un carácter alfanumérico o con el carácter de subrayado (_).
- No deben exceder una longitud de 31 caracteres.
- Pueden terminar con un espacio en blanco, con un “Enter” o con dos puntos (:).

Luego de la Etiqueta sigue uno o más espacios en blanco y posteriormente el mnemónico correspondiente a la instrucción
utilizada. La forma más general continúa con espacios en blanco y uno o dos operandos, según el tipo de instrucción del que se trate.
Entre los operandos media una coma (,) como elemento separador; y el segundo de ellos está limitado a especificar un bit del registro
especificado en el primero o bien el destino donde será almacenado el resultado de la operación (la ‘b’ o la ‘d’ de la Tabla III.2).

Tabla III.2. Set de Instrucciones de los PIC 16F87X

Wilmer Sanz F. 3
Apuntes de Microprocesadores. Clase 3

Tipos de instrucciones

Los microcontroladores PIC del rango mediano tienen un set reducido de instrucciones que asciende solo a 35, la mayoría de las
cuales tienen como operando implícito al contenido del registro W. Ellas se clasifican en tres tipos: de registros orientadas a byte, de
registros orientadas a bit y de control y literales. El formato o sintaxis es ligeramente diferente según el tipo, de acuerdo con lo
mostrado en la figura 3.1.

Instrucciones de Registros orientadas a byte

En ellas, el operando explícito se indica en ‘f’. El resultado se almacena en el registro especificado o en W, dependiendo del valor del
bit ‘d’ es cero o uno, respectivamente.

Instrucciones de registros orientadas a bit

En este caso se hace referencia al bit ‘b’ del registro ‘f’. El operando destino es el mismo registro indicado. No hay intervención del
registro W en estas instrucciones.

Instrucciones de control y literales

Para este grupo, el operando explicitado se simboliza con la letra ‘k’. Esta puede ser una constante o una cadena de caracteres.
Al tratarse de una constante se está implementando un modo de direccionamiento análogo al inmediato de la arquitectura propia de los
microprocesadores más comunes; mientras que una cadena de caracteres se utiliza para indicar saltos o cambios en el flujo normal del
programa.

Figura 3.4 Formato de una instrucciones en assembler de los µC PIC, según su tipo

Wilmer Sanz F. 4
Apuntes de Microprocesadores. Clase 3

________________________________________________________________________________________________

Unidad Aritmética Lógica y Registro de trabajo (W)

En la figura 3.5 puede observarse cuales son los posibles operandos de la Unidad Aritmética y Lógica (ALU). Uno de ellos
proviene de un Mux que selecciona entre los registros de RAM y ocho bits del Instruction Register; el otro es el contenido del registro
W (Work), el cual equivale al Acumulador asociado a los sistemas de los microprocesadores más comunes.

El contenido de W se usa como operando implícito en la mayoría de las instrucciones, mientras que la selección del Mux
depende del tipo de instrucción a procesar. Si se trata de una instrucción de salto, que afecta el flujo o secuencia del programa, o que
involucra a una constante, el Mux se usa para dar acceso al campo de control del IR. Para cualquier otro propósito el operando
seleccionado proviene de la RAM.

El resultado generado en la ALU puede almacenarse en la RAM o en el propio registro W.

Bus de Datos. (Data Memory)


Viene del Instruction Register

Ejemplo de programación

movlw 0xF3; En W se almacena F3


movwf 0x20; En el registro 20h se almacena F3
movlw 9; eEn w se almacena 9
addwf 0x20,0; F3+9=FC se almacena en W
movwf PORTB; el número FC se escribe en el Puerto B

Figura 3.5 Detalle sección de la ALU en el PIC16F887

Actividades sugeridas

- Estudie el hardware de los puertos del µC PIC16F887

Bibliografía

- Microchip Technology Inc. (2007). Data Sheet del PIC16F8XX. Documento 41291D,
http://ww1.microchip.com/downloads/en/DeviceDoc/41291D.pdf [En línea] Último acceso: 29-09-2017

Wilmer Sanz F. 5

Das könnte Ihnen auch gefallen