單片機中高低電平問題
#includernvoid Delay10ms(unsigned int c); rnvoidmain()rn{ rnrn rnrn P0 = 0x00; //置P0口為低電平???????????????rn rn Delay10ms(50);rn rn P0 = 0xff; //置P0口為高電平 ???????????????rn Delay10ms(50);rn}rnrnrnrnvoid Delay10ms(unsigned int c) rn{rn rn unsigned char a, b;rn for (;c>0;c--)rn {rn rn for (b=38;b>0;b--)rn {rn for (a=130;a>0;a--);rn }rn rn }rn rn}rnP0=0x00,P0=0xff中“0x00""0xff"什么意思,他們代表著高低電平嗎?有人說他們是十六進制,”0x00‘為零,十六進制里也沒有“x”啊,我是非常新的新手,希望各位朋友不吝賜教,越詳細越好,越基礎越好!單片機中的高電平和低電平究竟是個什么樣子?請來看我的示波器!
0x表示16進制,后面的數字為值,ff就是15*16+15,P0=0x00,p0端口八個引腳都輸出0;P0=0xff,p0端口八個引腳都輸出1,就是11111111 。你把二進制的“11111111”轉換為16進制試試,看看是不是FF。1111=F。
在這里0x表示是十六進制,凡是十六進制都是以0x開頭的,你可以用計算器看下,0xff轉換為2進制就是1111 1111 ,相當2進制4位表示十六進制1位,比如0x08轉換為2進制就是0000 1000 。P0口不是有8個管腳,每個管腳相當對應于2進制的1位,比如你將P0設置為0x08,其實就是0000 1000 就是第3管腳(最低位是0管腳)是1,即使高電平,如果你接的led是高電平點亮,就是3管腳接的燈會亮。。有不對希望指正。。不會再問。
電阻太小,高電流強制拉高了IO口
單片機IO灌電流能力只有10-20mA
解決辦法:
加大電阻R1到1k-10k即可
通過PNP三極管放提高IO灌電流能力(50mA直接加在三極管上會導致發熱)
希望能解決您的問題。
51單片機電平的問題
給51單片機的P0口置1,P2口置0,放在學習板上測的電平都是符合要求的,但在自己焊的電路上,P0口不是高電平,是1.2V,其他IO口也是符合的,P2也為低電平,請問哪里出了問題。P0口是OC門結構,單片機內部沒有上拉電阻。外部需要加5.1k到10k的上拉電阻。學習板上已經有上拉電阻。P1口內部已經集成上拉電阻
P0口是OC門結構,需要加5.1k到10k的上拉電阻。學習板上已經有上拉電阻。
po口要外接上啦電阻呀
51單片機 高低電平采集問題
是這樣,考慮使用51單片機與一個外接傳感器相連接。想要實現定時采集這個傳感器傳進來的是高還是低。
我查到的資料說,要想把引腳變為輸入端,先要跟這個引腳置1。
那么我有幾個問題:
是所有的引腳(Px.x)都能這么做嗎?
當傳感器傳入高低變化的信號,中間還需要對這個引腳反復置1嗎?
在c語言編寫的程序中,能不能用 a = px.x 這個語句把px.x的這個端口是0是1給到a這個變量中呢?
我好像記得51單片機的話要想把引腳變為輸入端,不需要什么特殊設置,直接讀就行了,當然不同的單片機可能有區別,最權威的還是你所使用的具體單片機的數據手冊,查一下數據手冊就清楚了,
在c語言編寫的程序中,能不能用 a = px.x 這個語句把px.x的這個端口是0是1給到a這個變量中呢?
這個我記得是可以 其實關于這個問題樓主寫個簡單的程序測試一下就知道了。
新手,急,51單片機的電平問題
請問51單片機用矩陣鍵盤接P3口,如果高4位電平為高電平,低4位電平為低電平,按下矩陣鍵盤將兩口短接后,兩口的電平狀態分別是什么rnrn(按理說是不是都是低電平,我怎么用萬用表測了好幾次怎么兩者都是高的)51單片機的P3口是不用外接上下拉電阻的.問題解決辦法.
1/單獨給I/0口賦值,測量電平.排除芯片問題.
2/按圖紙測量按鍵兩端是否與對應的引腳建立了解可靠的連接.
按下后兩口都為低電平。如果你都是高的話可能是IO口的值沒有賦值正確,在沒有按下的情況下先測一下兩個管腳的電平吧。
那是你沒有接下拉電阻。
永遠都是低的把高的拉低,高的不能把低的拉高。你要接上拉和下拉電阻。電阻接10K.
再試一下。
相關推薦:
專利申請日如何確定(2023專利法規定專利申請日怎樣確定的)
商標的國外注冊途徑(如何在國外注冊商標)
申請專利需要哪些資料(申請專利要準備什么材料)
編輯作品著作權歸屬規定(百度百科的著作權歸屬問題)
商標終止有那些類型(商標權終止情形主要有哪些)