PIC单片机头文件注解.docx

上传人:b****5 文档编号:6361248 上传时间:2023-01-05 格式:DOCX 页数:15 大小:20.37KB
下载 相关 举报
PIC单片机头文件注解.docx_第1页
第1页 / 共15页
PIC单片机头文件注解.docx_第2页
第2页 / 共15页
PIC单片机头文件注解.docx_第3页
第3页 / 共15页
PIC单片机头文件注解.docx_第4页
第4页 / 共15页
PIC单片机头文件注解.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

PIC单片机头文件注解.docx

《PIC单片机头文件注解.docx》由会员分享,可在线阅读,更多相关《PIC单片机头文件注解.docx(15页珍藏版)》请在冰豆网上搜索。

PIC单片机头文件注解.docx

PIC单片机头文件注解

PIC单片机头文件注解

/*HeaderfilefortheMicrochip

*PIC16F873Achip

*PIC16F874Achip

*PIC16F876Achip

*PIC16F877Achip

*MidrangeMicrocontroller

*/

#ifdefined(_16F874A)||defined(_16F877A)

#define__PINS_40

#endif

staticvolatileunsignedcharINDF@0x00;//间接寻址寄存器

staticvolatileunsignedcharTMR0@0x01;//定时器0

staticvolatileunsignedcharPCL@0x02;//低8位程序计数器

staticvolatileunsignedcharSTATUS@0x03;//程序状态寄存器

staticunsignedcharFSR@0x04;//特殊功能寄存器

staticvolatileunsignedcharPORTA@0x05;//端口A寄存器

staticvolatileunsignedcharPORTB@0x06;//端口B寄存器

staticvolatileunsignedcharPORTC@0x07;//端口C寄存器

#ifdef__PINS_40

staticvolatileunsignedcharPORTD@0x08;//端口D寄存器

staticvolatileunsignedcharPORTE@0x09;//端口E寄存器

#endif

staticunsignedcharPCLATH@0x0A;//高5位程序计数器

staticvolatileunsignedcharINTCON@0x0B;//中断控制寄存器

staticvolatileunsignedcharPIR1@0x0C;//中断标志寄存器PIR1

staticvolatileunsignedcharPIR2@0x0D;//中断标志寄存器PIR2

staticvolatileunsignedcharTMR1L@0x0E;//低字节计数寄存器

staticvolatileunsignedcharTMR1H@0x0F;//高字节计数寄存器

staticvolatileunsignedcharT1CON@0x10;//TMR1控制寄存器

staticvolatileunsignedcharTMR2@0x11;//定时/计数器TMR2

staticvolatileunsignedcharT2CON@0x12;//TMR2控制寄存器

staticvolatileunsignedcharSSPBUF@0x13;//收/发数据缓冲器

staticvolatileunsignedcharSSPCON@0x14;//同步串口控制寄存器,对MSSP模块的功能和指标进行设置和定义。

staticvolatileunsignedcharCCPR1L@0x15;//捕获/比较/PWM寄存器低字节

staticvolatileunsignedcharCCPR1H@0x16;//捕获/比较/PWM寄存器低字节

staticvolatileunsignedcharCCP1CON@0x17;//CCP1CON寄存器

staticvolatileunsignedcharRCSTA@0x18;//USART接收控制兼状态寄存器

staticvolatileunsignedcharTXREG@0x19;//USART发生缓冲器

staticvolatileunsignedcharRCREG@0x1A;//USART接收缓冲器

staticvolatileunsignedcharCCPR2L@0x1B;//捕获/比较/PWM寄存器低字节

staticvolatileunsignedcharCCPR2H@0x1C;//捕获/比较/PWM寄存器低字节

staticvolatileunsignedcharCCP2CON@0x1D;//CCP2CON寄存器

staticvolatileunsignedcharADRESH@0x1E;//ADC转换结果寄存器高字节

staticvolatileunsignedcharADCON0@0x1F;//A/D转换器开关位。

/*bank1registers*/

staticunsignedcharbank1OPTION@0x81;//选择寄存器,用于配置TMR0/WDT预分频系数、外部INT中断、TMR0和端口B的弱上拉。

staticvolatileunsignedcharbank1TRISA@0x85;//A口方向寄存器

staticvolatileunsignedcharbank1TRISB@0x86;//B口方向寄存器

staticvolatileunsignedcharbank1TRISC@0x87;//C口方向寄存器

#ifdef__PINS_40

staticvolatileunsignedcharbank1TRISD@0x88;//D口方向寄存器

staticvolatileunsignedcharbank1TRISE@0x89;//E口方向寄存器

#endif

staticvolatileunsignedcharbank1PIE1@0x8C;//中断允许寄存器PIE1

staticvolatileunsignedcharbank1PIE2@0x8D;//中断允许寄存器PIE2

staticvolatileunsignedcharbank1PCON@0x8E;//电源控制状态寄存器

staticvolatileunsignedcharbank1SSPCON2@0x91;//MSSP控制寄存器2

staticvolatileunsignedcharbank1PR2@0x92;//TMR2周期寄存器

staticvolatileunsignedcharbank1SSPADD@0x93;//同步串口地址寄存器

staticvolatileunsignedcharbank1SSPSTAT@0x94;//同步串口状态寄存器

staticvolatileunsignedcharbank1TXSTA@0x98;//USART发生控制兼状态寄存器

staticvolatileunsignedcharbank1SPBRG@0x99;//USART波特率发生器初值寄存器

staticvolatileunsignedcharbank1CMCON@0x9C;//比较控制寄存器

staticvolatileunsignedcharbank1CVRCON@0x9D;//比较电压参考控制寄存器

staticvolatileunsignedcharbank1ADRESL@0x9E;//ADC转换结果寄存器低字节

staticvolatileunsignedcharbank1ADCON1@0x9F;//ADC控制寄存器ADCON1

/*bank2registers*/

staticvolatileunsignedcharbank2EEDATA@0x10C;//EEPROM数据寄存器低字节

staticvolatileunsignedcharbank2EEADR@0x10D;//EEPROM地址寄存器低字节

staticvolatileunsignedcharbank2EEDATH@0x10E;//EEPROM数据寄存器高字节

staticvolatileunsignedcharbank2EEADRH@0x10F;//EEPROM地址寄存器高字节

/*bank3registers*/

staticvolatileunsignedcharbank3EECON1@0x18C;//EEPROM控制寄存器1

staticvolatileunsignedcharbank3EECON2@0x18D;//EEPROM控制寄存器2

//*STATUSbits状态寄存器*/

staticvolatilebitIRP@(unsigned)&STATUS*8+7;//寄存器bank选择位(用于间接寻址)。

0:

bank0,1;1:

bank2,3

staticvolatilebitRP1@(unsigned)&STATUS*8+6;//寄存器bank选择位(用于直接寻址)。

PR1:

PR0:

00:

BANK0;01:

BANK1;10:

BANK2;11BANK3.

staticvolatilebitRP0@(unsigned)&STATUS*8+5;//

staticvolatilebitTO@(unsigned)&STATUS*8+4;//超时位。

0:

WDT超时发生;1:

上电后,执行了CLRWDT或者SLEEP指令

staticvolatilebitPD@(unsigned)&STATUS*8+3;//掉电标志位。

0:

执行完SLEEP指令;1:

上电后或者执行CLRWDT指令

staticvolatilebitZERO@(unsigned)&STATUS*8+2;//零标志位。

0:

算术或逻辑操作结果不为0;1:

反之。

staticvolatilebitDC@(unsigned)&STATUS*8+1;//数字进位/退位标志位。

0:

结果的低4位没有发生进位;1:

反之。

staticvolatilebitCARRY@(unsigned)&STATUS*8+0;//进位/退位标志位。

0:

结果的高4位没有发生进位;1:

反之。

/*PORTAbits*/

staticvolatilebitRA5@(unsigned)&PORTA*8+5;//RA5

staticvolatilebitRA4@(unsigned)&PORTA*8+4;//RA4

staticvolatilebitRA3@(unsigned)&PORTA*8+3;//RA3

staticvolatilebitRA2@(unsigned)&PORTA*8+2;//RA2

staticvolatilebitRA1@(unsigned)&PORTA*8+1;//RA1

staticvolatilebitRA0@(unsigned)&PORTA*8+0;//RA0

/*PORTBbits*/

staticvolatilebitRB7@(unsigned)&PORTB*8+7;//RB7

staticvolatilebitRB6@(unsigned)&PORTB*8+6;//RB6

staticvolatilebitRB5@(unsigned)&PORTB*8+5;//RB5

staticvolatilebitRB4@(unsigned)&PORTB*8+4;//RB4

staticvolatilebitRB3@(unsigned)&PORTB*8+3;//RB3

staticvolatilebitRB2@(unsigned)&PORTB*8+2;//RB2

staticvolatilebitRB1@(unsigned)&PORTB*8+1;//RB1

staticvolatilebitRB0@(unsigned)&PORTB*8+0;//RB0

/*PORTCbits*/

staticvolatilebitRC7@(unsigned)&PORTC*8+7;//RC7

staticvolatilebitRC6@(unsigned)&PORTC*8+6;//RC6

staticvolatilebitRC5@(unsigned)&PORTC*8+5;//RC5

staticvolatilebitRC4@(unsigned)&PORTC*8+4;//RC4

staticvolatilebitRC3@(unsigned)&PORTC*8+3;//RC3

staticvolatilebitRC2@(unsigned)&PORTC*8+2;//RC2

staticvolatilebitRC1@(unsigned)&PORTC*8+1;//RC1

staticvolatilebitRC0@(unsigned)&PORTC*8+0;//RC0

/*PORTDbits*/

#ifdef__PINS_40

staticvolatilebitRD7@(unsigned)&PORTD*8+7;//RD7

staticvolatilebitRD6@(unsigned)&PORTD*8+6;//RD6

staticvolatilebitRD5@(unsigned)&PORTD*8+5;//RD5

staticvolatilebitRD4@(unsigned)&PORTD*8+4;//RD4

staticvolatilebitRD3@(unsigned)&PORTD*8+3;//RD3

staticvolatilebitRD2@(unsigned)&PORTD*8+2;//RD2

staticvolatilebitRD1@(unsigned)&PORTD*8+1;//RD1

staticvolatilebitRD0@(unsigned)&PORTD*8+0;//RD0

/*PORTEbits*/

staticvolatilebitRE2@(unsigned)&PORTE*8+2;//RE2

staticvolatilebitRE1@(unsigned)&PORTE*8+1;//RE1

staticvolatilebitRE0@(unsigned)&PORTE*8+0;//RE0

#endif

//*INTCONbits中断控制寄存器*/

staticvolatilebitGIE@(unsigned)&INTCON*8+7;//总中断使能位。

0:

屏蔽所有的中断请求;1:

允许非屏蔽的中断。

staticvolatilebitPEIE@(unsigned)&INTCON*8+6;//外部中断使能位。

0:

禁止;1:

使能

staticvolatilebitT0IE@(unsigned)&INTCON*8+5;//TMR0溢出中断使能位。

0:

禁止;1:

使能

staticvolatilebitINTE@(unsigned)&INTCON*8+4;//RB0/INT外部中断使能位。

0:

不使能;1:

使能。

staticvolatilebitRBIE@(unsigned)&INTCON*8+3;//RB端口变化中断时能位。

0:

不使能;1:

使能。

staticvolatilebitT0IF@(unsigned)&INTCON*8+2;//TMR0溢出中断标志位。

0:

无溢出;1:

溢出。

staticvolatilebitINTF@(unsigned)&INTCON*8+1;//RB0/INT外部中断标志位。

0:

RB0外部中断未发生;1:

RB0外部中断发生。

staticvolatilebitRBIF@(unsigned)&INTCON*8+0;//RB端口变化中断标志位。

0:

RB口无变化;1:

RB口至少有一个引脚变化。

//alternatedefinitions

staticvolatilebitTMR0IE@(unsigned)&INTCON*8+5;//

staticvolatilebitTMR0IF@(unsigned)&INTCON*8+2;//

//*PIR1bits中断标志寄存器PIR1*/

#ifdef__PINS_40

staticvolatilebitPSPIF@(unsigned)&PIR1*8+7;//并行从端口读写中断标志位。

0:

没有读写操作发生;1:

反之

#endif

staticvolatilebitADIF@(unsigned)&PIR1*8+6;//A/D转换器中断标志位。

0:

A/D转换没有完成;1:

A/D转换完成。

staticvolatilebitRCIF@(unsigned)&PIR1*8+5;//USART接收中断标志位。

0:

接收缓冲器空;1:

反之。

staticvolatilebitTXIF@(unsigned)&PIR1*8+4;//USART发送中断标志位。

0:

发生缓冲器满;1:

反之。

staticvolatilebitSSPIF@(unsigned)&PIR1*8+3;//同步串行端口(ssp)中断标志位。

0:

没有ssp中断条件发生;

staticvolatilebitCCP1IF@(unsigned)&PIR1*8+2;//CCP1中断标志位。

staticvolatilebitTMR2IF@(unsigned)&PIR1*8+1;//TMR2TOPR2匹配中断标志位。

0:

没有匹配发生

staticvolatilebitTMR1IF@(unsigned)&PIR1*8+0;//TMR1溢出中断标志位,0:

无溢出

/*PIR2bits*/

staticvolatilebitCMIF@(unsigned)&PIR2*8+6;//比较器中断标志位;0:

比较器输入没有改变

staticvolatilebitEEIF@(unsigned)&PIR2*8+4;//EEPROM写操作中断标志位。

0:

写操作没有完成或没有开始

staticvolatilebitBCLIF@(unsigned)&PIR2*8+3;//总线冲突中断标志位。

0:

没有总线冲突发生

staticvolatilebitCCP2IF@(unsigned)&PIR2*8+0;//CCP2中断标志位

//*T1CONbitsTMR1控制寄存器*/

staticvolatilebitT1CKPS1@(unsigned)&T1CON*8+5;//TMR1输入时钟预分频选择位

staticvolatilebitT1CKPS0@(unsigned)&T1CON*8+4;//TMR1输入时钟预分频选择位

staticvolatilebitT1OSCEN@(unsigned)&T1CON*8+3;//TMR1震荡器使能控制位。

0:

振荡器关闭

staticvolatilebitT1SYNC@(unsigned)&T1CON*8+2;//TMR1外部时钟输入同步控制位。

staticvolatilebitTMR1CS@(unsigned)&T1CON*8+1;//TMR1时钟源选择位。

0:

内部时钟的/4

staticvolatilebitTMR1ON@(unsigned)&T1CON*8+0;//TMR1使能位。

0:

禁止

//*T2CONbitsTMR2控制寄存器*/

staticvolatilebitTOUTPS3@(unsigned)&T2CON*8+6;//TMR2后分频选择位。

staticvolatilebitTOUTPS2@(unsigned)&T2CON*8+5;//TMR2后分频选择位

staticvolatilebitTOUTPS1@(unsigned)&T2CON*8+4;//TMR2后分频选择位

staticvolatilebitTOUTPS0@(unsigned)&T2CON*8+3;//TMR2后分频选择位。

staticvolatilebitTMR2ON@(unsigned)&T2CON*8+2;//TMR2使能位。

staticvolatilebitT2CKPS1@(unsigned)&T2CON*8+1;//TMR2预分频选择位。

staticvolatilebitT2CKPS0@(unsigned)&T2CON*8+0;//TMR2预分频选择位

//*SSPCONbitsSPI同步串口控制寄存器*/

staticvolatilebitWCOL@(unsigned)&SSPCON*8+7;//写操作冲突检测位,在SPI从动方式下,WCOL=0,未发生冲突,WCOL=1,发生冲突。

staticvolatilebitSSPOV@(unsigned)&SSPCON*8+6;//接收溢出标志位,SSPOV=0,未发生接收溢出;SSPOV=1,发生接受溢出。

staticvolatilebitSSPEN@(unsigned)&SSPCON*8+5;//同步串口MSSP允许位,SSPEN=0,关闭串口;SSPEN=1,允许串行端口功能。

staticvolatilebitCKP@(unsigned)&SSPCON*8+4;//时钟极性选择位,CKP=0,空闲时时钟停留在低电平;CKP=1,空闲时时钟停留在高电平。

staticvolatilebitSSPM3@(unsigned)&SSPCON*8+3;//同步串行口MSSP方式选择位,主动参数。

0,1,2,3,4.

staticvolatilebitSSPM2@(unsigned)&SSPCON*8+2;

staticvolatilebitSSPM1@(unsigned)&SSPCON*8+1;

staticvolatilebitSSPM0@(unsigned)&SSPCON*8+0;

/*CCP1CONbits*/

staticvolatilebitCCP1X@(unsigned)&CCP1CON*8+5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1