本文来自于牛人技术网某大神。
1. 传感器特点
传感器采用PCB板封装,有三个针脚引出,其中两端的是用来供电的正极和负极而中间的则是电平信号输出。感应的灵敏度可以通过PCB板上的电位器来进行条件一般在7米左右的感应距离,最大是10米。
2. 接线
3. 程序部分
你把I/O置为高,问题就解决了,这说明原先你的I/O口是置低的。51单片机是准双向I/O口,除了P0口之外,其它口内部都有上拉电阻。准双向I/O的特点是,具有较大的灌电流(10毫安以下),但只有微弱的拉电流(0.5毫安以下),所以,如果将I/O置为低电平,外部输入的高电平信号有可能也会被强制拉低,这样不但无法正确读取外部信号,而且还有可能损坏I/O口。正确的做法,是在读取I/O口信号之前,先将I/O口置为高电平,之后再读取I/O口的信号。这样说你也许还不一定会理解,但你只要记住,准双向I/O要接收外部信号,一定要将I/O口置高,而要向外部输出信号,置高或置低都可以。我有过类似的情况,你的程序没问题,问题是在硬件的接口上,可能是你的传感器输出接口需要上拉什么的,导致单片机高地电平不能正常读取,楼主可以试下在单片机IO口对应接口处加上一个二极管再与传感器连接。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)