以太网组态监控毕业论文.doc

上传人:小小飞 文档编号:3908506 上传时间:2019-10-10 格式:DOC 页数:27 大小:946.76KB
返回 下载 相关 举报
以太网组态监控毕业论文.doc_第1页
第1页 / 共27页
以太网组态监控毕业论文.doc_第2页
第2页 / 共27页
以太网组态监控毕业论文.doc_第3页
第3页 / 共27页
以太网组态监控毕业论文.doc_第4页
第4页 / 共27页
以太网组态监控毕业论文.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《以太网组态监控毕业论文.doc》由会员分享,可在线阅读,更多相关《以太网组态监控毕业论文.doc(27页珍藏版)》请在三一文库上搜索。

1、摘 要超速报警器的设计将车速传感器产生的车速信号送入霍尔传感器电路,得到一个与车速信号频率一致的信号,送入单片机记数,与单片机内部设定值相比较。如果超过了预设值则可判断汽车超速,蜂鸣器报警提示。该系统由电源电路、时钟电路、复位电路、速度显示电路、按键电路、键盘(设定报警车速值)、报警电路、霍尔传感器连接电路和控制单片机组成。电源电路给整个系统提过动力,使整个系统快速的运转起来。ATC89C51单片机芯片内部设有一个由反向放大器构成的振荡器,XTAL1和XTAL2分别为振荡电路的输入端和输出端,时钟可由内部或外部生成组成时钟电路。复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮

2、电脑内部的程序从头开始执行。霍尔传感器连接电路通过单片机测量产生脉冲的频率就可以得出圆盘的转速,得出系统的速度。按键电路包括速度设置、速度增加、速度减小以及速度确定,有四个开关可以对速度上限值进行设定,另外有速度增减按键,可以方便的根据当地限速的要求实时实地进行速度更改以达到报警目的,具有很强的灵活性,方便驾驶员的操作。显示电路主要显示系统的速度。报警电路主要有声音报警,报警电路相对来说比较简单,起报警作用。以此来通知驾驶员进行调速,减少发生交通事故。关键词:以太网;组态;监控AbstractOverspeed alarm design will have a speed signal int

3、o the hall speed sensor, the sensor circuit, get a consistent with the speed signal frequency signal, into the microcontroller numeration. Compared with single chip microcomputer internal value. If more than the preset value can judge the car speeding, buzzer alarm prompt. The system consists of pow

4、er supply circuit, clocking circuit and reset circuit, display circuit, key circuit, speed the keyboard (set alarm speed value), alarm circuit, hall sensor connection circuit and the control of single chip microcomputer. Power circuit mentioned power to the whole system, the whole system running fas

5、t. Atc89c51 single-chip microcomputer with internal a composed of reverse amplifier oscillator, xtal1 and xtal2 oscillation circuit of input and output, respectively, of the clock can be generated by internal or external clock circuit. Reset circuit is just like restart part of the computer, when th

6、e computer froze in use, press the reset button inside the computer program execution from the very beginning. Hall sensor connection circuit generated by single chip microcomputer measuring the frequency of the pulse can be concluded that the speed of the disc, it is concluded that the speed of the

7、 system. Button circuit including speed Settings, speed increase, decrease and sure, there are four switch to set the speed limit, have other rate increase or decrease buttons that can be real-time field according to the requirement of the local speed limits of speed change alarm in order to achieve

8、 the purpose, has strong flexibility. A driver operation is convenient. The speed of the display circuit mainly display system. Alarm circuit is mainly a voice alarm, the alarm circuit is relatively simple, the alarm function. In order to inform the drivers speed and reduce traffic accidents.Keyword

9、s: Single chip microcomputer; Overspeed alarm; security第1章 前言众所周知,在现在的社会中,随着人们群众生活水平的不断提高,汽车已经是每家每户都有的东西了。我们走在马路边经常会看到交通事故的发生,交通事故发生有一个很重要的原因汽车超速,但是人们一直会忘掉这个问题的存在,只想着赶时间一定要加速再加速。要是我们能有一款可以测汽车速度的产品那么类似于这样的交通事故就基本不会发生了。为此我设计了应用51单片机运行的超速报警设备。本设计是让单片机和霍尔传感器的功能相互结合,完全利用了单片机极大的功能,使超速报警系统的作用发挥的淋漓尽致,只要车主已超

10、速,设备就会马上报警,使消费者为拥有这款产品而感到骄傲。在设计本论文时,我会把这个很复杂的东西简单化,从而使用的元器件也会减少,因为元器件少了,产品的成本会降低,但减少元器件的同时,质量也会得到保障。超速电路的按键将会非常简单,因为要考虑每个认得文化程度有所不同。装有本系统的汽车可以防止一下几个原因导致的交通事故。第一个是当车主不知道行驶路段的最高速度且已超速的状态下;第二个是车主无意超速导致的车祸;第三个是车主故意开得很快导致的交通事故。本次设计的超速报警比起车内的安全气囊等保护措施相比,可以防患于未然,它与警察的测速仪器相比更有实用性。汽车报警器具有实用性、经济性、便于操作等优点,因此使用

11、很广泛。在车辆行驶的过程中,本设计通过传感器监控汽车的实际速度,只要超速立刻报警,提醒驾驶员减速。本系统操作简单、可靠性高、可以广泛运用在机动车辆中。 第2章 系统原理2.1 超速报警器设计思路2.1.1 设计要求本论文设计的51单片机超速报警系统是具有数字显示功能的,可以显示车子的实际速度,只要车子的实际速度大于公路限定的速度是,汽车上的报警器就会利用蜂鸣器报警,从而提醒驾驶员减速慢行。在设计电路时,我们应该考虑下面几点要求:1.在设计电路时,我们要遵守从整体到部分,把一个复杂的设计转变为几个简单的问题,这样可以方便解决。2.设计电路时只要把最基本的性能做出来就行,不要太过复杂。这样做一是为

12、了考虑每个人的接受能力不同,二是越复杂的电路元件用的就越多,元器件一多性价比就不高了。3.还要保证设计电路的寿命和故障发生一次的频率。4.在设计电路时,电路界面上的按键一定要精辟,因为按键多了人们就会搞不清楚,每个人的知识水平还是存在差距的。下面有两种方案:第一种方案:方案一是具有输入/输出接口、RAM8155的芯片和具有速度变更能力的键盘电路,8155芯片有256个字节的数据存储器,2个八位,1个一位输入/输出口和一个14位计数器。系统的硬件电路简图如图2.1所示。图2.1 系统硬件电路简图在图2.1系统硬件电路简图中,键盘键入是用来设置报警的速度,当实际车速大于最大速度是,声光报警电路就会

13、报警,霍尔传感器是用来产生方波的。霍尔传感器的输出接口接51单片机的外部中断,轮子每转一圈就会产生一次INT中断请求,51单片机就会对这个零中断请求的次数进行累计,并且将一秒内的累计值转化成汽车的速度,送到显示区从而提供数据给显示程序。计算的公式是V=d60n3.6km/h。其中,51单片机的累计值是n,汽车的车轮周长是d.在硬件电路图中,传感器的输出时由AT89C51的INTO口的输入保存在内部数据存储区中,8155芯片是AT89C51的外部扩展芯片,它的PB口是接发光数码管的,PA4-PA0是发光数码管的键盘竖线,PC0和PC1是键盘的横线,这样就组成了10个键盘的按键。P2.6口在AT8

14、9C51中是用来接三极管放大器的从而驱动报警电路,P2.6口会一直输出101010101010这样重复的高低电平信号,控制报警电路报警。报警电路只要输出256HZ和350HZ的声音每个0.73S时,就可以发出报警声从而提醒司机。汽车上的最大速度是用键盘存储起来的。51单片机检测传感器发出的信息,然后算出汽车的实际速度再送给LED显示器,当实际速度大于最大速度时,报警电路就会报警,报警电路的硬件电路如图2.2所示。图2.2 硬件电路图方案二:利用串行I/0的共阴极发光数码管显示器MAX7219和按键电路实现。MAX7219是用来显示实际速度和设定速度的,当实际速度大于最大速度是,报警电路就会发出

15、报警声,按键电路时用来设定报警的最大速度的。系统的硬件电路简图和硬件电路图如图2.3和2.4所示。图2.3 硬件电路图图2.4 系统硬件电路图2.1.2 方案的比较及确定对于方案一和方案二,方案一是采用的8155芯片,8155芯片的接线管脚很多,但是键盘电路比较复杂,而且只能显示实际速度,总体电路较为复杂;方案二电路采用的是MAX7219芯片,它是一个串行I/O的共阴极发光晶体管显示器,可以显示八位七段带有小数点的共阴极数码管,可以连在一起,连接只需3根线,而且速度的设定可以用多个按钮操作,并且可以实现最大速度的变更,所以硬件电路简单,操作方便。对于本论文设计的汽车速度报警电路而言,设计的基础

16、就是采用现代的工艺,经过计算机的处理科技,提高设计的精确度和稳定性,再扩展其性能,是报警器不仅可以精确的显示实际速度而且还要是操作简单化。对于此,设计的方案如图2.5所示。图2.5 设计方案图2.2 超速报警器的总原理图超速报警电路是将汽车传感器的实际车速送到传感器电路中,从而得到一个与汽车速度频率一样的信号,并把结果送到单片机中计数。得出的数值与51单片机内部值相比较,如果比键盘输入的上限值还要大则显示汽车超速行驶,紧接着报警电路就会通过蜂鸣器进行报警。该系统由电源电路、时钟电路、复位电路、速度显示电路、按键电路、键盘(设定报警车速值)、报警电路、霍尔传感器连接电路和控制单片机组成。总原理图

17、如图2.6所示。电源电路时钟电路复位电路报警电路按键电路霍尔传感器连接电路显示电路单片机图2.6 总原理图2.3超速报警器的优点1、 只要车主超速时超速电路就会报警,从而提醒车主保证车主的人身安全。2、超速报警器是将传感器产生的车速信号与单片机相比较。如果超过了标注值则可判断汽车超速,蜂鸣器报警提示。3、超速报警器的设计将电源电路、时钟电路、复位电路、速度显示电路、按键电路、报警电路、霍尔传感器连接电路等电路组合起来组成超速报警器。第3章 超速报警器硬件设计3.1硬件概述3.1.1 单片机的基本组成1.内部程序存储器(ROM)ROM只是一个通称,实际上程序存储器通常分ROM、EEPEOM和FL

18、ASH ROM即是用来存放程序所对应的二进制代码的地方,因此称为程序存储器。一旦程序固化到程序存储器后是只读部写的,因此程序存储器为READ-ONLY MEMORY.2.中央处理器(CPU)程序被固化到单片机后,系统上电,如果提供给单片机的电源系统、复位信号、时钟信号均满足要求,则单片机内最核心的部件CPU开始工作。工作的基本过程:中央处理器的控制器从ROM中将代码取出并分析该代码,根据代码对应的指令执行。如果从ROM中取出“C2H90H”,则CPU分析后就会向P1.0输出低电平。执行完一条指令紧接着取下一个代码,如此一条一条下去。3.内部数据存储器(内部RAM) 51单片机的芯片8155中有

19、256个ROM,但后面128个被专用寄存器强占了,给用户使用的只有前面128个单元。3.1.2 AT89C51 引脚图引脚图如图3.1所示。图3.1 引脚图VCC:供电电压。GND:接地。P0口:电路中包含1个数据输出存储器、2个三态数据输入缓冲器、1个数据输出的驱动电路和1个输出控制电路。当对P0口进行写操作是,由锁存器和驱动电路构成数据输出通路。由于通路中已有输出锁存器,因此数据输出时可以与外设直接连接,而不需要再加数据锁存电路。考虑到P0口既可以作为通用I/O口进行数据的输入输出,也可以作为单片机系统的地址/数据线使用。为此在P0口的电路中有一个多路转接电路MUX。在控制信号的作用下,多

20、路转接电路可以分为接通锁存器输出或地址/数据线。当做通用的I/O口使用时,内部控制信号发出低电平,封锁与门将输出驱动电路的T1 FET截止,同时使多路转接电路MUX接通锁存器的输出通路。当P0口作为输出口使用时,内部的写脉冲加在D触发器的CP端,数据写入存储器,并向端口引脚输出。而当P0口作为输入口使用时,数据信号则直接从引脚通过输入三态缓冲器进入内部总线。P1口:因为P1口通常是I/0口使用的,所以在电路结构上与P0口有一些不同之处。首先它再也不需要多路转接电路MUX;其次是电路的内部有上拉电阻,与场效应管共同组成输出驱动电路。因此P1口作为输出口使用时,无须再外接上拉电阻。当P1口作为输入

21、口使用时,同样也需要先向其锁存器写“1”,使输出驱动电路的FET截止。P2口:P2口电路中比P1口多了一个多路转接电路MUX,这正好与P0口一样。P2口可以作为通用I/O口使用。这时多路转接开关接向锁存器Q端。但通常情况下,P2口也可以作为系统扩展的高8位地址线使用,此时多路转接开头应接到“地址”方向。P3口:P3口的特点是在于为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。由于第二功能信号有输入和输出两类,因此分两种情况说明。对于第二功能为输出的信号引脚,当作为I/O使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。当输出第二功能信号时,该位的

22、锁存器应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。对于第二功能为输入的信号引脚,在口线的输入通路上增加了一个缓冲器,输入的第二功能信号就从这个缓冲器的输出端取得。而作为I/O使用的数据输入,仍取自三态缓冲器的输出端。不管是作为输入口还是第二功能信号输入,输出电路中的锁存器输出和第二功能输出信号线都应该保持高电平。表3.1 P3口第二功能端 口 引 脚第 二 功 能P3.0RXD (串行输入口)P3.1TXD (串行输出口)P3.2(外中断0)P3.3 (外中断1)P3.4T0 (定时/计数器0)P3.5T1 (定时/计数器1)P3.6 (外部数据存储器写选通)

23、P3.7 (外部数据存储器读选通)3.1.3 AT89C51单片机AT89C51是由美国的一家公司发明的,它是一个高性能、低电压的八位单片机,芯片内有4K字节的只读程序存储器PEOM和128字节的随机数据存储器ROM,AT89C51采用了美国公司高科技的生产技术,可以兼容51单片机的指令系统,芯片是用八位CPU和FLASH存储单元。AT89C51单片机可以运用在许多高性价比的场合,还可以灵活运用。3.1.4 AT89C51主要性能参数1.可以和51单片机指令系统完全兼容;2.4K字节可以通过FLASH存储器任意改写;3.频率范围为0Hz-24MHz;4.程序存储器可以加密;5.内部存储器有12

24、8*8个字节;6.输入输出接口有32个;7.2个十六位计数/定时器;8.中断源有六个;9.具有掉电和低功率模式。3.1.5 AT89C51 功能特性概述AT89C51芯片具有以下几种功能:4K字节可以通过FLASH存储器任意改写,内部存储器有128*8个字节,输入输出接口有32个,2个十六位计数/定时器,1个全双工串行通信口。即使空闲方式终止中央处理器工作,内部存储器、定时器、计数器还可以工作。掉电模式会自动保存内部存储器的功能,但是振荡器不工作直到下一个硬件复位。3.1.6 空闲节电模式AT89C51有空闲模式和掉电模式两种省电模式。这两种模式是控制电源控制寄存器PCON中的PCON.1HE

25、 PCON.0两个位来实现的。掉电模式是PD,当PD=1时,将会把掉电模式和单片机模式同时激活,当PD和IOL同时为1,先激活掉电模式。在空闲模式中,中央处理器会保持睡眠状态,并且芯片内所有外部设备保持激活状态,这种方式是软件产生的。此刻,芯片中的内部存储器和所有的寄存器中的内容会保持不变。任何中断请求和硬件复位都可以把空闲模式终止。终止空闲工作模式的方法有两种,第一种是只要任何一条中断程序运行,PCON.0就会被硬件清理,从而终止空闲模式。程序会先响应中断,进入到中断程序后,会将中断程序执行完并紧跟着中断返回指令,下一条要执行的指令就是进入空闲模式指令后面的一条指令。第二种方式是通过硬件复位

26、时空闲模式终止。需要大家注意的是:当有复位信号来终止空闲模式时,中央处理器常常从激活空闲模式指令的下一条模式开始执行程序,要把内部的复位操作完成,复位脉冲要保持24个机器周期有效,在这里,内部程序禁止中央处理器访问内部存储器,但可以访问别的端口。激活空闲模式的指令后面一条指令不能是存储器的写入指令,因为这样做可能会使端口产生意外的写入。3.1.7 掉电模式系统进入掉电模式中振荡器会终止工作,进入掉电模式的最后一条被执行的指令。芯片中的内部存储器和功能寄存器的内容会在终止掉电模式之前冻结。只有硬件复位后才能推出掉电模式,复位后将会重新设定功能寄存器中的内容但内部存储器中的内容不会改变,在电源没有

27、恢复到正常电平前,复位是无效的,而且还要给予振荡器重启到正常工作的时间。表3.2 空闲和掉电模式外部引脚状态表模式程序存储器ALEP0P1P2P3空闲模式内部11数据数据数据数据空闲模式外部11浮空数据地址数据掉电模式内部00数据数据数据数据掉电模式外部00浮空数据数据数据AT89C51可以与51单片机室外指令和输出管相互配合,可以将多功能八位中央处理器和存储器组合到同一个芯片中去,可以进行一千次的修改数据循环,数据可以保留十年。它可以向许多控制系统提供性能稳定且性价比搞得方案。因此,在设计和制作电路中经常会用到AT89C51芯片。电路由AT89C51的18,19脚的时钟端(XTALl及XTA

28、L2)以及12 MHz晶振X1、电容C1,C2组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由电阻R17,电容C3组成,分别接至AT89C51的RST复位输入端。3.1.8 时钟XTAL1和XTAL2XTAL1和XTAL2用于产生单片机工作所需要的时钟。单片机是一个复杂的时序电路,要使用CPU和各功能部件协调工作,必须要有一个统一的时钟。通常,有两种产生时钟的连接方式,一种是使用芯片内部时钟震荡电路产生时钟,另一种是在片外震荡处理好的时钟直接接入片内。内部振荡电路如图3.2所示。外部震荡电路如图3.3所示 图3.2 内部震荡电路 图3.3 外部振荡电路3.2 霍尔传感器连接电路霍

29、尔传感传感器是由著名的美国地质学家HallJames发明的。霍尔传感器的功能属于电磁效应的一种,这种功能是霍尔在18世纪研究导电机时不经意间发现的。他发现虽然导体、半导体等也能实现这样的功能,但远没有霍尔元件功能强。这项技术的发现时检测行业、工业方面有了巨大的突破。类似半导体材料的导电性能、载流子的性能的判断都可以用霍尔效应来一一实现。霍尔传感器图片和管脚图如图3.4所示。图3.4 霍尔传感器图片和管脚图在不导磁的圆材料最外面放上一块带磁的钢材料,把霍尔传感器放在不导磁圆材料的周围任意地方。只要圆盘转一圈,传感器就会产生一个脉冲。因此利用圆盘转动的速度单片机就可以测出传感器产生脉冲的频率了。测

30、速示意图如图3.5所示。图3.5 测速示意图 3.3 按键电路 按键是由四个开关和四个上拉电阻组成,用到了8051单片机的BTO、BT1、BT2、BT3四个管脚,四个开关分别用来速度设置、速度提升、速度下降和速度的确定,对四个开关进行操作用户可以对速度的最大值进行设定,同时还可以对速度进行调整,从而驾驶员可以根据地方的不同设置不同的速度,电路设计的灵活性非常强。按键电路如图3.6所示。图3.6 按键电路图3.4 显示电路显示电路是用MAX7219芯片来实现的,MAX7219是一种用来串行输入或串行输出的显示驱动器,它是共阴极显示的。每一个芯片可以控制八个七段带有小数点的共阴极发光数码管。下图中

31、从A 到G是发光二极管七段显示器的驱动端,SEGDP是用来控制发光二极管的小数点的。DP是显示器七段小数点的IO,大小一般为40mA上下,若要调整可用软件进行,关闭时要接地。DIG7到DIG0是八位数值驱动线。电流是从发光二极管的共阴极吸入的,从而得到显示器的为驱动线,最大值可以到达500mA左右,关闭时接电源。显示电路连接图如图3.7所示。图3.7 显示电路连接图3.5 报警电路报警电路由两种,一种为声音报警,另一种为灯光报警。这两种电路对大多数人人来说都可以接受。声音报警电路由8051单片机、2个1K的电阻,一个晶体三极管和一个蜂鸣器组成。声音报警电路如图3.8所示。图3.8 声音报警电路

32、图而灯光报警电路是由两个发光二极管D1、D2构成。用这样的方法来提示司机进行减速从而使交通事故发生的次数减少。灯管报警电路图如图3.9所示。图 3.9 灯管报警电路图3.6 主控模块本次设计是利用MCS51系列单片机中的8051作为中心的。因为8051的抗干扰性能极强,在干扰很大的场合都能工作。8051 中央处理器的频率是12MHZ,对于计数脉冲可以很快的进行处理。8051的I/O共有三十二根线组成,它可以连接发光二极管显示器,传感器,存储器等。8051使用的电压很低从而能耗也就低,这样只要使用干电池对它供电就行了。但是8051也有它的缺点,他只能存储256B的数据,这样你可以利用外界存储器芯

33、片来弥补它的不足。8051最小应用系统电路如图3.10所示。图3.10 8051最小应用系统3.7 MAX7219芯片MAX7219是一种串行I/O共阴极发光二极管显示驱动器。每一个芯片可以控制八个七段带有小数点的共阴极发光数码管。MAX7219有扫描电路,一般扫描电路会单独的进行工作除了要把显示的数据进行更新外,这样做可以节约时间和剩余用量的空间。MAX7219芯片中有BCD译码器、驱动器、扫描电路、8*8的数据存储器和寄存器。设计单片机的指令可以控制MAX7219芯片,从而它的工作方式可以改变。MAX7219工作图如图3.11所示。图3.11 MAX7219工作图上图主要是用来说明DIN、

34、CLK、LOAD这三个之间是怎么工作的。其中DIN是数据输入端,CLK和LOAD就是相当于桥梁的作用。CLK的下降沿触发是无效的,再看CLK的上升沿部分,二进制数据已经存到了CLK的里面,之后又是下降沿又是无效的,紧接着上升沿部分,数据有存到了CLK的内部,就这样一直工作直到16个周期全部完成。在这个过程中LOAD一直处于低电平的状态下,只要这16个二进制数工作完它就会变到高电平状态中去。第4章 超速报警器软件设计4.1 程序流程图汽车超速报警器的总体流程图如图所示。软件编程采用C语言,用单片机的T1作为定时器,设定定时时间为1S。由于单片机最大允许时间只有65S,需扩展定时时间。一般有硬件扩

35、展和软件扩展两种方式,本文采用软件扩展方式。设T0定时时间为50ms,定时时间一到,溢出中断,在中断服务程序中,对中断次数寄存器加1,重复定时中断20次,时间为1s。1s定时时间到,读取定时器T1(P3.5引脚) 输入的脉冲数,为实时车速的频率值。将该频率值与单片机内部设定值比较,判定是否超速。程序流程图如图4.1所示。图4.1 程序流程图软件主要是由主程序、按键程序、中断程序、发光二级管显示程序、声音或灯管报警程序组成。硬件始化、子程序的调用还有显示、报警等性能是由主程序来完成的。数据处理程序是用来,监测汽车行驶的速度是为了计算出车辆的时速,从而产生数据告知司机。参数输入是否得当是由按键程序

36、来实现的。车辆超速行驶会发出报警信号这是由报警程序来完成的。显示程序主要是显示车主当前开车的速度,标准最大速度,是由发光二极管进行显示。主程序清单: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 LED_Init(); /初始化液晶屏 DelayMs(10); /延时用于稳定,可以去掉 LED_Clear(); /

37、清屏 while(1) keyscan(); sprintf(temp,mode:%d limit:%d,mode,speed_limit); LED_Write_String(0,0,temp);/显示到液晶第1行 pwm(time); if(OVERFLOWFLAG)/检测溢出标志,溢出表明频率过高,显示溢出信息 OVERFLOWFLAG=0;/标志清零 LED_Write_String(0,1,overflow 655KHz); if(TIMERFLAG) /定时100ms到,做数据处理(每100ms处理一次数据) i+; a=TL0+TH0*256;/读取计数值 a=a*10; /实际

38、值乘以10相当于做了变换1秒钟转了a圈 a=a/4; /因为 转盘上面有4个孔 除以4表示实际转的圈数 if(flag=0) /这句话在while循环中只运行一次 sprintf(temp,speed:%06.0f r/s,(float)a); LED_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次目的是为了使显示的更清楚,消除显示跳

39、变的现象 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); LED_Write_String(0,1,temp);/显示到液晶第二行 4.2脉冲计数程序设计AT89C51单片机内有T0和T1 两个加法型16位定时器,在计数时,对P3.4和P3.5引脚上输入外部信号进行计数。程序流程图如图4.2所示。图4.2 脉冲计数程序流程图程序清单:a、定时器T0初始化:void Init_Timer0(void) TMOD

40、 |= 0x01 | 0x04; /使用模式1,16位计数器, TH0=0x00; /给定初值 TL0=0x00; EA=1; /总中断打开 ET0=1; /定时器中断打开 TR0=1; /定时器0开关打开b、定时器T1初始化: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

41、(void) interrupt 1 TH0=00; /重新给定初值 TL0=00; OVERFLOWFLAG=1; /溢出标志void Timer1_isr(void) interrupt 3 static unsigned 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; 4.3显示模块程序设计主控芯片AT89C51驱动发光二极

42、管,实时显示由计数脉冲计算得到的车速(r/s)、车速设定模式、最高限定车速值和超速警告等信息。程序清单:a、发光二极管写入命令函数:void LED_Write_Com(unsigned char com) while(LED_Check_Busy(); /忙则等待 RS_CLR; RW_CLR; EN_SET; DataPort= com; _nop_(); EN_CLR; b、发光二极管写入数据函数: void LED_Write_Data(unsigned char Data) while(LED_Check_Busy(); /忙则等待 RS_SET; RW_CLR; EN_SET; D

43、ataPort= Data; _nop_(); EN_CLR; c、发光二极管写入字符串函数:void LED_Write_String(unsigned char x,unsigned char y,unsigned char *s) while (*s) LED_Write_Char(x,y,*s); s +; x+; 4.4按键扫描程序按键中断子程序主要实现根据驾驶员的实时实地要求进行最高限定速度更改以达到最优的限速,超速报警的目的。程序流程图如图4.3所示。图4.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_limit=90;if(mode=4)speed_limit=80;if(mode=5)mode=1;4.5报警模块程序设计根据实时路段设置了一个最高限定速度值,将计算的实时速度值与已经设定

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1