⑴ 怎麼用單片機的IO口控制開關三極體的導通和關閉
將IO串聯一個1k電阻然後連接三極體基極即可。這里是以NPN為例,發射極接地,集電極接你要接通或者關閉的電路。IO給高電平三極體導通,反之關斷
⑵ 單片機串口控制io口
需要可以私信我,還有電腦上位機軟體控制單片機
⑶ 如何用單片機I/O
你這種畫法,是期望P2.0輸出高電平,繼電器吸合。
但是,51單片機,輸出高電平的電流有限,吸合,未必可靠。
解決的方法是加個3.3K的上拉電阻。
⑷ 一個操作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;這個值是我們根本不需要的一個錯誤值。不要怕有問題,但是我也不希望沒有經過思考的問題。而這個問題,就是同學經過思考的問題,我認為很好,寫出來提供給同學們共同學習。