<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        單片機avr c語言位運算 與或非 異或邏輯 運算介紹 詳解

        作者:海盜工作室   來源:本站原創   點擊數:  更新時間:2014年04月29日   【字體:

         位運算是指按二進制位進行的運算。在單片機中位運算通常用于I/O端口的輸入輸出控制和邏輯判斷。

        C語言提供的位運算符有:

        運算符含義功能
        按位與如果兩個相應的二進制位都為1,則該位的結果值為1;否則為0。
        |按位或兩個相應的二進制位中只要有一個為1,該位的結果值為1。
        按位異或若參加運算的兩個二進制位同號則結果為0(假)異號則結果為1(真)
        取反~是一個單目(元)運算符,用來對一個二進制數按位取反,即將0變1,將1變0。
        <<左移左移運算符是用來將一個數的各二進制位全部左移N位,右補0。
        >>右移表示將a的各二進制位右移N位,移到右端的低位被舍棄,對無符號數,高位補0。

         

        與邏輯:

            

         

         


        將PA口的第0位清0(即最低位輸出低0v電平),其余位保持不變:   PORTA口應同‘11111110’進行與運算

          二進制:11111110 的十六進制為:0xFE,C語言代碼:PORTA=PORTA&0xFE;一般采用c語言的“&=‘運算符,通常寫成

        PORTA&=0xFE;   執行此語句后,PORTA口的第0位將輸出低電平。

         

        或邏輯:

           

         

         


        將PA口的第7位置1(即最高位輸出高電平)其余為保持不變,PORTA應與‘10000000’進行或運算

        即c語言:PORTA=PORTA|0x80 ;采用或賦值運算符,通常寫成 PROTA|=0x80 ;  二進制‘10000000’的十六進制是0x80;

        非邏輯:

           

         

         


        c語言:PORTA~=0x0F;//將0x0F=‘00001111‘取反后 '11110000‘=0xF0 賦值給PORTA,通常和其他邏輯運算符一起使用

        異或邏輯:

            

         

         


        將PA口的第7位翻轉,PORTA^=0x80,即執行此語句一次,PORTA口的第7位狀態變化一次,由0變1,或由1變0,可以周期性的控制一個燈的亮滅。

        移位操作:

           

         

         


        判斷PA口的第7位是否為0,c語言 if (PINA&(1<<7)==0)       1<<7  結果為0x80,也可寫為 if (PINA&0x80)==0)

         

         

         

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮