超声波传感器测距时,被测物体的面积不少于0.5平方米且平面尽量要求平整,否则影响测量的结果。建议测量周期为60ms以上,以防发射信号对回响信号的影响。超声波时序图如下图所示。
HC-SR04模块有四个引线接口,VCC、GND、Trig、Echo。VCC供5V电源,GND接地,Trig触发控制信号输入,Echo回响信号输出。HC-SR04原理图如下图所示。
注:此图与HC-SR04模块图接收电路不同。
该系统采用51系列单片机为控制核心,LCD1602为显示电路,HC-SR04为超声波传感器。实物图如下图所示。
LCD显示驱动代码
#include"lcd.h"voidRead_Busy()//{unsignedcharsta;//LCD1602_DB=0xff;LCD1602_RS=0;LCD1602_RW=1;do{LCD1602_EN=1;sta=LCD1602_DB;LCD1602_EN=0;//}while(sta&0x80);}voidLcd1602_Write_Cmd(unsignedcharcmd)//{Read_Busy();LCD1602_RS=0;LCD1602_RW=0;LCD1602_DB=cmd;LCD1602_EN=1;LCD1602_EN=0;}voidLcd1602_Write_Data(unsignedchardat)//{Read_Busy();LCD1602_RS=1;LCD1602_RW=0;LCD1602_DB=dat;LCD1602_EN=1;LCD1602_EN=0;}voidLcdSetCursor(unsignedcharx,unsignedchary)//{unsignedcharaddr;if(y==0)addr=0x00+x;elseaddr=0x40+x;Lcd1602_Write_Cmd(addr|0x80);}//voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData){Y&=0x1;X&=0xF;//if(Y)X|=0x40;//X|=0x80;//Lcd1602_Write_Cmd(X);//Lcd1602_Write_Data(DData);//}voidLcdShowStr(unsignedcharx,unsignedchary,unsignedchar*str){LcdSetCursor(x,y);//while(*str!='\0'){Lcd1602_Write_Data(*str++);}}voidInitLcd1602()//{Lcd1602_Write_Cmd(0x38);//Lcd1602_Write_Cmd(0x0c);Lcd1602_Write_Cmd(0x06);Lcd1602_Write_Cmd(0x01);//}