基于单片机的车速报警器设计_第1页
基于单片机的车速报警器设计_第2页
基于单片机的车速报警器设计_第3页
基于单片机的车速报警器设计_第4页
基于单片机的车速报警器设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE23基于单片机的车速报警器设计目录TOC\o"1-2"\h\z\u1概述 31.1设计思路 31.2方案论证 31.3方案的提出 31.4方案的比较及确定 42系统总体方案及硬件设计 62.1主控模块 62.2测速传感器 62.3报警电路的设计 72.4显示电路的设计 72.5按键电路的设计 82.6共阴极LED显示驱动器MAX7219芯片 83软件设计 104Proteus软件仿真 124.1设定当前速度的仿真图: 124.2当前速度与设定速度仿真图 134.3仿真结果与分析 145课程设计体会 15参考文献 16附1:源程序代码 17基于单片机的车速报警器设计全文共24页,当前为第1页。基于单片机的车速报警器设计全文共24页,当前为第1页。第1章概述1.1摘要及设计思路随着汽车工业和高速公路建设的发展,每年由各种交通事故造成的人员伤亡数目惊人,造成了巨大的经济损失。据统计,造成各种交通事故的主要原因是车辆的超载和超速行驶,而后者随机性很大,纠章困难,而且由于中国公路条件复杂,不同等级的公路允许的最高速度不同,现有的限速装置难以适应这种情况。针对这种状况,开发具有智能决策模块的汽车。近年来随着科技的飞速本设计是发展,为了克服传统模拟车速显示仪表显示数不准确及没有超速提示的缺点,数字化仪表迅速的进入汽车仪表行业,成为一种趋势,本文从驾驶员自身安全角度出发,设计了一种检测车辆超速的报警系统。该报警系统允许驾驶员通过自带键盘设置本车辆安全行驶的最高速度当车辆处于行驶状态中,该系统通过速度传感器时刻监测机动车辆。并通过LED显示车辆的实际车速和用户设置的安全参数.当发现车辆速度超过驾驶员设置的最高值时,蜂鸣器开始报警,警告灯不断闪烁,提醒驾驶员减速。达到防患于未然的目的。单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。此设计就是一种利用8051单片机对机动车超速行驶情况进行蜂鸣报警和灯光报警的系统。该系统结构简单,可靠性高,操作方便,可广泛应用于摩托车、汽车等机动车辆。本文要求设计一个具有数字显示功能的单片机系统,实现车辆当前速度输出,当达到所设定的速度上限时并报警,以保证驾驶人员的人身安全。首先要进行系统的总体方案设计,在设计中一般应考虑以下几点:(1)遵循从整体到局部的设计原则。在过程中,应遵循从整体到局部的设计原则,把复杂难处理的问题分为若干个较为简单的、容易处理的问题,分别加以解决。(2)经济性要求。为了获得较高的性能价格比,设计时不应盲目追求复杂高级的方案。在满足性能指针的前提下,应尽可能采用简单的方案,因为方案简单意味着所用的元器件少,可靠性高,而且比较经济。(3)可靠性要求。所谓可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力。可靠性指针除了可用完成功能的概率表示外,还可以用平均无故障时间、故障率、失效率或平均寿命等来表示。1.2方案论证基于单片机的车速报警器设计全文共24页,当前为第2页。车速报警系统系统组成主要由单片机控制模块、霍尔传感器、LED数码显示器及声光报警器组成。针对任务要求,我们发现此项设计在单片机接口芯片以及按键电路上有不同的选择。因此,设计方案的比较主要对此展开。基于单片机的车速报警器设计全文共24页,当前为第2页。1.3方案的提出方案一:采取通过带有I/O接口和计时器的静态RAM8155芯片与设定速度的键盘电路,速度显示电路,8155芯片具有256个字节的RAM,两个8位、一个6位的可编程I/O口和一个14为计数器。系统的硬件电路简图如图1-1所示。节气门开度节气门开度81558155键盘输入LED数码管机车车轮霍尔传感器AT89S51单片机图1-1系统硬件电路简图霍尔传感器用来产生脉冲方波,键盘输入用来设定限制速度,当车速超过最大速度Vm时,声光报警电路将发出报警信号。单片机外部中断口接霍尔传感器的输出,车轮每转一圈产生一次INT0中断请求,单片机对INT0中断请求的次数进行计数。并将在1秒内的计数值转换成机动车的时速,送至显示缓冲区以供显示程序调用。具体算法如下:设单片机每秒计数值为n,即nr/s。设机车车轮的周长为dm,则机车的时速V=d×n×3.6km/h。硬件电路方框图霍尔传感器的输出信号经AT89C51的INT0口输入并存储在内部R0M中,AT89C51外扩一片8155芯片,其PB口作为LED数码管的段选线,PA4~PA0作为LED的位选线和键盘的列线,PCO和PC1口作为键盘的行线,从而组成10个按键的键盘。AT89C51的P2.6口外接三极管放大器用来驱动声光报警电路,P2.6不断地输出101010⋯⋯的高低电平,驱动声光报警电路报警。只要使声光报警电路报警重复输出256Hz及350Hz的叫声各0.73s,便可以模拟警车的叫声,产生警示作用。机车的上限速度Vm通过键盘设置并存储起来。单片机检测霍尔传感器输出的信息,计算出机车当前的速度v,并送LED显示。当V≥Vm时,控制声光报警电路报警发出警示音。方案二:利用高集成化的串行输入/输出的共阴极LED驱动显示器MAX7219及按键电路实现。基于单片机的车速报警器设计全文共24页,当前为第3页。MAX7219芯片用来显示当前及设定速度,当速度超过最大速度Vm时,声光报警电路发出报警,按键设定用来设定报警速度(最大速度Vm)。系统的硬件电路简图如图1-2所示。基于单片机的车速报警器设计全文共24页,当前为第3页。图1-2系统硬件电路图1.4方案的比较及确定基于单片机的车速报警器设计全文共24页,当前为第4页。方案一和方案二比较,方案一采用8155芯片使用单片机引脚较多,采用键盘电路较复杂,而且只能显示当前速度,驾驶员对速度上限透明度不高,总体电路较复杂;方案二采用的MAX7219是一个高集成化的串行输入/输出的共阴极LED驱动显示器,每片可驱动8位7段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需3根线,且速度设定只需通过几个按钮实现即可,并且可以实时实现速度上限的增减,因而硬件电路简单,人眼视觉效果好,可以方便的为驾驶员提供信息,易于实现维护,且MAX7219内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了MCU有限的运行时间和程序资源。基于单片机的车速报警器设计全文共24页,当前为第4页。对于本课题所研制的车速报警系统而言,其基本出发点就是利用现有工艺条件,采用现代计算机软件处理技术,提高系统的精度等级和工作的稳定性,拓展其功能,并赋予其智能化特征,使报警器不仅能够及时准确地显示车辆的当前速度信息,同时尽可能地减少不必要的人工操作,使报警能随时随地不间断进行并保证报警的工作效率。有鉴于此,同时根据系统的要求,确定系统总设计方案如图所示:霍尔霍尔传感器LED数码管声光报警电路MSC-51单片机按键操作MAX7219芯片报警灯节气门开度图1-4车速报警系统总体设计方案图基于单片机的车速报警器设计全文共24页,当前为第5页。基于单片机的车速报警器设计全文共24页,当前为第5页。第二章系统总体方案及硬件设计硬件设计该系统硬件主要包括以下四大模块:8051单片机主拄模块、传感器模块、报警模块和显示模块等。其中8051主要完成外围硬件的控制以及一些运箅功能:传感器完成信号的采样功能;报警模块丰要负责声音报警和灯光报警:显示模块完成字符、数字的显示功能。2.1主控模块本系统采用MCS一51系列的8051单片机作为控制核心。8051抗干扰性好,适用于恶劣环境的场合。8051CPU的工作频率采用12MHZ,方便系统对速度传感器的计数脉冲进行快速的处理。805l的输入,输出引脚具有32根I/O口线。可以连接存储器、LED显示器、速度传感器等各种外部器件。8051具有低功耗和低电压工作模式的特点,可以利用电池对系统供电。但8051内部只有256B的数据存储器,系统可以外接RAM芯片以满足系统的需求。8051最小应用系统如下图2-18051最小应用系统2.2测速传感器基于单片机的车速报警器设计全文共24页,当前为第6页。速度传感器是车辆传感器中的易损器件.所以该系统对测速传感器进行了改进,使它具有灵敏度高、价格低廉、不易损坏等优点。测速传感器由霍尔开关、磁铁组成.其工作原理足将霍尔开关和磁铁分别安装在车架、车轮的适当位置,车辆行驶时,在磁铁的作用下,霍尔开关产生的开关信号输人到单片机的计数器T1引脚..805l的定时器0定时段时间后。提取Tl中的脉冲个数.就可计算出车辆的行驶的瞬时速度。基于单片机的车速报警器设计全文共24页,当前为第6页。霍尔传感器的外形图和与磁场的作用关系如下图所示。磁钢用来提供霍尔能感应的磁场,当霍尔元件以切割磁力线的方式相对磁钢运动时在霍尔输出端口就会有电压输出,所以霍尔传感器和磁钢需要配对使用。霍尔传感器检测转速示意图如下。在非磁材料的圆盘边上粘贴一块磁钢,霍尔传感器固定在圆盘外缘附近。圆盘每转动一圈,霍尔传感器便输出一个脉冲。通过单片机测量产生脉冲的频率,就可以得出圆盘的转速。同样道理,根据圆盘(车轮)的转速,再结合圆盘的周长就可以计算出物体的位移。2.3报警电路的设计报警模块丰要负责声音报警和灯光报警,报警电路均比较简单,声音报警由单片机引脚接上拉电阻,晶体管及扬声器构成,灯光报警由两个发光二极管构成,电路设计简图如下图图2-2声光式报警电路2.4显示电路的设计基于单片机的车速报警器设计全文共24页,当前为第7页。显示电路由MAX7219芯片完成,MAX7219是一种高集成化的串行输入/输出的共阴极LED显示驱动器。每片可驱动8位7段加小数点的共阴极数码管。SEGA~SEGG(图中为A到G)为LED七段显示器段驱动端

,SEGDP为小数点驱动端;(SEGA~SEGG,DP驱动显示器7段及小数点的输出电流,一般为40mA左右,可软件调整,关闭状态时,接入GND。)DIG7~DIG0:8位数值驱动线。输出位选信号,从每个LED公共阴极吸入电流,吸收显示器共阴极电流的位驱动线。其最大值可达500mA,关闭状态时,输出+VCC。MAX7219与LED数码管连接如下图基于单片机的车速报警器设计全文共24页,当前为第7页。图2-3MAX7219与LED数码管连接电路图2.5按键电路的设计按键电路由四个开关加上拉电阻构成,使用单片机四个引脚,四个开关分别是速度设置、速度增加、速度减小以及速度确定,通过对开关的操作可以对速度上限值进行设定操作,由于另外有速度增减按键,可以方便的根据驾驶员的实时实地要求进行速度更改以达到报警目的,具有很强的操作灵活性。其简图如下:基于单片机的车速报警器设计全文共24页,当前为第8页。基于单片机的车速报警器设计全文共24页,当前为第8页。图2-4按键电路的连接图2.6共阴极LED显示驱动器MAX7219芯片MAX7219是一种高集成化的串行输入/输出的共阴极LED显示驱动器。每片可驱动8位7段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需3根线。MAX7219内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了MCU有限的运行时间和程序资源。

MAX7219芯片上包括BCD译码器、多位扫描电路、段驱动器、位驱动器和用于存放每个数据位的8×8静态RAM以及数个工作寄存器。通过指令设置这些工作寄存器,可以使MAX7219进入不同的工作状态。MAX7219的时序图(DINCLKLOAD原理)图2-7MAX7219工作时序图基于单片机的车速报警器设计全文共24页,当前为第9页。这个图很简单反映了DIN,CLK和LOAD的工作时序,就是告诉大家三个端口是怎么合作传送数据的。其中,DIN是串行数据输入端,CLK和LOAD实际上是充当了组织者。针对单片MAX7219介绍一下数据传送的过程:

首先,在CLK的下降沿,无效,在CLK的上升沿,第一位二进制数据被移入内部移位寄存器,然后CLK再出现下降沿,无效,然后CLK再出现上升沿,第二位二进制数据被移入内部移位寄存器,就这样工作十六个周期,完成十六个二进制(前八个是地址,后八个是数据)的传送,这当中LOAD一直是低电平,当完成十六个二进制的传送后。把LOAD置成高电平,产生上升沿,把这16位串行数据锁存到数据或控制寄存器中。完成装载。然后再把LOAD还原为低。重复开始的动作。周而复之……基于单片机的车速报警器设计全文共24页,当前为第9页。基于单片机的车速报警器设计全文共24页,当前为第10页。基于单片机的车速报警器设计全文共24页,当前为第10页。3系统原理图基于单片机的车速报警器设计全文共24页,当前为第11页。基于单片机的车速报警器设计全文共24页,当前为第11页。第三章软件设计系统程序流程图如下:开始开始初始化初始化T0关中断按键输入Vm声光报警结束显示计算车速开中断接收传感信号V>VmYN图4-1系统流程图软件分为主程序、数据处理子程序、按键子程序、中断服务子程序、LED数码显示子程序、声光报警器报警程序等。基于单片机的车速报警器设计全文共24页,当前为第12页。主程序主要完成硬件初始化、子程序调用以及显示、报警等功能。数据处理子程序主要完成监测车辆速度即主要是计算出车辆的时速,为报警子程序提供参考数据;按键中断子程序主要实现合法参数的输入;报警子程序主要实现在车辆超速行驶状态下发出报警信号,包括SPEAKER输出子程序和警报灯的闪烁子程序;显示子程序设计采用数字化显示用户设定的最高时速和车辆实际时速,用MAX7219芯片驱动LED进行动态显示。基于单片机的车速报警器设计全文共24页,当前为第12页。第四章课程设计体会该系统的设计思想是主动式的,从人本主义出发,考虑的是时刻提醒驾驶员的自我安全意识,最大限度避免因为车辆超速造成交通事故。该系统硬件主要包括以下四大模块:8051单片机主控模块、传感器模块、报警模块和显示模块等。其中8051主要完成外围硬件的控制以及一些运算功能;传感器完成信号的采样功能;报警模块主要负责声音报警和灯光报警;显示模块完成字符、数字的显示功能。此基于单片机的车速报警系统利用MSC-51单片机及高集成化的串行输入/输出的共阴极LED显示驱动器MAX7219实现,这里叙述了该系统硬件设计方面的理论分析、软件设计方面的理论分析以及有关电路设计的实践经验。利用MAX7219芯片仅使用单片机三根引脚即可,电路设计简单,驱动共八位7段加小数点的共阴极数码管,每四位分别显示当前速度和设定的速度上限,通过四个按键可以对速度上限不同要求地进行更改设置,方便使用。该系统具有硬件简单"可靠性高"抗干扰性强"实用性好等优点,可以广泛应用在各种机动车辆上。通过此次课程设计也得到了一定的收获,在设计过程当中,组员之间相互探讨,相互学习,共同进步,使我们对所学理论知识有了进一步的巩固。通过了广泛地寻找资料,结合各种资料总结,掌握proteus的基本用法及了解了不少新知识,参考其他相关的设计资料,并设计出相应的报警系统。对于C语言编程有了更进一步的了解。同时通过Proteus仿真验证了设计的正确性,使理论结果与实践相结合,加深理论的理解。通过本次课程设计,理解到知识的广泛性,本身知识仍然不够,以后将会继续努力拓展知识面。基于单片机的车速报警器设计全文共24页,当前为第13页。基于单片机的车速报警器设计全文共24页,当前为第13页。参考文献[1]张俊谟.单片机的发展与应用[J].电子制作,2007,(08):31.[2]袁霞.娄云.汽车灯光网络化控制系统的研究[J].河南机电高等专科学校学报,2008,(05):18-19,32[3]李新.孙利生.基于DSP的汽车发动机转速测量系统研究[J].汽车科技,2008,(05):61-64[4]任国峰.李军伟.张雨.单片机在发动机转速测量中的应用[J].汽车科技,2006,(01):38-40[5]周旭艳.彭宣戈.朱兵.8051在车辆超速报警系统中的应用[J].井冈山学院学报.2006.(07).[6]吴有林.安玉.熊飞桥.吴先绪.智能化汽车速度控制报警系统的设计[J].重庆大学学报(自然科学版).2005年,(12).

[7]魏勋.单片机车速数显及报警系统设刮.电子制作,2007年12期[8]周旭艳_彭宣戈.8051在车辆超速报警系统中的应用.井冈山学院学报:综合版-2006年02M期基于单片机的车速报警器设计全文共24页,当前为第14页。基于单片机的车速报警器设计全文共24页,当前为第14页。附1:源程序代码#ifndef_Max7219_H_#define_Max7219_H_#include<intrins.h>#include<reg51.h>#defineucharunsignedchar#defineuintunsignedint#defineDECODE_MODE0x09 //译码方式#defineINTENSITY0x0A#defineSCAN_LIMIT0x0B#defineSHUT_DOWN0x0C#defineDISPLAY_TEST0x0D#definedelay1us_nop_();#definedelay2us {delay1us;delay1us;}#definedelay4us{delay2us;delay2us;}#definedelay5us{delay4us;delay1us;}#definedelay12us {delay4us;delay4us;delay4us;}sbitdin=P2^0;sbitload=P2^1;sbitclk=P2^2;voidMax7219_Wr_byte(ucharwrdat);基于单片机的车速报警器设计全文共24页,当前为第15页。voidMax7219_Wr_data(ucharaddr,uchardat);基于单片机的车速报警器设计全文共24页,当前为第15页。voidInit_Max7219(void);voidDisp_speed(uintspeed);voidDisp_set_speed(uintset_speed);//初始化MAX7219voidMax7219_Init(void){ Max7219_Wr_data(SHUT_DOWN,0x01); Max7219_Wr_data(DISPLAY_TEST,0x00); Max7219_Wr_data(DECODE_MODE,0xff); Max7219_Wr_data(SCAN_LIMIT,0x07); Max7219_Wr_data(INTENSITY,0x0a);}voidMax7219_Wr_byte(ucharwrdat){ bitdat; uchari; for(i=0;i<8;i++) { clk=0; dat=(bit)(wrdat&0x80); if(dat) din=1; else din=0; wrdat<<=1; clk=1;}基于单片机的车速报警器设计全文共24页,当前为第16页。}基于单片机的车速报警器设计全文共24页,当前为第16页。voidMax7219_Wr_data(ucharaddr,uchardat){ load=0; Max7219_Wr_byte(addr); Max7219_Wr_byte(dat); load=1;}voidDisp_speed(uintspeed){ ucharspeed_buf[4]; uchari; speed_buf[0]=speed%10; speed_buf[1]=speed/10%10|0x80; speed_buf[2]=speed/100%10; speed_buf[3]=speed/1000; if(0==speed_buf[3]) { speed_buf[3]=0x0f; if(0==speed_buf[2]) speed_buf[2]=0x0f; } for(i=1;i<=4;i++) { Max7219_Wr_data(i,speed_buf[i-1]); }}voidDisp_set_speed(uintset_speed)基于单片机的车速报警器设计全文共24页,当前为第17页。{基于单片机的车速报警器设计全文共24页,当前为第17页。 ucharspeed_buf[4]; uchari; speed_buf[0]=set_speed%10; speed_buf[1]=set_speed/10%10|0x80; speed_buf[2]=set_speed/100%10; speed_buf[3]=set_speed/1000; if(0==speed_buf[3]) { speed_buf[3]=0x0f; if(0==speed_buf[2]) speed_buf[2]=0x0f; } for(i=1;i<=4;i++) { Max7219_Wr_data(i+4,speed_buf[i-1]); }}#endif#include<reg51.h>sbitKEY0=P2^3;sbitKEY1=P2^4;sbitKEY2=P2^5;sbitKEY3=P2^6;sbitSPK=P2^7;基于单片机的车速报警器设计全文共24页,当前为第18页。sbitLED_GREEN=P1^6;基于单片机的车速报警器设计全文共24页,当前为第18页。sbitLED=P1^7;uintset_speed;uintspeed;ucharsec_cnt;voidInit_8051(void);voidDelay(uchartime);uintGet_key(void);voidWarn_ring(void);voidmain(void){ Init_8051(); Max7219_Init(); while(1) { set_speed=Get_key(); Disp_speed(speed); Disp_set_speed(set_speed); Warn_ring(); }}voidDelay(uchartime){ uchart1,t2; for(t1=time;t1>0;t1--) for(t2=248;t2>0;t2--);}基于单片机的车速报警器设计全文共24页,当前为第19页。基于单片机的车速报警器设计全文共24页,当前为第19页。//初始化voidInit_8051(void){ EA=0; TCON=0x00; TMOD=0x51; TL0=0xe0; //定时20ms TH0=0xb1; //T1计数13个脉冲 TL1=0xf3; TH1=0xff; TR0=1; TR1=1; IE=0x8a; SPK=0; LED=0; LED_GREEN=1;}//定时器0函数,定时50*20ms=1svoidTimer0_speed(void)interrupt1{ ET0=0; TR0=0; TL0=0xe0; TH0=0xb1; TR0=1; sec_cnt++; ET0=1;}基于单片机的车速报警器设计全文共24页,当前为第20页。基于单片机的车速报警器设计全文共24页,当前为第20页。//计数中断计数10次半径d=20cm//speed=0.2*60*10/sec_cnt*36km/hvoidCounter_speed(void)interrupt3{floata=6250; ET1=0; TR1=0; TL1=0xf3; TH1=0xff; TR1=1; speed=4.52*a/sec_cnt; sec_cnt=0; ET1=1;}//键盘处理函数uintGet_key(void){ static uintkey_value; if(!KEY0) { Delay(40); if(!KEY0) { while(KEY3) { if(!KEY1) { Delay(40); if(0==KEY1) {基于单片机的车速报警器设计全文共24页,当前为第21页。 while(0==KEY1)基于单片机的车速报警器设计全文共24页,当前为第21页。 { Disp_set_speed(key_value); } key_value+=10; if(key_value==9999) key_value=0; } } if(!KEY2) { Delay(40); if(0==KEY2) { while(0==KEY2) { Disp_set_speed(key_value); } key_value-=10; if(key_value==0) key_value=9999; } } } } } return(key_value);}//报警函数voidWarn_ring(void)基于单片机的车速报警器设计全文共24页,当前为第22页。{基于单片机的车速报警器设计全文共24页,当前为第22页。 if(speed>set_speed) { LED=1; SPK=0; Delay(1); SPK=1; } else LED=0;}目录第一章总论 3第一节项目背景 3第二节项目编写依据 4第二章项目建设的必要性和可行性 5第一节项目建设的可行性 5第二节项目建设的必要性 6第三节项目建设规模 6第三章场

温馨提示

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

评论

0/150

提交评论