📄 pic16f722a.h
字号:
#ifndef _HTC_H_
#warning Header file pic16f722a.h included directly. Use #include <htc.h> instead.
#endif
/* header file for the MICROCHIP PIC microcontroller
* 16F722A
*/
#ifndef __PIC16F722A_H
#define __PIC16F722A_H
//
// Configuration mask definitions
//
// Config Register: CONFIG
#define CONFIG 0x2007
// Oscillator
// External RC Clockout
#define FOSC_EXTERNAL_RC_CLOCKOUT 0xFFFF
// External RC No Clock
#define FOSC_EXTERNAL_RC_NO_CLOCK 0xFFFE
// Internal RC Clockout
#define FOSC_INTERNAL_RC_CLOCKOUT 0xFFFD
// Internal RC No Clock
#define FOSC_INTERNAL_RC_NO_CLOCK 0xFFFC
// EC
#define FOSC_EC 0xFFFB
// HS
#define FOSC_HS 0xFFFA
// XT
#define FOSC_XT 0xFFF9
// LP
#define FOSC_LP 0xFFF8
// Watchdog Timer
// On
#define WDT_ON 0xFFFF
// Off
#define WDT_OFF 0xFFF7
// Power Up Timer
// Off
#define nPWRTE_OFF 0xFFFF
// On
#define nPWRTE_ON 0xFFEF
// Master Clear Enable
// RE3 is digital input
#define MCLRE_RE3_IS_DIGITAL_INPUT 0xFFDF
// /MCLR is external
#define MCLRE__MCLR_IS_EXTERNAL 0xFFFF
// Code Protect
// Off
#define CP_OFF 0xFFFF
// On
#define CP_ON 0xFFBF
// Brown Out Reset Enable
// BOR disabled
#define BOREN_BOR_DISABLED 0xFCFF
// BOR disabled
#define BOREN_BOR_DISABLED 0xFDFF
// BOR enabled in run, disabled in sleep
#define BOREN_BOR_ENABLED_IN_RUN__DISABLED_IN_SLEEP 0xFEFF
// BOR Enabled
#define BOREN_BOR_ENABLED 0xFFFF
// Brown-out Reset Voltage Selection
// 1.9V
#define BORV_1_9V 0xFFFF
// 2.5V
#define BORV_2_5V 0xFBFF
// INTOSC PLLEN Enable Bit
// 16MHz
#define PLLEN_16MHZ 0xFFFF
// 500KHz
#define PLLEN_500KHZ 0xEFFF
// Config Register: CONFIG2
#define CONFIG2 0x2008
// Voltage Regulator Capacitor Enable bits
// All VCAP pin functions are disabled
#define VCAPEN_ALL_VCAP_PIN_FUNCTIONS_ARE_DISABLED 0xFFFF
// VCAP functionality is enabled on RA6
#define VCAPEN_VCAP_FUNCTIONALITY_IS_ENABLED_ON_RA6 0xFFEF
// VCAP functionality is enabled on RA5
#define VCAPEN_VCAP_FUNCTIONALITY_IS_ENABLED_ON_RA5 0xFFDF
// VCAP functionality is enabled on RA0
#define VCAPEN_VCAP_FUNCTIONALITY_IS_ENABLED_ON_RA0 0xFFCF
//
// Special function register definitions
//
// Register: INDF
volatile unsigned char INDF @ 0x000;
// bit and bitfield definitions
// Register: TMR0
volatile unsigned char TMR0 @ 0x001;
// bit and bitfield definitions
// Register: PCL
volatile unsigned char PCL @ 0x002;
// bit and bitfield definitions
// Register: STATUS
volatile unsigned char STATUS @ 0x003;
// bit and bitfield definitions
volatile bit CARRY @ ((unsigned)&STATUS*8)+0;
volatile bit DC @ ((unsigned)&STATUS*8)+1;
volatile bit ZERO @ ((unsigned)&STATUS*8)+2;
volatile bit nPD @ ((unsigned)&STATUS*8)+3;
volatile bit nTO @ ((unsigned)&STATUS*8)+4;
volatile bit IRP @ ((unsigned)&STATUS*8)+7;
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned C : 1;
unsigned DC : 1;
unsigned Z : 1;
unsigned nPD : 1;
unsigned nTO : 1;
unsigned RP : 2;
unsigned IRP : 1;
};
} STATUSbits @ 0x003;
#endif
// Register: FSR
volatile unsigned char FSR @ 0x004;
// bit and bitfield definitions
// Register: PORTA
volatile unsigned char PORTA @ 0x005;
// bit and bitfield definitions
volatile bit RA0 @ ((unsigned)&PORTA*8)+0;
volatile bit RA1 @ ((unsigned)&PORTA*8)+1;
volatile bit RA2 @ ((unsigned)&PORTA*8)+2;
volatile bit RA3 @ ((unsigned)&PORTA*8)+3;
volatile bit RA4 @ ((unsigned)&PORTA*8)+4;
volatile bit RA5 @ ((unsigned)&PORTA*8)+5;
volatile bit RA6 @ ((unsigned)&PORTA*8)+6;
volatile bit RA7 @ ((unsigned)&PORTA*8)+7;
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned RA0 : 1;
unsigned RA1 : 1;
unsigned RA2 : 1;
unsigned RA3 : 1;
unsigned RA4 : 1;
unsigned RA5 : 1;
unsigned RA6 : 1;
unsigned RA7 : 1;
};
} PORTAbits @ 0x005;
#endif
// Register: PORTB
volatile unsigned char PORTB @ 0x006;
// bit and bitfield definitions
volatile bit RB0 @ ((unsigned)&PORTB*8)+0;
volatile bit RB1 @ ((unsigned)&PORTB*8)+1;
volatile bit RB2 @ ((unsigned)&PORTB*8)+2;
volatile bit RB3 @ ((unsigned)&PORTB*8)+3;
volatile bit RB4 @ ((unsigned)&PORTB*8)+4;
volatile bit RB5 @ ((unsigned)&PORTB*8)+5;
volatile bit RB6 @ ((unsigned)&PORTB*8)+6;
volatile bit RB7 @ ((unsigned)&PORTB*8)+7;
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned RB0 : 1;
unsigned RB1 : 1;
unsigned RB2 : 1;
unsigned RB3 : 1;
unsigned RB4 : 1;
unsigned RB5 : 1;
unsigned RB6 : 1;
unsigned RB7 : 1;
};
} PORTBbits @ 0x006;
#endif
// Register: PORTC
volatile unsigned char PORTC @ 0x007;
// bit and bitfield definitions
volatile bit RC0 @ ((unsigned)&PORTC*8)+0;
volatile bit RC1 @ ((unsigned)&PORTC*8)+1;
volatile bit RC2 @ ((unsigned)&PORTC*8)+2;
volatile bit RC3 @ ((unsigned)&PORTC*8)+3;
volatile bit RC4 @ ((unsigned)&PORTC*8)+4;
volatile bit RC5 @ ((unsigned)&PORTC*8)+5;
volatile bit RC6 @ ((unsigned)&PORTC*8)+6;
volatile bit RC7 @ ((unsigned)&PORTC*8)+7;
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned RC0 : 1;
unsigned RC1 : 1;
unsigned RC2 : 1;
unsigned RC3 : 1;
unsigned RC4 : 1;
unsigned RC5 : 1;
unsigned RC6 : 1;
unsigned RC7 : 1;
};
} PORTCbits @ 0x007;
#endif
// Register: PORTE
volatile unsigned char PORTE @ 0x009;
// bit and bitfield definitions
volatile bit RE3 @ ((unsigned)&PORTE*8)+3;
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned : 3;
unsigned RE3 : 1;
};
} PORTEbits @ 0x009;
#endif
// Register: PCLATH
volatile unsigned char PCLATH @ 0x00A;
// bit and bitfield definitions
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned PCLATH : 5;
};
} PCLATHbits @ 0x00A;
#endif
// Register: INTCON
volatile unsigned char INTCON @ 0x00B;
// bit and bitfield definitions
volatile bit RBIF @ ((unsigned)&INTCON*8)+0;
volatile bit INTF @ ((unsigned)&INTCON*8)+1;
volatile bit TMR0IF @ ((unsigned)&INTCON*8)+2;
volatile bit RBIE @ ((unsigned)&INTCON*8)+3;
volatile bit INTE @ ((unsigned)&INTCON*8)+4;
volatile bit TMR0IE @ ((unsigned)&INTCON*8)+5;
volatile bit PEIE @ ((unsigned)&INTCON*8)+6;
volatile bit GIE @ ((unsigned)&INTCON*8)+7;
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned RBIF : 1;
unsigned INTF : 1;
unsigned TMR0IF : 1;
unsigned RBIE : 1;
unsigned INTE : 1;
unsigned TMR0IE : 1;
unsigned PEIE : 1;
unsigned GIE : 1;
};
} INTCONbits @ 0x00B;
#endif
// Register: PIR1
volatile unsigned char PIR1 @ 0x00C;
// bit and bitfield definitions
volatile bit TMR1IF @ ((unsigned)&PIR1*8)+0;
volatile bit TMR2IF @ ((unsigned)&PIR1*8)+1;
volatile bit CCP1IF @ ((unsigned)&PIR1*8)+2;
volatile bit SSPIF @ ((unsigned)&PIR1*8)+3;
volatile bit TXIF @ ((unsigned)&PIR1*8)+4;
volatile bit RCIF @ ((unsigned)&PIR1*8)+5;
volatile bit ADIF @ ((unsigned)&PIR1*8)+6;
volatile bit TMR1GIF @ ((unsigned)&PIR1*8)+7;
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned TMR1IF : 1;
unsigned TMR2IF : 1;
unsigned CCP1IF : 1;
unsigned SSPIF : 1;
unsigned TXIF : 1;
unsigned RCIF : 1;
unsigned ADIF : 1;
unsigned TMR1GIF : 1;
};
} PIR1bits @ 0x00C;
#endif
// Register: PIR2
volatile unsigned char PIR2 @ 0x00D;
// bit and bitfield definitions
volatile bit CCP2IF @ ((unsigned)&PIR2*8)+0;
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned CCP2IF : 1;
};
} PIR2bits @ 0x00D;
#endif
// bit and bitfield definitions
// Register: TMR1L
volatile unsigned char TMR1L @ 0x00E;
// bit and bitfield definitions
// Register: TMR1H
volatile unsigned char TMR1H @ 0x00F;
// bit and bitfield definitions
// Register: TMR1
volatile unsigned int TMR1 @ 0x00E;
// Register: T1CON
volatile unsigned char T1CON @ 0x010;
// bit and bitfield definitions
volatile bit TMR1ON @ ((unsigned)&T1CON*8)+0;
volatile bit T1SYNC @ ((unsigned)&T1CON*8)+2;
volatile bit T1OSCEN @ ((unsigned)&T1CON*8)+3;
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned TMR1ON : 1;
unsigned : 1;
unsigned T1SYNC : 1;
unsigned T1OSCEN : 1;
unsigned T1CKPS : 2;
unsigned TMR1CS : 2;
};
} T1CONbits @ 0x010;
#endif
// Register: TMR2
volatile unsigned char TMR2 @ 0x011;
// bit and bitfield definitions
// Register: T2CON
volatile unsigned char T2CON @ 0x012;
// bit and bitfield definitions
volatile bit TMR2ON @ ((unsigned)&T2CON*8)+2;
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned T2CKPS : 2;
unsigned TMR2ON : 1;
unsigned TOUTPS : 4;
};
} T2CONbits @ 0x012;
#endif
// Register: SSPBUF
volatile unsigned char SSPBUF @ 0x013;
// bit and bitfield definitions
// Register: SSPCON
volatile unsigned char SSPCON @ 0x014;
// bit and bitfield definitions
volatile bit CKP @ ((unsigned)&SSPCON*8)+4;
volatile bit SSPEN @ ((unsigned)&SSPCON*8)+5;
volatile bit SSPOV @ ((unsigned)&SSPCON*8)+6;
volatile bit WCOL @ ((unsigned)&SSPCON*8)+7;
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned SSPM : 4;
unsigned CKP : 1;
unsigned SSPEN : 1;
unsigned SSPOV : 1;
unsigned WCOL : 1;
};
} SSPCONbits @ 0x014;
#endif
// bit and bitfield definitions
// Register: CCPR1L
volatile unsigned char CCPR1L @ 0x015;
// bit and bitfield definitions
// Register: CCPR1H
volatile unsigned char CCPR1H @ 0x016;
// bit and bitfield definitions
// Register: CCPR1
volatile unsigned int CCPR1 @ 0x015;
// Register: CCP1CON
volatile unsigned char CCP1CON @ 0x017;
// bit and bitfield definitions
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned CCP1M : 4;
unsigned DC1B : 2;
unsigned : 2;
};
} CCP1CONbits @ 0x017;
#endif
// Register: RCSTA
volatile unsigned char RCSTA @ 0x018;
// bit and bitfield definitions
volatile bit RX9D @ ((unsigned)&RCSTA*8)+0;
volatile bit OERR @ ((unsigned)&RCSTA*8)+1;
volatile bit FERR @ ((unsigned)&RCSTA*8)+2;
volatile bit ADDEN @ ((unsigned)&RCSTA*8)+3;
volatile bit CREN @ ((unsigned)&RCSTA*8)+4;
volatile bit SREN @ ((unsigned)&RCSTA*8)+5;
volatile bit RX9 @ ((unsigned)&RCSTA*8)+6;
volatile bit SPEN @ ((unsigned)&RCSTA*8)+7;
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned RX9D : 1;
unsigned OERR : 1;
unsigned FERR : 1;
unsigned ADDEN : 1;
unsigned CREN : 1;
unsigned SREN : 1;
unsigned RX9 : 1;
unsigned SPEN : 1;
};
} RCSTAbits @ 0x018;
#endif
// Register: TXREG
volatile unsigned char TXREG @ 0x019;
// bit and bitfield definitions
// Register: RCREG
volatile unsigned char RCREG @ 0x01A;
// bit and bitfield definitions
// bit and bitfield definitions
// Register: CCPR2L
volatile unsigned char CCPR2L @ 0x01B;
// bit and bitfield definitions
// Register: CCPR2H
volatile unsigned char CCPR2H @ 0x01C;
// bit and bitfield definitions
// Register: CCPR2
volatile unsigned int CCPR2 @ 0x01B;
// Register: CCP2CON
volatile unsigned char CCP2CON @ 0x01D;
// bit and bitfield definitions
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned CCP2M : 4;
unsigned DC2B : 2;
};
} CCP2CONbits @ 0x01D;
#endif
// Register: ADRES
volatile unsigned char ADRES @ 0x01E;
// bit and bitfield definitions
// Register: ADCON0
volatile unsigned char ADCON0 @ 0x01F;
// bit and bitfield definitions
volatile bit ADON @ ((unsigned)&ADCON0*8)+0;
volatile bit GO_nDONE @ ((unsigned)&ADCON0*8)+1;
#ifndef _LIB_BUILD
volatile union {
struct {
unsigned ADON : 1;
unsigned GO_nDONE : 1;
unsigned CHS : 4;
};
struct {
unsigned : 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -