当前位置:首页 > 单片机 > 单片机
[导读]C语言“位运算”:“与&”运算: 1×1=1 1×0=0 0×1=0 0×0=0“或|”运算: 1+1=1 1+0=1 0+1=1 0+0=0“异或^”运算: 1^1=0 1^0=1 0^1=1 0^0=0设:PORTA==10110100  x=(0~

C语言“位运算”:


“与&”运算: 1×1=1 1×0=0 0×1=0 0×0=0


“或|”运算: 1+1=1 1+0=1 0+1=1 0+0=0


“异或^”运算: 1^1=0 1^0=1 0^1=1 0^0=0


设:PORTA==10110100  x=(0~7)


PORTA &= ~(0x01<


PORTA |= (0x01<


PORTA^=(0x01<


______________________________________


C语言常识:逻辑“真”:非“0”,  逻辑“假”:“0”。


______________________________________


判断端口A的某一“位”的值:x= ( 0 ~ 7 )


If(PORTA &(0x01<


在if表达式中,如果x位的值为1,则表达式因为“非0”而为“真”,如果x位的值为0,则表达式因为值为“0”而为“假”。


在AVR的端口寄存器中DDRx默认为0x00,PORTx默认为0x00。

/***********************************************************

* 函数库说明:ATMEGE8 灯闪烁

* 版本: v1.0

* 说明: 无

*

* 版本更新:

*

************************************************************

*注意: LED C5

***********************************************************/

#include

int main(void)

{

unsigned int i,j;

//PORTC5设置为输出

DDRC |= (1 << DDC5);

//PORTC5输出低电平,LED亮

PORTC &= ~(1 << PORTC5);

while(1)

{

//取反

PORTC ^= (1 << PORTC5);

for(i = 0;i < 100;i ++)

for(j = 0;j < 1000;j ++);

}

}



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭