汽车电子超速报警系统_第1页
汽车电子超速报警系统_第2页
汽车电子超速报警系统_第3页
汽车电子超速报警系统_第4页
汽车电子超速报警系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

目录1 绪论22 系统方案设计及工作原理32.1 系统方案设计 2.2 工作原理 2.2.1 MCS-512.2.2 lcd 3 硬件设计3.1 protues仿真图3.1.1 protues原理图 3.1.2 protuesPCB图4 软件设计4.1 软件流程图 4.1.1 主程序4.1.2 自检程序4.1.3 正常(中断)程序4.2 程序清单 5 调试结束5.1 自检模式 5.2 正常模式 5.3 超速模式 6 结论7 参考文献8 附录 21 绪论随着汽车工业的不断进步,行驶在道路上的车辆越来越多,交通事故发生的频率也不断增加。众所周知,交通事故的发生大部分是由驾驶员的超速驾驶造成的。为提高汽车运行的安全性,减少交通事故的发生,本文讲述了一个由单片机控制的车速报警系统。本文从驾驶员的角度出发,设计了一个检测车辆超速的报警系统。该报警系统允许驾驶员通过自带键盘设置车辆安全行驶的最高速度,在车辆行驶过程中,该系统通过速度传感器时刻监测机动车辆,并通过 LED显示车辆的实际车速和用户设置的安全参数。当车辆速度超过驾驶员设置的最高速度时,蜂鸣器开始报警,警告灯不断闪烁,提醒驾驶员减速1。此设计利用 8051单片机对机动车超速行驶情况进行蜂鸣报警和灯光报警的。该系统结构简单,可靠性高,操作方便,可广泛应用于摩托车、汽车等机动车辆。该设计详细介绍了系统的总体设计方案,给出了界面模块与 8051接口电路,系统硬件电路及外围设计电路,最后介绍了软件设计方法的程序流程图。32 系统方案设计及工作原理2.1 系统方案设计为了获得较高的性能价格比,设计时不应盲目追求复杂高级的方案。在满足性能指标的前提下,应尽可能采用简单的方案,因为方案简单意味着所用的元器件少,可靠性高,而且比较经济。在车速报警系统的硬件和软件设计时,应当考虑操作方便,尽量降低对操作人员的专业知识的要求,以便产品的推广应用。系统的输入输出方式、操作程序应尽量简单明了,无须专门训练就能掌握其使用方法。系统方案方框图在 protues中用方波发生器代替传感器,将输入的一定值的脉冲转换为对应的速度值,并在 lcd上显示出来。脉冲与速度的换算关系由程序决定。程序设定,一秒时间内由计数器记到的脉冲个数 v=f,v 是汽车当前速度值,单位是 km/h,f 是方波信号的频率,单位为 kHz2。当速度在设置的正常速度范围内,在 lcd上显示当前速度值,并显示正常状态“Normal” ;当速度超过预定的值时,在 lcd上显示当前速度值,并显示超速状态“Speeding”由蜂鸣器长鸣发出提示声,红 LED灯闪烁提示超速。42.2 工作原理2.2.1 MCS-518051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线 。2.2.2 LCDLCD 的横截面好像是很多层三明治叠在一起。每面最外一层是透明的玻璃基体,玻璃基体中间就是薄膜电晶体。颜色过滤器和液晶层可以显示出红、蓝和绿三种最基本的颜色。通常,LCD 后面都有照明灯以显示画面。一般只要电流不变动,液晶都在非结晶状态。这时液晶允许任何光线通过。液晶层受到电压变化的影响后,液晶只允许一定数量的光线通过。光线的反射角度按照液晶控制。当液晶的供应电压变动时,液晶就会产生变形,因而光线的折射角度就会不同,从而产生色彩的变化。一个完整的 TFT 显示屏由很多像素构成,每个像素象一个可以开关的晶体管。这样就可以控制 TFT 显示屏的分辨率。如果一台 LCD的分辨率可以达到 1024 x 768 像素 (SVGA),它就有那么多像素可以显示。 53 硬件设计3.1 protues 仿真图3.1.1 protues 原理图63.1.2 PCB 图74 软件设计4.1 程序流程图4.1.1 主程序4.1.2 自检程序84.1.3 正常(中断)程序4.2 程序清单程序清单见附录95 调试结束5.1 自检模式上电运行,自检模式开始,红 LED灯和绿 LED灯都亮,蜂鸣器长响,LCD 显示欢迎界面“Lifes precious!”和“*Safe Driving!*”,4.5 秒后,自检模式完成,红LED灯和绿 LED灯都灭,蜂鸣器灭,LCD 不显示,再过 3.5秒,系统开始正常工作。自检模式105.2 正常模式以方波信号产生的脉冲数模拟车速,当车速不高于 120Km/h,系统处于正常模式,绿 LED灯长亮,红 LED灯灭,蜂鸣器不响,LCD 显示当前速度“Speed:112.5km/h”并显示当前状态是正常状态“Status:Normal” 。正常速度115.3 超速模式方波的频率增加,模拟的车速增加,当车速超过 120km/h时,系统工作于超速模式,绿 LED灯灭,蜂鸣器长响报警,红 LED灯不断闪烁,红 LED灯亮时,LCD 显示当前速度“Speed:124.7km/h” ,并显示当前状态是超速状态“Status:Speeding!” ;红 LED灯灭时,LCD 显示当前速度“138.2 km/h”,并显示警告信息“ WARNING! ”。汽车超速行驶,系统通过红 LED灯闪烁,扬声器长鸣报警,提醒司机减速行驶,注意安全。超速状况12警告136 结论系统上电后进行自检,自检模式完成后,系统开始正常工作。车速不高于设定的最高车速时,系统工作于正常模式,显示当前车速;当车速高于设定的最高车速时,汽车工作于超速模式,红 LED灯闪烁,蜂鸣器长鸣,起到报警的作用,提醒司机减速行驶。该系统起到了显示当前车速,超速报警的功能,是一个成功的设计。147 参考文献1周旭艳.彭宣戈.朱兵.8051 在车辆超速报警系统中的应用.井冈山学院学报. 2006.(02)2吴有林.安玉.熊飞桥.吴先绪.智能化汽车速度控制报警系统的设计. 重庆大学学报(自然科学版). 2005年.(12).部分内容来源于互联网158 附录程序清单:/*/文件名:qichedianzi.c/作者:Evens/日期:2011-6-21/文件描述:模拟汽车测速MCU:使用 AT89C52单片机,12MHz*/*相关定义和声明*/#include /调用头文件(单片机内部的寄存器定义)/*本段为硬件 I/O口定义*/sbit LCD_RS = P1 0;sbit LCD_RW = P1 1; sbit LCD_E = P1 2;#define LCD_DATA P2 /LCD DATA#define LCD_BUSY 0x80 / 用于检测 LCD的 BUSY标识(本程序中用的延时,未检测)16#define uchar unsigned char#define uint unsigned int/全局变量声明uint speed;uchar test=1; /自检模式uchar normal=0; /正常模式uchar nor_speed; /不超速uchar exc_speed; /超速uchar cnt_ovtime;/单位时间内计数器溢出次数/uint data dis5=0x00,0x00,0x00,0x00,0x00; /存放速度个,十,百,还有小数点后一位,还有个中间变量/函数声明void lcd_init(void);void display_string(uchar x,uchar y,uchar *s);void disp_selec(uchar bit_selec,uchar seg); void init_timer0(); /初始化计数器 T0void init_timer1(); /初始化定时器 T1/*定义声明结束*/17/*相关函数*/*函数名:delay_ms*输入:无*输出:无*描述:1ms 延时,使用 12MHz晶体/*/void delay_ms(uint i)uint j;while(i-)for(j = 0; j =1200) /判断是否超速exc_speed=1; /速度大于 120,标志为超速nor_speed=0;elsenor_speed=1;exc_speed=0;20TH1=TL1=0x00; /THx清 0counter=0; /中断次数清 0cnt_ovtime=0; void it_timer1() interrupt 3 / 中断地址 0x001b TF1 = 0; /定时器 T1用于单位时间内收到的脉冲数cnt_ovtime+; /*定时计数器设置结束*/*LCD1602驱动程序*/* 函数名称: WriteDataLcd* 入口参数:wdata(unsigned char 型)* 出口参数:无* 功能描述: 写数据到 LCD*/void WriteDataLcd(uchar wdata)LCD_DATA=wdata;LCD_RS=1;LCD_RW=0;21LCD_E=0;dellay(100); /短暂延时,代替检测忙状态LCD_E=1;/* 函数名称: WriteCommandLcd* 入口参数:wdata(unsigned char 型)* 出口参数:无* 功能描述: 写命令到 LCD*/void WriteCommandLcd(uchar wdata)LCD_DATA=wdata;LCD_RS=0;LCD_RW=0;LCD_E=0;dellay(100); /短暂延时,代替检测忙状态LCD_E=1;/LCD初始化void lcd_init(void)LCD_DATA=0;WriteCommandLcd(0x38);dellay(1000);22WriteCommandLcd(0x38); /显示模式设置WriteCommandLcd(0x08); /关闭显示WriteCommandLcd(0x01); /显示清屏WriteCommandLcd(0x06); /显示光标移动设置WriteCommandLcd(0x0c); /显示开及光标移动设置/* 函数名称: display_xy* 入口参数:x(unsigned char 型),y(unsigned char 型)* 出口参数:无* 功能描述: 设置光标位置, x 是列号,y 是行号*/void display_xy(uchar x,uchar y) if(y=1)x+=0x40;x+=0x80;WriteCommandLcd(x);/* 函数名称: display_char* 入口参数:x(unsigned char 型),y(unsigned char 型),dat(unsigned char 型)* 出口参数:无* 功能描述: 在具体位置显示单个字符,x 是列号,y 是行号*/23void display_char(uchar x,uchar y,uchar dat)display_xy(x,y);WriteDataLcd(dat);/* 函数名称: display_string* 入口参数:x(unsigned char 型),y(unsigned char 型),s(指针型)* 出口参数:无* 功能描述: 在具体位置显示字符串,以/0 结束,x 是列号,y 是行号*/void display_string(uchar x,uchar y,uchar *s)display_xy(x,y);while(*s)WriteDataLcd(*s);s+;/*LCD1602程序结束*/*主程序*/24void main() lcd_init(); /初始化 LCDinit_timer0();/初始化定时器,计数器init_timer1();if(test) /检试模式P3 |=0x07; /绿灯亮,红灯亮,蜂鸣器响display_string(0,0,“ Lifes precious! “); display_string(0,1,“ *Safe Driving!* “);delay_ms(2000); /延时P3 /绿灯灭,红灯灭,蜂鸣器灭lcd_init(); /初始化 LCDtest=0;normal=1;delay_ms(2000);if(normal) /正常模式while(1)if(nor_speed) /不超速P3 |=0x01; /绿灯亮P3 /红灯灭,蜂鸣器灭display_string(0,0,“Speed:“);dis3=speed/1000; /百位dis4=speed%1000;25dis2=dis4/100; /十位dis4=dis4%100;dis1=dis4/10; /个位dis0=dis4%10; /小数点后一位if(dis3!=0) /如果百位为 0,屏蔽display_char(6,0,dis3+0x30);elsedisplay_char(6,0,0xA0);display_char(7,0,dis2+0x30);display_char(8,0,dis1+0x30);display_char(10,0,dis0+0x30);display_string(9,0,“.“); /显示小数点display_

温馨提示

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

评论

0/150

提交评论