首页 > 编程知识 正文

avr单片机引脚,avr单片机选型

时间:2023-05-03 15:32:37 阅读:50736 作者:3776

位运算是指用二进制位进行的运算。 单片机中的位运算通常用于I/O端口的输入输出控制和逻辑判断。

以c语言提供的位运算符如下:

运算符

意思是

功能

&

按位和

如果相应的二进制位都为1,则该位的结果值为1。 否则就是0。

|

按位或

如果两个对应的二进制位之一为1,则该位的结果值为1。

基于异或

如果参与运算的两个二进制文件是相同的编号,则结果为0 (假);如果异常编号,则结果为1 (真)

~

反对

~是以位为单位反转二进制数的单眼(原)运算符,将0更改为1,将1更改为0。

向左移动

左移运算符用于将一个数量的每个二进制位全部左移n位,右补0。

向右移动

将a的各比特向右移位n比特,向右移位的低位被截断,以表示高位比特相对于无符号的数目补充0。

逻辑:

清除PA端口的第0位,将0 (即最低位输出降低0v电平)剩下的位保持不变。端口应运算为(1111110 )

二进制: 11111110的十六进制为0xFE,c语言代码: PORTA=PORTA0xFE; 一般为c语言的“=‘运算符,通常为

PORTA=0xFE; 执行此语句时,端口的第0位输出低电平。

或逻辑:

为了在PA端口第7位置1 (即最高位输出为高电平)时保持其馀恒定,PORTA与(1000000 )之间或进行运算

即,c语言: PORTA=PORTA|0x80; 或使用赋值运算符。 通常写PROTA|=0x80。 二进制‘1000000’的十六进制为0x80;

非逻辑:

c语言: PORTA~=0x0F; 将0x0f=‘00001111’反转,将11110000‘=0xF0代入PORTA,通常与其他逻辑运算符一起使用

异或:

翻转PA口的第7位,PORTA^=0x80,即执行一次此语句,PORTA口的第7位状态发生一次变化,从0变为1或从1变为0,可以周期性地控制一个灯的闪烁。

换档操作:

判断PA端口的第七位是否为0,并且c语言if(Pina(17 )==0) 17的结果可以写为0x80,if ) Pina0x80 )==0)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。