文件管理 · 2022年8月18日

pic头文件|PIC单片机C语言头文件

『壹』 怎样用pic单片机头文件配置字 具体怎么用 我是c语言 要一位一位的配置 比如PLLEN_ON = 1;

我以现在最新的XC编译器为例:XC8(8位单片机):C:\Program Files (x86)\Microchip\xc8\v1.10\docs\chipsXC16(16位单片机):C:\Program Files (x86)\Microchip\xc16\v1.11\docs\config_docsXC32(32位单片机):C:\Program Files (x86)\Microchip\xc32\v1.11\docs\hlpPIC32MXConfigSet.chm我用的是Win7 64位系统,32位系统XC默认安装目录在C:\Program Files文件夹下。版本号也可能不一致,比如XC8编译器C:\Program Files (x86)\Microchip\xc8\v1.10\docs\chips,v1.10是当前我安装的XC版本号,这个地方要改成你安装的XC版本号。

『贰』 PIC单片机的芯片头文件和链接描述文件的作用是什么

GOTO除外PIC指令,CALL是一条双周期,别人都是单周期。有两个指令周期51中,有三个周期。超过51单的平均天气PIC的抗干扰能力。电动汽车的使用几乎所有的PIC微控制器。 但新的51单片机的抗干扰性能已经远远超过了以前的,而对于例如,NXP P89LPC900系列的芯片,我现在一直在使用这种芯片,抗干扰能力强。 PIC是,有一个最大的位堆栈区域极为丰富。

『叁』 怎样在我的电脑中找到pic.h头文件

搜索栏里找.你看看是这个不:#ifndef _PIC_H#define _PIC_H#if defined(_10F200) || defined(_10F202) ||\\ defined(_10F204) || defined(_10F206) #include <pic10f20x.h>#endif#if defined(_12C508) || defined(_12C509) ||\\ defined(_12F508) || defined(_12F509) ||\\ defined(_12C508A) || defined(_12C509A) ||\\ defined(_12CE518) || defined(_12CE519) ||\\ defined(_12C509AG) || defined(_12C509AF) ||\\ defined(_12CR509A) || defined(_RF509AG) ||\\ defined(_RF509AF) #include <pic125xx.h>#endif#if defined(_16C432) || defined(_16C433) #include <43x.h>#endif#if defined(_16C52) || defined(_16C54) || defined(_16C54A) ||\\ defined(_16C54B) || defined(_16C54C) || defined(_16CR54A) ||\\ defined(_16CR54B) || defined(_16CR54C) || defined(_16C55) ||\\ defined(_16C55A) || defined(_16C56) || defined(_16C56A) ||\\ defined(_16CR56A) || defined(_16C57) || defined(_16C57C) ||\\ defined(_16CR57B) || defined(_16CR57C) || defined(_16C58A) ||\\ defined(_16C58B) || defined(_16CR58A) || defined(_16CR58B) ||\\ defined(_16C58) || defined(_16HV540) #include <5x.h>#endif#if defined(_16F54) || defined(_16F57) #include <f5x.h>#endif#if defined(_12C671) || defined(_12C672) ||\\ defined(_12CE673) || defined(_12CE674) #include <pic1267x.h>#endif#if defined(_12F629) || defined(_12F675) #include <pic12f6x.h>#endif#if defined(_12F683) #include <pic12f683.h>#endif#if defined(_12F675F) || defined(_12F675H) || defined(_12F675K) #include <pic12rf675.h>#endif#if defined(_16C505) || defined(_16F505) #include <505.h>#endif#ifdef _14000 #include <pic14000.h>#endif#if defined(_16C554) || defined(_16C556) || defined(_16C557) || \\ defined(_16C558) || defined(_16C554A) || defined(_16C556A) || \\ defined(_16C558A) #include <55x.h>#endif#ifdef _16C61 #include <61.h>#endif#if defined(_16C62) || defined(_16C62A) || defined(_16CR62) ||\\ defined(_16C62B) #include <62.h>#endif#if defined(_16C620) || defined(_16C621) || defined(_16C622) ||\\ defined(_16C620A) || defined(_16C621A) || defined(_16C622A) ||\\ defined(_16CE623) || defined(_16CE624) || defined(_16CE625) ||\\ defined(_16CR620A) #include <62x.h>#endif#if defined(_16C64) || defined(_16C64A) || defined(_16CR64) #include <64.h>#endif#if defined(_16C641) || defined(_16C642) ||\\ defined(_16C661) || defined(_16C662) #include <6xx.h>#endif#if defined(_16C65) || defined(_16C65A) || defined(_16CR65) #include <65.h>#endif#if defined(_16C66) || defined(_16C67) #include <6x.h>#endif#if defined(_16C71) || defined(_16C710) || defined(_16C711) #include <71x.h>#endif#if defined(_16C712) || defined(_16C715) || defined(_16C716) #include <715.h>#endif#if defined(_16C72) || defined(_16C72A) || defined(_16CR72) #include <72.h>#endif#if defined(_16C73) || defined(_16C73A) ||\\ defined(_16C74) || defined(_16C74A) ||\\ defined(_16C63) || defined(_16CR63) || defined(_16C63A) ||\\ defined(_16C65B) || defined(_16C73B) || defined(_16C74B) ||\\ defined(_16LC74B) #include <74.h>#endif#if defined(_16C76) || defined(_16C77) #include <77.h>#endif#if defined(_16C773) || defined(_16C774) || defined(_16C770) ||\\ defined(_16C771) || defined(_16C717) || defined(_16C745) ||\\ defined(_16C765) #include <77x.h>#endif#if defined(_16C781) || defined(_16C782) #include <78x.h>#endif#if defined(_16F627) || defined(_16F628) #include <f6x.h>#endif#if defined(_16F627A) || defined(_16F628A) || defined(_16F648A) #include <f62xa.h>#endif#if defined(_16F630) || defined(_16F676) #include <630.h>#endif#if defined(_12F635) || defined(_16F636) #include <f636.h>#endif#if defined(_16F684) #include <f684.h>#endif#if defined(_16F688) #include <f688.h>#endif#if defined(_16F83) || defined(_16CR83) || defined(_16C84) || \\ defined(_16F84) || defined(_16F84A) || defined(_16CR84) #include <84.h>#endif#if defined(_16F87) || defined(_16F88) #include <f87.h>#endif#if defined(_16F873) || defined(_16F874) ||\\ defined(_16F876) || defined(_16F877) ||\\ defined(_16F872) || defined(_16F871) ||\\ defined(_16F870) #include <87x.h>#endif#if defined(_16F873A) || defined(_16F874A) ||\\ defined(_16F876A) || defined(_16F877A) #include <8xa.h>#endif#if defined(_16F72) ||\\ defined(_16F73) || defined(_16F74) ||\\ defined(_16F76) || defined(_16F77) #include <f7x.h>#endif#if defined(_16F716) #include <f716.h>#endif#if defined(_16F737) || defined(_16F747) ||\\ defined(_16F767) || defined(_16F777) #include <f7x7.h>#endif#if defined(_16F818) || defined(_16F819) #include <f81x.h>#endif#if defined(_16C923) || defined(_16C924) ||\\ defined(_16C925) || defined(_16C926) #include <9xx.h>#endif#if defined(_7C695X) #include <pic7695x.h>#endif#if defined(_16C99) || defined (_16C99C) #include <99.h>#endif#if defined(_17C42) || defined(_17C42A) || defined(_17CR42) ||\\ defined(_17C43) || defined(_17CR43) || defined(_17C44) #include <pic174x.h>#endif#if defined(_17C752) || defined(_17C756) || defined(_17C756A) ||\\ defined(_17C762) || defined(_17C766) #include <pic177xx.h> #endif #define CLRWDT() asm("clrwdt")#define SLEEP() asm("sleep")#define NOP() asm("nop")#define ___mkstr1(x) #x#define ___mkstr(x) ___mkstr1(x)#define __CONFIG(x) asm("\\tpsect config,class=CONFIG,delta=2");\\ asm("\\tdw "___mkstr(x))#define __IDLOC(w) asm("\\tpsect idloc,class=IDLOC,delta=2");\\ asm("\\tglobal\\tidloc_word"); \\ asm("idloc_word"); \\ asm("\\tirpc\\t__arg," ___mkstr(w)); \\ asm("\\tdw 0&__arg&h"); \\ asm("\\tendm")#if EEPROM_SIZE > 0#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/*********************************************************************** **** FLASH memory read/write/erase macros and function definitions **** *********************************************************************** * Notes: * __FLASHTYPE == 0 defined in devices that can only read flash memory – cannot write eg. 16F777 * __FLASHTYPE == 1 defined in traditional devices that can write 1 word at a time eg. 16F877 * __FLASHTYPE == 2 defined in devices that can only write in 4 word blocks eg. 16F877A * __FLASHTYPE == 3 defined in devices requiring 32-word block erasure before writing eg. 16F87 * __FLASHTYPE == undefined if device can neither read nor write program memory */// macro FLASH_READ returns a word stored at a flash address#if defined(__FLASHTYPE)extern unsigned char flash_read(unsigned short addr);#if EEPROM_SIZE > 0#define FLASH_READ(addr) \\ (EEADR=(addr)&0xff, \\ EEADRH=(addr)>>8, \\ WREN=0, \\ EECON1 |= 0x80, \\ RD=1, \\ DC=0, \\ DC=0, \\ (EEDATH << 8) | EEDATA)#else // FLASH_READ without EEPROM#define FLASH_READ(addr) \\ (EEADR=(addr)&0xff, \\ EEADRH=(addr)>>8, \\ RD=1, \\ DC=0, \\ DC=0, \\ (EEDATH << 8) | EEDATA)#endif#endif // end FLASH_READ// macro FLASH_WRITE used when writing only one word of data#if __FLASHTYPE==2 || __FLASHTYPE==3#define FLASH_WRITE(addr,data) \\ do{ \\ unsigned short x=data; \\ flash_((const unsigned char *)&x,1,addr); \\ }while(0)extern void flash_(const unsigned char * source_addr,unsigned char length,unsigned short dest_addr);#elif __FLASHTYPE==1#define FLASH_WRITE(addr, value) \\ EEADR=((addr)&0xff); \\ EEADRH=((addr)>>8); \\ EEDATH=((value)>>8); \\ EEDATA=((value)&0xff); \\ EECON1 |= 0x80; \\ WREN=1; \\ EECON2 = 0x55; \\ EECON2 = 0xaa; \\ WR=1; \\ asm("nop"); \\ asm("nop"); \\ WREN=0#endif // end FLASH_WRITE// macro FLASH_ERASE used to clear a 32-Byte sector of flash#if __FLASHTYPE==3#define FLASH_ERASE(addr) \\ while(WR)continue; \\ EEADR=((addr)&0xFF); \\ EEADRH=((addr>>8)&0xFF); \\ EECON1=0x94; \\ CARRY=0;if(GIE)CARRY=1;GIE=0;\\ EECON2=0x55;EECON2=0xAA;WR=1; \\ asm("\\tNOP"); \\ if(CARRY)GIE=1 // library function versionextern void flash_erase(unsigned short addr);#endif // end FLASH_ERASE/***********************************************************************//****** EEPROM memory read/write macros and function definitions *******//***********************************************************************/#if EEPROM_SIZE > 0#ifdef __FLASHTYPE // macro versions of EEPROM write and read#define EEPROM_WRITE(addr, value) \\ while(WR)continue;EEADR=(addr);EEDATA=(value); \\ EECON1&=0x7F;CARRY=0;if(GIE)CARRY=1;GIE=0; \\ WREN=1;EECON2=0x55;EECON2=0xAA;WR=1;WREN=0; \\ if(CARRY)GIE=1#define EEPROM_READ(addr) ((EEADR=(addr)),(EECON1&=0x7F),(RD=1),EEDATA)#else // else doesn\'t write flash#define EEPROM_WRITE(addr, value) \\ while(WR)continue;EEADR=(addr);EEDATA=(value); \\ CARRY=0;if(GIE)CARRY=1;GIE=0; \\ WREN=1;EECON2=0x55;EECON2=0xAA;WR=1;WREN=0; \\ if(CARRY)GIE=1#define EEPROM_READ(addr) ((EEADR=(addr)),(RD=1),EEDATA)#endif/* library function versions */extern void eeprom_write(unsigned char addr, unsigned char value);extern unsigned char eeprom_read(unsigned char addr);#endif // end EEPROM routines/****************************************************************//****** Global interrupt enable/disable macro definitions *******//****************************************************************/#ifdef _PIC16#ifndef ei#define ei() (GLINTD = 0) // interrupt disable bit#endif ei#if defined(_17C42) #ifndef di #define di() { do { GLINTD = 1; } while ( GLINTD == 0 ); } // disable interrupt bit #endif di#else #ifndef di #define di() (GLINTD = 1) // interrupt disable bit #endif di#endif#elif defined _PIC14 #ifndef ei#define ei() (GIE = 1) // interrupt enable bit#endif ei#if defined(_14000) || defined(_16C61) || defined(_16C62) ||\\ defined(_16C63) || defined(_16C63A) || defined(_16C64) ||\\ defined(_16C65) || defined(_16C65B) || defined(_16C71) ||\\ defined(_16C73) || defined(_16C73B) || defined(_16C74) ||\\ defined(_16C74B) || defined(_16C84) || defined(_16C745) ||\\ defined(_16C765) || defined(_16LC74B) #ifndef di #define di() { do { GIE = 0; } while ( GIE == 1 ); } // disable interrupt bit #endif di#else #ifndef di #define di() (GIE = 0) // interrupt enable bit #endif di#endif #endif#endif /* _PIC_H */

『肆』 请问谁有PIC单片机的头文件pic.h,有的话请发一个给我,可以用就采纳,,回复请把文件放在附件里,谢谢

这个不是只有一个头文件就可以的建议你下载完整的PIC编译环境具体呢pic12_16 一个编译器 c8 xc8 piccpic18一个编译器 c32 16 piccpic32一个编译器 c32 xc32IDE是免费的可以官方下载。官网上有的可以下载试用版 具体的授权方法..

『伍』 PIC系列单片机中c语言头文件中的一个定义是什么意思

注意是PROTO,而不是PORTO。宏定义表示外部变量extern

『陆』 pic单片机自带头文件为什么那么麻烦,还有结构体里的成员变量没有名字,还有关键字volative理

2. 有一些单片机的寄存器或参量,即使没有明显的赋值动作,也是随时可能发生变化的,例如 可能被外部设备直接修改或者被中断服务程序修改。关键字volative 就是把这种情况告诉编译器,以免编译器随便优化而出错。 1. 由多个结构体组成的联合 描述 特殊功能寄存器 时,其中的有些位可能有不只一种功能,因此联合中对于同一个寄存器有多个结构定义,在有些结构中没有定义的位只做填充,不需要名字。

『柒』 PIC18F4580头文件include<pic.h>编译时提示找不到头文件是怎么回事c语言编程

首先你得有这个头文件,之后就是位置。方法一:将对应的头文件放到编译器默认的目录下。方法二:或者放到你自己的工程文件下面,写成“pic.h”不要用<>。完成!采纳····

『捌』 pic单片机 用户自己定义的头文件.h怎么加入到工程里面啊。新手。求解

头文件里面是一些函数和变量的定义,你用到哪些,就把相应的头文件包含进去就行了

『玖』 pic 16f877a 头文件

也就汇编的头文件PIC16F877A.inc和C语言的pic1687x.h这两种文件。 想要找汇编的头文件,只要你的电脑装了MPLAB就行,直接在MPLAB的安装目录下找即可,比如我的MPLAB7.50是装在D盘的,我要找这个汇编的头文件就是在D:\Program Files\Microchip\MPASM Suite这个目录里。 而PIC单片机官方没有出针对PIC16F877A的C语言编译器,一般很多人都用PICC编译器,我电脑上的PICC8.50也装在D盘,D:\HT-PIC\include下找就行pic1687x.h /* * Header file for the Microchip * PIC 16F870 * PIC 16F871 * PIC 16F872 chip * PIC 16F873 chip * PIC 16F874 chip * PIC 16F876 chip * PIC 16F877 chip * Midrange Microcontroller */ #if defined(_16F874) || defined(_16F877) || defined(_16F871) #define __PINS_40 #endif static volatile unsigned char INDF @ 0x00; static volatile unsigned char TMR0 @ 0x01; static volatile unsigned char PCL @ 0x02; static volatile unsigned char STATUS @ 0x03; static unsigned char FSR @ 0x04; static volatile unsigned char PORTA @ 0x05; static volatile unsigned char PORTB @ 0x06; static volatile unsigned char PORTC @ 0x07; #ifdef __PINS_40 static volatile unsigned char PORTD @ 0x08; static volatile unsigned char PORTE @ 0x09; #endif static unsigned char PCLATH @ 0x0A; static volatile unsigned char INTCON @ 0x0B; static volatile unsigned char PIR1 @ 0x0C; static volatile unsigned char PIR2 @ 0x0D; static volatile unsigned char TMR1L @ 0x0E; static volatile unsigned char TMR1H @ 0x0F; static volatile unsigned char T1CON @ 0x10; static volatile unsigned char TMR2 @ 0x11; static volatile unsigned char T2CON @ 0x12; #if !defined(_16F870) && !defined(_16F871) static volatile unsigned char SSPBUF @ 0x13; static volatile unsigned char SSPCON @ 0x14; #endif static volatile unsigned char CCPR1L @ 0x15; static volatile unsigned char CCPR1H @ 0x16; static volatile unsigned char CCP1CON @ 0x17; #ifndef _16F872 static volatile unsigned char RCSTA @ 0x18; static volatile unsigned char TXREG @ 0x19; static volatile unsigned char RCREG @ 0x1A; #if !defined(_16F870) && !defined(_16F871) static volatile unsigned char CCPR2L @ 0x1B; static volatile unsigned char CCPR2H @ 0x1C; static volatile unsigned char CCP2CON @ 0x1D; #endif #endif static volatile unsigned char ADRESH @ 0x1E; static volatile unsigned char ADCON0 @ 0x1F; /* bank 1 registers */ static unsigned char bank1 OPTION @ 0x81; static volatile unsigned char bank1 TRISA @ 0x85; static volatile unsigned char bank1 TRISB @ 0x86; static volatile unsigned char bank1 TRISC @ 0x87; #ifdef __PINS_40 static volatile unsigned char bank1 TRISD @ 0x88; static volatile unsigned char bank1 TRISE @ 0x89; #endif static volatile unsigned char bank1 PIE1 @ 0x8C; static volatile unsigned char bank1 PIE2 @ 0x8D; static volatile unsigned char bank1 PCON @ 0x8E; #if !defined(_16F870) && !defined(_16F871) static volatile unsigned char bank1 SSPCON2 @ 0x91; #endif static volatile unsigned char bank1 PR2 @ 0x92; #if !defined(_16F870) && !defined(_16F871) static volatile unsigned char bank1 SSPADD @ 0x93; static volatile unsigned char bank1 SSPSTAT @ 0x94; #endif #ifndef _16F872 static volatile unsigned char bank1 TXSTA @ 0x98; static volatile unsigned char bank1 SPBRG @ 0x99; #endif static volatile unsigned char bank1 ADRESL @ 0x9E; static volatile unsigned char bank1 ADCON1 @ 0x9F; /* bank 2 registers */ static volatile unsigned char bank2 EEDATA @ 0x10C; static volatile unsigned char bank2 EEADR @ 0x10D; static volatile unsigned char bank2 EEDATH @ 0x10E; static volatile unsigned char bank2 EEADRH @ 0x10F; /* bank 3 registers */ static volatile unsigned char bank3 EECON1 @ 0x18C; static volatile unsigned char bank3 EECON2 @ 0x18D; /* STATUS bits */ static volatile bit IRP @ (unsigned)&STATUS*8+7; static volatile bit RP1 @ (unsigned)&STATUS*8+6; static volatile bit RP0 @ (unsigned)&STATUS*8+5; static volatile bit TO @ (unsigned)&STATUS*8+4; static volatile bit PD @ (unsigned)&STATUS*8+3; static volatile bit ZERO @ (unsigned)&STATUS*8+2; static volatile bit DC @ (unsigned)&STATUS*8+1; static volatile bit CARRY @ (unsigned)&STATUS*8+0; /* PORTA bits */ static volatile bit RA5 @ (unsigned)&PORTA*8+5; static volatile bit RA4 @ (unsigned)&PORTA*8+4; static volatile bit RA3 @ (unsigned)&PORTA*8+3; static volatile bit RA2 @ (unsigned)&PORTA*8+2; static volatile bit RA1 @ (unsigned)&PORTA*8+1; static volatile bit RA0 @ (unsigned)&PORTA*8+0; /* PORTB bits */ static volatile bit RB7 @ (unsigned)&PORTB*8+7; static volatile bit RB6 @ (unsigned)&PORTB*8+6; static volatile bit RB5 @ (unsigned)&PORTB*8+5; static volatile bit RB4 @ (unsigned)&PORTB*8+4; static volatile bit RB3 @ (unsigned)&PORTB*8+3; static volatile bit RB2 @ (unsigned)&PORTB*8+2; static volatile bit RB1 @ (unsigned)&PORTB*8+1; static volatile bit RB0 @ (unsigned)&PORTB*8+0; /* PORTC bits */ static volatile bit RC7 @ (unsigned)&PORTC*8+7; static volatile bit RC6 @ (unsigned)&PORTC*8+6; static volatile bit RC5 @ (unsigned)&PORTC*8+5; static volatile bit RC4 @ (unsigned)&PORTC*8+4; static volatile bit RC3 @ (unsigned)&PORTC*8+3; static volatile bit RC2 @ (unsigned)&PORTC*8+2; static volatile bit RC1 @ (unsigned)&PORTC*8+1; static volatile bit RC0 @ (unsigned)&PORTC*8+0; /* PORTD bits */ #ifdef __PINS_40 static volatile bit RD7 @ (unsigned)&PORTD*8+7; static volatile bit RD6 @ (unsigned)&PORTD*8+6; static volatile bit RD5 @ (unsigned)&PORTD*8+5; static volatile bit RD4 @ (unsigned)&PORTD*8+4; static volatile bit RD3 @ (unsigned)&PORTD*8+3; static volatile bit RD2 @ (unsigned)&PORTD*8+2; static volatile bit RD1 @ (unsigned)&PORTD*8+1; static volatile bit RD0 @ (unsigned)&PORTD*8+0; /* PORTE bits */ static volatile bit RE2 @ (unsigned)&PORTE*8+2; static volatile bit RE1 @ (unsigned)&PORTE*8+1; static volatile bit RE0 @ (unsigned)&PORTE*8+0; #endif /* INTCON bits */ static volatile bit GIE @ (unsigned)&INTCON*8+7; static volatile bit PEIE @ (unsigned)&INTCON*8+6; static volatile bit T0IE @ (unsigned)&INTCON*8+5; static volatile bit INTE @ (unsigned)&INTCON*8+4; static volatile bit RBIE @ (unsigned)&INTCON*8+3; static volatile bit T0IF @ (unsigned)&INTCON*8+2; static volatile bit INTF @ (unsigned)&INTCON*8+1; static volatile bit RBIF @ (unsigned)&INTCON*8+0; // alternate definitions static volatile bit TMR0IE @ (unsigned)&INTCON*8+5; static volatile bit TMR0IF @ (unsigned)&INTCON*8+2; /* PIR1 bits */ #ifdef __PINS_40 static volatile bit PSPIF @ (unsigned)&PIR1*8+7; #endif static volatile bit ADIF @ (unsigned)&PIR1*8+6; #ifndef _16F872 static volatile bit RCIF @ (unsigned)&PIR1*8+5; static volatile bit TXIF @ (unsigned)&PIR1*8+4; #endif #if !defined(_16F870) && !defined(_16F871) static volatile bit SSPIF @ (unsigned)&PIR1*8+3; #endif static volatile bit CCP1IF @ (unsigned)&PIR1*8+2; static volatile bit TMR2IF @ (unsigned)&PIR1*8+1; static volatile bit TMR1IF @ (unsigned)&PIR1*8+0; /* PIR2 bits */ static volatile bit EEIF @ (unsigned)&PIR2*8+4; #if !defined(_16F870) && !defined(_16F871) static volatile bit BCLIF @ (unsigned)&PIR2*8+3; #ifndef _16F872 static volatile bit CCP2IF @ (unsigned)&PIR2*8+0; #endif #endif /* T1CON bits */ static volatile bit T1CKPS1 @ (unsigned)&T1CON*8+5; static volatile bit T1CKPS0 @ (unsigned)&T1CON*8+4; static volatile bit T1OSCEN @ (unsigned)&T1CON*8+3; static volatile bit T1SYNC @ (unsigned)&T1CON*8+2; static volatile bit TMR1CS @ (unsigned)&T1CON*8+1; static volatile bit TMR1ON @ (unsigned)&T1CON*8+0; /* T2CON bits */ static volatile bit TOUTPS3 @ (unsigned)&T2CON*8+6; static volatile bit TOUTPS2 @ (unsigned)&T2CON*8+5; static volatile bit TOUTPS1 @ (unsigned)&T2CON*8+4; static volatile bit TOUTPS0 @ (unsigned)&T2CON*8+3; static volatile bit TMR2ON @ (unsigned)&T2CON*8+2; static volatile bit T2CKPS1 @ (unsigned)&T2CON*8+1; static volatile bit T2CKPS0 @ (unsigned)&T2CON*8+0; /* SSPCON bits */ #if !defined(_16F870) && !defined(_16F871) static volatile bit WCOL @ (unsigned)&SSPCON*8+7; static volatile bit SSPOV @ (unsigned)&SSPCON*8+6; static volatile bit SSPEN @ (unsigned)&SSPCON*8+5; static volatile bit CKP @ (unsigned)&SSPCON*8+4; static volatile bit SSPM3 @ (unsigned)&SSPCON*8+3; static volatile bit SSPM2 @ (unsigned)&SSPCON*8+2; static volatile bit SSPM1 @ (unsigned)&SSPCON*8+1; static volatile bit SSPM0 @ (unsigned)&SSPCON*8+0; #endif /* CCP1CON bits */ static volatile bit CCP1X @ (unsigned)&CCP1CON*8+5; static volatile bit CCP1Y @ (unsigned)&CCP1CON*8+4; static volatile bit CCP1M3 @ (unsigned)&CCP1CON*8+3; static volatile bit CCP1M2 @ (unsigned)&CCP1CON*8+2; static volatile bit CCP1M1 @ (unsigned)&CCP1CON*8+1; static volatile bit CCP1M0 @ (unsigned)&CCP1CON*8+0; /* RCSTA bits */ #ifndef _16F872 static volatile bit SPEN @ (unsigned)&RCSTA*8+7; static volatile bit RX9 @ (unsigned)&RCSTA*8+6; static volatile bit SREN @ (unsigned)&RCSTA*8+5; static volatile bit CREN @ (unsigned)&RCSTA*8+4; static volatile bit ADDEN @ (unsigned)&RCSTA*8+3; static volatile bit FERR @ (unsigned)&RCSTA*8+2; static volatile bit OERR @ (unsigned)&RCSTA*8+1; static volatile bit RX9D @ (unsigned)&RCSTA*8+0; #endif /* CCP2CON bits */ #if !defined(_16F870) && !defined(_16F871) && !defined(_16F872) static volatile bit CCP2X @ (unsigned)&CCP2CON*8+5; static volatile bit CCP2Y @ (unsigned)&CCP2CON*8+4; static volatile bit CCP2M3 @ (unsigned)&CCP2CON*8+3; static volatile bit CCP2M2 @ (unsigned)&CCP2CON*8+2; static volatile bit CCP2M1 @ (unsigned)&CCP2CON*8+1; static volatile bit CCP2M0 @ (unsigned)&CCP2CON*8+0; #endif /* ADCON0 bits */ static volatile bit ADCS1 @ (unsigned)&ADCON0*8+7; static volatile bit ADCS0 @ (unsigned)&ADCON0*8+6; static volatile bit CHS2 @ (unsigned)&ADCON0*8+5; static volatile bit CHS1 @ (unsigned)&ADCON0*8+4; static volatile bit CHS0 @ (unsigned)&ADCON0*8+3; static volatile bit ADGO @ (unsigned)&ADCON0*8+2; static volatile bit ADON @ (unsigned)&ADCON0*8+0; /* OPTION bits */ static bank1 bit RBPU @ (unsigned)&OPTION*8+7; static bank1 bit INTEDG @ (unsigned)&OPTION*8+6; static bank1 bit T0CS @ (unsigned)&OPTION*8+5; static bank1 bit T0SE @ (unsigned)&OPTION*8+4; static bank1 bit PSA @ (unsigned)&OPTION*8+3; static bank1 bit PS2 @ (unsigned)&OPTION*8+2; static bank1 bit PS1 @ (unsigned)&OPTION*8+1; static bank1 bit PS0 @ (unsigned)&OPTION*8+0; /* TRISA bits */ static volatile bank1 bit TRISA5 @ (unsigned)&TRISA*8+5; static volatile bank1 bit TRISA4 @ (unsigned)&TRISA*8+4; static volatile bank1 bit TRISA3 @ (unsigned)&TRISA*8+3; static volatile bank1 bit TRISA2 @ (unsigned)&TRISA*8+2; static volatile bank1 bit TRISA1 @ (unsigned)&TRISA*8+1; static volatile bank1 bit TRISA0 @ (unsigned)&TRISA*8+0; /* TRISB bits */ static volatile bank1 bit TRISB7 @ (unsigned)&TRISB*8+7; static volatile bank1 bit TRISB6 @ (unsigned)&TRISB*8+6; static volatile bank1 bit TRISB5 @ (unsigned)&TRISB*8+5; static volatile bank1 bit TRISB4 @ (unsigned)&TRISB*8+4; static volatile bank1 bit TRISB3 @ (unsigned)&TRISB*8+3; static volatile bank1 bit TRISB2 @ (unsigned)&TRISB*8+2; static volatile bank1 bit TRISB1 @ (unsigned)&TRISB*8+1; static volatile bank1 bit TRISB0 @ (unsigned)&TRISB*8+0; /* TRISC bits */ static volatile bank1 bit TRISC7 @ (unsigned)&TRISC*8+7; static volatile bank1 bit TRISC6 @ (unsigned)&TRISC*8+6; static volatile bank1 bit TRISC5 @ (unsigned)&TRISC*8+5; static volatile bank1 bit TRISC4 @ (unsigned)&TRISC*8+4; static volatile bank1 bit TRISC3 @ (unsigned)&TRISC*8+3; static volatile bank1 bit TRISC2 @ (unsigned)&TRISC*8+2; static volatile bank1 bit TRISC1 @ (unsigned)&TRISC*8+1; static volatile bank1 bit TRISC0 @ (unsigned)&TRISC*8+0; #ifdef __PINS_40 /* TRISD bits */ static volatile bank1 bit TRISD7 @ (unsigned)&TRISD*8+7; static volatile bank1 bit TRISD6 @ (unsigned)&TRISD*8+6; static volatile bank1 bit TRISD5 @ (unsigned)&TRISD*8+5; static volatile bank1 bit TRISD4 @ (unsigned)&TRISD*8+4; static volatile bank1 bit TRISD3 @ (unsigned)&TRISD*8+3; static volatile bank1 bit TRISD2 @ (unsigned)&TRISD*8+2; static volatile bank1 bit TRISD1 @ (unsigned)&TRISD*8+1; static volatile bank1 bit TRISD0 @ (unsigned)&TRISD*8+0; /* TRISE bits */ static volatile bank1 bit IBF @ (unsigned)&TRISE*8+7; static volatile bank1 bit OBF @ (unsigned)&TRISE*8+6; static volatile bank1 bit IBOV @ (unsigned)&TRISE*8+5; static volatile bank1 bit PSPMODE @ (unsigned)&TRISE*8+4; static volatile bank1 bit TRISE2 @ (unsigned)&TRISE*8+2; static volatile bank1 bit TRISE1 @ (unsigned)&TRISE*8+1; static volatile bank1 bit TRISE0 @ (unsigned)&TRISE*8+0; #endif /* PIE1 bits */ #ifdef __PINS_40 static volatile bank1 bit PSPIE @ (unsigned)&PIE1*8+7; #endif static volatile bank1 bit ADIE @ (unsigned)&PIE1*8+6; #ifndef _16F872 static volatile bank1 bit RCIE @ (unsigned)&PIE1*8+5; static volatile bank1 bit TXIE @ (unsigned)&PIE1*8+4; #endif static volatile bank1 bit SSPIE @ (unsigned)&PIE1*8+3; static volatile bank1 bit CCP1IE @ (unsigned)&PIE1*8+2; static volatile bank1 bit TMR2IE @ (unsigned)&PIE1*8+1; static volatile bank1 bit TMR1IE @ (unsigned)&PIE1*8+0; /* PIE2 bits */ static volatile bank1 bit EEIE @ (unsigned)&PIE2*8+4; static volatile bank1 bit BCLIE @ (unsigned)&PIE2*8+3; #ifndef _16F872 static volatile bank1 bit CCP2IE @ (unsigned)&PIE2*8+0; #endif /* PCON bits */ static volatile bank1 bit POR @ (unsigned)&PCON*8+1; static volatile bank1 bit BOR @ (unsigned)&PCON*8+0; /* SSPCON2 bits */ #if !defined(_16F870) && !defined(_16F871) static volatile bank1 bit GCEN @ (unsigned)&SSPCON2*8+7; static volatile bank1 bit ACKSTAT @ (unsigned)&SSPCON2*8+6; static volatile bank1 bit ACKDT @ (unsigned)&SSPCON2*8+5; static volatile bank1 bit ACKEN @ (unsigned)&SSPCON2*8+4; static volatile bank1 bit RCEN @ (unsigned)&SSPCON2*8+3; static volatile bank1 bit PEN @ (unsigned)&SSPCON2*8+2; static volatile bank1 bit RSEN @ (unsigned)&SSPCON2*8+1; static volatile bank1 bit SEN @ (unsigned)&SSPCON2*8+0; #endif /* SSPSTAT bits */ #if !defined(_16F870) && !defined(_16F871) static volatile bank1 bit STAT_SMP @ (unsigned)&SSPSTAT*8+7; static volatile bank1 bit STAT_CKE @ (unsigned)&SSPSTAT*8+6; static volatile bank1 bit STAT_DA @ (unsigned)&SSPSTAT*8+5; static volatile bank1 bit STAT_P @ (unsigned)&SSPSTAT*8+4; static volatile bank1 bit STAT_S @ (unsigned)&SSPSTAT*8+3; static volatile bank1 bit STAT_RW @ (unsigned)&SSPSTAT*8+2; static volatile bank1 bit STAT_UA @ (unsigned)&SSPSTAT*8+1; static volatile bank1 bit STAT_BF @ (unsigned)&SSPSTAT*8+0; #endif /* TXSTA bits */ #ifndef _16F872 static volatile bank1 bit CSRC @ (unsigned)&TXSTA*8+7; static volatile bank1 bit TX9 @ (unsigned)&TXSTA*8+6; static volatile bank1 bit TXEN @ (unsigned)&TXSTA*8+5; static volatile bank1 bit SYNC @ (unsigned)&TXSTA*8+4; static volatile bank1 bit BRGH @ (unsigned)&TXSTA*8+2; static volatile bank1 bit TRMT @ (unsigned)&TXSTA*8+1; static volatile bank1 bit TX9D @ (unsigned)&TXSTA*8+0; #endif /* ADCON1 bits */ static volatile bank1 bit ADFM @ (unsigned)&ADCON1*8+7; static volatile bank1 bit PCFG3 @ (unsigned)&ADCON1*8+3; static volatile bank1 bit PCFG2 @ (unsigned)&ADCON1*8+2; static volatile bank1 bit PCFG1 @ (unsigned)&ADCON1*8+1; static volatile bank1 bit PCFG0 @ (unsigned)&ADCON1*8+0; /* EECON1 bits */ static volatile bank3 bit EEPGD @ (unsigned)&EECON1*8+7; static volatile bank3 bit WRERR @ (unsigned)&EECON1*8+3; static volatile bank3 bit WREN @ (unsigned)&EECON1*8+2; static volatile bank3 bit WR @ (unsigned)&EECON1*8+1; static volatile bank3 bit RD @ (unsigned)&EECON1*8+0; #define CONFIG_ADDR 0x2007 /*osc configurations*/ #define RC 0x3FFF // resistor/capacitor #define HS 0x3FFE // high speed crystal/resonator #define XT 0x3FFD // crystal/resonator #define LP 0x3FFC // low power crystal/resonator /*watchdog*/ #define WDTEN 0x3FFF // enable watchdog timer #define WDTDIS 0x3FFB // disable watchdog timer /*power up timer*/ #define PWRTEN 0x3FF7 // enable power up timer #define PWRTDIS 0x3FFF // disable power up timer /*brown out reset*/ #define BOREN 0x3FFF // enable brown out reset #define BORDIS 0x3FBF // disable brown out reset /*Low Voltage Programmable*/ #define LVPEN 0x3FFF // low voltage programming enabled #define LVPDIS 0x3F7F // low voltage programming disabled /*data code protected*/ #define DP 0x3EFF // protect data code // alternately #define DPROT 0x3EFF // use DP #define DUNPROT 0x3FFF // use UNPROTECT /* Flash memory write enable/protect */ #define WRTEN 0x3FFF /* flash memory write enabled */ #define WRTDIS 0x3DFF /* flash memory write protected/disabled */ /*debug option*/ #define DEBUGEN 0x37FF // debugger enabled #define DEBUGDIS 0x3FFF // debugger disabled /*code protection*/ #define PROTECT 0x0FCF /* protect program code */ #define UNPROTECT 0x3FFF /* do not protect the code */ #if !defined(_16F870) && !defined(_16F871) #define PROTECT_TOP 0x2FEF /* protects top 256 bytes, 1F00h to 1FFFh */ #define PROTECT50 0x1FDF /* protects upper half of address space */ /* 1000h to 1FFFh (pic16f887/876) */ /* 0800h to 0FFFh (pic16f874/873) */ #endif我拿877A开发了不少东西了,还没发现这个.H文件缺少什么的。

『拾』 PIC单片机C语言头文件

PIC有很多款单片机,你学的 是PIC哪款单片机?头文件都放在编译器的安装目录中,以HI-TECH picc为例:头文件路径为C:Program Files (x86)HI-TECH SoftwarePICC9.82include

如果你是用16系列的话我这样头文件详细说明