找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1403|回复: 23
收起左侧

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

  [复制链接]
ID:1114062 发表于 2024-5-8 23:07 | 显示全部楼层 |阅读模式
P3.7端口检测有5V输入,P3.6端口指示灯亮,能否实现?如果实现不了那种芯片可以?请大神们指教一下,谢谢!
1.png
回复

使用道具 举报

ID:883242 发表于 2024-5-8 23:29 | 显示全部楼层
sbit P36=P3^6;
P36=!(P3&0x80);
回复

使用道具 举报

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:366877 发表于 2024-5-9 03:53 | 显示全部楼层

sbit P36=P3^6;
sbit P37=P3^7;
P36=!P37;
回复

使用道具 举报

ID:1109793 发表于 2024-5-9 07:21 | 显示全部楼层
设为标准IO,然后加一个比如1K的下拉电阻,等着接收你的高电平就行了,当然这个高电平要有一定的驱动能力
回复

使用道具 举报

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 08:56 | 显示全部楼层
rayin 发表于 2024-5-9 07:44
这是51单片机最基本的操作了:

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

楼主说的5V信号可能只有高电平驱动能力,没有下拉驱动能力,所以有必要提供一个主动下拉。实际上大多数信号例如开关我们都习惯接到低电平。例如接近开关多数NPN开路输出,当然也有PNP开路输出的,那不是就需要主动下拉吗?当然PNP还得注意输出电压,不要超过5V。所以我们还是建议使用NPN的。
回复

使用道具 举报

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:161164 发表于 2024-5-9 11:22 | 显示全部楼层
可以这样接
2024-05-09_111936.png


P37=1;
由于8051引脚输出高的能力很弱(~250uA)
P37会被1k电阻拉低到0.25V, 被当作低电平
回复

使用道具 举报

ID:1118750 发表于 2024-5-9 12:26 | 显示全部楼层

正确的
回复

使用道具 举报

ID:1118750 发表于 2024-5-9 12:28 | 显示全部楼层
不是啊,你的哪里按下去是啥,不是短路了吗你实物焊起来,我学识不够能解释下吗
回复

使用道具 举报

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:1109793 发表于 2024-5-9 14:06 | 显示全部楼层
大林飞 发表于 2024-5-9 13:55
#include//头文件
#include

人家都说了是高电平来的时候灯亮,你这好像不对吧
这样:
P3_6  =!P3_7;
也不对,也许楼主的灯不是正极接VCC的而是负极接GND的
回复

使用道具 举报

ID:1114062 发表于 2024-5-9 14:10 | 显示全部楼层
C:\Users\Administrator\Desktop\1.PNG
p3-7脚  始终是处于高电平状态,电压拉不下来
回复

使用道具 举报

ID:624769 发表于 2024-5-9 20:03 | 显示全部楼层
你这个不能用 P37  要用P0,因为你要检测的是 +24v
回复

使用道具 举报

ID:619259 发表于 2024-5-10 00:24 | 显示全部楼层
SW3到P3.7加一个反相器,程序上P3.7改为低电平检测。
回复

使用道具 举报

ID:1080935 发表于 2024-5-11 17:37 | 显示全部楼层
不建议这样做,24V直接接过来,运气不好的话可能干掉其他电路,建议用光耦隔离,电路大把可百度。
回复

使用道具 举报

ID:1010435 发表于 2024-5-12 19:05 | 显示全部楼层

楼主这个图R11上面是24V,用38k和10K电阻分压后得到5V,所以这个接法没有错啊。
回复

使用道具 举报

ID:1080935 发表于 2024-5-13 08:03 | 显示全部楼层
原理没问题,电压相差较大建议隔离。尤其是24V不知道是哪里来的,电压波动大或R9悬空容易出问题。
回复

使用道具 举报

ID:1120450 发表于 2024-5-13 09:48 | 显示全部楼层
当然可以实现
回复

使用道具 举报

ID:1034262 发表于 2024-5-13 10:39 | 显示全部楼层
AT89C51是准双向口输出,不能设置整高阻输入,所以你不按键也是高电平。
换STC8系列的吧,IO设置为高阻即可实现。
回复

使用道具 举报

ID:161164 发表于 2024-5-13 11:44 | 显示全部楼层
mtt661 发表于 2024-5-12 19:05
楼主这个图R11上面是24V,用38k和10K电阻分压后得到5V,所以这个接法没有错啊。

那个24V被挡住了,看不清楚
修正为以下电路 2024-05-13_114320.png

回复

使用道具 举报

ID:1120760 发表于 2024-5-15 21:43 | 显示全部楼层
总觉得51单片机比较过时了,当时我做 我老师跟我说现在还是用STM32单片机比较合适,功能什么的也更多
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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