最近在用Proteus仿真时,使用HC-SR04测距,LCD1602无法显示测距结果,如图1。
图一
查看下面菜单栏的报错
图二
出现图二所示“Logic contention(s) detected on net ECHO”的警告。就是 HCSR04 和 AT89C52 连的那根线出了问题。HCSR04通过Echo给单片机高电平来确定测距时间,所以P1.4应该是作为输入端口,而我的代码中没有设置P1.4为输入模式(拉高P1.4),所以Proteus以为Echo这条线是两端都在输出,所以出现“ Logic contention ”(逻辑冲突)
如图三,将P1.4拉高,重新“Build”,再仿真
图三
可以看到LCD1602显示出测距值为49cm,与HC-SR04的50cm相近,精度不够是我的代码问题,还需修改。