¿Cómo encuentro el archivo de encabezado pic.h en mi computadora?
Mira esto.
No:
#ifndef _PIC_H
#Definition_Picture_H
#if definido (_10F200) ||definido (_10F202) ||\
Definido (_10F204) || Definido (_10F206)
# include ltpic 10f 20x . h gt;
#endif
#Si se ha definido (_12C508 ) ||Se ha definido (_12C509) ||\\
Se ha definido (_12F508) || Se ha definido (_12F509) ||\
Se ha definido definido ( _12C508A) ||Definido (_12C509A) ||\
Definido (_12CE518) ||Definido (_12CE519) ||\
Definido (_12C509AG) || Definido (_12C509AF) ||\
Definido (_12CR509A) ||Definido (_RF509AG) ||\\
Definido (_RF509AF)
# incluir ltpic 125 xx .
#endif
#if definido(_16C432) ||definido(_16C433)
# incluir lt43x.h gt
# endif
#If definido(_16C52) ||definido(_16C54) ||definido(_16C54A) ||\
definido( _16C54B) ||Definido (_16C54C) ||Definido ( _16CR54A) ||\
Definido (_16CR54B) ||Definido (_16CR54C) ||Definido (_16C55) ||\ p>
Definido(_16C55A) ||Definido(_16C56) || Definido(_16C56A) ||\
Definido(_16CR56A) ||Definido(_16C57) ||Definido (_16C57C) ||\
Definido (_16CR57B) ||Definido (_16CR57C) ||Definido (_16C58A) ||\
Definido (_16C58B) || Definido (_16CR58A) || Definido (_16CR58B) || _16HV540)
# incluir lt5x.h gt
#endif
#if definido(_16F54) ||definido(_16F57)
# incluir ltf5x.h gt
#endif p>
# si está definido(_ 12c 671)| definido(_ 12c 672)| # incluir ltpic 1267 f6x .h gt;
#endif p>
# si está definido(_ 12c 671)| p>
#endif
#if definido(_12F683)
# include ltpic 12f 683.h gt;
#endif<
/p>
#if definido(_12F675F) ||definido(_12F675H) ||definido(_12F675K)
# incluir ltpic 12rf 675.h gt;
#endif
#if definido(_16C505) ||definido(_16F505)
# incluir lt505.h gt
#endif
#ifdef _14000
# include ltpic 14000 . h gt;
#endif
#if definido(_16C554) ||definido(_16C556) ||Definido (_16C557) | |\
Definido (_16C558) || Definido (_16C554A) || Definido (_16C556A) || \
Definido (_16C558A)
# incluye lt55x. h gt
#endif
#ifdef _16C61
# incluye lt61 .h gt;
#endif
#Si está definido(_16C62) ||definido(_16C62A) ||definido(_16CR62) ||\
definido(_16C62B)
# incluir lt62.h gt
#endif
#if definido(_16C620) ||definido(_16C621) ||definido(_16C622) |\
Definido (_16C620A) ||Definido (_16C621A) ||Definido (_16C622A) ||\
Definido (_16CE623) ||Definido (_16CE624) ||Definido (_16CE625) ||\
Definido (_16CR620A)
# incluir lt62x.h gt
#endif
#if definido(_16C64) ||definido(_16C64A) ||definido(_16CR64)
# incluir lt64.h gt
#endif
# si está definido(_ 16c 641)| si está definido(_16C65) ||definido(_16C65A) ||definido(_16CR65)
# incluir lt65 h gt
#endif
#si está definido( _16C66) ||definido(_16C67)
# incluir lt6x.h gt
#endif
#if definido(_16C71) ||definido(_16C710) | |definido(_16C711)
# incluir lt71x .
#endif
#if definido(_16C712) ||definido(_16C715) ||definido (_16C716)
# incluir
lt715 . h gt;
#endif
#if definido(_16C72) ||definido(_16C72A) ||definido(_16CR72)
# incluye lt72. h gt
#endif
#if definido (_16C73) ||definido (_16C73A) ||\
definido (_16C74) ||definido (_16C74A) ||\
Definido (_16C63) ||Definido (_16CR63) ||Definido (_16C63A) ||\
Definido (_16C65B ) ||Definido(_16C73B) ||Definido( _16C74B) ||\
Definido(_16LC74B)
# incluir lt74.h gt
#endif
#si está definido(_16C76 ) ||definido(_16C77)
# incluir lt77.h gt
#endif
#Si está definido (_16C773) ||definido (_16C774) || definido (_16C770) ||\
definido (_16C771) ||definido (_16C717) ||definido ( _16C745) ||\
Definido (_16C765)
# incluir lt77x.h gt
#endif
#Si está definido (_16C781) ||definido (_16C782)
# incluir lt78x.h gt p>
#endif
#if definido (_16F627) ||definido (_16F628)
# incluir ltf6x.h gt
#endif p>
#if definido(_16F627A) ||definido(_16F628A) ||definido (_16F648A)
# incluir ltf62xa.h gt
#endif
#if definido (_16F630) ||definido (_16F676)
# incluir lt630.h gt
#endif
#if definido(_12F635) | |definido(_16F636)
# incluir ltf636 h gt
#endif
#Si está definido (_16F684)
# incluir ltf684 .h gt
#endif
#Si está definido (_16F688)
# incluye ltf688.h gt
#endif
#Si está definido (_16F83) || Definido (_16CR83) || Definido (_16C84) || \
Definido (_16F84) || p>
# incluir lt84 .h gt
#endif
#if definido(_16F87) ||definido(_16F88)
# incluir ltf87. h gt
#endif
#Si está definido (_16F873)
||Definido (_16F874) ||\
Definido (_16F876) ||Definido (_16F877) ||\
Definido (_16F872) ||Definido (_16F871 ) ||\
Definido (_16F870)
# include lt87x.h gt
#endif
#Si está definido ( _16F873A) ||Definido (_16F874A) ) ||\
Definido (_16F876A) ||Definido (_16F877A)
# include lt8xa.h gt
#endif
#Si está definido (_16F72) ||\\
Está definido (_16F73) ||Está definido (_16F74) ||\\
Definido(_16F76) || Definido(_16F77)
# incluir ltf7x.h gt
#endif
#Si está definido(_16F716)
# incluir ltf 716
#endif
#if definido (_16F737) ||definido (_16F747) ||\
Definido (_16F767) || _16F777)
# include ltf7x 7 .
#endif
#Si ya define(_16F818) ||definido(_16F819)
# include ltf 81x . h gt;
#endif
#if definido(_16C923) |Definido (_16C924) ||\
Definido (_16C925) ||Definido (_16C926)
# include lt9xx.h gt
#endif
#Si está definido (_7C695X)
# incluir ltpic 7695 x . h gt;
#endif
#Si está definido (_16C99) || Definido (_16C99C)
# incluye lt99.h gt
#endif
#Si está definido (_17C42) || Definido (_17C42A) ||Definido (_17CR42) ||\
Definido (_17C43) | |Definido (_17CR43) ||Definido (_17C44)
# include ltpic 174 x . h gt;
#endif
#if definido(_17C752) | |definido(_17C756) ||definido(_17C756A) ||\
Definido(_17C762) ||Definido(_17C766)
# include ltpic 177 xx h gt;
#endif
#define CLRWDT( ) asm("clrwdt ")
#Define SLEEP() asm("dormir ")
# Definir NOP() asm("nop ")
#definir ___mkstr1(x) #x
# definir _ _ _
mkstr(x)_ _ mkstr 1(x)
# define _ _ CONFIG(x)ASM(" \ \ TP Sect CONFIG, class=CONFIG, delta = 2 ");\\
ASM(" \ \ tdw " _ _ mkstr(x))
# define _ _ IDLOC(w)ASM(" \ \ TP Sect IDLOC, clase=IDLOC, delta = 2 " );\\
ASM(" \ \ t global \ \ tid loc _ palabra "); \\
ASM(" idloc _ palabra ");\\
asm("\\tirpc\\t__arg," _ _ _ mkstr(w));\\
ASM("\\tdw 0 amp;_ _ arg amph");\ \
asm("\\tendm ")
# si EEPROM _ TAMAÑO gt0
#define __EEPROM_DATA(a, b, c, d, e, f, g, h) \\
asm("\\tpsect eeprom_data, class=EEDATA, delta = 2 "); \\
ASM(" \\ TDB \ \ t " _ _ mkstr(a)", " ___mkstr(b)", " ___mkstr(c)", " ___mkstr(d)", " \ \
___mkstr(e)", " ___mkstr( f)", " ___mkstr(g)", " ___mkstr(h)"
#endif
/****************** ************************************************** * *****
****Lectura/escritura/borrado flash de macros y definiciones de funciones****
************ ****** ********************************************** ******* ********
*NOTA:
* __FLASHTYPE == 0 se define en dispositivos que solo pueden leer flash, no escribir, por ejemplo, 16F777
* __FLASHTYPE == 1 se define en dispositivos heredados que pueden escribir 1 palabra a la vez, como 16F877
* __FLASHTYPE == 2 se define en dispositivos que solo pueden escribir bloques de 4 palabras, como 16F877A
* __FLASHTYPE == 3 se define en dispositivos que requieren un borrado de bloque de 32 bytes antes de escribir, como 16F87
* __FLASHTYPE == if el dispositivo no puede leer ni escribir en la memoria del programa, no está definido
*/
//Macro FLASH_READ devuelve la palabra almacenada en la dirección de la memoria flash
#Si está definido (__FLASHTYPE)
carácter externo sin firmar flash_read (dirección corta sin firmar);
# si EEPROM _ TAMAÑO gt0
#Definir FLASH_READ(dirección ) \\
(ee ADR=(dirección)&0xff,\\
EEE drh=(dirección)
gt; gt8, \\
WREN=0, \\
EECON1 |= 0x80, \\
RD=1, \\
DC=0,\\
DC=0,\\
(EEDATH lt lt8) |p>
#else // FLASH_READ es no con EEPROM
#define FLASH_READ(addr) \\
(ee ADR = (addr) & 0xff, \\
EEA drh = (addr) gt8, \\
RD=1, \\
DC=0, \\
DC=0, \\
(EEDATH lt lt8) | EEDATA)
#endif
#endif //Fin FLASH_READ
//Utilizar al escribir solo una palabra de datos Macro FLASH_WRITE
# si _ _ FLASHTYPE == 2 | _ _ FLASHTYPE == 3
#define FLASH_WRITE(dirección, datos) \\
hacer { \\
unsigned short x = datos; \\
flash_copy((const unsigned char *) amp; x, 1, addr); } while(0)
extern void flash _ copy(const unsigned char * source _ addr, unsigned char length, unsigned short dest _ addr
#elif __FLASHTYPE==1);
#define FLASH_WRITE(dirección, valor) \\
ee ADR = ((dirección) amp; 0x ff);\\
EEA drh =( (dirección) gt; gt8);\\
eed ath =((valor) gt; gt8);\\
EEDATA=((valor) amp0x ff );\\
eecon 1 | = 0x 80;\\
WREN = 1;\\
EECON2 = 0x55\\
EECON2 = 0xaa\\
WR = 1;\\
ASM("nop");\\
ASM("nop"); p>
WREN=0
#endif //Fin FLASH_WRITE
//Macro FLASH_ERASE se utiliza para borrar el sector de 32 bytes de la memoria flash
#if __FLASHTYPE==3
#Define FLASH_ERASE(addr) \\
Y (WR) continúa \\
ee ADR =( (addr; ) amp; 0x ff);\\
EEA drh = ((addr gt; gt8) amp; 0x ff);\\
eecon 1 = 0x 94;\ \
Acarrear = 0; si(GIE) acarrear = 1; \\
EECON2 = 0x55EECON2 = 0xAAWR = 1;
ASM(" \ \ tNOP ");\\
if (carry)GIE=1
//Versión de la función de biblioteca
extern void flash_erase (dirección corta sin firmar);
#endif //Fin FLASH_ERASE
/*********************** * ************************************************* /
/* * * * * * * Macro de lectura/escritura de memoria EEPROM y definición de función************/
/**** ************ **************************************** ************ **********/
# si EEPROM _ TAMAÑO gt0
#ifdef __FLASHTYPE
Versión de macro de lectura y escritura de EEPROM
#Define EEPROM_WRITE(addr, value) \\
Y (WR) continúa; ee ADR = (addr); valor); \\
EECON1 .
= 0x7F llevar = 0; si(GIE) llevar = 1; GIE = 0; \\
WREN = 1; EECON2 = 0x55EECON2 = 0xAAWR = 1; >
if(carry)GIE=1
# define EEPROM _ READ(addr)((ee ADR =(addr)), (eecon 1 amp;=0x7F), (RD=1) , EEDATA )
#else // else no escribe flash
#Define EEPROM_WRITE(addr, value) \\
Y (WR) continúa; ADR =( dirección); EEDATA= (valor); \\
Llevar = 0; si(GIE) llevar = 1; 1; EECON2 = 0x55EECON2 = 0xAAWR = 1; WREN = 0; \\
si (llevar)GIE=1
#Definir EEPROM_READ(dirección) ((EEADR=(dirección) ), (RD= 1), EEDATA)
#endif
/*Versión de la función de biblioteca*/
extern void eeprom_write(dirección de carácter sin firmar, carácter sin firmar valor);
carácter externo sin firmar eeprom_read (dirección de carácter sin firmar);
#endif //Finalizar rutina EEPROM
/******** ************************************************** * ******/
/* * * * * * *Interrupción global habilitar/deshabilitar definición de macro******/
/***** ************************************************** * *********/
#ifdef _PIC16
#ifndef ei
#define ei() (GLINTD = 0) // Interrumpir Desactivar bit
#endif ei
#if definido (_17C42)
#ifndef di
# definir di(){ hacer { glint d = 1; } while(glittd = = 0); //Desactivar bit de interrupción
#endif di
#De lo contrario
#ifndef di
# define di()(glindd = 1)//bit de desactivación de interrupción
#endif di
#endif
#elif definido _PIC14
#ifndef ei
#define ei() (GIE = 1) //Bit de habilitación de interrupción
#endif ei
#Si está definido (_14000) || Definido (_16C61) || Definido (_16C62) ||\
Definido (_16C63) || Definido (_16C63A) ||
definido (_16C65) ||definido (_16C65B) ||definido (_16C71) ||\
definido (_16C73) ||definido (_1
6C73B) ||Definido (_16C74) ||\
Definido (_16C74B) ||Definido (_16C84) ||Definido (_16C745) ||\
Definido (_16C765) || Definido (_16LC74B)
#ifndef di
# define di(){ do { GIE = 0;} while (GIE == } //Deshabilitar bit de interrupción);
#endif di
#otherwise
#ifndef di
#define di() (GIE = 0) // Bit de habilitación de interrupción
#endif di
#endif
#endif
#endif /* _PIC_H */ p>