利用异或操作以及宏定义,实现51单片机的位操作:
//PORTB.6
#include<_iom88to328v.h>
#define BIT(X) (1<<(X))
#define BITTOG(X,Y) ((X)^=BIT(Y))
#define LED0_ON() PORTB|=0x40
#define LED0_OFF() PORTB&=~0X40
#define LED0_TOG() BITTOG(PORTB,6)
void delay(void)
{
unsigned char i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++)
;
}
void main(void)
{
DDRB=0xff;//Pb为输出
while(1)
{
LED0_TOG();
delay();
}
}
完整资料打包(含仿真):