首页 接线图文章正文

51单片机1602显示超声波测距源程序-电路图讲解

接线图 2024年04月22日 18:06 88 admin

制作超声波测距仪,是很多学生、单片机爱好者学习单片机动手实践的一个实作项目,这款超声波测距程序,针对目前比较广泛使的HC-SR04超声波模块而设计的,这款1602显示的超声波测距距源程序,单片机是51系列单片机,超声波测距模块先用的是HC-SRO4 超声波测距模块,单片机的晶振是12M,接线:模块TRIG接 P2.5 ECH0 接P3.2,当距离超出测量时,范围显示“-”,

原装MURATA现货滤波器 0603 0.022UF

制作超声波测距仪,是很多学生、单片机爱好者学习单片机动手实践的一个实作项目,这款超声波测距程序,针对目前比较广泛使的HC-SR04超声波模块而设计的,这款1602显示的超声波测距距源程序,单片机是51系列单片机,超声波测距模块先用的是HC-SRO4 超声波测距模块,单片机的晶振是12M,接线:模块TRIG接 P2.5 ECH0 接P3.2,当距离超出测量时,范围显示“-”,显示单位是CM。这款程序由于硬件比较简单,制作时焊接工作量小,几乎是百分之百的成功,也可以用PROTEUS软件直接进行。 


51单片机1602显示超声波测距源程序-电路图讲解  第1张

#include[reg52.h> //注意请把‘ [ ’换成 "
#include [intrins.h> //
#define uint unsigned int
#define uchar unsigned char
sbit rs=P2^0; //1602的数据/指令选择控制线
sbit rw=P2^1; //1602的读写控制线
sbit en=P2^2; //1602的使能控制线
sbit trig=P2^5; //超声波测距模块Trig
sbit echo=P3^2; //超声波测距模块Echo
bit flag1; //触发信号标志位//
uchar count; //中断累加变量
long int diSTance; //测量所得距离
unsigned char code table[ ]={"0123456789"}; //定义字符数组显示数字
void delay(uint n)
{
uint x,y;
for(x=n;x>0;x--)
for(y=110;y>0;y--);
}
void delayt(uint x)
{
uchar j;
while(x-- > 0)
{
for(j = 0;j
{
;
}
}
}
void lcd_wcom(uchar com)
{
rs=0; //选择指令寄存器
rw=0; //选择写
P0=com; //把命令字送入P0
delay(5); //延时一小会儿,让1602准备接收数据
en=1; //使能线电平变化,命令送入1602的8位数据口,这点非常重要
en=0;
}
void lcd_wdat(uchar dat)
{
rs=1; //选择数据寄存器
rw=0; //选择写
P0=dat; //把要显示的数据送入P0
delay(5); //延时一小会儿,让1602准备接收数据,也就是检测忙信号,这点非常重要。
en=1; //使能线电平变化,数据送入1602的8位数据口
en=0;
}
void lcd_init()
{
lcd_wcom(0x38); //8位数据,双列,5*7字形 ,用到功能设定指令
lcd_wcom(0x0c); //开启显示屏,关光标,光标不闪烁,用到显示开关控制指令
lcd_wcom(0x06); //显示地址递增,即写一个数据后,显示位置右移一位,用到了写入模式设置指令
lcd_wcom(0x01); //清屏,用到了清屏指令
}
void lcd_xianshi()
{
lcd_wcom(0x80+0x40);
lcd_wdat("D");
lcd_wdat("i");
lcd_wdat("s");
lcd_wdat("t");
lcd_wdat("a");
lcd_wdat("n");
lcd_wdat("c");
lcd_wdat("e");
lcd_wdat(":");
lcd_wcom(0x80+0x4c);
lcd_wdat(".");
lcd_wcom(0x80+0x4e);//单位是厘米//
lcd_wdat("c");
lcd_wdat("m");
}
void init_t0()
{
TMOD=0x01;
TL0=0x66;
TH0=0xfc; //1ms
ET0=1;
EA=1;
}
void trigger()
{
trig=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
trig=1;
}
void init_measuring()
{
trig=1;
echo=1;
count=0;
}
void measuring()
{
uchar l;
uint h,y;
TR0 = 1;
while(echo==1)
{
;
}
TR0 = 0;
l = TL0;
h = TH0;
y = (h
y = y - 0xfc66;//us部分
distance = y + 1000 * count;//计算总时间,单位是微秒
TL0 = 0x66;
TH0 = 0xfc;
delayt(30);
distance = 3453* distance / 20000;//原始为:(0.34毫米/us)*时间/2//
}
void display(uint x)
{
uchar qian,bai,shi,ge;
qian=x/1000;
bai=(x/100);
shi=(x/10);
ge=x;
lcd_wcom(0x80+0x49);//单位是厘米//
lcd_wdat(table[qian]);
lcd_wdat(table[bai]);
lcd_wdat(table[shi]);
lcd_wcom(0x80+0x4d);
lcd_wdat(table[ge]);
}
void main()
{ lcd_init(); //液晶初始化
init_t0(); //定时器0初始化
init_measuring(); //超声波相应端口初始化
while(1)
{
lcd_xianshi(); //液晶显示特定字符
trigger(); //触发超声波启动
while(echo==0) //等待回声
{
;
}
measuring(); //进行距离测量
display(distance); //对测量结果进行显示
init_measuring(); //超声波相应端口初始化
delayt(600); //每次测量间隔60ms
}
}
//……………………………………………中断服务函数…………………………………………………//
void T_0()interrupt 1
{
TF0 = 0;
TL0 = 0x66;
TH0 = 0xfc;
count++;
if(count==18)
{
TR0 =0;
TL0 = 0x66;
TH0 = 0xfc;
count = 0;
}
}

-电子元器件采购网(www、oneyac、com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快 速交付的采购需求。自建高效智能仓储,拥有自营库存超50,000种,提供一站式正品现货采购、个性化解决方案、选项替代等多元 化服务。 (本文来源网络整理,目的是传播有用的信息和知识,如有侵权,可联系管理员删除)

 如图所示为提升机故障报警电路。该报警器由传感器、555单稳态触发器、报警电路等组成。其中传感器是由一永久磁铁和一只于簧管组成的磁控开关,且前者固紧在从动轮上,后者固定在特定位置。单稳态触发器由IC(555)和R、C2等组成。报警电路由继电器、发光二极管等组成。  当转速正常时,每转一圈,因磁控开关闭合而对C1充电。调节电位器W1使C1上的充电电压稍高于1/3VDD,555的输出端(③脚)保持低电

光电耦合器

 如图所示为提升机故障报警电路。该报警器由传感器、555单稳态触发器、报警电路等组成。其中传感器是由一永久磁铁和一只于簧管组成的磁控开关,且前者固紧在从动轮上,后者固定在特定位置。单稳态触发器由IC(555)和R、C2等组成。报警电路由继电器、发光二极管等组成。

  当转速正常时,每转一圈,因磁控开关闭合而对C1充电。调节电位器W1使C1上的充电电压稍高于1/3VDD,555的输出端(③脚)保持低电平,相应发光二极管LED1发光。当由于故障而使从动轮转速低于正常速度时,电容器C1相应的放电时间加长,从而其上的电压低于1/3VDD,555翻转,输出高电平。此时,与输出端(③脚)相接的继电器J吸合,以此去控制中间继电器的有关工序设备。同时。显示故障的发光二极管LED2点亮。

  本电路正是根据当提升机超负荷或传动皮带轮松动时从动轮的转速会变慢,并利用555的触发电平与RC充放电时间常数的关系设计出来的,因而具有故障报警的作用。

51单片机1602显示超声波测距源程序-电路图讲解  第2张                


-电子元器件采购网(www、oneyac、com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快 速交付的采购需求。自建高效智能仓储,拥有自营库存超50,000种,提供一站式正品现货采购、个性化解决方案、选项替代等多元 化服务。 (本文来源网络整理,目的是传播有用的信息和知识,如有侵权,可联系管理员删除)

版权与免责声明

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

发表评论

接线图网Copyright Your WebSite.Some Rights Reserved. 备案号:桂ICP备2022002688号-2 接线图网版权所有 联系作者QQ:360888349