51单片机超声波测距带语音播报(源程序+原理图+原理图讲解)
本设计
51单片机超声波测距带语音播报(源程序+原理图+原理图讲解)
原理图:Altium Designer
程序编译器:keil 4
编程语言:C语言
编号S0004
功能说明:
1.本设计采用STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机作为主控制器;
2.LCD1602液晶显示测量的距离和温度;
3.带有温度补偿功能(DS18B20传感器);
4.测量范围0.02m~4m,精度为0.01m;
5.带实时语音播报功能;
6.按键功能:按键2:加报警值按键3:减报警值按键1:设置按键(只有在按下设置的时候才可以加减报警值),在未按下按键1时,按下按键3播报测量距离。
使用方法:
开机即可测试,前面的障碍物尽量不要太乱,尽量平整(如墙壁)。只有在设置的时候才可以加减报警值始计时
原理图:
程序:
复制到浏览器https://docs.qq.com/sheet/DS0xIa0llTmtNakRW
//宏定义
#define uchar unsigned char
#define uint unsigned int
#define ULint unsigned long int
//温度零上与零下的标志位
char flag=0;
//超声波
char flags=0;
//超声波距离
char flag1s=0;
//计算定时间
uint time=0;
//计算距离
ULint L_=0;
//温度
uint t_=0;
//显示模式 0正常 1最大值调整 2最小值调整
uchar mode=0;uint Max=490;
uint Min=10;
//按键标志
uchar k=0;
//数值有误
uchar FW=0;
//头函数
#include <reg52.h>
#include <intrins.h>
#include "BJ_Key.h" //报警按键
#include "display.h" //显示头函数
#include "ultrasonic_wave.h"//超声波头函数
#include "DS18B20.h" //温度传感器头函数uchar ONE1[6]={0x7E,0x04,0x03,0x00,0X0D,0xEF};//现在距离为
uchar ONE2[6]={0x7E,0x04,0x03,0x00,0X0C,0xEF};//米
uchar ONE3[6]={0x7E,0x04,0x03,0x00,0X0B,0xEF};//点
uchar ONE4[6]={0x7E,0x04,0x03,0x00,0X00,0xEF};//百位
uchar ONE5[6]={0x7E,0x04,0x03,0x00,0X00,0xEF};//十位
uchar ONE6[6]={0x7E,0x04,0x03,0x00,0X00,0xEF};//个位void delayms(uint ms)
{uchar i=100,j;for(;ms;ms--){while(--i){j=10;while(--j);}}
}/******** UART初始化 波特率:9600 ******/
void UART_init(void)
{SCON = 0x50; // 10位uart,允许串行接受TMOD = 0x20; // 定时器1工作在方式2(自动重装)TH1 = 0xFD;TL1 = 0xFD; //设置波特率为9600TR1 = 1;
}/** UART 发送一字节入口参数uint8的数据类型 即要发送的数据
*/
void UART_send_byte(uchar dat)
{SBUF = dat;while (TI == 0);TI = 0;
}/** UART 发送字符串 第一个参数要发送字符串或数据的首地址第二个参数是要发送的数据或字符串的长度
*/
void UART_send_string(uchar *buf,uchar len)
{ uchar i;for(i=0;i<len;i++)UART_send_byte(*buf++);
}//主函数
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); //20MStmpchange(); //温度转换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();}}
}//T0中断用来计数器溢出,超过测距范围
void CJ_T0() interrupt 1
{flags=1; //中断溢出标志
}
百度云分享下载链接:
51单片机超声波测距带语音播报(源程序+原理图+原理图讲解)相关推荐
- 水下超声波测距c语言程序,51单片机超声波测距C程序
51单片机超声波测距C程序 (2010-01-26 14:09:10) 电子工程师电子资料大学校园 超声波检测原理 超声波测距的程序流程图 程序如下: //超声波模块程序 #include #defi ...
- 基于51单片机超声波测距液位检测-温度检测
[毕设课设]基于51单片机超声波测距液位检测-温度检测 效果图 Proteus仿真: 功能简介: 文件内容: 程序框架: 网盘链接: 效果图 更多内容请关注@WENJIE电子科技 基于51单片 ...
- 51单片机TTS温度湿度语音播报系统 DHT11 LCD1602
实践制作DIY- GC0049-TS温度湿度语音播报系统 一.功能说明: 基于51单片机设计-TS温度湿度语音播报系统 功能介绍: 1.STC89C52单片机(STC89C51/52 AT89C51/ ...
- 基于51单片机 超声波测距 倒车雷达
基于51单片机 超声波测距 倒车雷达 51单片机最小系统电路+LCD1602+蜂鸣器报警电路+按键电路+超声波模块+电源电路 实现液晶显示距离 超设置数值报警 按键可修改数值 可加蓝牙模块 用户可以通 ...
- 基于单片机的TLC稳压电源系统设计-基于单片机大脑运算能力智力测试仪-基于单片机超声波测距系统仿真设计(报告 PCB 原理图)-基于单片机超高精度电参数测试设计-基于单片机变电站变压器运行参数监测仿真
1316基于单片机的TLC稳压电源系统设计-毕设课设仿真资料 三极管射极电压是稳压电源的输出电压,可以接用电器或负载,这个电压值通过TLC549(A/D,同TLC548)数据转换后,送往单片机处理并显 ...
- 项目实战:51单片机超声波水位控制器设计 (源码+PCB+原理图与实物制作)全套资料
51单片机超声波水位控制器设计 说明: 本设计中液晶显示有4个字母,分别为 H------容器的最高水位设定值(不能高于实际高度) L------容器的最低水位设定值 D-----容器实际高度(可以设 ...
- 单片机测距雷达c语言代码,51单片机超声波测距倒车雷达Proteus仿真+源代码
#include #include #include "LCD.H" #include "delay.h" #define uint unsigned int ...
- 基于51单片机超声波的停车场车位管理系统proteus仿真原理图PCB
功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前车位状态 2.当超声波探头检测到距离小于500mm时,判断为当前车位有车,否则无车 3.超声波传感器型号采用HC ...
- 创意发明: 基于STC51单片机超声波测距(精简设计只需三个元件)
基于STC51单片机超声波测距精简设计只需三个元件(测距模块暂且算做是一个元件吧) 1.所需元件:STC单片机+超声波模块+4位共阳数码管 2.原理:单片机向测距模块trig脚发送20us的高电平触发 ...
最新文章
- PyTorch 的 Autograd详解
- java allocate_Java中volatile关键字的最全总结
- pythontkinter真实的例子_Python Tkinter真实的例子
- 国庆海报设计适合哪些精品背景纹理?
- west-first路由算法
- linux patch
- 8个jQuery Mobile基础教程
- Retinex实验效果图和图片格式转化的失真问题
- Julia:调用python函数的几种方法
- mysql中为啥只显示一条语句_MySQL 笔记整理(19) --为什么我只查一行的语句,也执行这么慢?...
- 怎么查看自己java程序的源码
- python修改第三方库重写_对Python第三方库,再次封装
- 《数学之美》--吴军
- 快速搞定前端技术一面 匹配大厂面试要求学习笔记
- vue3.0 Beta发布,顺便来看看Vue3 的响应式和以前有什么区别
- 升级OpenSSL修复高危漏洞Heartbleed
- 气象观测站中的最大风速、极大风速、2min平均风速有什么区别
- RPN(Region Proposal Network)
- 深度| 做出什么样的AGV才能卖的好?
- <<论文写作>>总结与心得体会