主页 > 创业  > 

基于51单片机超声波测量报警LCD1602显示(proteus仿真+程序+设计报告+讲解视频)

基于51单片机超声波测量报警LCD1602显示(proteus仿真+程序+设计报告+讲解视频)

基于51单片机超声波测量报警LCD1602显示 1. 主要功能:2. 讲解视频:3. 仿真4. 程序代码5. 设计报告6. 下载链接 基于51单片机超声波测量报警LCD1602显示( proteus仿真+程序+设计报告+讲解视频)

仿真图proteus8.15(有低版本)

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:P20

1. 主要功能:

基于51单片机的超声波测距报警设计

具体功能

1、51单片机驱动超声波模块HC-SR04获取超声波测试距离,带有超声波精度温度补偿;

2、LCD1602液晶显示测量的距离和温度;

3、可以通过按键设置距离报警上下限值;

按键功能有:距离加键,距离减键,距离设置键。

4、超过设定的报警上下限值则开始蜂鸣器报警。

(目前仅完全适配普中51-实验板234,其他普中开发板型号可能需要做代码修改或额外接线)

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

以下为本设计资料展示图:

2. 讲解视频:

讲解视频包含仿真运行讲解和代码讲解

3. 仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

液晶LCD1602显示测量温度和测量距离值。测量距离值超过报警值后蜂鸣器报警。

按下设置键可以设置超声波测距的报警上下限值。

4. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。

//宏定义 #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; //温度 int t_=0; //显示模式 0正常 1最大值调整 2最小值调整 uchar mode=0; uint Max=200; uint Min=30; //按键标志 uchar k=0; //数值有误 uchar FW=0; //头函数 #include <reg51.h> #include <intrins.h> #include "key.h" //按键 #include "display.h" //显示头函数 #include "ultrasonic_wave.h"//超声波头函数 #include "DS18B20.h" //温度传感器头函数 //函数声明 void delayms(uint ms); /*********************************************************/ // 毫秒级的延时函数,time是要延时的毫秒数 /*********************************************************/ void Delay_Ms(uint time) { uint i,j; for(i=0;i<time;i++) for(j=0;j<112;j++); } //主函数 void main() { uchar time_cnt=0; Init_ultrasonic_wave(); //屏幕初始化 Init1602(); //温度初始化 while(tmp() == 850) // 等待温度传感器初始化完成 { Delay_Ms(10); } //循环显示 while(1) { Key(); time_cnt++; //正常显示 // Feng_Start(); if(mode==0) { if((time_cnt%100)==0){ StartModule();//启动超声波 while(!RX); //当RX为零时等待 TR0=1; //开启计数 while(RX); //当RX为1计数并等待 TR0=0; //关闭计数 delayms(1); //1MS // tmpchange(); //温度转换 t_=tmp(); //度温度 Conut(t_/10); //计算距离 Display_1602(t_/10,L_); } if(L_>Max||L_<Min) { Feng_Start(); } else { if(FW!=1) Feng_Stop(); } } //调整显示 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(); } } } void delayms(uint ms) { uchar i=100,j; for(;ms;ms--) { while(--i) { j=10; while(--j); } } } //T0中断用来计数器溢出,超过测距范围 void CJ_T0() interrupt 1 { flags=1; //中断溢出标志 }

5. 设计报告

10877字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

单片机技术的迅速兴起与蓬勃发展,其稳定、安全、高效、经济等优点十分突出,所以其应用也十分广泛。单片机已经无处不在、与我们生活息息相关,并且渗透到生活的方方面面,如空调、VCD机、手机、微波炉、自动洗衣机及汽车电子设备等。单片机的特点是体积较小,也就是其集成特性,其内部结构是普通计算机系统的简化,增加一些外围电路,就能够组成一个完整的小系统,单片机具有很强的可扩展性。它具有和普通计算机类似的、强大的数据处理功能,通过使用一些科学的算法,可以获得很强的数据处理能力。所以单片机在工业应用中,可以极大地提高工业设备的智能化、数据处理能力和处理效率,而且单片机无需占用很大的空间。

同时,随着社会的发展和进步,超声波测距系统日益重要,应用范围迅速扩大,由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,在较恶劣的环境(如含粉尘)具有一定的适应能力,因此用途极度广泛。在测绘地形图,建造房屋、桥梁、道路、开挖矿山、油井等,倒车雷达、建筑施工工地以及一些工业现场,例如液位、井深、管道长度等场合应用比较普遍。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。

6. 下载链接

链接: pan.baidu /s/1PcmNvNvHzeBh3VchH_sS5A?pwd=j6h9 提取码: j6h9

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

1、程序

2、proteus仿真

3、功能要求

4、软硬件流程图

5、开题报告

6、设计报告

7、烧录工具

8、讲解视频

9、实物图

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

标签:

基于51单片机超声波测量报警LCD1602显示(proteus仿真+程序+设计报告+讲解视频)由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“基于51单片机超声波测量报警LCD1602显示(proteus仿真+程序+设计报告+讲解视频)