viernes, 18 de julio de 2008

Configuración 1. Incluir .INC del PIC.

Una de las cosas importantes a la hora de realizar un proyecto con microcontroladores PIC es saber usar los registros propios del dispositivo.

Todos los registros del PIC están mapeados en la memoria del microcontrolador, esto quiere decir, que cualquier registro tendrá una dirección de memoria con la cual podremos usar el registro correspondiente.

No hace falta decir, que siempre es necesario usar los registros del microcontrolador para cualquier programa que queramos realizar, ya sea el más simple o el más complejo.

Esto nos lleva a que debemos conocer absolutamente todos los registros del PIC que se esté usando en el proyecto y su dirección de memoria para su uso. En caso de ser así, se perdería muchísimo tiempo en buscar en el data sheet y configurarlo en nuestro programa registro por registro que usemos.

Es por ello que, normalmente todos los compiladores de los distintos lenguajes de programación que existen, tienen un archivo de definiciones para cada microcontrolador PIC.

En este caso, nos vamos a centrar en el compilador de ensamblador que trae incorporado el entorno de trabajo MPLAB IDE, el denominado MPASM.

Este compilador trae consigo una carpeta donde están absolutamente todos los microcontroladores de la marca Microchip para poder usarlos en nuestros proyectos.

Por ello, es conveniente tener siempre la última versión del MPLAB instalada para un mayor número de microcontroladores PIC soportados por el compilador MPASM.

El archivo con las definiciones de los registros del microcontrolador tienen la siguiente estructura:

PXXX.INC

Donde las xxx significa las definiciones de los registros del PIC en cuestión, un ejemplo es el siguiente:

P16F84A.INC

Expresa los registros que tiene el PIC 16F84A con sus nombres simbólicos que podremos usar cuando realicemos nuestro firmware.

El archivo del ejemplo anterior contiene lo siguiente:


LIST
; P16F84A.INC Standard Header File, Version 2.00 Microchip Technology, Inc.
NOLIST

; This header file defines configurations, registers, and other useful bits of
; information for the PIC16F84 microcontroller. These names are taken to match
; the data sheets as closely as possible.

; Note that the processor must be selected before this file is
; included. The processor may be selected the following ways:

; 1. Command line switch:
; C:\ MPASM MYFILE.ASM /PIC16F84A
; 2. LIST directive in the source file
; LIST P=PIC16F84A
; 3. Processor Type entry in the MPASM full-screen interface

;==========================================================================
;
; Revision History
;
;==========================================================================

;Rev: Date: Reason:

;1.00 2/15/99 Initial Release

;==========================================================================
;
; Verify Processor
;
;==========================================================================

IFNDEF __16F84A
MESSG "Processor-header file mismatch. Verify selected processor."
ENDIF

;==========================================================================
;
; Register Definitions
;
;==========================================================================

W EQU H'0000'
F EQU H'0001'

;----- Register Files------------------------------------------------------

INDF EQU H'0000'
TMR0 EQU H'0001'
PCL EQU H'0002'
STATUS EQU H'0003'
FSR EQU H'0004'
PORTA EQU H'0005'
PORTB EQU H'0006'
EEDATA EQU H'0008'
EEADR EQU H'0009'
PCLATH EQU H'000A'
INTCON EQU H'000B'

OPTION_REG EQU H'0081'
TRISA EQU H'0085'
TRISB EQU H'0086'
EECON1 EQU H'0088'
EECON2 EQU H'0089'

;----- STATUS Bits --------------------------------------------------------

IRP EQU H'0007'
RP1 EQU H'0006'
RP0 EQU H'0005'
NOT_TO EQU H'0004'
NOT_PD EQU H'0003'
Z EQU H'0002'
DC EQU H'0001'
C EQU H'0000'

;----- INTCON Bits --------------------------------------------------------

GIE EQU H'0007'
EEIE EQU H'0006'
T0IE EQU H'0005'
INTE EQU H'0004'
RBIE EQU H'0003'
T0IF EQU H'0002'
INTF EQU H'0001'
RBIF EQU H'0000'

;----- OPTION_REG Bits ----------------------------------------------------

NOT_RBPU EQU H'0007'
INTEDG EQU H'0006'
T0CS EQU H'0005'
T0SE EQU H'0004'
PSA EQU H'0003'
PS2 EQU H'0002'
PS1 EQU H'0001'
PS0 EQU H'0000'

;----- EECON1 Bits --------------------------------------------------------

EEIF EQU H'0004'
WRERR EQU H'0003'
WREN EQU H'0002'
WR EQU H'0001'
RD EQU H'0000'

;==========================================================================
;
; RAM Definition
;
;==========================================================================

__MAXRAM H'CF'
__BADRAM H'07', H'50'-H'7F', H'87'

;==========================================================================
;
; Configuration Bits
;
;==========================================================================

_CP_ON EQU H'000F'
_CP_OFF EQU H'3FFF'
_PWRTE_ON EQU H'3FF7'
_PWRTE_OFF EQU H'3FFF'
_WDT_ON EQU H'3FFF'
_WDT_OFF EQU H'3FFB'
_LP_OSC EQU H'3FFC'
_XT_OSC EQU H'3FFD'
_HS_OSC EQU H'3FFE'
_RC_OSC EQU H'3FFF'

LIST



Donde se puede observar que están todos los registros definidos del microcontrolador PIC, en este caso el PIC 16F84A.

Este archivo es útil ya que a la hora de programar simplemente debemos usar los mnemotécnicos simbólicos de los registros definidos en el archivo PXXX.INC.

Normalmente la ruta donde están todos los archivos correspondiente a los PIC es:

C:\Archivos de Programa\Microchip\MPASM Suite


Los pasos a seguir para la integración de del archivo de definiciones en MPLAB y tenerlo visible son los siguientes.

En el paso número cuatro del Project Wizard..., se debe buscar la ruta donde se ha instalado el MPLAB y buscar la carpeta MPASM.

Dentro de la carpeta MPASM estarán todos los archivos de definiciones de los microcontroladores, seleccionaremos el archivo que corresponda al microcontrolador PIC que vayamos a usar en nuestro proyecto y lo integraremos a nuestro proyecto pulsando sobre el botón Add>>.




Una vez agregado el archivo, pulsamos sobre siguiente y automáticamente, MPLAB integrará el archivo de definiciones del microcontrolador en el apartado de Header Files, que no es más que el apartado de archivos de cabecera o archivos de definiciones del PIC.



En este momento, ya tendremos accesible todos los registros del PIC desde el entrono de trabajo MPLAB simplemente con hacer doble click sobre el archivo de definiciones del microcontrolador.



Esto es bastante útil a la hora de usar los registros propios del microcontrolador.


Todo el tema anteriormente explicado, se pude observar en el siguiente vídeo:




NOTA: Para usar los archivos de definiciones de los registros propios del PIC con el compilador MPASM, se usan las instrucciones al inicio del firmware:
   list      p=12F510         ; Directiva para definir el procesador
#include < p12F510.inc > ; Registros especificas del procesador
Donde en este caso es para el PIC 12F510, para otro dispositivo, simplemente hay que cambiarlo.

En caso de tener ya creado el proyecto, se puede integrar el archivo de definiciones del PIC simplemente con pulsar con el botón derecho sobre Header Files y seleccionar Add Files...

Se nos abrirá una ventana de búsqueda para seleccionar el dispositivo que estamos usando en nuestro proyecto.

0 comentarios: