基于单片机的超声波倒车雷达设计

摘 要:文 章设计了一种基于单片机的超声波倒车雷达系统,以 AT89C51 型单片机作为控制核心,集距离测量、显示,方位显示和危险报警于一体,以提高驾驶者在倒车泊车时的安全性和舒适性。本设计采用 Keil 软件对系统程序进行调试,并采用 Proteus 对整个系统进行了仿真,仿真结果达到了预期的效果。
关键词:超声波;测距;单片机;倒车雷达

前言

近年来,随着驾驶人和机动车数量的急剧增长,行车路况复杂,驾驶员往往不能及时的了解车辆周边尤其是后方的环境,导致驾驶员操作不及时,造成很多事故 。本文设计了以 AT89C51 单片机为核心,利用超声波来进行测距,同时具有实现显示和报警功能的倒车雷达系统,大大提高了倒车泊车的安全性。

1 系统总体设计

本文设计了一种基于单片机的超声波倒车雷达系统,采用超声波脉冲回波法对距离进行测量,AT89C51 单片机作为整个系统的控制单元,TCF40-16TRC 超声波收发一体式传感器作为测距装置。系统主要包括测距部分、控制部分和显示报警部分。图 1 所示为系统的整体框架图。
汽车泊车时挂倒档,整车 ECU 会产生倒车信号,单片机接收该信号后进入工作状态,产生脉冲电压信号,该信号经 过四选一分时选通开关被发送到第一路(后左支路)测距电路,经过电路放大后驱动传感器发射超声波,同时单片机开始计时。超声波遇到障碍物后产生的反射回波被超声波接收
传感器所接收,并将其转化为电信号,单片机收到信号后,响应该中断,系统会执行外部中断程序,停止先前的计时,控制器会得到超声波发射和回波之间的时间差,定时中断以后继续执行下一路。测距顺序依次为后左,后左中,后右中和后右。随后,控制器计算得到最小距离值,并将该值及方位传送给 LCD 。当该值小于所设定的安全距离时,单片机驱动蜂鸣器发出报警,同时 AEB 系统进入工作状态,以保证泊车安全。

2 系统硬件设计

AT89C51 单片机是一种低功耗和高性能的八位芯片 。硬件电路主要包括单片机控制电路,超声波测距收发电路,回波电信号放大电路,LCD 显示电路,报警电路,方位灯显示电路等。

2.1 超声波测距收发电路

超声波收发电路的功能主要有:增大驱动发射声波脉冲电压幅值,实现声波信号与电信号之间的转化;提高超声波有效发射距离。本系统选择 CD4052 型芯片用来分时选通四个支路的传感器。

2.2 回波电信号放大电路设计

放大电路选择 CX20106A 型芯片作为控制核心。图 2 中引脚 1 CD4052 芯片的 Y 端。该放大电路对回波电信号进行处理,最终产生并向单片机输出一个低电平信号 。该信号会向控制芯片申请中断,随即单片机发送计时停止指令,同时系统便开始对数据进行处理。

2.3 液晶显示系统的电路设计

本设计选择 YBLCD1602LCD 液晶显示器作为显示装置。图 3 中芯片 P0 的八个引脚端口分别与 LCD 的八个引脚相连接,传输指令和数据。P1.0 P1.1 P1.2 引脚分别与LCD 的三个端口相连接,对 LCD 的读写功能进行控制。

2.4 系统方位灯电路设计

4 所示为系统方位灯的电路图,当其中一个二极管点亮,表明该路传感器对应方位的障碍物距离车体的位置最近。这四个发光二极管分别与芯片的引脚相连,当芯片所对应引脚输出为低电平时,该引脚所对应的二极管被点亮。

2.5 系统报警电路设计

系统采用 PB2130UP002A 蜂鸣器作为声音报警装置,当障碍物与车体距离过近时,蜂鸣器发出声音以起到报警的作用 。由图 5 可知该电路是利用一个三级管来驱动,蜂鸣器电路与单片机的 P3.7 引脚相连接。

3 系统软件设计

系统软件部分由运行主程序,超声波收发子程序,发射 通道选通子程序,LCD 显示子程序,报警子程序等组成。

3.1 软件主程序设计

6 所示为主程序流程框图,汽车挂入倒档时,系统进入工作状态。首先对每个缓冲单元清零,对液晶显示器进行初始化 。随后,系统开始检测是否有倒车信号传来,若有超声波测距支路便开始进入工作状态,反之继续等待。设置定时器并赋初值,同时 T1 定时器开中断。单片机通过检测四路探测完毕的标志位来判断四路探测是否完毕, 标志位为 1 则表示都已经完成,对数据进行处理,完成后通过 LCD 显示最小距离,同时报警模块判断是否需要报警,延迟大约 0.5s 后,系统又回到检测倒车信号处开始下一轮的循环。

3.2 超声波收发子程序设计

单片机接收超声回波的信号,系统进入外部中断 0 程序。此时,定时器 T0 首先停止计时,禁止外部中断 0 的中断,然后计数值保存在以 40H 为起始的单元中。随后,系统等待定时器 T1 所设定的 40ms 中断产生,一旦产生,便会继续进行下一支路的测距。

3.3 定时器 T1 中断程序设计

系统进入定时器 T1 中断程序, T1 关闭,外部 0 中断被禁止,同时 T1 被重新赋初值。如果全部选通完毕且有四个计数值,系统会置标志位然后比较这四个值返回主程序。如果四通路还没有全部选通,系统会继续选通还没有被选通的通道,同时调用发射超声波的子程序,启动定时器 T0 和定时器 T1 ,并允许定时器 T1 中断。

4 系统调试与仿真

本文使用 Keil 软件对程序进行调试,使用 Proteus 软件对电路进行仿真。图 7 中,示波器窗口可以看见有一串矩形波发出,脉冲个数为 16 个,与预期的数目相同。

利用 Keil 软件对系统的程序进行了调试并采用 Proteus专业仿真软件对整个系统进行了仿真以验证系统的正确性和稳定性。

5 结语

本文通过采用单片机控制和超声波测距,设计出一种结构简单、可靠性高的泊车雷达系统。利用超声波来进行测距,测量精度比较高,同时实现显示和报警的功能,完全满足驾驶员泊车的需求。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

详解:重庆耶非凡的选品师项目有哪些优势?

在竞争激烈的电商市场中,重庆耶非凡科技有限公司凭借其独特的选品师项目,成功地在众多企业中脱颖而出。这一项目不仅体现了公司对市场趋势的敏锐洞察力,更彰显了其专业的选品能力和对消费者需求的深刻理解。 首先,耶非凡的选品师项…

军用电源性能测试有哪些测试项目?需要遵循什么标准?

为了确保军用电源在极端条件下能够正常工作,必须对其进行一系列严格的性能测试。这些测试不仅包括效率、电压调整率和负载调整率等基本参数的测试,还包括动态响应能力、绝缘电阻、耐压测试、温度系数以及高低温循环等综合性能的评估。 测试项目 效率 电压…

【Python Cookbook】S01E15 将名称映射到序列的元素中

目录 问题解决方案讨论 问题 对于访问列表或元组中的元素,我们通常使用索引或者下标的方法。但是这明显会降低代码的可阅读性。如果我们想通过命名来提高代码的可阅读性,减少结构中对位置的依赖,怎么做? 解决方案 python 提供 …

vscode运行命令报错:标记“”不是此版本中的有效语句分隔符。

1. 报错问题 标记“&&”不是此版本中的有效语句分隔符。 2. 解决办法 将 terminal 中的 owershell 改成 cmd 就 ok

我们如何收到卫星信号?(导航电文,载波与测距码)

卫星信号 在介绍所有卫星信号之前,首先要明确一些概念: 所有的卫星信号,都是一段电磁波,用户接收的,也是一段电磁波。 但是我们认知中的电磁波,就是一段波,就像我们打出去的交一样&#xff0c…

Vue——监听器简单使用与注意事项

文章目录 前言编写简单demo注意事项 前言 监听器,在官网中称为侦听器,个人还是喜欢称之为监听器。官方文档如下: vue 官网 侦听器 编写简单demo 侦听器在项目中通常用于监听某个属性变量值的变化,并根据该变化做出一些处理操作。…

ENVI 5.3/6.0打开Landsat 8/9 C2L2级别数据(带有Metadata),附常见问题

ENVI 5.3/6.0打开Landsat 8/9 C2L2级别数据(带有Metadata) 文章目录 ENVI 5.3/6.0打开Landsat 8/9 C2L2级别数据(带有Metadata)前言数据下载ENVI 5.3打开Landsat 8 C2L2级别数据ENVI 5.3打开Landsat 9 C2L2级别数据ENVI 6.0打开La…

vscode 默认终端(Terminal) 为CMD,但是新建是powerShell

☆ 问题描述 vscode 默认终端(Terminal) 为CMD,但是新建是powerShell ★ 解决方案 随便设置其他为默认,然后再设置回来CMD为默认就行了,实在不行就重装vscode吧… ✅ 总结 应该是vscode的小bug

海量消息下王者荣耀在 TDMQ Pulsar 的实践

关于王者荣耀 《王者荣耀》是由腾讯游戏开发的一款运营在Android、IOS平台上的MOBA类手游,属于多人联机在线竞技类游戏,于2015年11月26日在Android、IOS平台上正式公测。上线以来受到广大手游玩家的热爱,目前该游戏在手游排行中处于TOP 1的位…

【IDEA】-使用IDEA查看类之间的依赖关系

1、父子类的继承、实现关系 1.1、使用CTRL Alt U 选择 java class 依据光标实际指向的类位置 用实心箭头表示泛化关系 是一种继承的关系,指向父类 可以提前设置需要显示的类的属性、方法等信息 快捷键 Ctrl Alt S ,然后搜索 Diagrams 1.2、使用…

LeetCode刷题 | Day 1 最大子序列求和(Largest K Subsequence Sum)

LeetCode刷题 | Day 1 最大子序列求和(Largest K Subsequence Sum) 文章目录 LeetCode刷题 | Day 1 最大子序列求和(Largest K Subsequence Sum)前言一、题目概述二、解题方法2.1 贪心思路2.1.1 思路讲解2.1.2 伪代码 + 逐步输出示例2.1.3 Python代码如下2.1.4 C++代码如下…

【数据密集型系统设计】软件系统的可靠性、可伸缩性、可维护性

文章目录 一. 数据密集型程序的特点以及遇到的问题二. 可靠性 : 即使出现问题,也能继续正确工作1 硬件故障2. 软件错误3. 人为错误 二. 可伸缩性1. 描述负载与推特的例子2. 描述性能-延迟和响应时间3. 应对负载的方法 四. 可维护性1. 可操作性:人生苦短&…

Others - 网友都是些人才,哈哈哈哈

感谢万能的网友们! 原本枯燥的知识,在网友生动形象的表达下,也能简单易懂,哈哈哈哈

美创科技获评“2024年第一批浙江省专精特新中小企业”!

近日,由浙江省经济和信息化厅组织开展的“2024年第一批浙江省专精特新中小企业”名单公示结束。 美创科技通过严格筛选,凭借在数据安全领域的专业化能力以及创新实践成果,获评浙江省年度首批“专精特新”中小企业! “专精特新”是…

谷歌创新框架:从非结构化数据,实现多模态学习

看、听、说的多模态已成为主流大模型的重要功能之一。但在数据爆炸时代,大模型学习文本类的结构化数据相对还好一些,但要去学习视频、音频、图片等非结构化数据非常困难。 目前,从结构化和非结构化数据实现多模态学习,会随着模态…

openeuler欧拉系统连不上网,ping百度报错,ping: www.baidu.com: Name or service not known

一、现象 使用华为 openeuler 系统连不上网,ping 百度报如下错误 ↓ ping: www.baidu.com: Name or service not known二、原因 没有配置dns服务器 三、解决办法 进入网络配置文件存放文件夹 cd /etc/sysconfig/network-scripts/查看对应的网口文件 ls ps: 不同系…

python 贪心算法(Greedy Algo)

贪婪是一种算法范式,它逐步构建解决方案,始终选择提供最明显和直接收益的下一个部分。贪婪算法用于解决优化问题。 如果问题具有以下属性,则可以使用贪心法解决优化问题: 每一步,我们都可以做出当前看来最好的选择&…

教务管理系统带万字文档基于springboot+vue的校务管理系统java项目

文章目录 教务管理系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码和万字论文参考(9.9¥带走) 教务管理系统 一、项目演示 校务管理系统 二、项目介绍 基于springbootvue的前后端分离教…

强大的机器学习建模扩展包:mlxtend

公众号:尤而小屋编辑:Peter作者:Peter 大家好,我是Peter~ 今天给大家介绍一个强大的机器学习建模扩展包:mlxtend。 mlxtend(machine learning extensions,机器学习扩展)是一个用于日常数据分析、机器学习…

程序员应该有什么职业素养?

程序员的六大职业素养:构建成功职业生涯的基石 在不断变化的技术世界中,程序员不单要保持技术的锋利,也需要培养相应的职业素养,这些素养在很大程度上决定了一个程序员的职业生涯能否走得长远。以下是我认为最为重要的六大职业素…