基于单片机的超速报警器课程设计报告书

上传人:无*** 文档编号:111622972 上传时间:2022-06-21 格式:DOC 页数:49 大小:549KB
收藏 版权申诉 举报 下载
基于单片机的超速报警器课程设计报告书_第1页
第1页 / 共49页
基于单片机的超速报警器课程设计报告书_第2页
第2页 / 共49页
基于单片机的超速报警器课程设计报告书_第3页
第3页 / 共49页
资源描述:

《基于单片机的超速报警器课程设计报告书》由会员分享,可在线阅读,更多相关《基于单片机的超速报警器课程设计报告书(49页珍藏版)》请在装配图网上搜索。

1、. 长沙学院 CHANGSHA UNIVERSITY毕业设计(论文)资料设计(论文)题目: 基于单片机的超速报警器的设计 系部: 电子与通信工程 专 业:通信工程 学 生 姓 名:班 级:10通信1学号2010043127指导教师:职称讲师最终评定成绩学院教务处 二一一年二月制目 录第一部分 设计说明书一、设计说明书第二部分 过程管理资料一、 毕业设计(论文)课题任务书二、 本科毕业设计(论文)开题报告三、 本科毕业设计(论文)中期报告四、 毕业设计(论文)指导教师评阅表五、 毕业设计(论文)评阅教师评阅表六、 毕业设计(论文)答辩评审表20 14届本科生毕业设计(论文)资料第一部分 设计说明

2、书摘 要随着经济的不断增长、城市化速度的加快,汽车产业的发展非常迅速,汽车已成为了人们出行和城市正常工作的主要工具,然而汽车给我们的生活带来方便的同时,也产生了一系列社会问题。因汽车超速造成的交通事故而导致的伤亡人数占了意外伤亡人数的比重相当大,给社会造成了巨大的经济损失。所以提高汽车的制动、超速报警等性能是非常必要的。本文介绍了一种基于AT89C52 单片机的汽车超速报警系统。该系统由测速模块、控制显示模块、报警模块和最高速调整模块组成。运用了光电传感器测速、LED 显示等技术。设计了以AT89C52 单片机为核心的汽车超速报警系统的硬件电路和软件算法。本设计是在以电机带动转轮模拟车轮转动的

3、条件下实现的。模拟实验说明该方案可行,能有效提高汽车的制动、超速报警等性能,且系统硬件结构简单,软件快速高效,采样速度快,抗干扰能力较好,经济成本小等优点,有一定的应用价值。关键词:车速,光电传感器,AT89C52 单片机,报警ABSTRACTKeywords:目 录摘要IABSTRACTII第1章绪论11.1研究背景11.2本课题设计的发展现状21.3研究容2第2章车速测量原理与方案32.1频率量的测量方法32.2 速度的实现4第3章系统总体设计63.1系统总体设计方案63.2 测速传感器的选用63.2.1磁电式传感器63.2.2 霍尔传感器73.2.3 光电式传感器83.3 单片机选型83

4、.3.1 单片机简介83.3.2 本设计对单片机的选用93.4 显示器和报警器的设计93.4.1 LCD显示结构与原理103.4.2 报警器10第4章硬件电路设计114.1主控模块电路的设计114.2 光电传感器电路的设计114.3报警电路的设计124.4 显示电路的设计124.5 按键电路的设计13第5章软件设计145.1主程序的设计145.2 脉冲计数程序的设计175.3 显示模块程序的设计195.4 按键中断子程序设计205.5 报警模块程序设计21结论23参考文献24附录25致33- 15 - / 49. 第1章 绪论1.1研究背景随着我国市场经济的发展,人民生活水平的不断提高,私家车

5、已经走入千家万户,成为主要的交通工具。然而,私家车主由于不是专业的司机,熟练程度、速度的感觉不是特别好,车速往往根据偏好,随意提速、超速行驶,当汽车处于超速行驶状态下,其稳定性与安全性大大降低,一旦出现紧急情况,往往会导致车毁人亡的重大交通事故发生。当今的中国已经是一个汽车大国,伴随着国机动车数量的迅速飙升。随着社会经济的发展,我国机动车的保有量不断增加,道路交通事故频繁发生。根据我国2003年交通事故统计的数据发现,2003年全国共发生道路交通事故567753起,造成99217人死亡、451810人受伤,直接财产损失27.7亿元。仔细对比其中的数据我们发现车辆超速行驶造成交通事故的比例高达1

6、6%左右,共造成约19741人死亡,88180多人受伤,在多种交通事故原因中仅次于无照驾驶所造成的危害1。20l0年上半年全国道路交通事故情况,1至6月份,按照道路交通事故同比口径统计,全国共发生道路交通事故99282起,造成27270人死亡、l16982人受伤,直接财产损失4.1亿元。同比分别下降9.3、12、10.6和5.3,在交通事故中损失的经济财产之大让人膛目结舌。其中,发生一次死亡10人以上特大道路交通事故l5起,同比增加3起。全国共发生适用简易程序处理的道路交通事故1694l53起,同比上升31.7。更让人吃惊的是超速超载所导致的交通事故占有比较大的比例。而现实生活中,绝大多数的驾

7、驶员并不是出于主观意愿驾驶超速,而是在驾驶中对速度问题产生忽略而超速甚至酿成大祸。通过对多次因超速发生的车祸进行分析和研究,得出超速对驾驶员的影响可由以下五点原因决定:1、驾驶员的空间认知能力减退;2、影响驾驶员全面地观察处理情况;3、影响驾驶员对其他交通参与者速度的判断;4、影响驾驶员对车外事物判断的准确性;5、驾驶员极易疲劳。所以本产品就是使驾驶员起到重视速度问题,并且与时监督提醒作用驾驶员不要超速。而且在行驶过程中,对速度的要求也是不同的,比如在城区环路一般限速到8迈,而在高速公路上行驶,小型轿车一般车速要达到120迈,所以本设计产品不能只拥有单一的速度最高额度,要能实现根据驾驶者的自身

8、的行驶背景对车速的最大值进行调控。由此,我觉得开发一个超速报警系统是很有必要的,对于驾驶员与其家人的生命财产安全有重大意义,可以降低交通事故发生率。课题:基于单片机的汽车超速报警系统的设计与研究,正是在此背景下提出的,故而有很大的现实意义。1.2本课题设计的发展现状70 年代前,电子仪表在汽车上应用还比较少,机械仪表作为汽车仪表的主体,随着集成电路的快速发展,电子仪表开始在汽车上得到广泛应用。从70 年代末期至90 年代中期,汽车电子技术开始迅速发展并趋向于成熟,逐渐形成了比较系统的规模。进入21世纪至今,汽车电子作为工程技术己经成熟,已形成汽车电子技术群,汽车往往会被装上若干个自动控制系统,

9、不断融入当今各学科和各领域的新技术、新材料成果,向功能多元化、机电一体化、系统工程化、高度集成化方向发展。汽车自动化、智能化程度已相当的高,汽车性能也得到极大的提高2。现阶段的汽车测速报警装置尽管相当先进,但是受传感器技术、外界干扰和动态测量等因素的影响,精准度还需要进一步提高。随着传感器的不断升级,微处理器的智能程度的不断提高,其他高新技术的发展,误差修正技术的不断发展,相信不久的将来,汽车会达朝着更高的智能化发展。未来的汽车不仅是在现有的速度测量等方便更加精准,而且通过一系列高端传感器和微处理器组成若干个的监测、控制系统,未来的汽车将能根据环境的特殊紧急要求自动与时改变状态。例如,发现危险

10、时的自动急刹车,超速报警后司机无反应时自动减速,甚至发展到根据要求自行调整方向等,最终达到能根据预期设置在行驶中摆脱对人的依赖。1.3研究容基于单片机的超速报警器,根据不同道路最高车速的限制不同,利用按键对最高速度进行初设,其过LED数码管与其驱动芯片实现显示,再利用速度传感器进行测速,最后通过单片机对实时速度与初设最高速度进行对比,如若超速,发出警报,警示驾驶者减速。根据系统的要求完成汽车超速报警器的硬件和软件设计。系统研究的主要容包括:构架系统的整体结构;对速度传感器、驱动芯片、单片机等硬件进行选定;完成各个硬件的设计;给出系统的软件设计,并作相关说明。第2章 车速测量原理与方案通过车速传

11、感器输出与车速成正比的脉冲或者准脉冲信号,对传感器输出信号频率进行测量,然后通过处理、转换、计算,即可得出汽车速度。速度信号作为本系统的基量,能否精确测量速度对系统的精准和性能有着决定性的影响。所以测速方法的选择尤为关键。2.1频率量的测量方法频率的测量方法不仅会影响到测量精度,而且也会影响到整个系统的动态性能。常见的频率测量方法有频率法、周期法、混合测频法与频压转换法2。下面对这四种方法进行简介:2.1.1 频率法频率法又叫直接计数法,被测量信号的频率为f ,在某一选定时间闸门T,对被测量的信号脉冲进行计数,然后根据计数值M和闸门时间T求得所测信号的频率。频率法的特点是测量时间基本恒定,动态

12、性能由闸门时间T决定,T越小,动态能越好。在T恒定的情况下,f 越大,误差就越小。用此方法,通过单片机的定时/计数器,在阀门时间(定时时间)里记录脉冲数,再通过转换即可得到被测信号频率。例如定时50毫秒,计数器读到的脉冲数乘以20就是被测信号的频率。这种方法的缺点就是在闸门时间T捕捉到的信号可能会丢失,造成测量的主要误差。图2.1 频率法脉冲丢失原理图第一个脉冲的上升沿和最后一个脉冲的下降沿不在闸门时间T,就造成了信号丢失。即测到的脉冲数少于实际的脉冲数,这就造成了误差。但是如果脉冲的频率很高,丢失的脉冲数对测量结果影响就不大,误差相对较小。所以频率法只适合于测量高频信号。2.1.2周期法参考

13、时钟脉冲的频率为f ,被测信号的周期为T,计数值为M,其原理是在被测信号的周期T,对某一基准时钟脉冲进行计数,计数值除以时钟脉冲的频率便是被测信号周期T。在f 确定的情况下,被测信号的周期越大,测量结果的误差越小,被测信号的周期越小,测量结果误差就越大,所以此方法适合于测量低频信号而不适于测高频信号。图2.2 周期法原理图2.1.3 频率和周期混合法如果需要对汽车慢速行驶和快速行驶时的速度进行测量和显示,可综合频率法和周期法。即设定一个分界频率,高于分界频率用频率法,低于此频率用周期法。即可相互弥补各自的缺陷。不过此方法相对复杂。对以上几种频率量的方法进行比较,可知频率和周期混合法是较完美的测

14、量方法,但是此方法比较复杂,实现难度较大。本设计虽然对车速进行测量,但测量的目的是为了对其超速时报警,报警的速度围一般为中高速,所以测速时着重考虑中高速的测量。尽管频率法在测量低频信号时误差较大,即测量低速行驶的汽车车速时误差较大,但是本系统不要求对汽车低速时报警。该方法可以满足汽车行驶时的中高速信号测量,可满足该设计的要求,故本设计选择频率法作为频率量测量方法。2.2 速度的实现向司机显示实时行驶的速度,是本设计的基本要求。不同的频率对应什么样的速度,怎样把频率转换成相应的速度,这都是后面编程时算法的依据。故把测到的频率量转化成现成的速度量是本设计的重要工作。2.2.1 频率与车速的对应关系

15、选用光电传感器时,传感器输出信号的频率量与车速成正比。以仿真模型为例子,转盘孔数为4,当定时器定时1s,所安装的光电传感器输出信号的脉冲数为100,可得转盘共转了25圈,所以转速为每秒25圈2 3。2.2.2 频率与车速的转换固定安装好传感器后,取100个速度差相同的速度点对传感器输出信号进行测频,标定好各速度点对应的频率后,进行直线拟合。拟合后的频率速度特性就作为编程时频率转换成速度的依据。第3章 系统总体设计3.1系统总体设计方案本课题的设计是基于单片机处理的小型应用系统。总体设计思路为:利用车速传感器采集车速信号,对车速信号进行滤波处理,除去干扰信号,然后利用整形芯片对信号整形处理,转换

16、为单片机能识别的脉冲信号,输入单片机。经单片机计算处理后显示实时速度,并在超过最高限定速度时报警,最高限定速度可以根据不同的路段通过按键设定。速度传感器单片机微处理器显示器报警器按键设定报警阈值速度图3.1 系统总体框图3.2 测速传感器的选用在选用车速传感器时,要充分考虑传感器的工作环境,灵敏度,线性围,频率响应特性,稳定性,抗干扰性能,耐用性,系统性能要求等。下面介绍几种常用的车速传感器3。3.2.1磁电式传感器磁电式传感器是将输入运动速度变换成感应电势输出的传感器,它不需要辅助电源,直接把被测对象的机械能转换成比较容易测量的电信号,是用于测量转速比较理想的有源传感器。磁电式车速传感器就是

17、一个模拟交流信号发生器,产生交变电流信号,通常由带两个接线柱的磁芯与线圈组成。以下图为某型号磁电式传感器的结构图:图3.2 磁电式传感器磁阻式磁电传感器在汽车上的应用可以用来检测发动机转速和车轮转速,一般由传感头和齿圈组成, 而传感头主要由永磁体、磁极和感应线圈组成。当齿圈的齿隙与传感器的极轴端部相对时, 极轴端部与齿圈之间的空气间隙最大,磁阻也最大, 通过感应线圈的磁通量最小。而当齿圈的齿顶与传感器的极轴端部相对应时, 极轴端部与齿圈之间的空气隙最小, 磁阻也最小, 通过感应线圈的磁通量最大。当齿圈随同车轮转动时, 齿圈的齿顶和齿隙就交替地与传感器极轴顶部相对, 传感器感应线圈周围的磁场随之

18、发生强弱交替变化, 在感应线圈中就会感应出交变电动势, 齿圈的齿数为固定值,感应电动势的频率和转速成正比。3.2.2 霍尔传感器霍尔式传感器由传感头和齿圈组成,,其传感头由霍尔元件、永磁体和电子电路等组成,结构图如下:图3.3霍尔传感器霍尔传感器是利用霍尔效应原理进行工作的,当在与磁场垂直的方向上加上一控制电流时,则在与磁场垂直的方向上会产生霍尔电压,齿圈转动过程中, 使得通过霍尔元件的磁力线密度发生变化, 从而引起霍尔电压的变化,霍尔元件将输出一准正弦波电压,此信号由电子电路转换成表中的脉冲电压。3.2.3 光电式传感器光电式传感器由开孔圆盘,光源,光敏元件与缝隙板等组成。开孔圆盘的输入轴与

19、被测轴相连接光源发出的光通过开孔圆盘和缝隙板照射到光敏元件上被光敏元件所接收,将光信号转换成电信号输出。开孔圆盘旋转一周,光敏元件输出的电脉冲的个数等于圆盘的开孔数,因此,可通过测量光敏元件输出的脉冲频率,得知被测转速。图3.4光电式传感器通过对上述各种传感器的简介,我们得知磁电式传感器输出信号的幅值随转速的变化而变化,抗电磁波干扰能力差。霍尔传感器安装使用不方便,而价格相对昂贵。光电式传感器价格低廉,安装使用方便,不与被测对象直接接触。所以本设计采用光电式传感器。3.3 单片机选型单片机的选型应充分考虑性能,存储器,运行速度,I/O口,定时/计数器,串行口,模拟电路功能,工作电压、功耗,抗干

20、扰性能、性等。3.3.1 单片机简介单片机全称单片微型计算机(Single Chip Microcomputer),是一种集成的电路芯片4,它采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上,构成了一个小而完善的面向控制的计算机系统。目前单片机已应用到我们生活的各个领域,如导弹的制导系统装置,飞机上各种仪表的自动控制,计算机网络与通信技术,工业自动化过程的实时控制和数据处理,环境温度监测,水位监测,各种智能IC

21、卡,豪华轿车的安全保障系统,以与程控玩具、电子宠物等等的一切电子设备,都离不开单片机。以单片机为核心的微型自动控制系统提高了自动化的程度,大大的方便了生产生活。3.3.2 本设计对单片机的选用本设计选用AT89C52单片机为中央处理器。图3.5 AT89C52引脚AT89C52是一个低电压,高性能CMOS 8位单片机,片含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的

22、应用5 6。主要功能特性:(1)兼容MCS51指令系统(2) 8k可反复擦写(大于1000次)Flash ROM(3) 32个双向I/O口(4) 3个16位可编程定时/计数器中断(5) 3个16位可编程定时/计数器中断(6)时钟频率0-24MHz(7) 2个串行中断,可编程UART串行通道(8) 2个外部中断源,共8个中断源(9) 2个读写中断口线,3级加密位(10)低功耗空闲和掉电模式,软件设置睡眠和唤醒功能(11)有PDIP、PQFP、TQFP与PLCC等几种封装形式,以适应不同产品的需求3.4 显示器和报警器的设计显示器和报警器是该系统中人机信息交换的部分,是系统直接给司机提供信息的窗口

23、,所以简捷,美观,良好的视觉效果与听觉效果非常必要。3.4.1 LCD显示结构与原理LCD1602与单片机接口方便,价格便宜,寿命长,对电压电流要求低且容易实现多路,常作为测量控制仪表中常用的输出显示设备。鉴于LCD 1602诸多优点,本设计选用LCD1602显示。图3.6 LCD1602实物图1602液晶也叫1602字符型液晶,3.3V或5V工作电压,对比度可调,含复位电路,提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能,有80字节显示数据存储器DDRAM,建有192个5X7点阵的字型的字符发生器CGROM,8个可由用户自定义的5X7的字符发生器CGRAM它是一种专门用来

24、显示字母、数字、符号等的点阵型液晶模块。它由若干个5*7或者5*11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用7。满足本设计的显示要求。3.4.2 报警器蜂鸣喇叭报警器是常用的最简单的报警器,也可以利用指示灯来警示报警。如果条件允许,可用采用语音报警,不过语音报警相对复杂得多。图3.6 蜂鸣器实物图第4章 硬件电路设计4.1主控模块电路的设计主控模块是由AT89C52单片机组成的最小应用系统,是系统的核心,控制着整个系统的正常运行。图4.1 AT89C52最小系统电路图AT89C52最小系统的电路构成为:(1)

25、电源电路:向单片机供电。AT89S51单片机的工作电压围:4.0V5.5V,所以通常给单片机外接5V直流电源。连接方式为VCC(40脚):接电源+5V端VSS(20脚):接电源地端8。(2) 时钟电路:单片机工作的时间基准,决定单片机工作速度。时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。AT89S51单片机时钟频率围:0-33MHz9。(3) 复位电路:确定单片机工作的起始状态,完成单片机的启动过程。单片机接通电源时产生复位信号,完成单片机启动,确定单片机起始工作状态。手动按键产生复位信号,完成单片机启动,确定单片机的初始状态。通常在单片机工作出现混乱或“死

26、机”时,使用手动复位可实现单片机“重启”。4.2 光电传感器电路的设计光电式传感器photoelectric transducer,基于光电效应的传感器,在受到可见光照射后即产生光电效应,将光信号转换成电信号输出10。光电式传感器产生的脉冲电信号输人到单片机的计数器T0引脚(P34),AT89C5l的定时器0定时一段时间后。提取T0中的脉冲个数,就可计算出车辆的行驶的瞬时速度。图4.2 测速传感器电路图4.3报警电路的设计报警模块主要负责超速声音报警,提醒驾驶员应当马上减速行驶,以免发生交通事故。报警电路比较简单,声音报警系统由单片机引脚接上拉电阻,三极管与蜂鸣器构成15。电路设计简图如以下图

27、所示:图4.3 报警电路图4.4 显示电路的设计显示电路由LCD1602完成,LCD1602与单片机接口方便,操作简单,能显示字母、数字和符号等。本设计利用LCD1602显示实时速度和超速提示显示。LCD1602显示电路如以下图:图4.4 LCD1602显示电路图4.5 按键电路的设计汽车超速报警器的按键电路由三个开关加上拉电阻构成,所以要使用单片机的三个引脚,三个开关则分别对应着模式选择、速度增加以与速度减小,通过对开关的操作可以对速度上限值进行设定,另外由于还有速度增减的按键,可以方便的根据驾驶员的实时实地要求进行速度更改以达到报警目的,具有很强的操作灵活性11。其简图如下:图4.5 按键

28、电路图第5章 软件设计5.1主程序的设计主程序由定时器脉冲计数子程序、数据处理子程序、显示子程序、报警子程序和按键中断程序等组成。开始显示清零定时、计数器开始工作中断等待 否判断中断是否成功读计数器是计算速度显示调用报警子程序判断是否超速是输出报警信号否完毕图5.1 主程序流程图该系统主程序主要完成硬件初始化、子程序调用以与显示、报警等功能。定时器脉冲计数子程序和数据处理子程序主要完成监测车辆速度即主要是计算出车辆的时速,为报警子程序提供参考数据;显示子程序设计采用数字化显示用户设定的最高时速和车辆实际时速,用LCD1602进行动态显示;报警子程序主要实现在车辆超速行驶状态下发出报警信号;按键

29、中断子程序主要实现根据驾驶员的实时实地要求进行速度更改以达到报警目的12。主程序清单:main() int i=0; float sum=0; int flag=0; unsigned long int a; char temp16; /定义字符显示缓冲数组 Init_Timer0(); /初始化定时器0 Init_Timer1(); /初始化定时器1 Init_zhongduan(); /初始化外部中断0 和1 LCD_Init(); /初始化液晶屏 DelayMs(10); /延时用于稳定,可以去掉 LCD_Clear(); /清屏 while(1) keyscan(); sprintf(

30、temp,mode:%d limit:%d,mode,speed_limit); LCD_Write_String(0,0,temp);/显示到液晶第1行 pwm(time); if(OVERFLOWFLAG)/检测溢出标志,溢出说明频率过高,显示溢出信息 OVERFLOWFLAG=0;/标志清零 LCD_Write_String(0,1,overflow 655KHz); if(TIMERFLAG) /定时100ms到,做数据处理(每100ms处理一次数据) i+; a=TL0+TH0*256;/读取计数值 a=a*10; /实际值乘以10相当于做了变换1秒钟转了a圈 a=a/4; /因为

31、转盘上面有4个孔 除以4表示实际转的圈数 if(flag=0) /这句话在while循环中只运行一次 sprintf(temp,speed:%06.0f r/s,(float)a); LCD_Write_String(0,1,temp);/显示到液晶第二行flag=1; TR0=1; /2个定时器打开 TR1=1; TH0=0; /100ms过后使TH0 和TL0的值为0,令计数器初值为0 TL0=0; TIMERFLAG=0; /关闭计时计数标志 sum=sum+a; if(i=2)/循环2次目的是为了使显示的更清楚,消除显示跳变的现象 a=sum/2.0; i=0; sum=0; if(a

32、speed_limit) buzzer=0;time=time-5; else buzzer=1; sprintf(temp,speed:%06.0f r/s,(float)a); LCD_Write_String(0,1,temp);/显示到液晶第二行 5.2 脉冲计数程序的设计AT89C51单片机片有两个16位定时器/计数器,分别为定时器T0和定时器T1,两个16位定时器均采用加法型计数结构,即每个计数脉冲加1,直至溢出。T0 和T1 的计数脉冲可以由单片机时钟脉冲经过12 秒分频后提供,故定时时间和单片机时钟频率有关。在计数器模式下,T0 和T1 可以对输入P3.4 和P3.5 引脚上的

33、外部脉冲进行计数。设定时器T1工作于模式1,定时100毫秒;设定时计数器T0工作于模式1,计数器模式,初值为0,并利用TL0和TH0存储1000毫秒外部速度脉冲数。计算出车子的车速13 14。程序流程图:开始T0初始化T1初始化中断等待 否判断时间到否?储存计数值图5.2 脉冲计数程序流程图程序清单:a、定时器T0初始化:void Init_Timer0(void) TMOD |= 0x01 | 0x04; /使用模式1,16位计数器, TH0=0x00; /给定初值 TL0=0x00; EA=1; /总中断打开 ET0=1; /定时器中断打开 TR0=1; /定时器0开关打开b、定时器T1初

34、始化:void Init_Timer1(void) TMOD |= 0x10; /使用模式1,使用|符号在使用多个定时器时不受影响 TH1=HIGH;/给定初值,使用定时器最大值从0开始计数一直到65535溢出 TL1=LOW; EA=1; /总中断打开 ET1=1; /定时器中断打开 TR1=1; /定时器开关打开c、定时器T0和T1中断子程序:void Timer0_isr(void) interrupt 1 TH0=00; /重新给定初值 TL0=00; OVERFLOWFLAG=1; /溢出标志void Timer1_isr(void) interrupt 3 static unsig

35、ned char i; TH1=HIGH; /重新赋值10ms TL1=LOW; i+; if(i=10) /100ms时间单位,得100ms脉冲个数*10就是1s中脉冲个数, i=0; TR0=0; /2个定时器关闭 TR1=0; TIMERFLAG=1; /标志位清零 TH1=HIGH; /重新赋值 TL1=LOW; 5.3 显示模块程序的设计主控芯片AT89C52驱动LCD1602,实时显示由计数脉冲计算得到的车速(r/s)、车速设定模式、最高限定车速值和超速警告等信息。程序清单:a、LCD1602写入命令函数:void LCD_Write_Com(unsigned char ) whi

36、le(LCD_Check_Busy(); /忙则等待 RS_CLR; RW_CLR; EN_SET; DataPort= ; _nop_(); EN_CLR; a、LCD1602写入数据函数: void LCD_Write_Data(unsigned char Data) while(LCD_Check_Busy(); /忙则等待 RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop_(); EN_CLR; a、LCD1602写入字符串函数:void LCD_Write_String(unsigned char x,unsigned char y,unsig

37、ned char *s) while (*s) LCD_Write_Char(x,y,*s); s +; x+; 5.4 按键中断子程序设计按键中断子程序主要实现根据驾驶员的实时实地要求进行最高限定速度更改以达到最优的限速,超速报警的目的。程序流程图:开始判断是否有键按下? 否按键值加1不同的按键值对应不同的限速模式图5.3 按键程序流程图程序清单:void keyscan()if(key_mode=0)while(key_mode=0);mode+;if(mode=1)speed_limit=140;if(mode=2)speed_limit=100;if(mode=3)speed_limi

38、t=90;if(mode=4)speed_limit=80;if(mode=5)mode=1;5.5 报警模块程序设计根据实时路段设置了一个最高限定速度值,将计算的实时速度值与已经设定最高限定速度值比较,如果大于了最高限定速度值,报警器报警,提示驾驶员减速行驶。程序流程图:报警子程序实时速度是否大于设定阈值速度 否报警 是完毕图5.4 报警模块程序流程图程序清单:a=TL0+TH0*256;/读取计数值a=a*10; /扩大到实际值,乘以10相当于做了变换 ,1秒钟的时间转了a圈a=a/4; /除以4是因为 转盘上面有4个孔 除以4 表示 实际转的圈数if(aspeed_limit)buzze

39、r=0;time=time-5;elsebuzzer=1;结 论目前交通问题已经普遍成为城市发展急需解决的难题,随着科技的深入发展,汽车系统智能化管理已成为必然趋势。本课题基于单片机的超速报警器的设计,本设计以AT89C52为核心,光电式传感器为车速采集元件,克服了磁电式传感器抗电磁波干扰能力差和霍尔传感器安装复杂的难题。通过采集光电式传感器检测的脉冲数直接送入单片机处理,减少了A/D 转换等步骤,实现了快速采样。单片机控制LCD1602显示和蜂鸣器喇叭报警,显示器能满足系统的要求,蜂鸣报警简单适用。软件设计采用C语言和单片机中断技术,运算效率高,满足了实时测量的要求。该系统结构简单,成本低廉

40、,调试难度小,稳定性较好,能实现快速检测车速并与时显示,这样的测量系统应用是很广泛的。因硬件因素和个人知识的局限,系统本身也有一些不足。第一,低频段测量误差大,表现在测频方法的选择不利于低频信号,定时时间100 毫秒不能采集低于20 赫兹的信号;第二,不能有效滤除与测速信号的频率相近的干扰信号。所以本系统不能作为纯粹的车速测量显示仪,但是超速是在高频段,用来测量显示高速行驶汽车的速度与实现超速报警是比较精确的,作为超速报警仪是可行的。在设计的过程中,发现了自己有很多欠缺,比如对所学过的单片机、智能仪表、测控系统等知识掌握得还不够,尤其对编程感觉比较吃力。通过本设计,使学过的知识得到了巩固,对一

41、些领域的新知识有一定的摄入,使自己得到相应的提高,以后将会继续努力拓展知识面。参考文献1 邵显成. 汽车数字式速度/燃油表的设计D.:东北大学,2005 年.2 王瑛,王旭东. 车辆轮速信号的采集与处理J.商业大学学报,2006年,第22 卷第五期3 冬至,梅红.浅谈磁电式与霍尔式速度传感器在汽车上的区别J.科技4 涵芳. MCS-51/96 系列单片机原理与其应用M.:航空航天大学5 徐爱钧. 智能化测量控制仪表原理与设计M.:航空航天大学出版社6 传友,晓斌.测控系统原理与设计M.:航空航天大学出版社2007.127 小明,柴苍修,黄 静. 数字化车速里程表的设计J仪表技术.2007(1)

42、8 徐莹,邹德君. 车速传感器采集信号处理电路的设计J.省交通高等专科学校学报.2007 9(3)9 游晓容,徐东. 单片机在汽车速度、加速度测量系统中的硬软件设计J.科技信息.2010(7)10 董春兰. 智能车速里程表的设计D.:东北大学,2005年11 舜酩,垣,毛建国,辛江慧,缪小东.智能车辆发展极其关键技术研究现状J.传感器与微系统.2009年,第28卷第五期12 Ernest O.Doebelin Measurement Systems Application and Design M.机械工业13 周旭艳,宣戈,朱兵.8051在车辆超速报警系统中的应用J.井冈山学院学报. 200

43、6.(07).14 任国峰,军伟,雨.单片机在发动机转速测量中的应用J.汽车科技, 2006. (01):38-4015 王守中,聂元铭51单片机开发入门与典型实例(第2版).人民邮电2009附 录附录1: 超速报警器的主程序#include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include#include1602.h#includedelay.h#define HIGH (65536-10000)/256 /宏定义,定时10ms#define LOW (65536-10000)%256sbit LED=P12; /定义LED端口sbit key_mode=P2

44、3;/模式选择按键sbit key_add=P32;/加速按键sbit key_sub=P33;/减速按键sbit pwm_m=P14;/ 当pwm_m 为1时电机转动 为0时电机停止转动sbit buzzer=P24;/蜂鸣器接口, buzzer为0(速度超过预定速度)时蜂鸣器响. 默认情况下不会响bit OVERFLOWFLAG;bit TIMERFLAG;int flag_buzzer=0;int time=50;int mode=1;int speed_limit=140;/speed_limit 的初始值为mode1下的 限速值void Init_Timer0(void) TMOD

45、|= 0x01 | 0x04; /使用模式1,使用|符号可以在使用多个定时器时不受影响 /0x01代表定时器T0工作方式1 为16位定时器/计数器 /0x04 c/t=1,为计数器模式 GATE=0 定时器启动和停止仅受TR0控制 TH0=0x00; /给定初值 TL0=0x00; EA=1; /总中断打开 ET0=1; /定时器中断打开 TR0=1; /定时器0开关打开void Init_Timer1(void) TMOD |= 0x10; /使用模式1,使用|符号可以在使用多个定时器时不受影响 /高四位 用来控制定时器1 定时器工作在方式1下 TH1=HIGH; /给定初值,这里使用定时器

46、最大值从0开始计数一直到65535溢出 TL1=LOW; EA=1; /总中断打开 ET1=1; /定时器中断打开 TR1=1; /定时器开关打开void Init_zhongduan(void)EA=1;EX0=1;/开外部中断0EX1=1;/开外部中断1IT0=1; /设置外部中断0触发方式为下降沿触发IT1=1; /设置外部中断触1发方式为下降沿触发void keyscan()if(key_mode=0)while(key_mode=0);mode+;if(mode=1)speed_limit=140;if(mode=2)speed_limit=100;if(mode=3)speed_l

47、imit=90;if(mode=4)speed_limit=80;if(mode=5)mode=1;void pwm(int time)/time越大 速度越快pwm_m=1;DelayMs(time);pwm_m=0;DelayMs(100-time);main() int i=0; float sum=0; int flag=0; unsigned long int a; char temp16; /定义字符显示缓冲数组 Init_Timer0(); /初始化定时器0 Init_Timer1(); /初始化定时器1 Init_zhongduan(); /初始化外部中断0 和1 LCD_In

48、it(); /初始化液晶屏 DelayMs(10); /延时用于稳定,可以去掉 LCD_Clear(); /清屏 while(1) keyscan(); sprintf(temp,mode:%d limit:%d,mode,speed_limit); LCD_Write_String(0,0,temp);/显示到液晶第1行 pwm(time); if(OVERFLOWFLAG)/检测溢出标志,如果溢出说明频率过高,显示溢出信息 OVERFLOWFLAG=0;/标志清零 LCD_Write_String(0,1,overflow 655KHz); if(TIMERFLAG) /定时100ms到,

49、做数据处理(每100ms处理一次数据) i+; a=TL0+TH0*256;/读取计数值 a=a*10; /扩大到实际值乘以10相当于做变换,1秒钟的时间里面转了a圈 a=a/4; /除以4是因为 转盘上面有4个孔 除以4 表示 实际转的圈数 if(flag=0) /这句话在while循环中只运行一次 sprintf(temp,speed:%06.0f r/s,(float)a); LCD_Write_String(0,1,temp);/显示到液晶第二行 flag=1; TR0=1; /2个定时器打开 TR1=1; TH0=0; /每100ms过后应该使TH0 和TL0的值为0,保证计数器初值

50、为0 TL0=0; TIMERFLAG=0; /关闭计时计数标志 sum=sum+a; if(i=2)/这里循环2次,为了使显示的更清楚 消除显示一直跳变的现象 a=sum/2.0; i=0; sum=0; if(aspeed_limit) buzzer=0;time=time-5; else buzzer=1; sprintf(temp,speed:%06.0f r/s,(float)a); LCD_Write_String(0,1,temp);/显示到液晶第二行 void Timer0_isr(void) interrupt 1 TH0=00; /重新给定初值 TL0=00; OVERFL

51、OWFLAG=1; /溢出标志void Timer1_isr(void) interrupt 3 static unsigned char i; TH1=HIGH; /重新赋值10ms TL1=LOW; i+; if(i=10) /100ms 计数时间,得出100ms脉冲个数 x10就是1s中脉冲个数 i=0; TR0=0; /2个定时器关闭 TR1=0; TIMERFLAG=1; /标志位清零 TH1=HIGH; /重新赋值 TL1=LOW; void jiasu(void) interrupt 0 /EX0=0;time=time+5;if(time100)time=100;DelayMs

52、(5);/EX0=1;void jiansu(void) interrupt 2 /EX0=0; time=time-5; if(time0) time=0; DelayMs(5); /EX1=1;附录2: LCD1602驱动程序#include 1602.h#include delay.h#define CHECK_BUSYsbit RS = P21; /定义端口 sbit RW = P26;sbit EN = P20;#define RS_CLR RS=0 #define RS_SET RS=1#define RW_CLR RW=0 #define RW_SET RW=1 #define

53、EN_CLR EN=0#define EN_SET EN=1#define DataPort P0bit LCD_Check_Busy(void) #ifdef CHECK_BUSY DataPort= 0xFF; RS_CLR; RW_SET; EN_CLR; _nop_(); EN_SET; return (bit)(DataPort & 0x80);#else return 0;#endif void LCD_Write_Com(unsigned char ) while(LCD_Check_Busy(); /忙则等待 RS_CLR; RW_CLR; EN_SET; DataPort= ; _nop_(); EN_CLR; void LCD_Write_Data(unsigned char Data) while(LCD_Check_Busy(); /忙则等待 RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop_(); EN_CLR; void LCD_Clear(void) LCD_Write_Com(0x01); DelayMs(5); void LCD_Write_String(unsigned char x,unsigned char y,unsigned char

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