標題: 51單片機引腳輸入高電平,能實現(xiàn)嗎? [打印本頁]

作者: 大林飛    時間: 2024-5-8 23:07
標題: 51單片機引腳輸入高電平,能實現(xiàn)嗎?
P3.7端口檢測有5V輸入,P3.6端口指示燈亮,能否實現(xiàn)?如果實現(xiàn)不了那種芯片可以?請大神們指教一下,謝謝!

1.png (15.99 KB, 下載次數(shù): 51)

1.png

作者: Hephaestus    時間: 2024-5-8 23:29
sbit P36=P3^6;
P36=!(P3&0x80);
作者: chang_an    時間: 2024-5-9 01:43
原理可以參考按鍵輸入,程序里面先給3_7置低,當他被5V拉高時執(zhí)行P3_6亮燈
sbitP3_6=P3^6;
sbitP3_7=P3^7

P3_7=0;//首先拉低
P3_6=1;//默認燈不亮

while(1)
{
if(P3_7==1)
{
P3_6=0;//亮燈
}
}

作者: chang_an    時間: 2024-5-9 01:43
原理可以參考按鍵輸入,程序里面先給3_7置低,當他被5V拉高時執(zhí)行P3_6亮燈
sbitP3_6=P3^6;
sbitP3_7=P3^7

P3_7=0;//首先拉低
P3_6=1;//默認燈不亮

while(1)
{
if(P3_7==1)
{
P3_6=0;//亮燈
}
}



作者: wdgao    時間: 2024-5-9 03:53

sbit P36=P3^6;
sbit P37=P3^7;
P36=!P37;
作者: xiaobendan001    時間: 2024-5-9 07:21
設(shè)為標準IO,然后加一個比如1K的下拉電阻,等著接收你的高電平就行了,當然這個高電平要有一定的驅(qū)動能力
作者: rayin    時間: 2024-5-9 07:44
這是51單片機最基本的操作了:

首先設(shè)置P3.7端口為準雙向:P3.7=1. 就能夠讀P3.7的高低電平了,

程序判斷P3.7 為高或低, 再來P3.6=0, 就可以讓P3.6接的LED燈發(fā)光了.
作者: xiaobendan001    時間: 2024-5-9 08:56
rayin 發(fā)表于 2024-5-9 07:44
這是51單片機最基本的操作了:

首先設(shè)置P3.7端口為準雙向:P3.7=1. 就能夠讀P3.7的高低電平了,

樓主說的5V信號可能只有高電平驅(qū)動能力,沒有下拉驅(qū)動能力,所以有必要提供一個主動下拉。實際上大多數(shù)信號例如開關(guān)我們都習慣接到低電平。例如接近開關(guān)多數(shù)NPN開路輸出,當然也有PNP開路輸出的,那不是就需要主動下拉嗎?當然PNP還得注意輸出電壓,不要超過5V。所以我們還是建議使用NPN的。
作者: lkc8210    時間: 2024-5-9 11:14
chang_an 發(fā)表于 2024-5-9 01:43
原理可以參考按鍵輸入,程序里面先給3_7置低,當他被5V拉高時執(zhí)行P3_6亮燈
sbitP3_6=P3^6;
sbitP3_7=P3^7 ...

不懂不要隨便亂教
8051的引腳結(jié)構(gòu)輸出0是對地短路的
不可能從外部拉高
作者: lkc8210    時間: 2024-5-9 11:22
可以這樣接



P37=1;
由于8051引腳輸出高的能力很弱(~250uA)
P37會被1k電阻拉低到0.25V, 被當作低電平

作者: ZBH2006    時間: 2024-5-9 12:26
lkc8210 發(fā)表于 2024-5-9 11:22
可以這樣接

正確的
作者: ZBH2006    時間: 2024-5-9 12:28
不是啊,你的哪里按下去是啥,不是短路了嗎你實物焊起來,我學識不夠能解釋下嗎

作者: 大林飛    時間: 2024-5-9 13:55
#include<reg52.h>//頭文件
#include <intrins.h>


sbit P3_6=P3^6;
sbit P3_7=P3^7;

void main (void)
{  

P3_7=1;
P3_6=1;//默認燈不亮


while(1)
{
if(P3_7==0)
{
P3_6=0;//亮燈
}
} }

作者: xiaobendan001    時間: 2024-5-9 14:06
大林飛 發(fā)表于 2024-5-9 13:55
#include//頭文件
#include

人家都說了是高電平來的時候燈亮,你這好像不對吧
這樣:
P3_6  =!P3_7;
也不對,也許樓主的燈不是正極接VCC的而是負極接GND的
作者: 大林飛    時間: 2024-5-9 14:10
C:\Users\Administrator\Desktop\1.PNG
p3-7腳  始終是處于高電平狀態(tài),電壓拉不下來
作者: 188610329    時間: 2024-5-9 20:03
你這個不能用 P37  要用P0,因為你要檢測的是 +24v
作者: cy009    時間: 2024-5-10 00:24
SW3到P3.7加一個反相器,程序上P3.7改為低電平檢測。
作者: LaoYuTou    時間: 2024-5-11 17:37
不建議這樣做,24V直接接過來,運氣不好的話可能干掉其他電路,建議用光耦隔離,電路大把可百度。
作者: mtt661    時間: 2024-5-12 19:05
lkc8210 發(fā)表于 2024-5-9 11:22
可以這樣接

樓主這個圖R11上面是24V,用38k和10K電阻分壓后得到5V,所以這個接法沒有錯啊。
作者: LaoYuTou    時間: 2024-5-13 08:03
原理沒問題,電壓相差較大建議隔離。尤其是24V不知道是哪里來的,電壓波動大或R9懸空容易出問題。
作者: XuanxX    時間: 2024-5-13 09:48
當然可以實現(xiàn)
作者: coody_sz    時間: 2024-5-13 10:39
AT89C51是準雙向口輸出,不能設(shè)置整高阻輸入,所以你不按鍵也是高電平。
換STC8系列的吧,IO設(shè)置為高阻即可實現(xiàn)。
作者: lkc8210    時間: 2024-5-13 11:44
mtt661 發(fā)表于 2024-5-12 19:05
樓主這個圖R11上面是24V,用38k和10K電阻分壓后得到5V,所以這個接法沒有錯啊。

那個24V被擋住了,看不清楚
修正為以下電路


作者: 11111222aggwkjd    時間: 2024-5-15 21:43
總覺得51單片機比較過時了,當時我做 我老師跟我說現(xiàn)在還是用STM32單片機比較合適,功能什么的也更多




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1