⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pic16lf1823.h

📁 picc
💻 H
📖 第 1 页 / 共 5 页
字号:
#ifndef	_HTC_H_
#warning Header file pic16lf1823.h included directly. Use #include <htc.h> instead.
#endif

 /* header file for the MICROCHIP PIC microcontroller
    16LF1823
 */

#ifndef __PIC16LF1823_H
#define __PIC16LF1823_H

//
// Configuration mask definitions
//

// Config Register: CONFIG1
#define CONFIG1              0x8007 
// Oscillator
// LP Oscillator, Low-power crystal on RA4/OSC2/CLKOUT pin and RA5/OSC1/CLKIN
#define FOSC_LP              0xFFF8 
// XT Oscillator, Crystal/resonator on RA4/OSC2/CLKOUT pin and RA5/OSC1/CLKIN
#define FOSC_XT              0xFFF9 
// HS Oscillator, High speed crystal/resonator on RA4/OSC2/CLKOUT pin and RA5/OSC1/CLKIN
#define FOSC_HS              0xFFFA 
// EXTRC Oscillator, RC on RA5/OSC1/CLKIN
#define FOSC_EXTRC           0xFFFB 
// INTOSC Oscillator, I/O function on RA5/OSC1/CLKIN
#define FOSC_INTOSC          0xFFFC 
// ECL, External Clock, Low Power Mode: CLKIN on RA5/OSC1/CLKIN
#define FOSC_ECL             0xFFFD 
// ECM, External Clock, Medium Power Mode: CLKIN on RA5/OSC1/CLKIN
#define FOSC_ECM             0xFFFE 
// ECH, External Clock, High Power Mode: CLKIN on RA5/OSC1/CLKIN
#define FOSC_ECH             0xFFFF 
// Watchdog Timer Enable bit
// WDT enabled
#define WDTE_ON              0xFFFF 
// WDT enabled while running and disabled in Sleep
#define WDTE_NSLEEP          0xFFF7 
// WDT controlled by the SWDTEN bit in the WDTCON register
#define WDTE_SWDTEN          0xFFEF 
// WDT disabled
#define WDTE_OFF             0xFFE7 
// Power-up Timer Enable bit
// PWRT disabled
#define PWRTE_OFF            0xFFFF 
// PWRT enabled
#define PWRTE_ON             0xFFDF 
// MCLR Pin Function Select
// RA3/MCLR/VPP pin function is MCLR
#define MCLRE_ON             0xFFFF 
// RA3/MCLR/VPP pin function is digital input
#define MCLRE_OFF            0xFFBF 
// Flash Program Memory Code Protection bit
// Program memory code protection is disabled
#define CP_OFF               0xFFFF 
// Program memory code protection is enabled
#define CP_ON                0xFF7F 
// Data EE Read Protect
// Data memory code protection is disabled
#define CPD_OFF              0xFFFF 
// Data memory code protection is enabled
#define CPD_ON               0xFEFF 
// Brown-out Reset Enable bits
// Brown-out Reset enabled
#define BOREN_ON             0xFFFF 
// Brown-out Reset enabled while running and disabled in Sleep
#define BOREN_NSLEEP         0xFDFF 
// Brown-out Reset controlled by the SBOREN bit in the PCON register
#define BOREN_SBODEN         0xFBFF 
// Brown-out Reset disabled
#define BOREN_OFF            0xF9FF 
// Clock Out Enable bit
// CLKOUT function is disabled. I/O or oscillator function on RA4/CLKOUT
#define CLKOUTEN_OFF         0xFFFF 
// CLKOUT function is enabled on RA4/CLKOUT pin
#define CLKOUTEN_ON          0xF7FF 
// Internal-External Switch Over
// Internal/External Switchover mode is enabled
#define IESO_ON              0xFFFF 
// Internal/External Switchover mode is disabled
#define IESO_OFF             0xEFFF 
// Fail Clock Monitor Enable
// Fail-Safe Clock Monitor is enabled
#define FCMEN_ON             0xFFFF 
// Fail-Safe Clock Monitor is disabled
#define FCMEN_OFF            0xDFFF 


// Config Register: CONFIG2
#define CONFIG2              0x8009 
// Flash memory self-write protection bits
// Write protection off
#define WRT_OFF              0xFFFF 
// 000h to 1FFh write protected, 200h to 7FFh may be modified by EECON control
#define WRT_BOOT             0xFFFE 
// 000h to 3FFh write protected, 400h to 7FFh may be modified by EECON control
#define WRT_HALF             0xFFFD 
// 000h to 7FFh write protected, no addresses may be modified by EECON control
#define WRT_ALL              0xFFFC 
// VCAP P
// 4x PLL enabled
#define PLLEN_ON             0xFFFF 
// 4x PLL disabled
#define PLLEN_OFF            0xFEFF 
// Stack Overflow/Underflow Reset Enable bit
// Stack Overflow or underflow will cause a Reset
#define STVREN_ON            0xFFFF 
// Stack Overflow or underflow will not cause a Reset
#define STVREN_OFF           0xFDFF 
// Brown-out Reset Voltage selection
// Brown-out Reset Voltage (VBOR) set to 1.9 V
#define BORV_19              0xFFFF 
// Brown-out Reset Voltage (VBOR) set to 2.7 V
#define BORV_27              0xFBFF 
// Debugger Mode
// Background debugger is disabled
#define DEBUG_OFF            0xFFFF 
// Background debugger is enabled
#define DEBUG_ON             0xEFFF 
// Low Voltage Programming Enable bit
// Low voltage programming enabled
#define LVP_ON               0xFFFF 
// High voltage on MCLR/VPP must be used for programming
#define LVP_OFF              0xDFFF 


//
// Special function register definitions: Bank 0
//

// Register: INDF0
volatile unsigned char           INDF0               @ 0x000;
// bit and bitfield definitions

// Register: INDF1
volatile unsigned char           INDF1               @ 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;
#ifndef _LIB_BUILD
union {
    struct {
        volatile unsigned C                   : 1;
        volatile unsigned DC                  : 1;
        volatile unsigned Z                   : 1;
        volatile unsigned nPD                 : 1;
        volatile unsigned nTO                 : 1;
        volatile unsigned                     : 2;
        volatile unsigned : 1;
    };
} STATUSbits @ 0x003;
#endif
// bit and bitfield definitions

// Register: FSR0L
volatile unsigned char           FSR0L               @ 0x004;
// bit and bitfield definitions

// Register: FSR0H
volatile unsigned char           FSR0H               @ 0x005;
// bit and bitfield definitions

// Register: FSR0
volatile unsigned int            FSR0                @ 0x004;
// bit and bitfield definitions

// Register: FSR1L
volatile unsigned char           FSR1L               @ 0x006;
// bit and bitfield definitions

// Register: FSR1H
volatile unsigned char           FSR1H               @ 0x007;
// bit and bitfield definitions

// Register: FSR1
volatile unsigned int            FSR1                @ 0x006;

// Register: BSR
volatile unsigned char           BSR                 @ 0x008;
// bit and bitfield definitions
volatile bit BSR0                @ ((unsigned)&BSR*8)+0;
volatile bit BSR1                @ ((unsigned)&BSR*8)+1;
volatile bit BSR2                @ ((unsigned)&BSR*8)+2;
volatile bit BSR3                @ ((unsigned)&BSR*8)+3;
volatile bit BSR4                @ ((unsigned)&BSR*8)+4;
#ifndef _LIB_BUILD
union {
    struct {
        volatile unsigned BSR0                : 1;
        volatile unsigned BSR1                : 1;
        volatile unsigned BSR2                : 1;
        volatile unsigned BSR3                : 1;
        volatile unsigned BSR4                : 1;
    };
    struct {
        volatile unsigned BSR                 : 5;
    };
} BSRbits @ 0x008;
#endif

// Register: WREG
volatile unsigned char           WREG                @ 0x009;
// bit and bitfield definitions

// Register: PCLATH
volatile unsigned char           PCLATH              @ 0x00A;
// bit and bitfield definitions
#ifndef _LIB_BUILD
union {
    struct {
        volatile unsigned PCLATH              : 7;
    };
} PCLATHbits @ 0x00A;
#endif

// Register: INTCON
volatile unsigned char           INTCON              @ 0x00B;
// bit and bitfield definitions
volatile bit IOCIF               @ ((unsigned)&INTCON*8)+0;
volatile bit INTF                @ ((unsigned)&INTCON*8)+1;
volatile bit TMR0IF              @ ((unsigned)&INTCON*8)+2;
volatile bit IOCIE               @ ((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
union {
    struct {
        volatile unsigned IOCIF               : 1;
        volatile unsigned INTF                : 1;
        volatile unsigned TMR0IF              : 1;
        volatile unsigned IOCIE               : 1;
        volatile unsigned INTE                : 1;
        volatile unsigned TMR0IE              : 1;
        volatile unsigned PEIE                : 1;
        volatile unsigned GIE                 : 1;
    };
} INTCONbits @ 0x00B;
#endif

// Register: PORTA
volatile unsigned char           PORTA               @ 0x00C;
// 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;
#ifndef _LIB_BUILD
union {
    struct {
        volatile unsigned RA0                 : 1;
        volatile unsigned RA1                 : 1;
        volatile unsigned RA2                 : 1;
        volatile unsigned RA3                 : 1;
        volatile unsigned RA4                 : 1;
        volatile unsigned RA5                 : 1;
        volatile unsigned                     : 1;
        volatile unsigned : 1;
    };
    struct {
        volatile unsigned RA                  : 6;
        volatile unsigned : 2;
    };
} PORTAbits @ 0x00C;
#endif

// Register: PORTC
volatile unsigned char           PORTC               @ 0x00E;
// 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;
#ifndef _LIB_BUILD
union {
    struct {
        volatile unsigned RC0                 : 1;
        volatile unsigned RC1                 : 1;
        volatile unsigned RC2                 : 1;
        volatile unsigned RC3                 : 1;
        volatile unsigned RC4                 : 1;
        volatile unsigned RC5                 : 1;
        volatile unsigned                     : 1;
        volatile unsigned : 1;
    };
    struct {
        volatile unsigned RC                  : 6;
    };
} PORTCbits @ 0x00E;
#endif

// Register: PIR1
volatile unsigned char           PIR1                @ 0x011;
// bit and bitfield definitions
// TMR1 Overflow Interrupt Flag bit
volatile bit TMR1IF              @ ((unsigned)&PIR1*8)+0;
// TMR2 to PR2 Match Interrupt Flag bit
volatile bit TMR2IF              @ ((unsigned)&PIR1*8)+1;
// CCP1 Interrupt Flag bit
volatile bit CCP1IF              @ ((unsigned)&PIR1*8)+2;
// Master Synchronous Serial Port (MSSP) Interrupt Flag bit
volatile bit SSP1IF              @ ((unsigned)&PIR1*8)+3;
// EUSART Transmit Interrupt Flag bit
volatile bit TXIF                @ ((unsigned)&PIR1*8)+4;
// EUSART Receive Interrupt Flag bit
volatile bit RCIF                @ ((unsigned)&PIR1*8)+5;
// A/D Converter Interrupt Flag bit
volatile bit ADIF                @ ((unsigned)&PIR1*8)+6;
// Timer1 Gate Interrupt Flag bit
volatile bit TMR1GIF             @ ((unsigned)&PIR1*8)+7;
#ifndef _LIB_BUILD
union {
    struct {
        volatile unsigned TMR1IF              : 1;
        volatile unsigned TMR2IF              : 1;
        volatile unsigned CCP1IF              : 1;
        volatile unsigned SSP1IF              : 1;
        volatile unsigned TXIF                : 1;
        volatile unsigned RCIF                : 1;
        volatile unsigned ADIF                : 1;
        volatile unsigned TMR1GIF             : 1;
    };
} PIR1bits @ 0x011;
#endif

// Register: PIR2
volatile unsigned char           PIR2                @ 0x012;
// bit and bitfield definitions
volatile bit BCL1IF              @ ((unsigned)&PIR2*8)+3;
volatile bit EEIF                @ ((unsigned)&PIR2*8)+4;
volatile bit C1IF                @ ((unsigned)&PIR2*8)+5;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -