




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文题目:基于STC89C52单片机的倒车雷达警示系统作品报告英文题目:The work report of reversing radar warning system based on STC89C52 single chip microcomputer1目 录摘 要IAbstractII一、绪论1(一)项目研究背景及意义1(二)测距原理1二、总体设计方案及论证2三、硬件设计3(一)主控模块31、时钟电路的设计42、复位电路的设计4(二)超声波模块4(三)按键模块6(四)声音报警电路模块6(五)显示模块6(六)电源模块7四、软件设计7(一)主程序设计7(二)子程序设计8五、系统测试与调试8六、总结9参考文献10谢辞11附录12附件1:原理图12附件2:程序12附件3:元件清单22附件4:实物图23摘 要摘要:倒车雷达全称叫“倒车防撞雷达”,也叫“泊车辅助装置”,是汽车泊车安全辅助装置,能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员泊车和启动车俩时前后左右探视所引起的困扰,并帮助驾驶员扫除视野的死角和视线模糊的缺陷。倒车雷达警示系统利用超声传感器产生的超声波对车后发射,如在一定范围内碰到物体,就有一反射波返回发射源(超声传感器的表面),主机利用发射波和反射波之间的延迟时间和声波速度就能测得距离。本人通过三年来对单片机的学习,设计了基于STC89C52单片机的倒车雷达警示系统,主要由三个部分组成,分别为测距部分,控制系统部分和显示报警部分。该倒车雷达根据超声波测距原理研制,采用温度补偿技术、开机自检技术和优化的软硬件技术,将测得的结果送至串口显示,同时用蜂鸣器报警。驾驶员只需坐在驾驶室就能做到心里有数,极大的提高了泊车和倒车时的安全和效率。 关键词:倒车雷达;超声波传感器;STC89C52单片机1AbstractAbstract: Reversing radar name called reversing anti-collision radar, also known as parking auxiliary device, is a safe car parking auxiliary device, can use sound or a more intuitive display to inform the driver of the barrier around, lifting the driver parking and start two cars around visiting caused problems, and help the driver to remove the defects of vision dead and blurred vision. Reversing radar warning system using ultrasonic sensors to generate ultrasonic on the car after the launch, such as in a certain range of contact with an object, there is a reflection wave return to launch the source (the surface of ultrasonic sensor), the host using the transmitted wave and reflected wave between the delay time and the velocity of sound can measure distance. I by three years of the MCU learning design based on STC89C52 reversing radar warning system, is mainly composed of three parts, respectively for distance measuring part, control part of the system and alarm display unit. The reversing radar is manufactured according to the principle of ultrasonic ranging, using the temperature compensation technology, hardware and software technology poweronselftest technology and optimization, the measured result is sent to the serial port, and buzzer alarm. The driver just sitting in the cab can do several things, which greatly improves the safety and efficiency of parking and reversing the.Key Words: Reversing radar;ultrasonic sensor;STC89C52 single chip microcomputerI1基于STC89C52单片机的倒车雷达警示系统作品报告一、绪论(一)项目研究背景及意义由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。随着汽车的迅速增加,停车难已经是不争的事实,狭小的停车场的常常令有车族无所适从,稍不慎则会发生撞车事件。虽然每辆车都有后视镜,但不可避免的都存在一个后是盲区。倒车雷达是汽车泊车或倒车时的安全辅助装置,能以声音或更为直观的显示告知驾驶员驾驶车辆周围障碍物的情况,解除了驾驶员泊车、倒车和启动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了使用死角和视线模糊的缺陷,提高驾驶的安全性。(二)测距原理超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2最常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物面的距离s,即:s=340t/2。由于超声波也是一种声波,其声速V与温度有关。在使用时,如果传播介质温度变化不大,则可近似认为超声波速度在传播的过程中是基本不变的。如果对测距精度要求很高,则应通过温度补偿的方法对测量结果加以数值校正。声速确定后,只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的基本原理。如图1所示:第 22 页 共 23 页 超声波发射 障碍物 SH 超声波接收图1 超声波的测距原理 (3-1) (3-2)式中:L-两探头之间中心距离的一半.又知道超声波传播的距离为: (3-3)式中:v超声波在介质中的传播速度;t超声波从发射到接收所需要的时间.将(32)、(33)代入(3-1)中得: (3-4)其中,超声波的传播速度v在一定的温度下是一个常数(例如在温度T=30度时,V=349m/s);当需要测量的距离H远远大于L时,则(34)变为: (3-5)所以,只要需要测量出超声波传播的时间t,就可以得出测量的距离H.二、总体设计方案及论证本设计主要采用MCS-51系列单片机作为主控芯片,能够实现超声波测距,数据显示,参数设置等功能。本系统可以通过超声波模块测量系统到障碍物之间的距离并用数码管显示出来,用户还可以通过按键设置下限报警距离,假如测量的距离低于设置的报警值则通过蜂鸣器发声提醒用户超出允许范围。本设计包括硬件和软件设计两个部分。模块划分为主控模块、按键模块、显示模块、超声波模块、报警模块。软件设计包括主程序设计和子程序设计。系统总体的设计方框图如图2所示。电源超声波模块4位数码管显示模块STC89C52主控制器模块蜂鸣器报警模块按键图2 系统方框图三、硬件设计(一)主控模块主控制最小系统电路如图3所示。主控模块采用STC89C52单片机进行数据的采集和处理。包括按键模块,显示模块,超声波模块,报警模块,显示模块和电源模块。图3 最小系统1、时钟电路的设计XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。因为一个机器周期含有6个状态周期,而每个状态周期为2个振荡周期,所以一个机器周期共有12个振荡周期,如果外接石英晶体振荡器的振荡频率为12MHZ,一个振荡周期为1/12us,故而一个机器周期为1us。如图4所示为时钟电路。图4 时钟电路图2、复位电路的设计复位方法一般有上电自动复位和外部按键手动复位,单片机在时钟电路工作以后, 在RESET端持续给出2个机器周期的高电平时就可以完成复位操作。例如使用晶振频率为12MHz时,则复位信号持续时间应不小于2us。本设计采用的是自动复位电路。如图5示为复位电路。图5 复位电路图(二)超声波模块超声波模块采用现成的超声波模块,该模块可提供 2cm-500cm 的非接触式距离感测功能,测距精度可达高到 3mm。模块包括超声波发射器、接收器与控制电路。基本工作原理:采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号;模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S)/2。实物如下图6。其中VCC 供5V 电源,GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四支线。图6 超声波模块实物图超声波探测模块HC-SR04的使用方法如下:IO口触发,给Trig口至少10us的高电平,启动测量;模块自动发送8个40Khz的方波,自动检测是否有信号返回;有信号返回,通过IO口Echo输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,测试距离=(高电平时间*340)/ 2,单位为m。程序中测试功能主要由两个函数完成。实现中采用定时器0进行定时测量,8分频,TCNTT0预设值0XCE,当timer0溢出中断发生2500次时为125ms,计算公式为(单位:ms):T = (定时器0溢出次数 * (0XFF - 0XCE)/ 1000 其中定时器0初值计算依据分频不同而有差异。超声波引脚与单片机连接如图7所示。1脚接正级,2脚发射脚,3脚接收脚,4脚接电源负极接地。图7(三)按键模块按键电路中用到3个按键,S2是设定键, S3是加键,S4是减键。可以进行报警值、工作方式、时钟等各个参数的设置。如图8示为按键电路。图8(四)声音报警电路模块如下图所示,用一个Speaker和三极管、电阻接到单片机的P13引脚上,构成声音报警电路,如图10示为声音报警电路。图10 声音报警电路图(五)显示模块显示模块采用数码管显示接口电路如图11,主要起到显示距离的功能。图11 数码管电路(六)电源模块电源部分的设计采用3节5号干电池4.5V供电。四、软件设计(一)主程序设计按上述工作原理和硬件结构分析可知系统主程序工作流程图如下图12所示;系统初始化报警结束测得距离与设定值比较,小于距离比较,报警是否持续开始启动报警电路开始报警再次检测等待下次报警结束YNNYYN图12 主程序工作流程图(二)子程序设计超声波探测程序流程图:图13 超声波探测程序流程图五、系统测试与调试在确定了电路、领好元器件之后,首先对电路进行了布局。采取的方法是分块焊接电路,即将超声波模块分解为发射部分和接收部分。焊接完成后,下载程序至单片机进行调试,发现有如下问题:1、数码管不显示距离,经过调试后发现程序不能进入中断程序;经修改后,数码管可以显示距离,但是只能精确到厘米。原因是程序结构有问题,即发射超声波后未立即开启定时器;程序增加手动和自动测量两种测量模式后,通过按键选择测量模式系统没有给出提示,不方便操作。相应的解决方法如下:1、修改调试程序使程序能正常进入中断;2、重新调整程序结构,使其更加精简;3、硬件增加发光二极管,程序中加入相应的代码,使用户在选择模式后系统能给出提示,更加人性化。以下是调试截图:图14六、总结本设计研究了一种基于单片机技术的超声波智能测距报警系统。该系统通过以STC89C52单片机为工作处理器核心,超声波传感器,它是一种新颖的被动式超声波探测器件,能够以非接触测出前方物体距离,并将其转化为相应的电信号输出.该报警器的最大特点就是使用户能够操作简单、易懂、灵活;且安装方便、智能性高、误报率低。随着现代人们安全意识的增强以及科学技术的快速发展,相信报警器必将在更广阔的领域得到更深层次的应用。参考文献1 吴政江.单片机控制红外线防盗报警器J.锦州师范学院学报,2001.2 宋文绪.传感器与检测技术M.北京: 高等教育出版社,2004.3 余锡存.单片机原理及接口技术M.西安:西安电子科技大学出版社,2000.4 唐桃波,陈玉林.基于AT89C51的智能无线安防报警器J.电子设计应用, 2003, 5(6):4951.5 李全利.单片机原理及接口技术M.北京:北京航空航天大学出版社,2004.6 薛均义,张彦斌. MCS-51系列单片微型计算机及其应用M.西安:西安交通大学出版社,2005.7 徐爱钧,彭秀华.单片机高级语言C51应用程序设计M.北京:北京航空航天大学出版社,2006.8 康华光.电子技术基础(模拟部分)M.北京:高等教育出版社,2004.附录附件1:原理图附件2:程序#include #include #include eepom52.h#define uchar unsigned char #define uint unsigned int/数码管段选定义 0 1 2 3 4 56 7 8 9uchar code smg_du=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff; /断码/数码管位选定义uchar code smg_we=0xe0,0xd0,0xb0,0x70;uchar dis_smg8 =0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8;sbit smg_we1 = P34; /数码管位选定义sbit smg_we2 = P35;sbit smg_we3 = P36;sbit smg_we4 = P37;sbit c_send = P32;/超声波发射sbit c_recive = P33;/超声波接收uchar flag_hc_value; /超声波中间变量sbit beep = P23; /蜂鸣器IO口定义bit flag_key_b_en,flag_key_set_en; /按键蜂鸣器使能uchar smg_i = 3; /显示数码管的个位数bit flag_300ms ;bit key_500ms ;long distance; /距离uint set_d; /距离bit flag_csb_juli; /超声波超出量程uint flag_time0; /用来保存定时器0的时候的/ 按键的IO变量的定义uchar key_can; /按键值的变量uchar zd_break_en,zd_break_value; /自动退出设置界面uchar menu_shudu = 10; /用来控制连加的速度bit flag_lj_en; /按键连加使能bit flag_lj_3_en; /按键连3次连加后使能 加的数就越大了 uchar key_time,flag_value; /用做连加的中间变量uchar menu_1; /菜单设计的变量uchar a_a;/*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j120;j+);/*处理距离函数*/void smg_display()dis_smg0 = smg_dudistance % 10;dis_smg1 = smg_dudistance / 10 % 10;dis_smg2 = smg_dudistance / 100 % 10 & 0x7f;/*把数据保存到单片机内部eepom中*/void write_eepom()SectorErase(0x2000);byte_write(0x2000, set_d % 256);byte_write(0x2001, set_d / 256);byte_write(0x2058, a_a);/*把数据从单片机内部eepom中读出来*/void read_eepom()set_d = byte_read(0x2001);set_d = 5)key_value = 0;key_new = 1;flag_lj_en = 0;/关闭连加使能flag_lj_3_en = 0;/关闭3秒后使能flag_value = 0;/清零key_time = 0;write_eepom();else if(P2 & 0x07) != 0x07)key_value +; /按键按下的时候else key_value = 0;if(key_value = 5)key_value = 0;key_new = 0;flag_lj_en = 1; /连加使能zd_break_en = 1; /自动退出设置界使能zd_break_value = 0; /自动退出设置界变量清零flag_key_b_en = 1; /按键蜂鸣器使能key_can = 20;if(key_500ms = 1)/连加key_500ms = 0;key_new = 0;key_old = 1;zd_break_value = 0;if(key_new = 0) & (key_old = 1)switch(P2 & 0x07)case 0x06: key_can = 3; break; /得到k2键值case 0x05: key_can = 2; break; /得到k3键值case 0x03: key_can = 1; break; /得到k4键值/dis_smg3 = smg_dukey_can % 10; key_old = key_new; void smg_we_switch(uchar i)switch(i)case 0: smg_we1 = 0; smg_we2 = 1; smg_we3 = 1; smg_we4 = 1; break;case 1: smg_we1 = 1; smg_we2 = 0; smg_we3 = 1; smg_we4 = 1; break;case 2: smg_we1 = 1; smg_we2 = 1; smg_we3 = 0; smg_we4 = 1; break;case 3: smg_we1 = 1; smg_we2 = 1; smg_we3 = 1; smg_we4 = 0; break;/*数码显示函数*/void display()static uchar i; i+;if(i = smg_i)i = 0;/P1 = 0xff; /段选 /P3 = 0xf0 | (P3 & 0x0f); /位选/P3 = smg_wei | (P3 & 0x0f); /位选smg_we_switch(i);P1 = dis_smgi; /段选 void delay()_nop_(); /执行一条_nop_()指令就是1us_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); /*超声波测距程序*/void send_wave()c_send = 1; /10us的高电平触发 delay();c_send = 0; TH0 = 0; /给定时器0清零TL0 = 0;TR0 = 0; /关定时器0定时flag_hc_value = 0;while(!c_recive); /当c_recive为零时等待TR0=1;while(c_recive) /当c_recive为1计数并等待flag_time0 = TH0 * 256 + TL0;if(flag_hc_value 1) | (flag_time0 65000) /当超声波超过测量范围时,显示3个888TR0 = 0;flag_csb_juli = 2;distance = 888;flag_hc_value = 0;break ;else flag_csb_juli = 1;if(flag_csb_juli = 1)TR0=0; /关定时器0定时distance = TH0; /读出定时器0的时间distance = distance * 256 + TL0;distance +=( flag_hc_value * 65536);/算出超声波测距的时间 得到单位是msdistance *= 0.017; / 0.017 = 340M / 2 = 170M = 0.017M 算出来是米if(distance 350) /距离 = 速度 * 时间distance = 888; /如果大于3.8m就超出超声波的量程 /*定时器0、定时器1初始化*/void time_init() EA = 1; /开总中断TMOD = 0X11; /定时器0、定时器1工作方式1ET0 = 1; /开定时器0中断 TR0 = 1; /允许定时器0定时ET1 = 1; /开定时器1中断 TR1 = 1; /允许定时器1定时/*按键处理数码管显示函数*/void key_with()if(key_can = 1)menu_1 +;if(menu_1 = 2)menu_1 = 0;if(menu_1 = 0)menu_shudu = 20;dis_smg0 = smg_dudistance % 10; dis_smg1 = smg_dudistance / 10 % 10 ; dis_smg2 = smg_dudistance / 100 % 10 & 0x7f; smg_i = 3;if(menu_1 = 1)menu_shudu = 1;dis_smg0 = smg_duset_d % 10; dis_smg1 = smg_duset_d / 10 % 10; dis_smg2 = smg_duset_d / 100 % 10 & 0x7f ; dis_smg3 = 0x88;smg_i = 4;if(menu_1 = 1)/设置高温报警if(flag_lj_3_en = 0) /三次连加之后速度加快menu_shudu = 10 ; /500ms 加减一次else menu_shudu = 1; /250ms 加减一次if(key_can = 2)set_d + ;/按键按下未松开自动加三次if(set_d 350)set_d = 350;dis_smg0 = smg_duset_d % 10; /取小数显示dis_smg1 = smg_duset_d / 10 % 10 ; /取个位显示dis_smg2 = smg_duset_d / 100 % 10 & 0x7f; /取十位显示dis_smg3 = 0x88; /aif(key_can = 3)set_d - ;/按键按下未松开自动加三次if(set_d = 1)set_d = 1;dis_smg0 = smg_duset_d % 10; /取小数显示dis_smg1 = smg_duset_d / 10 % 10 ; /取个位显示dis_smg2 = smg_duset_d / 100 % 10 & 0x7f ; /取十位显示dis_smg3 = 0x88; /a/write_eepom(); /*报警函数*/void clock_h_l()static uchar value;if(distance = 5)beep = beep; /蜂鸣器报警else value = 0; beep = 1;/取消报警/*按键按下蜂鸣器响下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院信息管理系统的设计与实施
- 医疗信息安全管理体系构建与实践
- 医疗信息系统中基于区块链的薪酬激励模式
- 区块链助力金融交易流程优化探讨
- 从临床到研究化学实验室的创新实践
- 本科毕业生实习总结模版
- 区块链技术在数据安全与隐私保护的应用
- 女娲补天(教学设计)
- 范稿模板17财务出纳年终工作总结模版
- 买卖小商铺合同范例
- 2024北京朝阳城市发展集团有限公司社会化招聘专场笔试参考题库附带答案详解
- 山东临沂市罗庄区兴罗投资控股有限公司招聘笔试题库2025
- 亚马逊代运营合同样本
- 低空经济产业园的战略意义
- 金属铸造企业熔炼过程中的安全控制
- 2024年至2025年山东省泰安市公开招聘警务辅助人员辅警结构化面试必练经典模拟题库一含答案
- 汽修厂三人合伙协议
- 金融法律知识培训课件
- 《亚洲文化概览》课件
- 《废品创意与制作》(教学设计)-2024-2025学年四年级上册综合实践活动教科版
- 2024年食品检验员(三级)技能理论考试复习题库(含答案)
评论
0/150
提交评论