找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

51单片机引脚输入高电平,能实现吗?

查看数: 2937 | 评论数: 23 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-5-8 23:07

正文摘要:

P3.7端口检测有5V输入,P3.6端口指示灯亮,能否实现?如果实现不了那种芯片可以?请大神们指教一下,谢谢!

回复

ID:1120760 发表于 2024-5-15 21:43
总觉得51单片机比较过时了,当时我做 我老师跟我说现在还是用STM32单片机比较合适,功能什么的也更多
ID:161164 发表于 2024-5-13 11:44
mtt661 发表于 2024-5-12 19:05
楼主这个图R11上面是24V,用38k和10K电阻分压后得到5V,所以这个接法没有错啊。

那个24V被挡住了,看不清楚
修正为以下电路

ID:1034262 发表于 2024-5-13 10:39
AT89C51是准双向口输出,不能设置整高阻输入,所以你不按键也是高电平。
换STC8系列的吧,IO设置为高阻即可实现。
ID:1120450 发表于 2024-5-13 09:48
当然可以实现
ID:1080935 发表于 2024-5-13 08:03
原理没问题,电压相差较大建议隔离。尤其是24V不知道是哪里来的,电压波动大或R9悬空容易出问题。
ID:1010435 发表于 2024-5-12 19:05

楼主这个图R11上面是24V,用38k和10K电阻分压后得到5V,所以这个接法没有错啊。
ID:1080935 发表于 2024-5-11 17:37
不建议这样做,24V直接接过来,运气不好的话可能干掉其他电路,建议用光耦隔离,电路大把可百度。
ID:619259 发表于 2024-5-10 00:24
SW3到P3.7加一个反相器,程序上P3.7改为低电平检测。
ID:624769 发表于 2024-5-9 20:03
你这个不能用 P37  要用P0,因为你要检测的是 +24v
ID:1114062 发表于 2024-5-9 14:10
C:\Users\Administrator\Desktop\1.PNG
p3-7脚  始终是处于高电平状态,电压拉不下来
ID:1109793 发表于 2024-5-9 14:06
大林飞 发表于 2024-5-9 13:55
#include//头文件
#include

人家都说了是高电平来的时候灯亮,你这好像不对吧
这样:
P3_6  =!P3_7;
也不对,也许楼主的灯不是正极接VCC的而是负极接GND的
ID:1114062 发表于 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;//亮灯
}
} }
ID:1118750 发表于 2024-5-9 12:28
不是啊,你的哪里按下去是啥,不是短路了吗你实物焊起来,我学识不够能解释下吗
ID:1118750 发表于 2024-5-9 12:26

正确的
ID:161164 发表于 2024-5-9 11:22
可以这样接



P37=1;
由于8051引脚输出高的能力很弱(~250uA)
P37会被1k电阻拉低到0.25V, 被当作低电平
ID:161164 发表于 2024-5-9 11:14
chang_an 发表于 2024-5-9 01:43
原理可以参考按键输入,程序里面先给3_7置低,当他被5V拉高时执行P3_6亮灯
sbitP3_6=P3^6;
sbitP3_7=P3^7 ...

不懂不要随便乱教
8051的引脚结构输出0是对地短路的
不可能从外部拉高
ID:1109793 发表于 2024-5-9 08:56
rayin 发表于 2024-5-9 07:44
这是51单片机最基本的操作了:

首先设置P3.7端口为准双向:P3.7=1. 就能够读P3.7的高低电平了,

楼主说的5V信号可能只有高电平驱动能力,没有下拉驱动能力,所以有必要提供一个主动下拉。实际上大多数信号例如开关我们都习惯接到低电平。例如接近开关多数NPN开路输出,当然也有PNP开路输出的,那不是就需要主动下拉吗?当然PNP还得注意输出电压,不要超过5V。所以我们还是建议使用NPN的。
ID:517951 发表于 2024-5-9 07:44
这是51单片机最基本的操作了:

首先设置P3.7端口为准双向:P3.7=1. 就能够读P3.7的高低电平了,

程序判断P3.7 为高或低, 再来P3.6=0, 就可以让P3.6接的LED灯发光了.
ID:1109793 发表于 2024-5-9 07:21
设为标准IO,然后加一个比如1K的下拉电阻,等着接收你的高电平就行了,当然这个高电平要有一定的驱动能力
ID:366877 发表于 2024-5-9 03:53

sbit P36=P3^6;
sbit P37=P3^7;
P36=!P37;
ID:1119877 发表于 2024-5-9 01:43
原理可以参考按键输入,程序里面先给3_7置低,当他被5V拉高时执行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;//亮灯
}
}


ID:1119877 发表于 2024-5-9 01:43
原理可以参考按键输入,程序里面先给3_7置低,当他被5V拉高时执行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;//亮灯
}
}
ID:883242 发表于 2024-5-8 23:29
sbit P36=P3^6;
P36=!(P3&0x80);

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表