99久久亚洲女同一区二区_国产成人亚洲欧美二区综_中国精品一级毛片免费播放_午夜福利深夜XX00视频无卡顿_动漫人物打扑克牌又疼又叫_中午字幕在线播放_深夜福利网站在线_国产成人免费福利网站_欧美成年黄网站色高清视频_欧美色黄禁片短视频

固話:0592-8011678 熱線:13306028255 客服 :
 

單片機

AVR c語言的位操作

分類:單片機 發(fā)布:2019-03-20 10:47:17 瀏覽:364次 Tag:

位操作
一個共同的任務是編程微控制器 MCU打開或關閉IO 寄存器的一些位bit 很幸運標準C 有較好的和適用的位操作功能而沒有借助于匯編指令或其它非標準C 結(jié)構(gòu)C 定義了一些按位進行的運算是很有用的
a | b – 按位或 這個表達式指示中a 被表達式中的b 按位進行或運算這慣用于打開某些位尤其常用|=的形式

例如PORTA |= 0x80; // 打開位7 (最高位)
a & b – 按位與 這個運算在檢查某些位是否置1 時有用例如
If ((PORTA & 0x81) == 0) // 檢查位7 和位0
注意圓括號需要括在&運算符的周圍因為它和= = 相比運算優(yōu)先級較低這是C 程序中很多錯誤的原因之一
a ^ b – 按位異或 這個運算對一個位取反有用例如在下面的例子中位7 是被翻轉(zhuǎn)的
PORTA ^= 0x80; // 翻轉(zhuǎn)位7
~a – 按位取反. 在表達式中這個運算執(zhí)行一個取反當用按位與運算關閉某些位時與這個運算組合使用尤其有用如
PORTA &= ~0x80; // 關閉位7
這個編譯器對這些運算能產(chǎn)生最理想的機器指令例如sbic 指令可以用在根據(jù)位的狀態(tài)進行條件分枝的按位與運算中

 

在c語言里對位的操作如一般如下:
PORTB|=(1<<2);//置PORTB的第2位=1
PORTB&=~(1<<2);//置PORTB的第2位=0
PORTB^|=(1<<2);//取反PORTB的第2位
While(PORTB&(1<<2));//判斷1
While(!(PORTB&(1<<2)));//判斷為0


相關文章
在線留言聯(lián)系我們
電話:0592-8011678
傳真:0592-8011678
聯(lián)系人:王女士
24H熱線:13306028255
聯(lián)系QQ: 656368133
郵箱:656368133@qq.com
網(wǎng)址:633100.cn
QQ在線咨詢
銷售電話:
13306028255
0592-8011678
656368133
掃碼添加微信