當前位置:編程學習大全網 - 編程軟體 - 壹個操作51單片機某幾個IO口的方法

壹個操作51單片機某幾個IO口的方法

對於51單片機的P口來說,我們習慣上的賦值是P1 = 0xXX。但是這樣操作是壹次性操作了8個IO口。而有些情況下,我們只需要操作其中的幾個而不是全部的時候,我們如何操作呢?如下圖註釋上邊的部分,是我寫的程序代碼。

這個是操作51單片機P1口的低4位對步進電機進行操作的程序,在這個操作過程中,我們只使用到了P1口的低4位,因此我們希望高4位保持不變,只改變P1的低4位。首先把P1進行壹個備份到變量tmp中去,然後把變量tmp的經過兩條語句,得到最終要賦值給P1的值以後,再壹次性賦值給P0,這個方法大家都可以學習壹下。

而註釋下邊的這段程序,是壹位同學寫的,這位同學的理由是下邊這種寫法,也沒有改變P1的高4位。表面看也沒什麽問題,但是實際上如果不利用tmp這個變量,P1就會產生壹個錯誤的中間值。

P1= P1&0xF0;這條語句執行完畢以後,P1 = 0xX0;其中X是未知的,保持了之前P1的高4位的原值,而低4位是0;

再然後P1= P1|BeatCode[index];這樣操作後,P1得到了最終的值。

但是這中間,P1 = 0xX0;這個值是我們根本不需要的壹個錯誤值。不要怕有問題,但是我也不希望沒有經過思考的問題。而這個問題,就是同學經過思考的問題,我認為很好,寫出來提供給同學們***同學習。

  • 上一篇:極路由1s怎麽刷RippleOS固件
  • 下一篇:請問計算機科學與技術專業學什麽技能好就業?
  • copyright 2024編程學習大全網