您的位置 首页 传感器

HC-SR04超声波测距模块电路设计

超声波测距模块参数超声波测距模块内部电路图超声波测距模块与51单片机连接电路图51单片机C语言参考程序include调用单片机头文件defi

超声波测距模块参数

超声波测距模块内部电路图

超声波测距模块与51单片机衔接电路图


51单片机C言语参阅程序

#include //调用单片机头文件
#define uchar unsigned char//无符号字符型宏界说变量规模0~255
#define uintunsigned int//无符号整型 宏界说变量规模0~65535
#include
#include “eeprom52.h”

sbit c_send= P3^3;//超声波发射
sbit c_recive = P3^2;//超声波接纳

//这三个引脚参阅资料
sbit rs=P1^0;//1602数据/指令挑选引脚 H:数据L:指令
sbit rw=P1^1;//1602读写引脚H:数据寄存器L:指令寄存器
sbit e =P1^2;//1602使能引脚下降沿触发
uchar code table_num[]=”0123456789abcdefg”;

sbit beep = P1^4;//蜂鸣器IO口界说
bit flag_300ms ;

long distance;//间隔
uint set_d;//间隔
bit flag_csb_juli;//超声波超出量程
uintflag_time0;//用来保存定时器0的时分的

uchar menu_1;//菜单规划的变量

void delay_1ms(uint q)
{
uint i,j;
for(i=0;i
for(j=0;j<120;j++);
}

void write_eeprom()//保存数据
{
SectorErase(0x2000);
byte_write(0x2000, set_d % 256);
byte_write(0x2001, set_d / 256);
byte_write(0x2058, a_a);
}

void read_eeprom()//读出保存数据
{
set_d= byte_read(0x2001);
set_d <<= 8;
set_d|= byte_read(0x2000);
a_a= byte_read(0x2058);
}

//
void init_eeprom()////开端初始化保存的数据
{
read_eeprom();//读出保存数据
if(a_a != 2)//新的单片机初始单片机内问EEPOM
{
set_d = 50;
a_a = 2;
write_eeprom();//保存数据
}
}

void delay_uint(uint q)
{
while(q–);
}

void write_com(uchar com)
{
e=0;
rs=0;
rw=0;
P0=com;
delay_uint(25);
e=1;
delay_uint(100);
e=0;
}

void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(25);
e=1;
delay_uint(100);
e=0;
}

void write_string(uchar hang,uchar add,uchar *p)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
while(1)
{
if(*p == )break;
write_data(*p);
p++;
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/257642.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部