基于89C51单片机的智能倒车雷达

上传人:s**** 文档编号:81903446 上传时间:2022-04-28 格式:DOC 页数:15 大小:171KB
收藏 版权申诉 举报 下载
基于89C51单片机的智能倒车雷达_第1页
第1页 / 共15页
基于89C51单片机的智能倒车雷达_第2页
第2页 / 共15页
基于89C51单片机的智能倒车雷达_第3页
第3页 / 共15页
资源描述:

《基于89C51单片机的智能倒车雷达》由会员分享,可在线阅读,更多相关《基于89C51单片机的智能倒车雷达(15页珍藏版)》请在装配图网上搜索。

1、 . . . 作品研究报告基于51单片机的倒车雷达设计一、 引言倒车雷达(Parking Distance Control)是汽车泊车或者车时的安全辅助装置,能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员泊车、倒车和起动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷,提高驾驶的安全性。目前市场上中低档汽车上装备的倒车雷达探测距离最大一般只有1.5米左右,且报警系统只是采用简单的“滴滴”声。只有稍微高档的倒车雷达才会显示距离或简单的语音提示。考虑到实际情况,本设计从成本考虑,在实现倒车雷达的基本功能同时,综合了液晶显示(1602)、光报警(发光二极

2、管)、声音报警(蜂鸣器)和语音提示(ISD1800)。二、 系统概述系统采用超声波进行测距,软件设计中在50ms中断中发射超声波,超声波接收端连接到P3.2,当接收到返回的超声波时便会触发中断。用1602实时显示距离,当距离小于指定围时,通过液晶显示提示信息,语音提醒与用不同灯显示不同的距离。三、 硬件设计(1)测距模块超声波发射模块软件产生40kHz的超声波信号,通过输出引脚输入至驱动器,经驱动器驱动后推动探头产生超声波,40kHz的超声波是利用555时基电路振荡产生。超声波接收模块超声波接收器包括超声波接收探头、信号放大电路与波形变换电路三部分。超声波探头必须采用与发射探头对应的型号。为减

3、少负电源的使用,放大电路采用单电源供电,信号放大和变换采用了一片LM324通用运算放大器,前三级为放大器设计,后一级为比较器设计。测距模块时序分析(2)液晶显示模块 采用1602液晶,设置为162模式,第一行实时显示所测的距离,当出现危险情况时第二行显示提示信息。(3)语音模块美国ISD公司的一种单片820秒单段语音录放电路ISD1800,它的基本结构与ISD1110、1420完全一样,采用CMOS技术,含振荡器,话筒前置放大,自动增益控制,防混淆滤波器,扬声器驱动与FLASH阵列。电源电压3-5V,在录放模式下,按住REC录音按键不放即录音,RECLED灯会亮起,录音在松开按键时停止,放音有

4、三种情况:1、边沿触发放音,按PE键一下即将全段语音放出,除非断电或语音结束不能停止放音;2、电平触发放音,按住PL键时即放音,松开按键即停止;3、循环放音,置循环放音开关闭合,按动PE键即开始循环放音,只能断电才能停止。四、软件设计本设计中使用了单片机的三个中断源,分别是外部中断和两个定时器中断。定时器0定时50ms,T0中断服务程序中触发超声波的发射,并且开外部中断0。当超声波传感器接收到超声波时会触发外部中断0,在此中断服务程序中读出计数器TH0和TL0中的数。此数与定时器计数初值之差再乘以机器周期即为超声波发射与接收的时间差。再通过公式计算得到探测到的距离。五、 部分源代码/*1602

5、.h*/#ifndef _LCD1602_#define _LCD1602_#include reg52.h #define uchar unsigned char#define uint unsigned int/初始化函数void LCD_init(void);/写数据函数void put_char(uchar);/写指令函数void put_command(uchar);void locate(uchar,uchar);void put_number_1(uint);void put_number(int);void put_string(uchar *);void Delay_ms(u

6、int);#endif/*1602.c*/#includeLCD1602.h#defineclear 0x01 /清屏指令#define mode 0x38 /模式选择指令,8位2行57点阵#define open 0x07 #define movemode0x0f #define close 0x08 /关显示指令#define cursor_reset 0x02 /光标复位指令#define LCDdata P0sbit RS=P26;sbit E=P27;/LCD初始化函数void LCD_init(void) uchar i=0;put_command(0x38); /set LCD

7、16words x 2lines and 5 x 7 Delay_ms(5); put_command(0x38); Delay_ms(5); put_command(0x38); Delay_ms(5);put_command(0x38); Delay_ms(5);put_command(0x38);put_command(0x38);put_command(0x38);put_command(0x38);put_command(0x0e);/put_command(0x0e);put_command(0x01); /清显示 put_command(0x06); /光标和显示模式设置put_

8、command(0x02); /写命令void put_command(uchar command) RS=0; /RW=0; E=0; LCDdata=command; Delay_ms(1); /5 E=1; Delay_ms(1); /5 E=0;/写数据函数void put_char(uchar datar) E=0; RS=1; /RW=0; LCDdata=datar; E=1; Delay_ms(1); / 5 E=0;/在光标的下个位置显示字符串word的函数void put_string(uchar *string)while(*string)!=0) put_char(*s

9、tring); string+; /用三位显示数值,前面自动加空格或者负号,显示围-99999void put_number_1(uint number) if(number999) put_string(uchar *)err); /超出围 return; else if(number99) put_char(number/100+0x30); /百 number=number%100; else put_char(0x8c); /空格 put_char(number/10+0x30); /十 put_char(number%10+0x30); /个 put_char(0x20); /用四位

10、显示数值,前面自动加空格或者负号,显示围-9999999void put_number(int number) if(number9999) put_string(uchar *) err); /超出围 return; else if(number999) put_char(number/1000+0x30); /千 number=number-(number/1000)*1000; else put_char(0x8c); /空格 put_char(number/100+0x30); /百 put_char(number/10-number/100*10+0x30); /十 put_char

11、(number%10+0x30); /个 /光标跳到第x(0-1)行,y(0-7)列void locate(uchar x,uchar y) if(x) y|=0x40; y|=0x80; put_command(y);void Delay_ms(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*main.c*/#include #include LCD1602.hsbit TRIG=P30;sbit ECHO=P32;sbit sb=P20;sbit led1=P21;sbit led2=P22;uint Time;uint Distance=

12、0;void Inter_init(void);void main() led1=0; led2=0; Inter_init(); LCD_init(); /P3=0x00; while(1) put_number(Distance); locate(0,0); if(Distance250)&(Distance200)&(Distance150)&(Distance100)&(Distance=150) P1=0xef; else if(Distance=100) P1=0xf7; else P1=0xff; if(Distance100) sb=0; else sb=1;if(Distan

13、ce100) led2=1;Delay_ms(50);led2=0;else if(Distance=100) led1=1;Delay_ms(50);led1=0;void Inter_init(void)TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;/开定时器0溢出中断TR0=1;/启动定时器/EX0=1; /开外部中断0/IT0=1; /外部中断选择边沿触发EA=1;/开总中断/50ms中断void Timer() interrupt 1 EA=0;TR0=0; /关定时器TH0=(65536-50000)/256;TL0=(65536-50000)%256;TRIG=1;Delay_ms(1);TRIG=0;while(0=ECHO);EX0=1; /开外部中断0IT0=1; /外部中断选择边沿触发TR0=1;EA=1;/边沿触发void exter0() interrupt 0uchar a,b;EA=0;TR0=0; /关定时器a=TH0;b=TL0;Distance=(uint)(256*a+b-15536)/60;TR0=1;EA=1;/*/15 / 15

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!