新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PIC結(jié)構(gòu)體及定義位元結(jié)構(gòu)

PIC結(jié)構(gòu)體及定義位元結(jié)構(gòu)

作者: 時間:2011-10-18 來源:網(wǎng)絡(luò) 收藏

及定義
extern volatile near unsigned char PORTB; // PORTB是一個字節(jié)(unsigned char)。由于變量是在寄存器中定義的,因此需要extern 修飾符。 volatile 修飾符告知編譯器不能假定PORTB能保留賦給它的值。 near 修飾符指定了端口位于存取RAM 中。
extern volatile near union { // 定義PORTBbits為一的聯(lián)合體(union)變量。指定 PORTBbits 是可位尋址的匿名結(jié)構(gòu)的聯(lián)合。特殊功能寄存器中的每一位可能有不只一種功能,因此聯(lián)合中對于同一個寄存器有多個結(jié)構(gòu)定義。struct { // 地址在Access RAM
unsigned RB0:1; // 定義PORTB的標準功能
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 ; //這里定義了一個結(jié)構(gòu)聯(lián)合體變量 PORTBbits

//然后就可以用了。
PORTB=0x35; // PORTB 與 PORTBbits 地址一樣。
//等同于 PORTBbits = 0x35;
PORTBbits.RB7=1; // RB7 輸出高電平



評論


技術(shù)專區(qū)

關(guān)閉