单片机引脚如何实现高阻输入?
答案:7 悬赏:50 手机版
解决时间 2021-11-12 06:02
- 提问者网友:两耳就是菩提
- 2021-11-12 01:22
单片机引脚如何实现高阻输入?
最佳答案
- 五星知识达人网友:怀裏藏嬌
- 2021-11-12 01:35
一、通过加驱动器实现了。
二、如果是传统的51单片机(例如AT89S52),P0口可以实现高阻。
P0口内部和P1-P3口的内部结构不同,它的内部上拉FET只有在它作为外部存储器总线的时候才能打开,如果做普通IO口,那么让P0口输出1,外部又没有接上拉电阻的话,那么P0口就是高阻(悬空)状态。
三、换一个端口状态可编程修改的单片机,将端口设为高阻即可。
二、如果是传统的51单片机(例如AT89S52),P0口可以实现高阻。
P0口内部和P1-P3口的内部结构不同,它的内部上拉FET只有在它作为外部存储器总线的时候才能打开,如果做普通IO口,那么让P0口输出1,外部又没有接上拉电阻的话,那么P0口就是高阻(悬空)状态。
三、换一个端口状态可编程修改的单片机,将端口设为高阻即可。
全部回答
- 1楼网友:人间朝暮
- 2021-11-12 07:42
振幅才0.6,就是说最低的输入是3.9v,它是被单片机认为1。
所以可行的方案是你要对输入信号先处理,用电容把交流取出来然后再用三极管放大。
所以可行的方案是你要对输入信号先处理,用电容把交流取出来然后再用三极管放大。
- 2楼网友:蕴藏春秋
- 2021-11-12 07:19
肯定得把信号放大。。。不然单片机读到的全是0
- 3楼网友:举杯邀酒敬孤独
- 2021-11-12 07:07
P1口有一个上拉电阻。设置这个电阻的作用是保证逻辑正确。4.5V就是由于上拉电阻的存在造成的。由于一直是高电平状态,所以,单片机对外部信号的检测以输入低电平为主。0.6V的电压可以通过运放放大后,再反相变为低电平有效的信号就可以了。
- 4楼网友:一袍清酒付
- 2021-11-12 05:28
0.6V的振幅不足以判断,可以通过运放(比如LM324)放大再输入到引脚,引脚最好还根据情况接上拉或下拉电阻。
- 5楼网友:猎心人
- 2021-11-12 03:51
51单片机IO口没有高阻状态吧。
你要读入数据,先要把相应端口置1,如果是0就没有波形了。
高阻相当于端口对于外部电路不存在,不能读,也不能写的。
比如:
READ_P10()
{
P1^0=1;
delay(1);
if(P1^0)=1
{
......//程序
}
}
另外,125K的方波,如果没有直流偏移,是正负波形的话,你直接测直流当然是接近为0。如果是用示波器测试的,看看峰值吧。
你要读入数据,先要把相应端口置1,如果是0就没有波形了。
高阻相当于端口对于外部电路不存在,不能读,也不能写的。
比如:
READ_P10()
{
P1^0=1;
delay(1);
if(P1^0)=1
{
......//程序
}
}
另外,125K的方波,如果没有直流偏移,是正负波形的话,你直接测直流当然是接近为0。如果是用示波器测试的,看看峰值吧。
- 6楼网友:底特律间谍
- 2021-11-12 02:35
51单片机IO口没有高阻状态吧。
你要读入数据,先要把相应端口置1,如果是0就没有波形了。
高阻相当于端口对于外部电路不存在,不能读,也不能写的。
比如:
READ_P10()
{
P1^0=1;
delay(1);
if(P1^0)=1
{
......//程序
}
}
另外,125K的方波,如果没有直流偏移,是正负波形的话,你直接测直流当然是接近为0。如果是用示波器测试的,看看峰值吧。
你要读入数据,先要把相应端口置1,如果是0就没有波形了。
高阻相当于端口对于外部电路不存在,不能读,也不能写的。
比如:
READ_P10()
{
P1^0=1;
delay(1);
if(P1^0)=1
{
......//程序
}
}
另外,125K的方波,如果没有直流偏移,是正负波形的话,你直接测直流当然是接近为0。如果是用示波器测试的,看看峰值吧。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯