PIC結(jié)構(gòu)體及定義位元結(jié)構(gòu)
PIC結(jié)構(gòu)體及定義位元結(jié)構(gòu)
extern volatile near unsigned char PORTB; // PORTB是一個(gè)字節(jié)(unsigned char)。由于變量是在寄存器中定義的,因此需要extern 修飾符。 volatile 修飾符告知編譯器不能假定PORTB能保留賦給它的值。 near 修飾符指定了端口位于存取RAM 中。
extern volatile near union { // 定義PORTBbits為一位元結(jié)構(gòu)的聯(lián)合體(union)變量。指定 PORTBbits 是可位尋址的匿名結(jié)構(gòu)的聯(lián)合。特殊功能寄存器中的每一位可能有不只一種功能,因此聯(lián)合中對(duì)于同一個(gè)寄存器有多個(gè)結(jié)構(gòu)定義。struct { // 地址在Access RAM
unsigned RB0:1; // 定義PORTB的標(biāo)準(zhǔn)功能
unsigned RB1:1;
unsigned RB2:1;
unsigned RB3:1;
unsigned RB4:1;
unsigned RB5:1;
unsigned RB6:1;
unsigned RB7:1;
} ;
struct {
unsigned INT0:1; // 定義PORTB的另外功能
unsigned INT1:1;
unsigned INT2:1;
unsigned CCP2:1;
} ;
} PORTBbits ; //這里定義了一個(gè)結(jié)構(gòu)聯(lián)合體變量 PORTBbits
//然后就可以用了。
PORTB=0x35; // PORTB 與 PORTBbits 地址一樣。
//等同于 PORTBbits = 0x35;
PORTBbits.RB7=1; // RB7 輸出高電平
評(píng)論