您的位置 首页 被动

关于头文件的进一步了解根据PIC单片机

一:关于处理器的寄存器定义针对处理器的寄存器定义文件是一个汇编文件,包含特定器件上所有特殊功能寄存器的定义。编译时,针对处理…

一:关于处理器的寄存器界说
针对处理器的寄存器界说文件是一个汇编文件,包括特定器材上一切特别功用寄存器的界说。编译时,针对处理器的寄存器界说文件将被编译成需求链接到应用程序的方针文件 。
例如,在 PIC18C452 针对处理器的寄存器界说文件中, PORTA 界说为:
SFR_UNBANKED0 UDATA_ACS Hf80
PORTA
PORTAbits RES 1 ; 0xf80
榜首行指定 PORTA 地点的数据寄存器存储区和这个存储区的开始地址。 PORTA 有两个标号, PORTAbits 和 PORTA,都指向同一个地址 (本例中是 0xf80)。
二:关于头文件声明
针对处理器的头文件是包括特别功用寄存器外部声明的 C 文件,特别功用寄存器在寄存器界说文件中界说。
例如,在PIC18C452 的针对处理器头文件中, PORTA 声明为:
extern volatile near unsigned char PORTA;
和:
extern volatile near union {
struct {
unsigned RA0:1;
unsigned RA1:1;
unsigned RA2:1;
unsigned RA3:1;
unsigned RA4:1;
unsigned RA5:1;
unsigned RA6:1;
} ;
struct {
unsigned AN0:1;
unsigned AN1:1;
unsigned AN2:1;
unsigned AN3:1;
unsigned T0CKI:1;
unsigned SS:1;
unsigned OSC2:1;
} ;
struct {
unsigned :2;//填充前两位
unsigned VREFM:1;
unsigned VREFP:1;
unsigned :1;//此位被填充
unsigned AN4:1;
unsigned CLKOUT:1;
} ;
struct {
unsigned :5;//填充前五位
unsigned LVDIN:1;
} ;
} PORTAbits ;
榜首个声明指定 PORTA 是一个字节 (unsigned char)。我们变量是在寄存器界说文件中界说的,因而需求 extern 修饰符。 volatile 修饰符奉告编译器不能假定 PORTA 能保存赋给它的值。 near 修饰符指定了端口坐落存取 RAM 中。第二个声明指定 PORTAbits是可位寻址的匿名结构的联合 。特别功用寄存器中的每一位可能有不只一种功用 (因而会有不只一个称号),因而联合中关于同一个寄存器有多个结构界说。一切结构界说中的各位别离针对寄存器中相同的位。假如一个位只要一个功用,那么在其它结构界说中,这一位仅仅被填充。例如,在第三和第四个结构中, PORTA 的第 1 位 和第 2 位仅仅被填充,由于它们只要两个称号;而第 6 位有四个称号,在每个结构中都指定了第 6 位。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/263811.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部