51单片机超声波测距语音播报
51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。
目录
具体实现功能
由51单片机+LCD1602液晶+DS18B20温度传感器+超声波传感器+语音芯片+喇叭等构成。
具体功能:
(1)LCD1602实时显示测的距离和温度;距离测量范围0.02m~4m,精度为0.01m;
(2)具有实时语音播报功能,按下按键播报测量距离;
(3)可以按键设置报警值,超过报警值声光报警。

仿真/实物演示视频:
51单片机超声波测距语音播报
设计介绍

51单片机简介
51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。
本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

资料内容
原理图和PCB(AD19)
本系统原理图和PCB设计采用Altium Designer19,具体如图。


注1:请使用Altium Designer19直接打开资料中的工程文件(资料中已说明打开方式)!
注2:此设计需按照原理图制作实物,不可直接烧录到任何开发板中运行(需要修改程序)!
程序(Keil5)
本设计利用KEIL5软件实现程序设计。
主函数如下:
////////////////
//主函数
void main()
{
UART_init();
Init_ultrasonic_wave();
//屏幕初始化
Init1602();
//温度初始化
tmpchange();
t_=tmp();
tmpchange();
t_=tmp();
tmpchange();
t_=tmp();
//循环显示
while(1)
{
Key();
if(yuyin_flag==1)
{
yuyin_flag=0;
ONE4[4]=L_/100;
ONE5[4]=L_/10%10;
ONE6[4]=L_%10;
if(ONE4[4]==0)ONE4[4]=0x0A;
if(ONE5[4]==0)ONE5[4]=0x0A;
if(ONE6[4]==0)ONE6[4]=0x0A;
UART_send_string(ONE1,6);
delayms(1);
UART_send_string(ONE4,6);
delayms(1);
UART_send_string(ONE3,6);
delayms(1);
UART_send_string(ONE5,6);
delayms(1);
UART_send_string(ONE6,6);
delayms(1);
UART_send_string(ONE2,6);
delayms(1);
}
//正常显示
if(mode==0)
{
StartModule();//启动超声波
while(!RX); //当RX为零时等待
TR0=1; //开启计数
while(RX); //当RX为1计数并等待
TR0=0; //关闭计数
delayms(20); //20MS
tmpchange(); //温度转换
t_=tmp(); //度温度
Conut(t_/10); //计算距离
if(L_>Max||L_<Min)
{
Feng_Start();
}
else
{
if(FW!=1)
Feng_Stop();
}
Display_1602(t_/10,L_);
}
//调整显示
else if(mode!=0)
{
//最大最小值
Init_MaxMin();
while(mode!=0)
{
Key();
if(k==1&&mode==1)
{
Init_MaxMin();
write_com(0x8d);//设置位置
}
else if(k==1&&mode==2)
{
Init_MaxMin();
write_com(0x8d+0x40);//设置位置
}
k=0;
}
//界面初始化
Init1602();
}
}
}
程序运行结果如图:

注:请使用KEIL C51直接打开资料中的工程文件(资料中已说明打开方式)!
全部资料
全部资料包括原理图和PCB源文件(AD19)、程序(Keil5)、protues仿真(protues8.7)、设计报告(仅供参考)、仿真视频、开发资料、仿真视频、单片机最小系统介绍等,全网最全!资料内容如下图所示!!

资料获取
https://docs.qq.com/doc/DT0JzQmhRWGpFaGJH
更多推荐
所有评论(0)