1、PIC单片机头文件注解PIC单片机头文件注解/* Header file for the Microchip * PIC 16F873A chip * PIC 16F874A chip * PIC 16F876A chip * PIC 16F877A chip * Midrange Microcontroller */#if defined(_16F874A) | defined(_16F877A)#define _PINS_40#endifstatic volatile unsigned char INDF 0x00; /间接寻址寄存器static volatile unsigned cha
2、r TMR0 0x01; /定时器0static volatile unsigned char PCL 0x02; /低8位程序计数器static volatile unsigned char STATUS 0x03; /程序状态寄存器static unsigned char FSR 0x04; /特殊功能寄存器static volatile unsigned char PORTA 0x05; /端口A寄存器static volatile unsigned char PORTB 0x06; /端口B寄存器static volatile unsigned char PORTC 0x07; /端口
3、C寄存器#ifdef _PINS_40static volatile unsigned char PORTD 0x08; /端口D寄存器static volatile unsigned char PORTE 0x09; /端口E寄存器#endifstatic unsigned char PCLATH 0x0A; /高5位程序计数器static volatile unsigned char INTCON 0x0B; /中断控制寄存器static volatile unsigned char PIR1 0x0C; /中断标志寄存器PIR1static volatile unsigned char
4、PIR2 0x0D; /中断标志寄存器PIR2static volatile unsigned char TMR1L 0x0E; /低字节计数寄存器static volatile unsigned char TMR1H 0x0F; /高字节计数寄存器static volatile unsigned char T1CON 0x10; /TMR1控制寄存器static volatile unsigned char TMR2 0x11; /定时/计数器TMR2static volatile unsigned char T2CON 0x12; /TMR2控制寄存器static volatile uns
5、igned char SSPBUF 0x13; /收/发数据缓冲器static volatile unsigned char SSPCON 0x14; /同步串口控制寄存器,对MSSP模块的功能和指标进行设置和定义。static volatile unsigned char CCPR1L 0x15; /捕获/比较/PWM寄存器低字节static volatile unsigned char CCPR1H 0x16; /捕获/比较/PWM寄存器低字节static volatile unsigned char CCP1CON 0x17; /CCP1CON寄存器static volatile uns
6、igned char RCSTA 0x18; /USART接收控制兼状态寄存器static volatile unsigned char TXREG 0x19; /USART发生缓冲器static volatile unsigned char RCREG 0x1A; /USART接收缓冲器static volatile unsigned char CCPR2L 0x1B; /捕获/比较/PWM寄存器低字节static volatile unsigned char CCPR2H 0x1C; /捕获/比较/PWM寄存器低字节static volatile unsigned char CCP2CON
7、 0x1D; /CCP2CON寄存器static volatile unsigned char ADRESH 0x1E; /ADC转换结果寄存器高字节static volatile unsigned char ADCON0 0x1F; /A/D转换器开关位。/* bank 1 registers */static unsigned char bank1 OPTION 0x81; /选择寄存器,用于配置TMR0/WDT预分频系数、外部INT中断、TMR0和端口B的弱上拉。static volatile unsigned char bank1 TRISA 0x85; /A口方向寄存器static
8、volatile unsigned char bank1 TRISB 0x86; /B口方向寄存器static volatile unsigned char bank1 TRISC 0x87; /C口方向寄存器#ifdef _PINS_40static volatile unsigned char bank1 TRISD 0x88; /D口方向寄存器static volatile unsigned char bank1 TRISE 0x89; /E口方向寄存器#endifstatic volatile unsigned char bank1 PIE1 0x8C; /中断允许寄存器PIE1sta
9、tic volatile unsigned char bank1 PIE2 0x8D; /中断允许寄存器PIE2static volatile unsigned char bank1 PCON 0x8E; /电源控制状态寄存器static volatile unsigned char bank1 SSPCON2 0x91; /MSSP控制寄存器2static volatile unsigned char bank1 PR2 0x92; /TMR2周期寄存器static volatile unsigned char bank1 SSPADD 0x93; /同步串口地址寄存器static vola
10、tile unsigned char bank1 SSPSTAT 0x94; /同步串口状态寄存器static volatile unsigned char bank1 TXSTA 0x98; /USART发生控制兼状态寄存器static volatile unsigned char bank1 SPBRG 0x99; /USART波特率发生器初值寄存器static volatile unsigned char bank1 CMCON 0x9C; /比较控制寄存器static volatile unsigned char bank1 CVRCON 0x9D; /比较电压参考控制寄存器stati
11、c volatile unsigned char bank1 ADRESL 0x9E; /ADC转换结果寄存器低字节static volatile unsigned char bank1 ADCON1 0x9F; /ADC控制寄存器ADCON1/* bank 2 registers */static volatile unsigned char bank2 EEDATA 0x10C; /EEPROM数据寄存器低字节static volatile unsigned char bank2 EEADR 0x10D; /EEPROM地址寄存器低字节static volatile unsigned ch
12、ar bank2 EEDATH 0x10E; /EEPROM数据寄存器高字节static volatile unsigned char bank2 EEADRH 0x10F; /EEPROM地址寄存器高字节/* bank 3 registers */static volatile unsigned char bank3 EECON1 0x18C; /EEPROM控制寄存器1static volatile unsigned char bank3 EECON2 0x18D; /EEPROM控制寄存器2/* STATUS bits状态寄存器 */static volatile bit IRP (un
13、signed)&STATUS*8+7; /寄存器bank选择位(用于间接寻址)。0:bank0,1;1:bank2,3static volatile bit RP1 (unsigned)&STATUS*8+6; /寄存器bank选择位(用于直接寻址)。PR1:PR0:00:BANK0;01:BANK1;10:BANK2;11BANK3.static volatile bit RP0 (unsigned)&STATUS*8+5; /static volatile bit TO (unsigned)&STATUS*8+4; /超时位。0:WDT超时发生;1:上电后,执行了CLRWDT或者SLEEP
14、指令static volatile bit PD (unsigned)&STATUS*8+3; /掉电标志位。0:执行完SLEEP指令;1:上电后或者执行CLRWDT指令static volatile bit ZERO (unsigned)&STATUS*8+2; /零标志位。0:算术或逻辑操作结果不为0;1:反之。static volatile bit DC (unsigned)&STATUS*8+1; /数字进位/退位标志位。0:结果的低4位没有发生进位;1:反之。static volatile bit CARRY (unsigned)&STATUS*8+0; /进位/退位标志位。0:结果
15、的高4位没有发生进位;1:反之。/* PORTA bits */static volatile bit RA5 (unsigned)&PORTA*8+5; /RA5static volatile bit RA4 (unsigned)&PORTA*8+4; /RA4static volatile bit RA3 (unsigned)&PORTA*8+3; /RA3static volatile bit RA2 (unsigned)&PORTA*8+2; /RA2static volatile bit RA1 (unsigned)&PORTA*8+1; /RA1static volatile bi
16、t RA0 (unsigned)&PORTA*8+0; /RA0 /* PORTB bits */static volatile bit RB7 (unsigned)&PORTB*8+7; /RB7static volatile bit RB6 (unsigned)&PORTB*8+6; /RB6static volatile bit RB5 (unsigned)&PORTB*8+5; /RB5static volatile bit RB4 (unsigned)&PORTB*8+4; /RB4static volatile bit RB3 (unsigned)&PORTB*8+3; /RB3s
17、tatic volatile bit RB2 (unsigned)&PORTB*8+2; /RB2static volatile bit RB1 (unsigned)&PORTB*8+1; /RB1static volatile bit RB0 (unsigned)&PORTB*8+0; /RB0/* PORTC bits */static volatile bit RC7 (unsigned)&PORTC*8+7; /RC7static volatile bit RC6 (unsigned)&PORTC*8+6; /RC6static volatile bit RC5 (unsigned)&
18、PORTC*8+5; /RC5static volatile bit RC4 (unsigned)&PORTC*8+4; /RC4static volatile bit RC3 (unsigned)&PORTC*8+3; /RC3static volatile bit RC2 (unsigned)&PORTC*8+2; /RC2static volatile bit RC1 (unsigned)&PORTC*8+1; /RC1static volatile bit RC0 (unsigned)&PORTC*8+0; /RC0/* PORTD bits */#ifdef _PINS_40 sta
19、tic volatile bit RD7 (unsigned)&PORTD*8+7; /RD7static volatile bit RD6 (unsigned)&PORTD*8+6; /RD6static volatile bit RD5 (unsigned)&PORTD*8+5; /RD5static volatile bit RD4 (unsigned)&PORTD*8+4; /RD4static volatile bit RD3 (unsigned)&PORTD*8+3; /RD3static volatile bit RD2 (unsigned)&PORTD*8+2; /RD2sta
20、tic volatile bit RD1 (unsigned)&PORTD*8+1; /RD1static volatile bit RD0 (unsigned)&PORTD*8+0; /RD0/* PORTE bits */static volatile bit RE2 (unsigned)&PORTE*8+2; /RE2static volatile bit RE1 (unsigned)&PORTE*8+1; /RE1static volatile bit RE0 (unsigned)&PORTE*8+0; /RE0#endif/* INTCON bits 中断控制寄存器 */static
21、 volatile bit GIE (unsigned)&INTCON*8+7; /总中断使能位。0:屏蔽所有的中断请求;1:允许非屏蔽的中断。static volatile bit PEIE (unsigned)&INTCON*8+6; /外部中断使能位。0:禁止;1:使能static volatile bit T0IE (unsigned)&INTCON*8+5; /TMR0溢出中断使能位。0:禁止;1:使能static volatile bit INTE (unsigned)&INTCON*8+4; /RB0/INT外部中断使能位。0:不使能;1:使能。static volatile b
22、it RBIE (unsigned)&INTCON*8+3; /RB端口变化中断时能位。0:不使能;1:使能。static volatile bit T0IF (unsigned)&INTCON*8+2; /TMR0溢出中断标志位。0:无溢出;1:溢出。static volatile bit INTF (unsigned)&INTCON*8+1; /RB0/INT外部中断标志位。0:RB0外部中断未发生;1:RB0外部中断发生。static volatile bit RBIF (unsigned)&INTCON*8+0; /RB端口变化中断标志位。0:RB口无变化;1:RB口至少有一个引脚变化
23、。/ alternate definitionsstatic volatile bit TMR0IE (unsigned)&INTCON*8+5; /static volatile bit TMR0IF (unsigned)&INTCON*8+2; / /* PIR1 bits中断标志寄存器PIR1 */#ifdef _PINS_40static volatile bit PSPIF (unsigned)&PIR1*8+7; /并行从端口读写中断标志位。0:没有读写操作发生;1:反之#endifstatic volatile bit ADIF (unsigned)&PIR1*8+6; /A/D
24、转换器中断标志位。0:A/D转换没有完成;1:A/D转换完成。static volatile bit RCIF (unsigned)&PIR1*8+5; /USART接收中断标志位。0:接收缓冲器空;1:反之。static volatile bit TXIF (unsigned)&PIR1*8+4; /USART发送中断标志位。0:发生缓冲器满;1:反之。static volatile bit SSPIF (unsigned)&PIR1*8+3; /同步串行端口(ssp)中断标志位。0:没有ssp中断条件发生;static volatile bit CCP1IF (unsigned)&PIR1
25、*8+2; /CCP1中断标志位。static volatile bit TMR2IF (unsigned)&PIR1*8+1; /TMR2 TO PR2匹配中断标志位。0:没有匹配发生static volatile bit TMR1IF (unsigned)&PIR1*8+0; /TMR1溢出中断标志位,0:无溢出/* PIR2 bits */static volatile bit CMIF (unsigned)&PIR2*8+6; /比较器中断标志位;0:比较器输入没有改变static volatile bit EEIF (unsigned)&PIR2*8+4; /EEPROM写操作中断标
26、志位。0:写操作没有完成或没有开始static volatile bit BCLIF (unsigned)&PIR2*8+3; /总线冲突中断标志位。0:没有总线冲突发生static volatile bit CCP2IF (unsigned)&PIR2*8+0; /CCP2中断标志位/* T1CON bits TMR1控制寄存器 */static volatile bit T1CKPS1 (unsigned)&T1CON*8+5; /TMR1输入时钟预分频选择位static volatile bit T1CKPS0 (unsigned)&T1CON*8+4; /TMR1输入时钟预分频选择位s
27、tatic volatile bit T1OSCEN (unsigned)&T1CON*8+3; /TMR1震荡器使能控制位。0:振荡器关闭static volatile bit T1SYNC (unsigned)&T1CON*8+2; /TMR1外部时钟输入同步控制位。static volatile bit TMR1CS (unsigned)&T1CON*8+1; /TMR1时钟源选择位。0:内部时钟的/4static volatile bit TMR1ON (unsigned)&T1CON*8+0; /TMR1使能位。0:禁止/* T2CON bits TMR2控制寄存器 */static
28、 volatile bit TOUTPS3 (unsigned)&T2CON*8+6; /TMR2后分频选择位。static volatile bit TOUTPS2 (unsigned)&T2CON*8+5; /TMR2后分频选择位static volatile bit TOUTPS1 (unsigned)&T2CON*8+4; /TMR2后分频选择位static volatile bit TOUTPS0 (unsigned)&T2CON*8+3; /TMR2后分频选择位。static volatile bit TMR2ON (unsigned)&T2CON*8+2; /TMR2使能位。st
29、atic volatile bit T2CKPS1 (unsigned)&T2CON*8+1; /TMR2预分频选择位。static volatile bit T2CKPS0 (unsigned)&T2CON*8+0; /TMR2预分频选择位/* SSPCON bits SPI同步串口控制寄存器*/static volatile bit WCOL (unsigned)&SSPCON*8+7; /写操作冲突检测位,在SPI从动方式下,WCOL=0,未发生冲突,WCOL=1,发生冲突。static volatile bit SSPOV (unsigned)&SSPCON*8+6; /接收溢出标志位
30、,SSPOV=0,未发生接收溢出;SSPOV=1,发生接受溢出。static volatile bit SSPEN (unsigned)&SSPCON*8+5; /同步串口MSSP允许位,SSPEN=0,关闭串口;SSPEN=1,允许串行端口功能。static volatile bit CKP (unsigned)&SSPCON*8+4; /时钟极性选择位,CKP=0,空闲时时钟停留在低电平;CKP=1,空闲时时钟停留在高电平。static volatile bit SSPM3 (unsigned)&SSPCON*8+3; /同步串行口MSSP方式选择位,主动参数。0,1,2,3,4.static volatile bit SSPM2 (unsigned)&SSPCON*8+2;static volatile bit SSPM1 (unsigned)&SSPCON*8+1;static volatile bit SSPM0 (unsigned)&SSPCON*8+0;/* CCP1CON bits */static volatile bit CCP1X (unsigned)&CCP1CON*8+5
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1