基于STM32倒车雷达系统(OLED显示)(Proteus仿真+程序+设计报告)

news2024/9/23 15:22:44

编号:25

基于STM32倒车雷达系统(OLED显示)

功能描述:

      本设计由STM32单片机+HC_SR04超声波模块+OLED+按键+蜂鸣器LED组成。
1、采用STM32F103最小系统。
2、HC_SR04超声波模块实现测距。测距范围2cm-400cm之间。
3、OLED实时显示测到的距离。
4、三个按键可实现上限报警值设定,按键分别为设置键、设置加、设置减。
5、当测得距离小于上限值时,声光报警。

PROTEUS 8.11版本才可使用

视频演示链接:

25、基于STM32倒车雷达系统(OLED显示)

仿真图:

程序源码:

/***********************************************

***********************************************/
#include "delay.h"

#include "key.h"
#include "led.h"
#include "timer.h"
#include "OLED_I2C.h" 
#include "HCSR04.h"

#include "stdio.h" 	
#include "stdlib.h" 	

short Dis_up = 10;					//距离上限 默认100cm

extern u32 cnt ;

int main(void)
{	

	unsigned int distance = 0;			//距离
	unsigned char buf[18];
	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
							
	LED_Init();
	OLED_Init();                                    //OLED初始化操作
	OLED_CLS();                                     //OLED清除屏幕	

	
	TIM3_Int_Init(499,7199);		//10Khz的计数频率,计数到500为50ms 

	HCSR04_Init();					//以1Mhz的频率计数 
	KEY_Init();						//初始化端口
	sprintf((char *)buf,"DisH:%3dcm",Dis_up);
	OLED_ShowStr(16*0,2,buf,2);
	
 	while(1)
	{	
		
		if(flag_timer==1)						//200毫秒赋一次值 flag_timer是标志位
		{	
			flag_timer = 0;						//清除标志  等待下一次600ms
			if(HCSR04_Count(&distance)==0)		//测距 将距离值传递给distance
			{
				sprintf((char *)buf,(const char *)"Distance:%3dcm",distance);
				OLED_ShowStr(16*0,0,buf,2);
				
				if(distance<Dis_up)					//当前距离小于上限  
				{
					
					flag_beep = 1;					//开报警标志 执行报警程序在定时器中断	
					
				}
				else
				{
					flag_beep = 0;					//关报警标志位	
				}	
			}
			else
			{
				flag_beep = 0;						//关报警标志位
				sprintf((char *)buf,(const char *)"Distance:---cm");
				OLED_ShowStr(16*0,0,buf,2);

			}
		}	
		KEY_Set();
	
		



		
	}	
}

软件免费下载地址:

1、Proteus仿真软件
文件内容:Proteus7.8安装包、Proteus8.6安装包、Proteus.8.10安装包、Proteus Professional 8.11 SP0安装包

链接:https://pan.baidu.com/s/11LNUZ9BJXWvXf1C4dPc3_w 
提取码:2756 


3、KEIL5 MDK软件(STM32开发软件)
链接:https://pan.baidu.com/s/1t3eY-3yRdTa7jZMlijq_jg 

提取码:ab58 

文件下载:

https://pan.baidu.com/s/1y8OVPOgM5xIPbvQ9e-w3VA?pwd=xn4x

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

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

相关文章

双十二电容笔哪个品牌好?十大电容笔知名品牌

现在&#xff0c;电容笔的普及度和性能都在不断提高。而如何选择一款性价比高的电容笔&#xff0c;则成为了一个很大的难题。很多人把电容笔作为日常使用的工具&#xff0c;因此&#xff0c;大家都在寻找更好&#xff0c;更经济的电容笔。所以&#xff0c;哪个品牌的电容笔最便…

MySQL同步数据到Elasticsearch

背景 随着平台的业务日益增多&#xff0c;基于数据库的全文搜索查询速度较慢&#xff0c;已经无法满足需求。所以&#xff0c;决定基于Elasticsearch 做一个全文搜索平台&#xff0c;支持业务相关的搜索需求。那么第一个问题就是&#xff1a;如何从MySQL同步数据到Elasticsear…

04_openstack之Glance镜像和云主机类型

目录 一、环境准备 二、云主机类型管理 1、基本概念 2、创建云主机类型 三、镜像管理 1、基本概念 2、COW介绍和qcow2创建 3、管理页面创建镜像 一、环境准备 部署openstack私有云环境&#xff0c;步骤&#xff1a;02_openstack私有云部署_桂安俊kylinOS的博客-CSDN博…

Lombok最新最全解析

Lombok目录什么是Lombok运行原理优势与缺点注解示例稳定版valvarNonNullCleanupGetter/SetterToStringEqualsAndHashCodeNoArgsConstructor RequiredArgsConstructor and AllArgsConstructorstaticNameaccessonConstructorDataValuestaticConstructorBuilderSingularBuilder.De…

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满

最近&#xff0c;一个mysql数据库Linux服务器文件系统空间满&#xff0c;查看是binlog消耗绝大部分空间&#xff1b;经了解mysql数据库每天进行全备并删除1天前binlog日志&#xff1b;然而&#xff0c;2022.11.15日开始的binlog均没删除&#xff0c;后续了解到linux服务器被快照…

全都会!预测蛋白质标注!创建讲义!解释数学公式!最懂科学的智能NLP模型Galactica尝鲜 ⛵

&#x1f4a1; 作者&#xff1a;韩信子ShowMeAI &#x1f4d8; 机器学习实战系列&#xff1a;https://www.showmeai.tech/tutorials/41 &#x1f4d8; 深度学习实战系列&#xff1a;https://www.showmeai.tech/tutorials/42 &#x1f4d8; 自然语言处理实战系列&#xff1a;htt…

图片里的文字如何提取?试试这几种提取方法

最近收到了一些小伙伴的私信&#xff0c;他们收到了对方发送过来的图片&#xff0c;觉得图片上的文字信息比较重要&#xff0c;但是又不知道有什么快速的方法能提取到图片中的文字。平时你们遇到这种情况会怎么做呢&#xff1f;今天我给大家分享几个可以将图片转为文字的方法&a…

JVM调优之StringTable调优

jdk1.8之后&#xff0c;JVM内存结构如下 所谓的StringTable&#xff0c;即字符串常量池&#xff08;以下简称串池&#xff09;&#xff0c;存放在堆内存中。 我们先介绍一下intern方法 String s "ab"; //将这个字符串对象尝试放入串池&#xff0c;如果有则并不会放…

VMware下载与安装教程(详细)

虚拟机VMware下载与安装教程1. VMware下载2. VMware的安装1. VMware下载 Vmware官网 官网节目如下 直接点击 DOWNLOAD FOR FREE 之后会跳转到如下界面&#xff0c;可以选择版本&#xff08;目前最新版是17.x)&#xff0c;然后点击转至下载就会转到详细下载界面 根据自己的…

TortoiseGit安装和配置详细说明

一、TortoiseGit 简介 TortoiseGit 是免费开源的。 TortoiseGit 支持你执行常规任务&#xff0c;例如 commit、显示日志、区分两个版本、创建分支和标签、创建补丁等。 网站&#xff1a;tortoisegit.org下载&#xff1a;tortoisegit.org/Download文件&#xff1a;tortoisegi…

vue3移动端适配的解决方案

文章目录前言一、使用插件① 纯wap项目效果&#xff1a;Demo&#xff1a;② pc&wap混合项目&#xff08;我放弃了&#xff09;二、老方案效果&#xff1a;Demo&#xff1a;前言 最近在给公司内部做一个BBS论坛&#xff0c;需要在电脑和手机上都可以操作&#xff0c;所以需…

Kotlin高仿微信-第57篇-VIP管理列表

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点&#xff0c;包括&#xff1a;注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

[附源码]Python计算机毕业设计Django家庭整理服务管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

微服务绕不过的坎-服务雪崩

引言 书接上篇 微服务外交官-Feign &#xff0c;讲完了SpringCloud Alibaba 远程调用组件Feign之后&#xff0c;接下来讲微服务项目绕不开的问题&#xff1a;服务雪崩。 概念 微服务架构应用设计其目的之一是为了应对高并发环境&#xff0c;那问题来&#xff0c;高并发环境会…

[附源码]计算机毕业设计医院挂号住院管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

BBR 数学模型直观展示

看 BBR 的理想图示&#xff1a; 但现实中数据包到达并非绝对均匀&#xff0c;考虑统计突发&#xff0c;实际情况如下&#xff1a; ​后文将 Delivery Rate 设为 B(Bandwidth)&#xff0c;将 RTT 设为 D(Delay)。 B/inflt 曲线一定上凸&#xff0c;可想象 1 个 inflt 只有一种…

HTML+CSS+JS网页设计期末课程大作业 DW个人博客网站制作 web前端开发技术 web课程设计 网页规划与设计

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

并发编程知识总结

并发编程知识总结 最近学习了&#xff1a;冰河《深入理解高并发编程》&#xff1b;《并发编程的艺术》&#xff1b; 特此简要对学习做了部分总结&#xff0c;方便后续对并发编程知识的完善和巩固&#xff1b; 若想深入了解学习&#xff0c;可阅读上述参考原著&#xff1b; 线…

基于蝙蝠优化算法的电力系统经济调度研究(Matlab代码实现)

&#x1f352;&#x1f352;&#x1f352;欢迎关注&#x1f308;&#x1f308;&#x1f308; &#x1f4dd;个人主页&#xff1a;我爱Matlab &#x1f44d;点赞➕评论➕收藏 养成习惯&#xff08;一键三连&#xff09;&#x1f33b;&#x1f33b;&#x1f33b; &#x1f34c;希…

刷题5-合并两个有序数组

刷题5-合并两个有序数组 解题思路&#xff1a; 把数组nums2的元素复制到数组nums1中&#xff0c;然后利用Java的Arrays.sort()数组排序&#xff0c;默认从小到大 核心代码&#xff1a; class Solution {public void merge(int[] nums1,int m,int[] nums2,int n){for(int i0…