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

📄 pic1643x.h

📁 picc
💻 H
字号:

#ifndef	_HTC_H_
#warning Header file pic1643x.h included directly. Use #include <htc.h> instead.
#endif

/*
 * 	Header file for the Microchip
 * 	PIC 16C432 chip
 * 	PIC 16C433 chip
 * 	Midrange Microcontrollers
 */

volatile	unsigned char	INDF	@ 0x00;
volatile	unsigned char	TMR0	@ 0x01;
volatile	unsigned char 	PCL	@ 0x02;
volatile unsigned char	STATUS	@ 0x03;
		unsigned char	FSR	@ 0x04;
#if	defined(_16C432)
volatile unsigned char	PORTA	@ 0x05;
volatile	unsigned char	PORTB	@ 0x06;
#endif
#if 	defined(_16C433)
volatile	unsigned char	GPIO	@ 0x05;
#endif
		unsigned char	PCLATH	@ 0x0A;
volatile	unsigned char	INTCON	@ 0x0B;
volatile	unsigned char	PIR1	@ 0x0C;
#if	defined(_16C433)
volatile	unsigned char	ADRES	@ 0x1E;
volatile	unsigned char	ADCON0	@ 0x1F;
#endif
#if	defined(_16C432)
volatile	unsigned char	CMCON	@ 0x1F;
#endif

		unsigned char      	OPTION	@ 0x81;
#if 	defined(_16C432)
	unsigned char      	TRISA	@ 0x85;
		unsigned char      	TRISB	@ 0x86;
#endif
#if	defined(_16C433)
	unsigned char      	TRIS	@ 0x85;
#endif
volatile unsigned char      	PIE1	@ 0x8C;
volatile	unsigned char      	PCON	@ 0x8E;
#if	defined(_16C433)
		unsigned char       	OSCCAL	@ 0x8F;
volatile	unsigned char      	ADCON1	@ 0x9F;
#endif
#if	defined(_16C432)
volatile unsigned char      	LININTF	@ 0x90;
volatile unsigned char      	VRCON	@ 0x9F;
#endif


/*	TMR0 bits	*/
		bit	TMR07	@ (unsigned)&TMR0*8+7;
		bit	TMR06	@ (unsigned)&TMR0*8+6;
		bit	TMR05	@ (unsigned)&TMR0*8+5;
		bit	TMR04	@ (unsigned)&TMR0*8+4;
		bit	TMR03	@ (unsigned)&TMR0*8+3;
		bit	TMR02	@ (unsigned)&TMR0*8+2;
		bit	TMR01	@ (unsigned)&TMR0*8+1;
		bit	TMR00	@ (unsigned)&TMR0*8+0;

/* 	PCL bits	*/
		bit	PCL7	@ (unsigned)&PCL*8+7;
		bit	PCL6	@ (unsigned)&PCL*8+6;
		bit	PCL5	@ (unsigned)&PCL*8+5;
		bit	PCL4	@ (unsigned)&PCL*8+4;
		bit	PCL3	@ (unsigned)&PCL*8+3;
		bit	PCL2	@ (unsigned)&PCL*8+2;
		bit	PCL1	@ (unsigned)&PCL*8+1;
		bit	PCL0	@ (unsigned)&PCL*8+0;

/*	STATUS bits	*/
volatile bit	IRP	@ (unsigned)&STATUS*8+7;
volatile bit	RP1	@ (unsigned)&STATUS*8+6;
volatile bit	RP0	@ (unsigned)&STATUS*8+5;
volatile bit	TO	@ (unsigned)&STATUS*8+4;
volatile bit	PD	@ (unsigned)&STATUS*8+3;
volatile bit	ZERO	@ (unsigned)&STATUS*8+2;
volatile bit	DC	@ (unsigned)&STATUS*8+1;
volatile bit	CARRY	@ (unsigned)&STATUS*8+0;

#if	defined(_16C432)
/*	PORTA bits	*/
volatile bit	RA4	@ (unsigned)&PORTA*8+4;
volatile bit	RA3	@ (unsigned)&PORTA*8+3;
volatile bit	RA2	@ (unsigned)&PORTA*8+2;
volatile bit	RA1	@ (unsigned)&PORTA*8+1;
volatile bit	RA0	@ (unsigned)&PORTA*8+0;

/*	PORTB bits	*/
volatile bit	RB7	@ (unsigned)&PORTB*8+7;
volatile bit	RB6	@ (unsigned)&PORTB*8+6;
volatile bit	RB5	@ (unsigned)&PORTB*8+5;
volatile bit	RB4	@ (unsigned)&PORTB*8+4;
volatile bit	RB3	@ (unsigned)&PORTB*8+3;
volatile bit	RB2	@ (unsigned)&PORTB*8+2;
volatile bit	RB1	@ (unsigned)&PORTB*8+1;
volatile bit	RB0	@ (unsigned)&PORTB*8+0;
#endif

#if	defined(_16C433)
/*	GPIO bits	*/
volatile bit	LINTX	@ (unsigned)&GPIO*8+7;
volatile bit	LINRX	@ (unsigned)&GPIO*8+6;
volatile bit	GP5	@ (unsigned)&GPIO*8+5;
volatile bit	GP4	@ (unsigned)&GPIO*8+4;
volatile bit	GP3	@ (unsigned)&GPIO*8+3;
volatile bit	GP2	@ (unsigned)&GPIO*8+2;
volatile bit	GP1	@ (unsigned)&GPIO*8+1;
volatile bit	GP0	@ (unsigned)&GPIO*8+0;
#endif

/*	INTCON bits	*/
volatile bit	GIE	@ (unsigned)&INTCON*8+7;
volatile bit	PEIE	@ (unsigned)&INTCON*8+6;
volatile bit	T0IE	@ (unsigned)&INTCON*8+5;
volatile bit	INTE	@ (unsigned)&INTCON*8+4;
volatile bit	RBIE	@ (unsigned)&INTCON*8+3;
volatile bit	T0IF	@ (unsigned)&INTCON*8+2;
volatile bit	INTF	@ (unsigned)&INTCON*8+1;
volatile bit	RBIF	@ (unsigned)&INTCON*8+0;

/*	PIR1 bits	*/
#if 	defined(_16C432)
volatile bit	CMIF	@ (unsigned)&PIR1*8+6;
#endif
#if	defined(_16C433)
volatile bit	ADIF	@ (unsigned)&PIR1*8+6;
#endif

#if	defined(_16C433)
/*	ADRES bits	*/
volatile bit	ADRES7	@ (unsigned)&ADRES*8+7;
volatile bit	ADRES6	@ (unsigned)&ADRES*8+6;
volatile bit	ADRES5	@ (unsigned)&ADRES*8+5;
volatile bit	ADRES4	@ (unsigned)&ADRES*8+4;
volatile bit	ADRES3	@ (unsigned)&ADRES*8+3;
volatile bit	ADRES2	@ (unsigned)&ADRES*8+2;
volatile bit	ADRES1	@ (unsigned)&ADRES*8+1;
volatile bit	ADRES0	@ (unsigned)&ADRES*8+0;

/*	ADCON0 bits	*/
volatile bit	ADCS1	@ (unsigned)&ADCON0*8+7;
volatile bit	ADCS0	@ (unsigned)&ADCON0*8+6;
volatile bit	CHS1	@ (unsigned)&ADCON0*8+4;
volatile bit	CHS0	@ (unsigned)&ADCON0*8+3;
volatile bit	GO_DONE	@ (unsigned)&ADCON0*8+2;
volatile bit	ADON	@ (unsigned)&ADCON0*8+0;
#endif

/*	CMCON bits	*/
#if	defined(_16C432)
volatile bit	C2OUT	@ (unsigned)&CMCON*8+7;
volatile bit 	C1OUT	@ (unsigned)&CMCON*8+6;
volatile bit	CIS	@ (unsigned)&CMCON*8+3;
volatile bit	CM2	@ (unsigned)&CMCON*8+2;
volatile bit	CM1	@ (unsigned)&CMCON*8+1;
volatile bit	CM0	@ (unsigned)&CMCON*8+0;
#endif

/*	OPTION bits	*/
#if	defined(_16C432)
volatile bit      	RBPU	@ (unsigned)&OPTION*8+7;
#endif
#if	defined(_16C433)
volatile bit      	GPPU	@ (unsigned)&OPTION*8+7;
#endif
volatile bit      	INTEDG	@ (unsigned)&OPTION*8+6;
volatile bit      	T0CS	@ (unsigned)&OPTION*8+5;
volatile bit      	T0SE	@ (unsigned)&OPTION*8+4;
volatile bit      	PSA	@ (unsigned)&OPTION*8+3;
volatile bit      	PS2	@ (unsigned)&OPTION*8+2;
volatile bit      	PS1	@ (unsigned)&OPTION*8+1;
volatile bit      	PS0	@ (unsigned)&OPTION*8+0;

#if	defined(_16C432)
/*	TRISA	bits	*/
volatile bit      	TRISA4	@ (unsigned)&TRISA*8+4;
volatile bit      	TRISA3	@ (unsigned)&TRISA*8+3;
volatile bit      	TRISA2	@ (unsigned)&TRISA*8+2;
volatile bit      	TLINRX	@ (unsigned)&TRISA*8+1;
volatile bit      	TRISA0	@ (unsigned)&TRISA*8+0;

/*	TRISB bits 	*/
volatile bit      	TRISB7	@ (unsigned)&TRISB*8+4;
volatile bit      	TRISB6	@ (unsigned)&TRISB*8+4;
volatile bit      	TRISB5	@ (unsigned)&TRISB*8+4;
volatile bit      	TRISB4	@ (unsigned)&TRISB*8+4;
volatile bit      	TRISB3	@ (unsigned)&TRISB*8+4;
volatile bit      	TRISB2	@ (unsigned)&TRISB*8+4;
volatile bit      	TRISB1	@ (unsigned)&TRISB*8+4;
volatile bit      	TRISB0	@ (unsigned)&TRISB*8+4;
#endif

#if	defined(_16C433)
/*	TRIS bits	*/
volatile	bit      	TRIS5	@ (unsigned)&TRIS*8+5;
volatile	bit      	TRIS4	@ (unsigned)&TRIS*8+4;
volatile	bit      	TRIS3	@ (unsigned)&TRIS*8+3;
volatile	bit      	TRIS2	@ (unsigned)&TRIS*8+2;
volatile	bit      	TRIS1	@ (unsigned)&TRIS*8+1;
volatile	bit      	TRIS0	@ (unsigned)&TRIS*8+0;
#endif

/*	PIE1 bits	*/
#if	defined(_16C432)
volatile bit      	CMIE	@ (unsigned)&PIE1*8+6;
#endif
#if	defined(_16C433)
volatile bit      	ADIE	@ (unsigned)&PIE1*8+6;
#endif
	
/*	PCON bits	*/
volatile bit      	POR	@ (unsigned)&PCON*8+1;
#if	defined(_16C432)
volatile bit      	BOD	@ (unsigned)&PCON*8+0;
#endif

#if	defined(_16C432)
/*	LININTF bits	*/
volatile bit      	LINTX	@ (unsigned)&LININTF*8+1;
volatile bit      	LINV 	@ (unsigned)&LININTF*8+0;

/*	VRCON bits	*/
volatile bit      	VREN	@ (unsigned)&VRCON*8+7;
volatile bit      	VROE	@ (unsigned)&VRCON*8+6;
volatile bit      	VRR	@ (unsigned)&VRCON*8+5;
volatile bit      	VR3	@ (unsigned)&VRCON*8+3;
volatile bit      	VR2	@ (unsigned)&VRCON*8+2;
volatile bit      	VR1	@ (unsigned)&VRCON*8+1;
volatile bit      	VR0	@ (unsigned)&VRCON*8+0;
#endif

#if 	defined(_16C433)
/*	OSCCAL bits	*/
		bit      	CAL3	@ (unsigned)&OSCCAL*8+7;
		bit      	CAL2	@ (unsigned)&OSCCAL*8+6;
		bit      	CAL1	@ (unsigned)&OSCCAL*8+5;
		bit      	CAL0	@ (unsigned)&OSCCAL*8+4;
		bit      	CALFST	@ (unsigned)&OSCCAL*8+3;
		bit      	CALSLW	@ (unsigned)&OSCCAL*8+2;

/*	ADCON1 bits	*/
volatile bit      	PCFG2	@ (unsigned)&ADCON1*8+2;
volatile bit      	PCFG1	@ (unsigned)&ADCON1*8+1;
volatile bit      	PCFG0	@ (unsigned)&ADCON1*8+0;
#endif

#define CONFIG_ADDR	0x2007

#define PWRTDIS		0x3FFF	// disable power up timer

#define WDTEN		0x3FFF	// enable watchdog timer

#if	defined(_16C432)
#define BOREN		0x3FFF	// enable brown out reset
#define BORDIS		0x3FBF	// disable brown out reset
#define	PWRTEN	 	0x3FF7	// enable power up timer
#define WDTDIS		0x3FFB	// disable watchdog timer
#endif

#if 	defined(_16C433)
#define	MCLREN		0x3F7F	// enable master clear
#define	MCLRDIS		0x3FFF	// disable master clear
#define PWRTEN		0x3FEF	// enable power up timer
#define WDTDIS		0x3FF7	// disable watchdog timer
#endif

/*osc configurations*/
#if	defined(_16C433)
#define EXTRC		0x3FFF	// external resistor/capacitor, clock out on OSC2
#define EXTRCIO		0x3FFE	// external resistor/capacitor, OSC2 is I/O
#define INTRC		0x3FFD	// internal 4Mhz oscillator, clock out on OSC2
#define INTRCIO		0x3FFC	// internal 4Mhz oscillator, OSC2 is I/O
#define HS		0x3FFA	// high speed crystal/resonator
#define XT		0x3FF9	// crystal/resonator
#define LP		0x3FF8	// low power crystal/resonator
#endif
#if	defined(_16C432)
#define RC		0x3FFF	// external resistor/capacitor
#define HS		0x3FFE	// high speed crystal/resonator
#define XT		0x3FFD	// crystal/resonator
#define LP		0x3FFC	// low power crystal/resonator
#endif

/*code protection*/
#define UNPROTECT	0x3FFF	/* do not protect the code */
#if	defined(_16C432)
#define PROTECT50	0x2AEF;	// protect 50% of code
#define PROTECT75	0x15DF;	// protect 75% of code
#define	PROTECT		0x00CF;	// protect all code
#endif
#if	defined(_16C433)
#define PROTECT50	0x2ADF;	// protect 50% of code
#define PROTECT75	0x15BF;	// protect 75% of code
#define	PROTECT		0x009F;	// protect all code
#endif


⌨️ 快捷键说明

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