【毕业设计】61-基于单片机的超声波测距仪设计(原理图、仿真工程、低重复率参考设计文档、PPT、开题报告、任务书)

news2025/2/3 15:58:56

【毕业设计】61-基于单片机的超声波测距仪设计(原理图、仿真工程、低重复率参考设计文档、PPT、开题报告、任务书)@[toc]

资料下载链接

资料下载链接
资料链接:https://www.cirmall.com/circuit/33762/
包含此题目毕业设计全套资料:(毕业设计全套精品资料)
原理图工程文件
原理图截图
仿真模型工程文件
仿真截图
搭建视频
低重复率文档,24618字
英文文献及翻译
开题报告
任务书
答辩PPT

任务书

主要研究内容:
考虑到单片机由于其强大的功能和高性价比而得到广泛应用,测距系统采用单片机作为控制核心。采用液晶屏作为显示设备,最后对系统进行了测量,满足设计要求。
方法:
通过图书、期刊、网络等途径查阅相关文献资料,研究单片机、温湿度传感器、液晶屏等知识。
要求:
1、确定系统总体设计方案,给出设计方案的结构框图;
2、利用仿真软件(如:Proteus)完成仿真电路的具体设计;
3、利用编程软件(如:Keil)完成编程;
4、对所设计的系统进行仿真调试,实现超声波测距仪的功能。

设计说明书

摘要

本文设计题目为超声波测距仪,主要研究使用超声波传感器对距离的测量保证较高的测量精度。本文研究了距离传感器,超声波传感器的研究背景于发展情况,充分了解到了超声波传感器使用的便利性。并选择合适的设计方案,确认系统的功能,确认使用单片机做为主控芯片,HC-SR04做为超声波距离传感器,按键做为人机交互设备,LCD1602做为显示器单元显示当前全部检测信息与数据。使用EDA软件绘制原理图,分配单片机I/O引脚,保证原理图逻辑分配合理性。绘制程序框架,掌握C语言编制技巧,使用KEIL软件编写工程代码最后生成HEX文件。使用仿真软件PROTEUS模拟整个系统的运行环境与条件,根据原理图搭建系统的电路仿真图,调试电路,测试系统是否达到预期功能。完成本次系统设计总结全文。

设计框架架构

在这里插入图片描述

前 言 1
第一章 绪 论 2
第一节 研究背景 2
第二节 研究背景及意义 3
第三节 本文的主要研究内容 4
第四节 本章小结 4
第二章 超声波测距仪方案设计 5
第一节 超声波测距原理 5
一、时间误差 5
二、超声波传播速度误差 5
第二节 超声测距仪需要实现的功能 6
第三节 方案设计 7
第四节 本章小结 8
第三章 超声波测距仪电路设计 9
第一节 单片机最小系统电路设计 9
一、单片机介绍 9
二、单片机最小系统设计 10
第二节 按键电路设计 11
第三节 超声波测距电路设计 12
第四节 蜂鸣器报警电路设计 13
第五节 LCD1602电路设计 13
第六节 温度传感器电路设计 15
第七节 总电路设计 16
一、总原理图设计 16
二、PCB绘制 17
第八节 本章小结 17
第四章 超声波测距仪软件设计 18
第一节 Keil软件介绍 18
第二节 软件总流程设计 18
第三节 超声波测距流程设计 20
第四节 按键检测流程设计 21
第五节 LCD1602显示流程设计 22
第六节 测温流程设计 23
第七节 本章小结 24
第五章 超声波测距仪仿真实现 25
第一节 仿真软件介绍 25
第二节 仿真电路搭建 26
一、系统电路调试 26
二、系统综合调试 26
第三节 仿真功能测试 28
第四节 本章小结 32
总 结 33
致 谢 34
参考文献 35
附 录 37
一、英文原文 37
二、英文翻译 43
三、工程图纸 49
四、源代码 50

设计说明书及设计文件

在这里插入图片描述

在这里插入图片描述低重复率文档,24618字

在这里插入图片描述
在这里插入图片描述

源码展示

#include <REGX51.H>
#include <stdio.h>
#include<intrins.h>
#define uint   unsigned int;
#define uchar unsigned char
sbit DQ=P2^4;		//ds18b20 端口
sbit k2=P3^6;
sbit k1=P3^5;
sbit csbint=P3^2;	//ECHO
sbit csb=P2^5;		//TRIG
sbit fmq=P3^3;		//蜂鸣器
sbit bg=P2^6;		//液晶屏背光控制
sbit EN = P2^2;	  //定义液晶屏定义端口 
sbit RW = P2^1;	  //定义液晶屏定义端口
sbit RS = P2^0;   //定义液晶屏定义端口 
#define EN_CLR EN=0
#define EN_SET EN=1
#define RS_SET RS=1
#define RS_CLR RS=0 
#define RW_SET RW=1
#define RW_CLR RW=0 
unsigned char bb[11]={' ',' ',' ',' ','.',' ',' ',' ',' ',' ',};
unsigned char cc[]={'A','.','A','A','m'};
unsigned char aa[]={' ',' ','D','i','s','t','a','n','c','e',':'};	   //Distance
unsigned int dz,k,s,j,bgz,k;	
unsigned char zf,a1,a2,a3,xs,e,n,m,z; //zf 温度正负标志位;a1,a2,a3,按键设定程序中定值的米、分米、厘米临时存储变量 xs,e 用于按键程序中设定位闪动显示的变量;flag,未用,n,是背光控制标志位变量;m,z;
                                    
float temperature,csbc,wdz;
int temp;
bit wh;
/*------------------------------------------------
                  函数声明
------------------------------------------------*/
unsigned int ReadTemperature(void);
unsigned char ReadOneChar(void);
bit Init_DS18B20(void);
void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s);
void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data);
void WriteOneChar(unsigned char dat);
void write_data(unsigned char date);
void init();
void write_com(unsigned char com);
void DelayMs(unsigned char t);
void DelayUs2x(unsigned char t);
/*------------------------------------------------
 mS延时函数,含有输入参数 unsigned char t,无返回值
 unsigned char 是定义无符号字符变量,其值的范围是
 0~255 这里使用晶振12M,精确延时请使用汇编
------------------------------------------------*/
void DelayMs(unsigned char t)	//大致延时1mS
{
  	while(t--) 		
 	{
     	DelayUs2x(245);		 
	 	DelayUs2x(245);
 	}
}
/*------------------------------------------------
这里使用晶振12M,精确延时请使用汇编,大致延时
 长度如下 T=tx2+5 uS  uS延时函数,含有输入参
 数 unsigned char t,无返回值 unsigned char 
 是定义无符号字符变量,其值的范围是
 0~255 
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{   
 	while(--t);
}
/*------------------------------------------------
                    18b20初始化
------------------------------------------------*/
/*------------------------------------------------
                    读取一个字节
------------------------------------------------*/
unsigned char ReadOneChar(void)
{
	unsigned char i=0;
	unsigned char dat = 0;
	for (i=8;i>0;i--)
 	{
  		DQ = 0; 			// 给脉冲信号
  		dat>>=1;
  		DQ = 1; 			// 给脉冲信号
  		if(DQ)
   		dat|=0x80;
  		DelayUs2x(25);
 	}
 	return(dat);
}
bit Init_DS18B20(void)
{
	bit dat=0;
	DQ = 1;    				//DQ 复 位
 	DelayUs2x(5);   		// 稍做延时
 	DQ = 0;         		//单片机将 DQ 拉低
 	DelayUs2x(200); 		//精确延时大于480us小于960us
 	DelayUs2x(200);
 	DQ = 1;        			//拉高总线
 	DelayUs2x(50); 			//15~60us 后接收60-240us的存在脉冲
 	dat=DQ;        			//如果x=0则初始化成功, x=1则初始化失败
 	DelayUs2x(25); 			//稍作延时返回
 	return dat;
}

/*------------------------------------------------
                    写入一个字节
------------------------------------------------*/
void WriteOneChar(unsigned char dat)
{
 	unsigned char i=0;
 	for (i=8; i>0; i--)
 	{
  		DQ = 0;
  		DQ = dat&0x01;
  		DelayUs2x(25);
  		DQ = 1;
  		dat>>=1;
 	}
	DelayUs2x(25);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/20410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UDS应用场景

诊断协议那些事儿 本文为诊断协议那些事儿专栏文章&#xff0c;旨在介绍诊断的应用场景&#xff0c;其本质就是一个用于汽车行业通信的需求规范&#xff0c;用于诊断功能数据的解析&#xff01;让读者对诊断有一个深入的认识。 关联文章&#xff1a;UDS协议发展历史 文章目录…

idea如何设置代理实现管理突破呢

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步&#x1f91d;&#x1f91d; 一位上进心十足的【Java ToB端大厂…

抗锯齿渲染

&#xff08;逻辑绘图&#xff09;图像在坐标图中的显示&#xff1a; 笔的默认宽度为1&#xff0c;当笔的宽度大于1时&#xff0c;相当于在则条线的两边均匀加厚&#xff0c;确定坐标的还是这条宽度为1的线段&#xff0c;相当于宽度的中心位置。 物理绘图 &#xff08;默认情况…

集成学习、装袋法、提升法、GBDT、随机森林(机器学习)

集成学习 集成学习(Ensemble learning)是机器学习中近年来的一大热门领域。其中的 集成方法是用多种学习方法的组合来获取比原方法更优的结果 使用于组合的算法是弱学习算法 即分类正确率仅比随机猜测略高的学习算法 但是组合之后的效果仍可能高于强学习算法 即集成之后的…

总抱怨Mac运行速度又卡又慢?这些方法你用得上

通常大家处理Mac运行速度慢的方法不是重启就是清空废纸篓&#xff0c;但是这两种方法对于Mac提速性能的效果是微之甚微的&#xff0c;想要彻底解决Mac运行速度慢&#xff0c;你应该试试一下三种方法~ 1、清理磁盘空间 硬盘空间过少是Mac运行变慢很大的一个因素&#xff0c;各种…

第03章_基本的SELECT语句

第03章_基本的SELECT语句 1. SQL概述 1.1 SQL背景知识 1946 年&#xff0c;世界上第一台电脑诞生&#xff0c;如今&#xff0c;借由这台电脑发展起来的互联网已经自成江湖。在这几十年里&#xff0c;无数的技术、产业在这片江湖里沉浮&#xff0c;有的方兴未艾&#xff0c;有…

【用户画像】Redis的常用五大数据类型和配置文件介绍

文章目录一 常用五大数据类型简介1 Redis键(key)2 Redis字符串(String)3 Redis列表(List)4 Redis集合(Set)5 Redis哈希(Hash)6 Redis有序集合Zset(sorted set)二 Redis配置文件介绍1 UNITS2 INCLUDES3 NETWORK4 MEMORY MANAGEMENT一 常用五大数据类型简介 常用命令 1 Redis键…

攻防世界碎纸机11

碎纸机11 题目描述&#xff1a;我们从碎纸机里抢救回来了某个关键图片资料&#xff0c;你能帮我们修复它吗&#xff1f; 题目环境&#xff1a;https://download.csdn.net/download/m0_59188912/87094757 打开文件&#xff0c;发现是让我们拼图。 可以用python脚本进行拼接。 脚…

pytorch初学笔记(七):神经网络基本骨架 torch.nn.Module

目录 一、 torch.nn模块 二、module模块 三、自定义搭建神经网络 一、 torch.nn模块 torch.nn — PyTorch 1.13 documentation 二、module模块 Module — PyTorch 1.13 documentation 我们自己定义的神经网络需要继承nn.Module类&#xff0c;需要重写以下两个方法&#xf…

智慧林业解决方案-最新全套文件

智慧林业解决方案-最新全套文件一、建设背景二、建设架构1、火险预警2、AI林火分析3、应急指挥4、森林资源GIS5、林业巡检6、林业OA三、建设方案四、获取 - 智慧林业全套最新解决方案合集一、建设背景 森林资源是林地及其所生长的森林有机体的总称&#xff0c;以林木资源为主&…

设计模式之设计原则

程序设计的要遵循的一些理论,也可以理解为程序设计的一种要求和目标,是面向对象程序设计的基石,也是面向对象程序设计的质量保障和依据。设计模式&#xff08;Design pattern&#xff09;是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为…

Python基础语法入门

14天学习训练营导师课程&#xff1a; 李宁《Python Pygame游戏开发入门与实战》 李宁《计算机视觉OpenCV Python项目实战》1 李宁《计算机视觉OpenCV Python项目实战》2 李宁《计算机视觉OpenCV Python项目实战》3 上一节课&#xff0c;我们了解了基础环境如何配置&#xff0c…

【深度学习】图像分类数据集Fashion-MNIST

今天在手撸深度学习代码的时候&#xff0c;遇到了这个数据集&#xff0c;但是调用的函数的参数和功能不是很明白&#xff0c;因此选择写篇博客总结一下。 一、介绍 Fashion-MNIST是⼀个10类服饰分类数据集。 torchvision 包&#xff1a;它是服务于 PyTorch 深度学习框架的&a…

springboot+maven大学校友活动风采展示管理信息系统

大学校友管理信息系统当然也不能排除在外&#xff0c;从校友活动、校友风采的统计和分析&#xff0c;在过程中会产生大量的、各种各样的数据。本文以大学校友管理信息系统为目标&#xff0c;采用B/S模式&#xff0c;以SSM为开发框架&#xff0c;Jsp为开发技术、Eclipse/idea为开…

计算机毕业设计之java+ssm爱家房屋租赁信息管理系统

项目介绍 本爱家房屋租赁信息管理系统是针对目前房屋租赁信息管理的实际需求&#xff0c;从实际工作出发&#xff0c;对过去的房屋租赁信息管理系统存在的问题进行分析&#xff0c;结合计算机系统的结构、概念、模型、原理、方法&#xff0c;在计算机各种优势的情况下&#xf…

Linux进阶-编辑器以及Shell编程

常用两个编辑器 gedit编辑器&#xff1a;依赖图形界面。 vi/vim编辑器&#xff1a;sudo apt install vim&#xff08;安装vim编辑器&#xff09; vim与vi的区别&#xff1a; vim是vi的升级版本&#xff0c;兼容vi&#xff1b; vi按u只能撤销上次命令&#xff0c;而在vim里…

java计算机毕业设计基于安卓Android的校园单车租赁App

项目介绍 校园单车租赁APP管理是校园单车租赁管理中对用户必不可少的一个部分。在人们校园单车租赁管理的整个过程中,校园单车租赁APP管理担负着最重要的角色。为满足如今日益复杂的管理需求,各类校园单车租赁APP管理程序也在不断改进。本课题所设计的校园单车租赁APP,使用ssm框…

Nginx源码分析--内存池

1.问题引入 使用C语言编程时&#xff0c;一般使用malloc和free进行动态内存申请和释放。如果一不小心忘记了调用free进行释放&#xff0c;很容易造成内存泄露。另一方面&#xff0c;频繁地进行malloc和free操作&#xff0c;很容易造成内存碎片。与此同时&#xff0c;因为mallo…

[Spring Cloud] nacos作为服务中心

✨✨个人主页:沫洺的主页 &#x1f4da;&#x1f4da;系列专栏: &#x1f4d6; JavaWeb专栏&#x1f4d6; JavaSE专栏 &#x1f4d6; Java基础专栏&#x1f4d6;vue3专栏 &#x1f4d6;MyBatis专栏&#x1f4d6;Spring专栏&#x1f4d6;SpringMVC专栏&#x1f4d6;SpringBoot专…

【C语言从0到1之指针】(详解,赶紧收藏期末考试备用)

&#x1f57a;作者&#xff1a;启明星使 &#x1f383;专栏&#xff1a;《数据库》《C语言》《数据结构》 &#x1f3c7;分享喜欢的一句话&#xff1a;去发光&#xff0c;而不是等待被照亮​ 目录 1. 指针是什么 内存 指针变量 总结&#xff1a; 外&#xff1a; 2. 指针和…