您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页单片机 车速报警器

单片机 车速报警器

来源:化拓教育网
目录

1 概述 ..................................................................... 3

1.1设计思路 ............................................................. 3 1.2 方案论证 ............................................................. 3 1.3 方案的提出 ........................................................... 3 1.4方案的比较及确定 .................................... 错误!未定义书签。 2 系统总体方案及硬件设计 ...................................错误!未定义书签。

2.1主控模块 ............................................ 错误!未定义书签。 2.2测速传感器 .......................................... 错误!未定义书签。 2.3 报警电路的设计 ...................................... 错误!未定义书签。 2.4显示电路的设计 ...................................... 错误!未定义书签。 2.5按键电路的设计 ...................................... 错误!未定义书签。 2.6共阴极LED显示驱动器 MAX7219芯片 .................... 错误!未定义书签。 3 软件设计 .................................................错误!未定义书签。 4 Proteus软件仿真 ..........................................错误!未定义书签。

4.1 设定当前速度的仿真图: .............................. 错误!未定义书签。 4.2 当前速度与设定速度仿真图 ............................ 错误!未定义书签。 4.3 仿真结果与分析 ...................................... 错误!未定义书签。 5课程设计体会 ..............................................错误!未定义书签。 参考文献 ...................................................错误!未定义书签。 附1:源程序代码 ............................................错误!未定义书签。

第1章 概述

1.1摘要及设计思路

随着汽车工业和高速公路建设的发展,每年由各种交通事故造成的人员伤亡数目惊人,造成了巨大的经济损失。 据统计,造成各种交通事故的主要原因是车辆的超载和超速行驶,而后者随机性很大,纠章困难,而且由于中国公路条件复杂,不同等级的公路允许的最高速度不同,现有的限速装置难以适应这种情况。 针对这种状况,开发具有智能决策模块的汽车。

近年来随着科技的飞速本设计是发展,为了克服传统模拟车速显示仪表显示数不准确及没有超速提示的缺点,数字化仪表迅速的进入汽车仪表行业,成为一种趋势,本文从驾驶员自身安全角度出发,设计了一种检测车辆超速的报警系统。该报警系统允许驾驶员通过自带键盘设置本车辆安全行驶的最高速度 当车辆处于行驶状态中,该系统通过速度传感器时刻监测机动车辆。并通过LED显示车辆的实际车速和用户设置的安全参数.当发现车辆速度超过驾驶员设置的最高值时,蜂鸣器开始报警,警告灯不断闪烁,提醒驾驶员减速。达到防患于未然的目的。单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。此设计就是一种利用8051单片机对机动车超速行驶情况进行蜂鸣报警和灯光报警的系统。该系统结构简单,可靠性高,操作方便,可广泛应用于摩托车、汽车等机动车辆。

本文要求设计一个具有数字显示功能的单片机系统,实现车辆当前速度输出,当达到所设定的速度上限时并报警,以保证驾驶人员的人身安全。首先要进行系统的总体方案设计,在设计中一般应考虑以下几点:

(1) 遵循从整体到局部的设计原则。在过程中,应遵循从整体到局部的设计原则,把复杂难处理的问题分为若干个较为简单的、容易处理的问题,分别加以解决。

(2) 经济性要求。为了获得较高的性能价格比,设计时不应盲目追求复杂高级的方案。在满足性能指针的前提下,应尽可能采用简单的方案,因为方案简单意味着所用的元器件少,可靠性高,而且比较经济。

(3) 可靠性要求。所谓可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力。可靠性指针除了可用完成功能的概率表示外,还可以用平均无故障时间、故障率、失效率或平均寿命等来表示。

1.2 方案论证

车速报警系统系统组成主要由单片机控制模块、霍尔传感器、LED数码显示器及声光报警器组成。针对任务要求,我们发现此项设计在单片机接口芯片以及按键电路上有不同的选择。因此,设计方案的比较主要对此展开。

1.3 方案的提出

方案一:采取通过带有I/O接口和计时器的静态RAM8155芯片与设定速度的键盘电路,速度显示电路,8155芯片具有256个字节的RAM,两个8位、一个6位的可编程I/O口和一个14为计数器。系统的硬件电路简图如图1-1所示。

机车车轮 霍尔 传感器 ATS51单片机 节气门开度 键盘 输入 8155 LED 数码管 图1-1 系统硬件电路简图

霍尔传感器用来产生脉冲方波,键盘输入用来设定速度,当车速超过最大速度Vm时,声光报警电路将发出报警信号。

单片机外部中断口接霍尔传感器的输出,车轮每转一圈产生一次INT0中断请求,单片机对INT0中断请求的次数进行计数。并将在1秒内的计数值转换成机动车的时速,送至显示缓冲区以供显示程序调用。具体算法如下:设单片机每秒计数值为n,即n r/s。设机车车轮的周长为d m,则机车的时速V=d×n×3.6km/h。

硬件电路方框图霍尔传感器的输出信号经ATC51的INT0口输入并存储在内部R0M 中,ATC51外扩一片8155芯片,其PB口作为LED数码管的段选线,PA4~PA0作为LED的位选线和键盘的列线,PCO和PC1口作为键盘的行线,从而组成10个按键的键盘。ATC51的P2.6口外接三极管放大器用来驱动声光报警电路,P2.6不断地输出⋯⋯ 的高低电平,驱动声光报警电路报警。只要使声光报警电路报警重复输出256Hz及350Hz的叫声各0.73s,便可以模拟警车的叫声,产生警示作用。机车的上限速度Vm通过键盘设置并存储起来。单片机检测霍尔传感器输出的信息,计算出机车当前的速度v,并送LED显示。当V≥Vm时,控制声光报警电路报警发出警示音。

方案二:利用高集成化的串行输入/输出的共阴极LED驱动显示器MAX7219及按键电路实现。

MAX7219芯片用来显示当前及设定速度,当速度超过最大速度Vm时,声光报警电路发出报警,按键设定用来设定报警速度(最大速度Vm)。系统的硬件电路简图如图1-2所示。

3

INT0INT1T0T1单片机8051R6确认增加杂,而且只能显示当前速度,驾驶员对速度上限透明度不高,总体电路较复杂;方案二采用

只需通过几个按钮实现即可,并且可以实时实现速度上限的增减,因而硬件电路简单,人眼

方案一和方案二比较,方案一采用8155芯片使用单片机引脚较多,采用键盘电路较复

的MAX7219是一个高集成化的串行输入/输出的共阴极LED驱动显示器,每片可驱动8位7

段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需3根线,且速度设定

除了更新显示数据时从单片机接收数据外,平时工作,极大地节省了MCU有限的运行时

视觉效果好,可以方便的为驾驶员提供信息,易于实现维护,且MAX7219内部设有扫描电路,

R3速度设置图1-2 系统硬件电路图

R5减少

+5VU1C1311930pFU211DINLOADCLK1213Q118C2930pFRESETX2ABCDEFGDP30MC4HZX1Q2

EA/VPP00P01P02P03P04P05P06P07GND

ABCDEFGDP1416202321151722 ABCDEFGDPDPABCDEFGABCDEFGDPABCDEFGDP12131415P20P21P22P23P24P25P26P272122232425262728 BT0BT1BT2BT318ISETDOUTMAX721924 1.4方案的比较及确定

3938373635343332当前速度设定速度引入D1LED-GREEND2LED-BIRG12345678P10P11P12P13P14P15P16P17RDWRPSENALE/PTXDRXD171629301110DIG0DIG1DIG2DIG3DIG4DIG5DIG6DIG72116731058D0D1D2D3D4D5D6D7D3D2D1D01234D7D6D5D41234S3BT34

S2+5VR11KBT2+5VS1R21KQ3R4BT1LS1S0SPEAKERBT0间和程序资源。

对于本课题所研制的车速报警系统而言,其基本出发点就是利用现有工艺条件,采用现代计算机软件处理技术,提高系统的精度等级和工作的稳定性,拓展其功能,并赋予其智能化特征,使报警器不仅能够及时准确地显示车辆的当前速度信息,同时尽可能地减少不必要的人工操作,使报警能随时随地不间断进行并保证报警的工作效率。有鉴于此,同时根据系统的要求,确定系统总设计方案如图所示:

图1-4 车速报警系统总体设计方案图

按键操作 报警灯 霍尔 传感器 MSC-51 单片机 节气门开度 MAX7219芯片 机车 车轮 LED数码管 声 光 报 警 电 路

5

第二章 系统总体方案及硬件设计

硬件设计该系统硬件主要包括以下四大模块:8051单片机主拄模块、传感器模块、报警模块和显示模块等。其中8051主要完成外围硬件的控制以及一些运箅功能:传感器完成信号的采样功能;报警模块丰要负责声音报警和灯光报警:显示模块完成字符、数字的显示功能。

2.1主控模块

本系统采用MCS一51系列的8051单片机作为控制核心。8051抗干扰性好,适用于恶劣环境的场合。8051 CPU的工作频率采用12MHZ,方便系统对速度传感器的计数脉冲进行快速的处理。805l的输入,输出引脚具有32根I/O口线。可以连接存储器、LED显示器、速度传感器等各种外部器件。8051具有低功耗和低电压工作模式的特点,可以利用电池对系统供电。但8051内部只有256B的数据存储器,系统可以外接RAM芯片以满足系统的需求。8051最小应用系统如下

图2-1 8051最小应用系统

2.2测速传感器

速度传感器是车辆传感器中的易损器件.所以该系统对测速传感器进行了改进,使它具有灵敏度高、价格低廉、不易损坏等优点。测速传感器由霍尔开关、磁铁组成.其工作原理足将霍尔开关和磁铁分别安装在车架、车轮的适当位置,车辆行驶时,在磁铁的作用下,霍

6

尔开关产生的开关信号输人到单片机的计数器T1引脚..805l的定时器0定时 段时间后。提取Tl中的脉冲个数.就可计算出车辆的行驶的瞬时速度。

霍尔传感器的外形图和与磁场的作用关系如下图所示。磁钢用来提供霍尔能感应的磁场,当霍尔元件以切割磁力线的方式相对磁钢运动时在霍尔输出端口就会有电压输出,所以霍尔传感器和磁钢需要配对使用。

霍尔传感器检测转速示意图如下。在非磁材料的圆盘边上粘贴一块磁钢,霍尔传感器固定在圆盘外缘附近。圆盘每转动一圈,霍尔传感器便输出一个脉冲。通过单片机测量产生脉冲的频率,就可以得出圆盘的转速。同样道理,根据圆盘(车轮)的转速,再结合圆盘的周长就可以计算出物体的位移。

2.3 报警电路的设计

报警模块丰要负责声音报警和灯光报警,报警电路均比较简单,声音报警由单片机引脚接上拉电阻,晶体管及扬声器构成,灯光报警由两个发光二极管构成,电路设计简图如下图

图2-2 声光式报警电路

2.4显示电路的设计

显示电路由MAX7219芯片完成,MAX7219是一种高集成化的串行输入/输出的共阴极LED显示驱动器。每片可驱动8位7段加小数点的共阴极数码管。SEGA~SEGG(图中为A到G)

7

为LED七段显示器段驱动端 ,SEGDP为小数点驱动端;(SEGA~SEGG,DP 驱动显示器7段及小数点的输出电流,一般为40 mA左右,可软件调整,关闭状态时,接入GND。)DIG7~DIG0:8位数值驱动线。输出位选信号,从每个LED公共阴极吸入电流,吸收显示器共阴极电流的位驱动线。其最大值可达500 mA,关闭状态时,输出+VCC。MAX7219与LED数码管连接如下图

图2-3 MAX7219与LED数码管连接电路图

2.5按键电路的设计

按键电路由四个开关加上拉电阻构成,使用单片机四个引脚,四个开关分别是速度设置、速度增加、速度减小以及速度确定,通过对开关的操作可以对速度上限值进行设定操作,由于另外有速度增减按键,可以方便的根据驾驶员的实时实地要求进行速度更改以达到报警目的,具有很强的操作灵活性。其简图如下:

8

图2-4 按键电路的连接图

2.6共阴极LED显示驱动器 MAX7219芯片

MAX7219是一种高集成化的串行输入/输出的共阴极LED显示驱动器。每片可驱动8位7段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需3根线。MAX7219内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时工作,极大地节省了MCU有限的运行时间和程序资源。

MAX7219芯片上包括BCD译码器、多位扫描电路、段驱动器、位驱动器和用于存放每个数据位的8×8静态RAM以及数个工作寄存器。通过指令设置这些工作寄存器,可以使MAX7219进入不同的工作状态。

MAX7219的时序图(DIN CLK LOAD原理)

图2-7 MAX7219工作时序图

这个图很简单反映了DIN,CLK和LOAD的工作时序,就是告诉大家三个端口是怎么合作传送数据的。其中,DIN是串行数据输入端,CLK和LOAD实际上是充当了组织者。针对单片MAX7219介绍一下数据传送的过程:

9

首先,在CLK的下降沿,无效,在CLK的上升沿,第一位二进制数据被移入内部移位寄存器,然后CLK再出现下降沿,无效,然后CLK再出现上升沿,第二位二进制数据被移入内部移位寄存器,就这样工作十六个周期,完成十六个二进制(前八个是地址,后八个是数据)的传送,这当中LOAD一直是低电平,当完成十六个二进制的传送后。把LOAD置成高电平,产生上升沿,把这16位串行数据锁存到数据或控制寄存器中。完成装载。然后再把LOAD还原为低。重复开始的动作。周而复之……

10

INT0INT1T0T1单片机8051确认R5减少增加R3速度设置

+5VU1C131EA/VP19U2Q1Q230pF30MC4HZX11811DINLOADCLK1213C2X29P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.73938373635343332A30pFRESETABCDEFGABCDEFGBCDEFGDPDPGNDABCDEFGDP1416202321151722ABCDEFGABCDEFGDPDPDP12131415P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.72122232425262728BT0BT1BT2BT318ISETDOUTMAX721924当前速度设定速度引入D3D2D1D0123412345678RDWRPSENALE/PTXDRXD171629301110P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7DIG0DIG1DIG2DIG3DIG4DIG5DIG6DIG72116731058D0D1D2D3D4D5D6D7D1LED-GREEND2LED-BIRGD7D6D5D412343系统原理图

11

S3

R6BT3+5VS2R11KBT2+5VR21KS1Q3R4BT1LS1S0SPEAKERBT0第三章 软件设计

系统程序流程图如下:

结束 显示 N Y 开始 初始化 初始化T0 关中断 接收传感信号 开中断 按键输入Vm 计算车速 V>Vm 声光报警

图4-1 系统流程图

软件分为主程序、数据处理子程序、按键子程序、中断服务子程序、LED数码显示子程序、声光报警器报警程序等。

主程序主要完成硬件初始化、子程序调用以及显示、报警等功能。数据处理子程序主要

12

完成监测车辆速度即主要是计算出车辆的时速,为报警子程序提供参考数据;按键中断子程序主要实现合法参数的输入;报警子程序主要实现在车辆超速行驶状态下发出报警信号,包括SPEAKER输出子程序和警报灯的闪烁子程序;显示子程序设计采用数字化显示用户设定的最高时速和车辆实际时速,用MAX7219芯片驱动LED进行动态显示。

第四章 课程设计体会

该系统的设计思想是主动式的,从人本主义出发,考虑的是时刻提醒驾驶员的自我安全意识,最大限度避免因为车辆超速造成交通事故。

该系统硬件主要包括以下四大模块: 8051 单片机主控模块、传感器模块、报警模块和显示模块等。其中8051 主要完成外围硬件的控制以及一些运算功能;传感器完成信号的采样功能;报警模块主要负责声音报警和灯光报警;显示模块完成字符、数字的显示功能。

此基于单片机的车速报警系统利用MSC-51单片机及高集成化的串行输入/输出的共阴极LED显示驱动器MAX7219实现,这里叙述了该系统硬件设计方面的理论分析、软件设计方面的理论分析以及有关电路设计的实践经验。利用MAX7219芯片仅使用单片机三根引脚即可,电路设计简单,驱动共八位7段加小数点的共阴极数码管,每四位分别显示当前速度和设定的速度上限,通过四个按键可以对速度上限不同要求地进行更改设置,方便使用。该系统具有硬件简单\"可靠性高\"抗干扰性强\"实用性好等优点,可以广泛应用在各种机动车辆上。

通过此次课程设计也得到了一定的收获,在设计过程当中,组员之间相互探讨,相互学习,共同进步,使我们对所学理论知识有了进一步的巩固。通过了广泛地寻找资料,结合各种资料总结,掌握proteus的基本用法及了解了不少新知识,参考其他相关的设计资料,并设计出相应的报警系统。对于C语言编程有了更进一步的了解。同时通过Proteus仿真验证了设计的正确性,使理论结果与实践相结合,加深理论的理解。通过本次课程设计,理解到知识的广泛性,本身知识仍然不够,以后将会继续努力拓展知识面。

13

参考文献

[1] 张俊谟. 单片机的发展与应用[J].电子制作, 2007,(08):31.

[2] 袁霞.娄云.汽车灯光网络化控制系统的研究[J]. 河南机电高等专科学校学报, 2008,(05):18-19,32

[3] 李新.孙利生.基于DSP的汽车发动机转速测量系统研究[J].汽车科技, 2008,(05):61-

[4] 任国峰.李军伟.张雨.单片机在发动机转速测量中的应用[J].汽车科技, 2006,(01):38-40

[5] 周旭艳.彭宣戈.朱兵. 8051在车辆超速报警系统中的应用[J].井冈山学院学报. 2006.(07).

[6] 吴有林.安玉.熊飞桥.吴先绪. 智能化汽车速度控制报警系统的设计[J]. 重庆大学学报(自然科学版). 2005年,(12).

[7] 魏勋.单片机车速数显及报警系统设刮.电子制作, 2007年12期

[8] 周旭艳_彭宣戈.8051在车辆超速报警系统中的应用.井冈山学院学报:综合版-2006年02M期

14

附1:源程序代码

#ifndef _Max7219_H_ #define _Max7219_H_

#include #include #define uchar unsigned char #define uint unsigned int

#define DECODE_MODE 0x09 #define INTENSITY 0x0A #define SCAN_LIMIT 0x0B #define SHUT_DOWN 0x0C #define DISPLAY_TEST 0x0D

#define delay1us _nop_(); #define delay2us

{delay1us;delay1us;}

//译码方式

#define delay4us {delay2us;delay2us;} #define delay5us {delay4us;delay1us;} #define delay12us {delay4us;delay4us;delay4us;}

sbit din=P2^0; sbit load=P2^1; sbit clk=P2^2;

void Max7219_Wr_byte(uchar wrdat); void Max7219_Wr_data(uchar addr,uchar dat); void Init_Max7219(void);

void Disp_speed(uint speed);

15

void Disp_set_speed(uint set_speed);

//初始化MAX7219 void Max7219_Init(void) { }

void Max7219_Wr_byte(uchar wrdat) {

bit dat; uchar i;

for (i=0;i<8;i++) {

clk=0;

dat=(bit)(wrdat&0x80); if(dat) else

din=0; din=1;

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);

wrdat<<=1; clk=1;

} }

void Max7219_Wr_data(uchar addr,uchar dat) {

16

}

load=0;

Max7219_Wr_byte(addr); Max7219_Wr_byte(dat); load=1;

void Disp_speed(uint speed) { }

void Disp_set_speed(uint set_speed) {

uchar speed_buf[4]; uchar i;

speed_buf[0]=set_speed%10; uchar speed_buf[4]; uchar i;

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]) { }

for(i=1;i<=4;i++)

{ }

Max7219_Wr_data(i,speed_buf[i-1]); speed_buf[3]=0x0f; if(0==speed_buf[2]) speed_buf[2]=0x0f;

17

}

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]) { }

for(i=1;i<=4;i++)

{ }

Max7219_Wr_data(i+4,speed_buf[i-1]); speed_buf[3]=0x0f; if(0==speed_buf[2]) speed_buf[2]=0x0f;

#endif

#include

sbit KEY0=P2^3; sbit KEY1=P2^4; sbit KEY2=P2^5; sbit KEY3=P2^6;

sbit SPK=P2^7; sbit LED_GREEN=P1^6; sbit LED=P1^7;

uint set_speed;

18

uint speed; uchar sec_cnt;

void Init_8051(void); void Delay(uchar time); uint Get_key(void); void Warn_ring(void);

void main(void) { Init_8051(); Max7219_Init(); while(1) { set_speed=Get_key(); Disp_speed(speed); Disp_set_speed(set_speed); Warn_ring();

}

}

void Delay(uchar time) { uchar t1,t2;

for(t1=time;t1>0;t1--)

for(t2=248;t2>0;t2--); } //初始化

void Init_8051(void) {

19

EA=0; TCON=0x00; TMOD=0x51; TL0=0xe0; TH0=0xb1;

//定时20ms //T1计数13个脉冲

TL1=0xf3; TH1=0xff; TR0=1; TR1=1; IE=0x8a; SPK=0; LED=0; LED_GREEN=1;

}

//定时器0函数,定时50*20ms=1s void Timer0_speed(void) interrupt 1 { ET0=0; TR0=0; TL0=0xe0; TH0=0xb1; TR0=1; sec_cnt++; ET0=1;

}

//计数中断 计数10次 半径d=20cm //speed=0.2*60*10/sec_cnt*36 km/h void Counter_speed(void) interrupt 3

20

{ float a=6250; }

//键盘处理函数 uint Get_key(void) {

static

uint key_value;

ET1=0; TR1=0; TL1=0xf3; TH1=0xff; TR1=1;

speed=4.52*a/sec_cnt; sec_cnt=0; ET1=1;

if(!KEY0) {

Delay(40); if(!KEY0) {

while(KEY3) {

if(!KEY1) {

Delay(40); if(0==KEY1) {

while(0==KEY1) { }

Disp_set_speed(key_value);

21

}

}

}

}

}

}

key_value+=10; if(key_value==9999)

key_value=0;

if(!KEY2) { }

Delay(40); if(0==KEY2) { }

while(0==KEY2) { }

key_value-=10;

if(key_value==0)

key_value=9999; Disp_set_speed(key_value);

return (key_value);

//报警函数

void Warn_ring(void) {

if(speed > set_speed) {

LED=1;

22

SPK=0; Delay(1); SPK=1;

} else

LED=0;

}

23

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务