一、通过加驱动器实现了。
二、如果是传统的51单片机(例如AT89S52),P0口可以实现高阻。
P0口内部和P1-P3口的内部结构不同,它的内部上拉FET只有在它作为外部存储器总线的时候才能打开,如果做普通IO口,那么让P0口输出1,外部又没有接上拉电阻的话,那么P0口就是高阻(悬空)状态。
三、换一个端口状态可编程修改的单片机,将端口设为高阻即可。
51单片机IO口没有高阻状态吧。
你要读入数据,先要把相应端口置1,如果是0就没有波形了。
高阻相当于端口对于外部电路不存在,不能读,也不能写的。
比如:
READ_P10()
{
P1^0=1;
delay(1);
if(P1^0)=1
{
......//程序
}
}
另外,125K的方波,如果没有直流偏移,是正负波形的话,你直接测直流当然是接近为0。如果是用示波器测试的,看看峰值吧。
P1口有一个上拉电阻。设置这个电阻的作用是保证逻辑正确。4.5V就是由于上拉电阻的存在造成的。由于一直是高电平状态,所以,单片机对外部信号的检测以输入低电平为主。0.6V的电压可以通过运放放大后,再反相变为低电平有效的信号就可以了。
51单片机的P1,P2,P3口是带内部上拉电阻的,,有波形输入与没波形输入肯定是相差不大,,
你用P0口试试,,P0口不带内部上拉电阻的