Archivos utilizados por MPLAB IDE Definición de extensiones asm Archivo fuente del lenguaje ensamblador MPASM c Archivo fuente de C chm Archivo de ayuda HTML cod Contiene información sobre símbolos y código objeto cof Contiene información sobre símbolos y código objeto err Archivo de error generado por el ensamblador o compilador evt Archivo de eventos de MPLAB ICE 2000 exe Programa o archivo ejecutable fsti Archivo de MPLAB SIM gld Archivo de scripts de MPLAB LINK30 (linker) h Archivo include de C hex, hxl,.hxh Código máquina de PICmicro MCU en formato hex inc Archivo include de MPASM lkr Archivo de scripts de MPLINK (linker) lst Archivo de listado generado por el ensamblador/compilador mcp Contiene información relativa al proyecto mcw Contiene información relativa al proyecto workspace o Archivo objeto de dsPIC langauge tools obj Archivo objeto de Microchip language tools psti Estímulos de pin para MPLAB SIM rsti Estímulos de registro para MPLAB SIM ssti Estímulos síncronos para MPLAB SIM s Archivo fuente del lenguaje ensamblador MPLAB ASM30 trc Archivos de trazas trg Archivo de trigger en MPLAB ICE 2000 Directivas por Tipos CONTROL Directive CONSTANT Description Declare Symbol Constant Syntax constant <label> [= <expr>,...,<label> [= <expr>] ] #DEFINE Define a Text Substitution Label #define <name> [[(<arg>,...,<arg>)] <value>] END End Program Block end EQU Define an Assembly Constant <label> equ <expr> #INCLUDE Include Additional Source File include <<include_file>> include "<include_file>" ORG Set Program Origin <label> org <expr> PROCESSOR Set Processor Type processor <processsor_type> RADIX Specify Default Radix radix <default_radix> SET Define an Assembler Variable <label> set <expr> #UNDEFINE Delete a Substitution Label #undefine <label> VARIABLE Declare Symbol Variable variable <label> [= <expr>,..., <label> [= <expr>] ] CONDITIONAL ASSEMBLY Directive Description ELSE Begin Alternative Assembly Block to IF Syntax else ENDIF ENDW End Conditional Assembly Block End a While Loop endif endw IF Begin Conditionally Assembled Code Block if <expr> IFDEF IFNDEF WHILE Execute If Symbol is Defined Execute If Symbol is Not Defined Perform Loop While Condition is True ifdef <label> ifndef <label> while <expr> DATA Directive _ _BADRAM Description Specify invalidRAM locations Syntax _ _badram <expr> CBLOCK Define a Block of Constants cblock [<expr>] _ _CONFIG Set configuration fuses _ _config <expr> OR __config <addr>, <expr> DA Store Strings in Program Memory [<label>] da <expr> [, <expr2>, ..., <exprn>] DATA Create Numeric and Text Data data <expr>,[,<expr>,...,<expr>] data "<text_string>"[,"<text_string>",...] DB Declare Data of One Byte db <expr>[,<expr>,...,<expr>] DE Declare EEPROM Data de <expr>[,<expr>,...,<expr>] DT Define Table dt <expr>[,<expr>,...,<expr>] DW Declare Data of One Word dw <expr>[,<expr>,...,<expr>] ENDC DATA Directive FILL End an Automatic Constant Block endc Description Specify Memory Fill Value Syntax fill <expr>, <count> _ _IDLOCS _ _MAXRAM RES Set ID locations Specify maximum RAM address Reserve Memory _ _idlocs <expr> _ _maxram <expr> res <mem_units> LISTING Directive ERROR Description Issue an Error Message Syntax error "<text_string>" ERRORLEVEL LIST Set Messge Level Listing Options errorlevel 0|1|2|<+-><msg> list [<option>[,...,<option>]] MESSG Create User Defined Message messg "<message_text>" NOLIST Turn off Listing Output nolist PAGE Insert Listing Page Eject page SPACE Insert Blank Listing Lines space [<expr>] SUBTITLE Specify Program Subtitle subtitl "<sub_text>" TITLE Specify Program Title title "<title_text>" MACRO Directive ENDM Description End a Macro Definition Syntax endm EXITM EXPAND LOCAL Exit from a Macro Expand Macro Listing Declare Local Macro Variable exitm expand local <label> [,<label>] MACRO NOEXPAND Declare Macro Definition Turn off Macro Expansion <label> macro [<arg>,...,<arg>] noexpand OBJECT FILE Directive BANKISEL Description Generate RAM bank selecting code for indirect addressing Syntax bankisel <label> BANKSEL Generate RAM bank selecting code banksel <label> CODE EXTERN GLOBAL IDATA PAGESEL Begins executable code section Declares an external label Exports a defined label Begins initialized data section Generate ROM page selecting code [<name>] code [<address>] extern <label> [ ,<label>] extern <label> [ .<label>] [<name>] idata [<address>] pagesel <label> UDATA UDATA_ACS Begins uninitialized data section Begins access uninitialized data section [<name>] udata [<address>] [<name>] udata_acs [<address>] UDATA_OVR Begins overlayed uninitialized data section [<name>] udata_ovr [<address>] UDATA_SHR Begins shared uninitialized data section [<name>] udata_shr [<address>] ;************************************** ;* MPASM. Ejemplo de utilización de ;* directivas ;* ;************************************** processor 16f84a ;Establece que procesador se utilizará radix dec ;Numeros representados en decimal ;(por defecto esta en hexadecimal) ;uso radix hex|dec|oct #include <p16f84a.inc> ;Incluye el fichero de texto ;p16f84a.inc DTEMP equ 0x20 DFLAG equ 0x21 DFL0 equ DTEMP+5 ;Asigna expresiones a las etiguetas ;correspondientes LARGO set 4 ANCHO set 6 AREA set ANCHO * LARGO ;Define variables en ensamblador ;equivalente a EQU cblock 0x30 dato1,dato2 ;Asigna valores desde el indicado resultado:0,resul_h,resul_l ;a las etiquetas que siguen, se tabla:5 ;puede establecer un incremento en ;la asignacion. aux ;dato1=0x30, dato2=0x31,resul_h=0x32 W_temp,STATUS_temp ;resul_l=0x33, tabla=0x34, aux=0x39 endc ;W_temp=0x3A,STATUS_temp=0x3B cblock 0x20 DTEMP, DFLAG endc PUSH macro ;asignación equivalente a la anterior ;con la directiva EQU ;definición de macro movwf W_temp swapf STATUS,W movwf STATUS_temp ende POP macro swapf movwf swapf swapf STATUS_temp,W STATUS W_temp,f W_temp,W endm #define banco1 bsf STATUS,RP0 #define banco0 bcf STATUS,RP0 org 0x00 ;define una cadena de sustitución ;de texto. ;Indica la posición de de la memoria ;de programa donde se ubicara el código ;siguiente ;Vector de reset goto Inicio org 0x04 goto ServInt org 0x06 ;Vector de interrupción ;Inicio del programa Inicio banco0 clrf 0x05 banco1 clrf 0x05 movlw 65 movlw d'65' movlw h'41' movlw a'A' movlw b'01000001' movlw o'101' call Sub1 ; resto ; del ; programa ; ..... ;Selecciona el banco cero ;pone a cero el registro de dirección ;0x5(PORTA) ;Selecciona el banco1 ;pone a cero el registro de dirección ;0x5(TRISA) ;base decimal por defecto: radix dec ;En las siguientes instrucciones carga ;el registro W con el mismo valor en ;diferentes bases org 0x100 ServInt ;Rutina de servicio a interrupción PUSH ; rutina... ; .... POP Retfie Sub1 ;Subrutina uno PUSH ; rutina... ; .... POP Return end ;fin de programa fuente