- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
作品研究报告
基于51单片机的倒车雷达设计
一、引言
倒车雷达(ParkingDistanceControl)是汽车泊车或者车
时的安全辅助装置,能以声音或者更为直观的显示告知驾驶员周
围障碍物的情况,解除了驾驶员泊车、倒车和起动车辆时前后左
右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊
的缺陷,提高驾驶的安全性。
目前市场上中低档汽车上装备的倒车雷达探测距离最大一
般只有1.5米左右,且报警系统只是采用简单的“滴滴”声。只
有稍微高档的倒车雷达才会显示距离或简单的语音提示。
考虑到实际情况,本设计从成本考虑,在实现倒车雷达的
基本功能同时,综合了液晶显示(1602)、光报警(发光二极管)、
声音报警(蜂鸣器)和语音提示(ISD1800)。
二、系统概述
系统采用超声波进行测距,软件设计中在50ms中断中发射
超声波,超声波接收端连接到P3.2,当接收到返回的超声波时
便会触发中断。用1602实时显示距离,当距离小于指定范围时,
通过液晶显示提示信息,语音提醒及用不同灯显示不同的距离。
三、硬件设计
(1)测距模块
超声波发射模块
软件产生40kHz的超声波信号,通过输出引脚输入至驱动
器,经驱动器驱动后推动探头产生超声波,40kHz的超声波是利
用555时基电路振荡产生。
超声波接收模块
超声波接收器包括超声波接收探头、信号放大电路及波形变
换电路三部分。超声波探头必须采用与发射探头对应的型号。为
减少负电源的使用,放大电路采用单电源供电,信号放大和变换
采用了一片LM324通用运算放大器,前三级为放大器设计,后
一级为比较器设计。
测距模块时序分析
(2)液晶显示模块
采用1602液晶,设置为16×2模式,第一行实时显示所
测的距离,当出现危险情况时第二行显示提示信息。
(3)语音模块
美国ISD公司的一种单片8~20秒单段语音录放电路
ISD1800,它的基本结构与ISD1110、1420完全相同,采用CMOS
技术,内含振荡器,话筒前置放大,自动增益控制,防混淆滤波
器,扬声器驱动及FLASH阵列。
电源电压3-5V,在录放模式下,按住REC录音按键不放即
录音,RECLED灯会亮起,录音在松开按键时停止,放音有三种
情况:
1、边沿触发放音,按PE键一下即将全段语音放出,除非断
电或语音结束不能停止放音;
2、电平触发放音,按住PL键时即放音,松开按键即停止;
3、循环放音,置循环放音开关闭合,按动PE键即开始循环
放音,只能断电才能停止。
四、软件设计
本设计中使用了单片机的三个中断源,分别是外部中断和两
个定时器中断。定时器0定时50ms,T0中断服务程序中触发超
声波的发射,并且开外部中断0。当超声波传感器接收到超声波
时会触发外部中断0,在此中断服务程序中读出计数器TH0和TL0
中的数。此数与定时器计数初值之差再乘以机器周期即为超声波
发射与接收的时间差。再通过公式计算得到探测到的距离。
五、部分源代码
/************************1602.h*********************/
#ifndef_LCD1602_
#define_LCD1602_
#includereg52.h
#defineucharunsignedchar
#defineuintunsignedint
//初始化函数
voidLCD_init(void);
//写数据函数
voidput_char(uchar);
//写指令函数
voidput_command(uchar);
voidlocate(uchar,uchar);
voidput_number_1(uint);
voidput_number(int);
voidput_string(uchar*);
voidDelay_ms(uint);
#endif
/*********************1
文档评论(0)