长途客车防超载控制系统的设计_第1页
长途客车防超载控制系统的设计_第2页
长途客车防超载控制系统的设计_第3页
长途客车防超载控制系统的设计_第4页
长途客车防超载控制系统的设计_第5页
免费预览已结束,剩余40页可下载查看

下载本文档

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

文档简介

1、毕业设计(论文) 长途客车防超载控制系统的设计姓 名 秦鹏飞学 号 2014010304002专业班级 信息工程14所在学院 电子信息学院指导教师 陈卉 讲师完成时间 2018年1月电子科技大学中山学院教务处制发II长途客车防超载控制系统的设计摘 要在本设计当中主要通过STC89C52单片机的智能化运用,针对客车超载现象设计一款智能化预防控制系统,其中将HX711作为系统的称重芯片来对客车负载进行检测,同时运用了红外对射管F3来作为系统的核心。具体包括主程序控制模块、客车人数检测模块、客车称重子模块、LED显示模块、按键模块、声光报警模块、客车开/关点火模块。系统可以通过按键的方式来设置客车的

2、负载重量最大限制与人数的控制,利用了数码管的显示方式可以监控显示车辆上的人员数量,在客车负载超出额定重量或者人数的时候,激发声光报警器,同时由继电器来控制打火,对汽车进行锁定。当客车人说和重量都符合要求后,报警才会接触,同时解除客车锁定。关键词:客车防超载;SCT89C52;F3红外对射管;HX711Anti-overload control system for intelligent busAbstractThis paper designs a set of intelligent bus anti overload control system based on single chip

3、 microcomputer. The core of the system is STC89C52 microcontroller. The core of the whole system is F3 infrared to radio tube and HX711 weighing chip. It includes main program control module, bus number detection module, bus weighing baryon module, LED display module, key module, acousto-optic alarm

4、 module and bus on / off ignition module. The adjustment of the upper limit of the bus number and the adjustment of the upper limit of the weight can be set by the key, and the weight is displayed through the four in one common anode digital tube, and the number is displayed through the two in one c

5、ommon anode. When the number of passenger cars or the weight is overloaded or overloaded, the sound and light alarm will be started. At the same time, the ignition device of the bus is disconnected through the relay and the car is locked. When the bus man says and the weight meets the requirements,

6、the alarm will come into contact and the lock of the bus is relieved.Keywords:Passenger car overloading; SCT89C52; F3 infrared ray tube; HX711目 录1 绪论12 客车防超载智能监控系统设计22.1 元器件选型22.1.1 主控制芯片选型22.1.2 显示模块选型22.1.3 称重模块选型22.2 总体设计33 客车超载智能化防控系统的硬件设计43.1 单片机最小系统43.1.1 STC89C52单片机介绍43.1.2 最小系统电路设计43.2 人数监测系

7、统的电路设计53.2.1 F3红外对管介绍53.2.1 人数监测系统电路的设计63.3 客车称重硬件电路设计63.3.1 HX711芯片介绍63.3.1 客车称重硬件电路设计73.4 LED显示硬件电路设计73.4.1 数码管介绍73.3.2 LED显示硬件电路设计83.5 按键硬件电路设计93.5.1 按键介绍93.5.1 按键硬件电路设计93.6 声光报警硬件电路设计103.7 硬件电路的控制设计103.8 电源电路设计114 客车防超载智能控制程序设计124.1 主程序设计124.2 子程序设计144.2.1 人数监测程序144.2.2 荷载重量监测程序164.2.3 LED信息显示程序

8、174.2.4 按键控制程序194.2.5 报警与锁定程序225防客车超载智能化控制系统程序调试255.1 LED数码管显示功能调试255.2 称功能重模块调试255.3 人数监测功能模块调试255.4 按键功能模块调试265.5 称重监测模块对继电器、报警模块的控制265.6 人数监测模块对继电器、报警模块的控制27参考文献28附 录29致 谢30391 绪论随着生活水平的不断提高,人们外出打工、探亲、旅游的人数越来越多,尤其是节假日,而与此相关的公路客运(长途客车,旅游客车等)的运力却没有相应增加,致使超员现象频频出现。这也是当前对交通运输行业带来严重影响的社会性问题之一。从交通秩序的常态

9、化运转的层面上来看,客车超员超载不但对交通的秩序造成影响,同时还对整个交通运输行业的市场发展起到了制约,市场中相互之间的恶性竞争愈演愈烈,驾乘人员不能按照规定履行运输的职责和义务,安全事故也随之而来,最终给社会治安的稳定构成威胁。而从车辆的性能与操作系统的安全性上来看,超员超载给车辆本身带来的影响要远大于社会效益,车胎、轮毂、制动、转向等机动功能都在超负荷运转中大打折扣,由此引发的交通事故,将会直接带来不可估量的经济损失,人们乘车时的人身安全更是得不到保障,已经被社会各界人士所关注1。在很早以前我们国家就从政策法规上给出了一系列的治理措施与严格的规定,但这些法规在实际运用中却并没有起到应有的效

10、果。尤其是在一些人流量相对集中的重大节假日当中,超载超员更是成了客车营运者的利益追求2。针对这样的现状,我们不仅要从国家层面上来进行治理,同时更要在运输车辆尤其是客车上采取相应的技术措施,来杜绝这种现象的发生,唯有如此才能保证人民群众的生命财产安全。故,对利用科技手段来杜绝和预防客车的超员超载的研究将会有着重大的现实意义和社会价值。基于以上的认知,本研究以客车操作系统的智能化判断来对超员超载现象进行检测,通过根据检测的结果反馈到车辆的核心系统。系统设计中,我们借助于称重芯片HX711来对判断车辆是否超出荷载,如果发生超载情况,通过LED对车辆承载的人数与重量进行显示,系统将会自动发出警报,通过

11、继电器的开关对车辆引擎的运转进行控制,达到锁定客车的目的。本设计在客车上的运用将会有效降低超员超载的现象,进而为道路交通安全和乘客的生命财产安全带来一定的保障。2 客车防超载智能监控系统设计2.1 元器件选型2.1.1 主控制芯片选型方案一:MSP430系列的单片机。优点:芯片中集成了多种资源,运行的效率相对较高。缺点:对电压有着一定的要求,必须要增加一个+5伏的电压转换器,此外系统中的I/O借口很容易因为超压或者电流过大而被击穿;自身并没有EEPROM内部存储器,需要借助于外部的数据存储装置来存储数据。方案二:STC89C52单片机。在单片机系列当中,51型单片机有着比较优秀的性能,运行起来

12、表现十分稳定,而且性价比很高,成本投入低,在能耗和加密性等方面也独具特点,因此在系统中使用STC系列单片机能够进一步提升系统的稳定性,能够满足工作处理的需求,操作上也更加便捷3。考虑到智能客车防超载控制系统系统工作环境多变,温度和湿度对处理器有一定的影响,因此需要抗干扰性强的中央处理芯片;同时在系统核心芯片中集成了存储空间EEPROM,这也为系统运行中的数据存储提供了可能。基于以上的考量,在选用系统核心处理器的时候,我们以STC89C52单片机来进行主控,将会给系统设计带来更多的便捷,同时也在一定程度上提高了控制系统运行的稳定性。2.1.2 显示模块选型方案一:利用数码管来对相应数据进行显示,

13、该显示模块的显示方式是点阵式了,能够根据实际的需要对现实的模块进行扩展,与之对应的是每一个数值均由一个固定的模块,这样的显示方式无疑在进行汉字显示的时候有着较好的表现。该芯片最大的优点就是可以显示文字,如果仅仅是数字的显示,就有点大材小用了,在这里就显得不太合适了。方案二:选择数码管。数码管只能显示数字,并且单个数码管显示的数据也只能显示一个数字,用的数码管越多显示的数字也越多。同时数码管优点非常明显,那就是对数字的显示非常清楚明了。由于本设计方案只需要显示重量和人数,即只需要显示数字,因此所以选用方案二。2.1.3 称重模块选型方案一:HX711是一款非常不同寻常的转换器芯片,这款芯片功能的

14、设计非常完美,其内部集成了多种电路,可以直接连接到核心控制单片机上单独使用,其中稳压电源和晶振电路不需要再在单片机核心控制上再次实现4。该款芯片功能非常强大,专门为制造高精度称重传感器量身打造,优点非常明显,并且能很好的减小系统设计成本,提高性能。方案二:CZAF-602压力传感器是一款采用改变电阻值方法来实现压力测试的芯片,这款芯片的主要的特点就是其内部的电阻是通过变形来改变电阻的,在系统运行中,电阻的大小可以被调节,运行中电桥会受到阻值大小变化的影响而出现信号输出的偏差,从而实现对电路的控制。结合本次设计要求,要用最简单的电路,实现高效抗干扰性和电路稳定,同时还要求绝对压力值的测量实现,故

15、此,选取方案一。2.2 总体设计按照设计要求,本系统在设计方面要实现以下几大功能:主程序控制模块、客车人数检测模块、客车称重子模块、LED显示模块、按键模块、声光报警模块、客车开/关点火模块。在下图2-1当中所显示的也即是客车防超载智能化控制系统的结构设计框架。图2-1 智能客车防超载控制系统设计总体方案框图本次系统设计的原理或是说核心部分就是实现压力信号的检测以及利用F3红外对射管实现对人数的检测。从整个系统结构上来看,大体可以分为几个主要的端口模块,其中包括用以采集相关重量与人数数据的信息采集端口,对客车荷载重量与人数进行限制的控制端,系统中负责主要控制与程序运行的基础部分,和对相关信息数

16、据进行输出并控制客车系统点火的输出部分。此外在整个系统设计中还加入了预警功能模块和信息数据的显示模块,通过显示模块可以让我们清楚地看到超载的重量以及超员的数量。3 客车超载智能化防控系统的硬件设计3.1 单片机最小系统3.1.1 STC89C52单片机介绍STC89C51单片机的结构。本系统采用STC89C51作为主控芯片。这个芯片的功能非常强大,可扩编性也比较高,具体非常广广阔的应用空间。在系统中单片机作为最小的系统核心,在辅助电路的配合下将实现对整个系统的有效控制,因而在本系统中,STC89C52单片机同样可以被适用,与51型单片机相比它们都有着相同的处理器核心,都是八位,应用十分广泛。所

17、以我们选用了该型号的单片机来进行系统控制5。单片机的内部构造比较复杂,但是认真的分析可以发现存在一定的规律。以下是其主要的功能特点:详见下图3-1所示的引脚。P0与重量显示数码管的a-g引脚连接,同时有上拉电阻,作为位选信号输入端。P2.4-P2.7与三级表8550连接后再与四位一体的共阳极连接,作为片选信号输入端。P2.0-P2.1是人数显示数码管连接作为片选信号输入端。P1.0是蜂鸣器报警电路的信号输入端,P1.1是声光报警电路LED灯信号输入端。P1.2-P1.6是按键输入端。P3.2-P3.2是称重芯片信号输入端,P3.5-P3.6是对射管信号输入端,P3.7是控制车辆点火的信号端。图

18、3-1 客车防超载智能化控制系统中单片机STC89C52的引脚图3.1.2 最小系统电路设计在客车防超载智能化控制系统当中,最小的系统单元就是单片机STC89C52,这是整个系统运行的核心。该型号的单片机有着低功耗、易开发、抗干扰等特点,与本系统的设计与运用有着较高的吻合度。该装置单片机控制电路设计包含复位电路和时钟振荡电路,前者的引脚和单片机的9号引脚相连接,后者的两个引脚和单片机的18和19号引脚相连接6。这里的两条电路在整个系统中是最小的。STC89C52的最小系统内部是有可擦除可编程的寄存器,这种芯片运行比较可靠。同时对开发者的要求不高,能够自由地对程序进行编程,而且还有着较好的扩展性

19、特征,可以进行手动复位操作。而手动复位最大的好处就是能够在问题发生的时候以人工的方式来进行复位,进而有效地清除系统中所出现的错误信息。在对单片机进行复位操作时,单片机会被接通电源,此时复位引脚上会有高电平产生,详见图3-2所示。图3-2 单片机系统中的电路引脚结构图3.2 人数监测系统的电路设计3.2.1 F3红外对管介绍本系统设计时有两路红外采集电路。分别记为1路和2路。当有人员进出的时候,红外采集电路会对人员的数量信息进行感知,每当有一人走进客车,此时系统中的计数也会随之增加1。此时如果有人从2路移动到1路并经过,系统则会自动做出判断有一个人下车,相应的累计数据将会被减去1。客车人数监测系

20、统中的红外监控电路共有两种不同模式,相应装配的元器件也不同,其中一个是用于红外线的发射,另一个则是接受红外信号。发射装置主要是通过红外发射管发出信号,主要由红外发光二极管构成一个发光体矩阵,其使用的材质是对红外线发射效率比较高的PN结,电流通过正向偏压注入到PN结发出红外光线,温度系数为正,此时电流和温度的关系是一个正相当关系,而LED红外灯的功率大小取决于电路当中的电流大小,当电流超出一定的限值时,红外灯的发射功率会出现递减趋势7。红外接收装置主要是由红外接收管组合而成,其所起到的作用和光敏接收管的作用是一样的,但它与光敏接收管所不同的是受到外界光线的干扰比较小,感光的面积却很大,所以在系统

21、当中使用该装置可以提高系统的灵敏度,接收装置中的红外接收管通常只感知红外光线,属于光敏二极管的范畴。详见如3-3所示。图3-3 核心控制系统中的红外对射管F33.2.1 人数监测系统电路的设计在本设计当中我们主要用红外对管F3来对上下车的人员数量进行监控。该电路的设计主要是依据了红外接收管发射出红外光线,接收管接收红外信号的工作原理,当接收装置在接受红外信号的时候,电路中的阻值会随之下降,而当红外光没有被接收装置所接受时,电路的阻值则会上升,依据电路中电阻的上升和下降这一规律,用电压比较器和基准电压进行相互间的对比,如果有红外光线照射的时候,接收管的电阻会减小,在串联的电路当中此时的电压值随之

22、上升,所输出的电平也即是高电平8。在没有发出红外线进行照射时,电路的电阻会保持在一个比较大的状态,此时电路中所输出的是低电平,而这样的一个电压的变化则成为了外部计数电平的计数信号,单片机系统会根据这一数据的变化来对人员的数量进行计算,接着将计算的结果传递到显示驱动器当中将人数显示出来。在F3红外对射管中,A和B两个点上对应着使用单片机的P36和P35这两个端口。具体原理如下:在有人从B点走向A点的时候,此时红外对射管的电路中电平发生变化,程序会依据电平的变化来判断是否有人数的增加,反之则判断为人数减少。图3-4 客车超载智能化控制系统中对人数进行控制的电路图3.3 客车称重硬件电路设计3.3.

23、1 HX711芯片介绍对客车的重量进行称量主要使用的是称重传感器HX711,这是一款精度比较高的传感器,被设计成为一个24位的A/D转换芯片。在这一芯片当中将稳压电源和振荡时钟集成在了一起,在电路中与其他一些外围的电路进行连接,进而形成一个集成度比较高的芯片组,运行中该芯片组能够拥有很高的相应速度,同时还对外部干扰有着较强的抵抗能力。芯片组的引脚及相应的功能见下图3-5中所示。图3-5 称重系统芯片HX711的引脚结构与功能3.3.1 客车称重硬件电路设计该芯片内部集成了多种电路,可以直接连接到核心控制单片机上单独使用,其中就包含了稳压电源和晶振电路。在系统设计中使用这一芯片能够将电源的需求进

24、行降低,不需要再外接其他的模拟电源,并且在抗干扰能力和系统稳定性方面都有着较好的表现9。具体电路的设计见下图3-6所示。从图中可以看到HX711芯片的2和3引脚与单片机的P33和P32引脚连接,为了提高数据传输的稳定性,增加了两个4.7K的电阻。图3-6 客车称重系统的电路设计图3.4 LED显示硬件电路设计3.4.1 数码管介绍LED数码管主要是将各段的现实进行集成,进而在一个显示屏上进行现实的设备。在系统设计当中我们常见的LED数码管主要有着两种不同的类型,分别是共阳极和共阴极数码管,本文采用的是共阳极,详见下图3-7所示。图3-7 智能客车防超载控制系统数码管实物图3.3.2 LED显示

25、硬件电路设计在共阳极LED数码显示管电路设计当中,要想让称重的数据最终在数码管中显示,本设计选用了四个共阳极的8550三极管,分别为K1、K2、K3、K4,这四个三极管与单片机的P24、P25、P26、P27引脚对应连接,在进行位选的时候经过单片机中的程序来实现10。在单片机的P0接口上有八位字节与其相连,可以显示不同字节的数字,具体显示电路的设计见下图3-8 。图3-8 客车称重系统的信息显示电路设计结构图在客车超载智能化控制系统当中,另一个数值的显示则是人数的变化,在这个电路中同样适用了共阳极LED数码管,主要由两个8550三极管构成,在选位时三极管的引脚EW1、EW2分别与单片机的P21

26、与P22进行连接。在单片机P0引脚上接入的是一个八位字节,同样通过单片机程序来对相关的数字信息进不同字节的显示,其电路设计的结构图见下图3-9 。图3-9 显示重量数据信息模块的电路设计3.5 按键硬件电路设计3.5.1 按键介绍在系统设计当中,人与系统之间的交互需要通过键盘来实现。从本系统的控制部分软件设计方面进行分析,不能只进行键盘的扫描,要对一些问题进行及时的解决,不然就会导致一些问题的产生。下图3-10当中就是一个客车防超载智能化控制系统中的按键实物图片。图3-10 根据人数与重量进行系统控制的按键3.5.1 按键硬件电路设计由于本设计按键所需不多,加上复位按钮一共6个按钮。而每一个按

27、钮都与单片机上的单独接口相对应,也即是从S02到S06这六个按钮分别对应了P1.2到P1.6的单片机引脚接口,当相应位置上的按键被按下,则会实现与该按键相对应的功能,最终来依据客车中的人数和车辆荷载的重量限制对系统进行控制。各按钮开关说明:按钮开关S02:用来校准称重,实现校准的增加;按钮开关S03:用来校准称重,实现校准的减少;按钮开关S04:设置模式。在此系统中共设定了人数和重量两种上限设定的调整模式。按一下表示进入对称重的限值进行设定,再次按下1次,进入人数上限值调整模式。按钮开关S05:在称重上限调整模式中,增加重量上限值;而在对人数上限数值进行设定的模式下,可以来设置客车中限载的人数

28、上限。按钮开关S06:在称重上限调整模式中,减少重量上限值;切换到人数上限调整模式状态,则是对人数减少的数值进行的设定。整个系统中的人数与称重限值设定电路如下图3-9中所示。图3-11 对客车超载进行按键控制的电路设计3.6 声光报警硬件电路设计当智能客车防超载控制系统人数或者重量超过报警上限值时,此时单片机的P10的引脚输出低电平,蜂鸣器才会被导通11。除此之外,单片机的P11引脚还与LED进行了连接,此时如果再引脚上所发出的电平是低,则LED等会自动亮起。最终实现声光报警功能。如图3-12是智能客车防超载控制系统按报警电路。图3-11 在声光报警系统中的电路设计3.7 硬件电路的控制设计在

29、对系统中硬件进行控制的电路设计主要通过继电器来实现。将继电器与元器件进行连接的时候,在他们之间接入一个电阻来进行滤波,在单片机接入的电路中则加入一个8550三极管来进行控制,当引脚P37处有高电平输出的时候,此时的继电器会处于断开状态,反之为低电平的时候则在VCC于GND两个端口间的电路被接通,继电器则进入到工作的状态之中12。也就是说,在客车车内荷载的人数达到设定的数值时,继电器会停止工作,从而让客车的打火功能被限制,在人数小于设定的数值则继电器处于闭合的状态,不印象客车的正常发动。具体电路的结构设计见下图3-12所示。图3-12 通过继电器实现对硬件的控制其电路设计3.8 电源电路设计在单

30、片机STC89C52单片机系统当中,同样需要增加一个+5伏的电源来使电路处于正常工作的状态,因此本设计在电路当中使用了5伏的供电接口来进行电源的输入。3脚接地,1脚实际是VCC(电源)。详见图3-13客车防超载智能化控制系统中的电源电路设计图示。图3-13 防超载系统中电源电路的设计图示4 客车防超载智能控制程序设计4.1 主程序设计智能客车防超载控制系统程序设计的各个子程序有客车人数监测、称重监测、按键、LED显示、继电器开关点后、声光报警等子程序的设计13。而每一个子程序均通过电路与系统相连,从而实现最终的智能化控制,具体设计的主体结构如图4-1所示。首先开机自检eeprom初始化,同时完

31、成中断初始化,开中断后进入while(1)循环程序。接着系统会自动判断moden_flag=0,在这一状态下说明系统处于正常的工作状态(这里的检测主要是鱼调整状态相区别),然后在继续对FlagTest定时进行判断,当其等于1的时候,执行称重Get_Weight()函数,然后将FlagTest归零,同时在LED数码管显示测得的重量,称重程序执行完毕之后系统会将所称量的重量与按键输入的监测数值函数KeyPress()进行检测,两者之间如果实际重量超出了200克的时候,声光报警系统会发出光亮,同时警报响起,此时继电器的电路被接通,客车的点火装置不能顺利打火。反之,称重的结果在输入的限值以内,系统进入

32、到对人数的监测,同样,在判定人数超出了5人的时候报警系统工作,出发继电器进入到工作状态,控制客车的打火功能。如果没有超出额定人数,人数的多少货在LED中被显示出来,最后在进行按键的监测,等待程序的终止。图4-1 客车防超载智能控制主程序设计结构图核心代码程序如下:void main() init_eeprom(); /开始初始化保存的数据 EA = 0; / TIM2Inital(); Timer0_Init(); /初中始化完成,开断 EA = 1; Get_Maopi(); jdq=0;while(1)/每0.5秒称重一次/ jdq=1; if(moden_flag=0)if (FlagT

33、est=1)Get_Weight();/获取重量FlagTest = 0;Display_Weight(Weight_Shiwu); /显示重量KeyPress();if(Weight_Shiwu>big_num&&Weight_Shiwu<100000)/默认大于200 报警 Buzzer =0; LED=0; jdq=1; else if(people>Set_people_H) /人数默认大于5 报警 Buzzer =0; LED=0; jdq=1; else /否则解除报警 Buzzer =1; LED=1; jdq=0; jishu(); /记数人数

34、 Display_people(people);/显示人数 Key_Check(); /按键 4.2 子程序设计4.2.1 人数监测程序客车人数检测子程序设计的核心主要是红外对射管程序,即jishu()函数,其中DQ1是对射管B定义使用单片机P35端口,DQ2是对射管A定义使用单片机P36端口,jishu()函数该函数是人员计数子函数,当从对射管的B点到A点之间有人经过的时候,人数的数值将会增加1,反过来当从A点向B点有人经过,表示人数减少114。具体过程如下:当判断DQ1=0时,此时要延时delay(5),然后再次判断DQ1=0,取DQ1的状态flag=1,此时的对射管B将处于工作的状态,也

35、即是对射管F3=1,接着系统将会对while(!DQ1)程序进行执行,若不加delay(5)和while(!DQ1),显示进出屋人数时会出错;同理DQ2=0过程也类似。当if(f3!=0)的数值为真的时候,程序中将对if(flag1=1&&f3=2)的函数执行计算,如果此时有人从对射管B处经过,flag1的状态则会被确定,接着f3=2,说明人是进屋所以人员加1;随后在对函数if(flag2=1&&f3=1)执行计算,此时当有人从A点出经过,flag2的状态同样会被确定,代表着F3=1,此时系统则会判断出车上的人员减少了1。整个程序的运行流程设计见下图4-2所示。

36、图4-2 客车智能控制系统人数检测程序结构及设计流程核心代码如下:void jishu() /人员计数子函数 当人从避障传感器B走向避障传感器A时 加 1,反之减 1 if(DQ1=0)delay11(5); /类似于去抖if(DQ1=0)flag1=1; /取DQ1的状态(因为DQ1不可能一直检测到低电平)f3=1;/确定避障传感器B最终工作(有判别方向的功能 即是进入还是走出)while(!DQ1);/类似于松手检测(若不加delay(5)和while(!DQ1) 显示进出屋人数时会出错)if(DQ2=0)delay11(5);/类似于去抖if(DQ2=0)flag2=1; /取DQ2的状

37、态(因为DQ2不可能一直检测到低电平)f3=2; /确定避障传感器A最终工作(有判别方向的功能 即是进入还是走出)while(!DQ2);/类似于松手检测 if(f3!=0) if(flag1=1&&f3=2)/ 当人经过避障传感器B后flag1确定其状态,接着f3=2说明人是 进 屋 所以人员加 1 delay11(5);people+;flag1=0; /清空各个标志位flag2=0;f3=0;if(flag2=1&&f3=1)/当人经过避障传感器A后flag2确定其状态,接着f3=1说明人是 出 屋 所以人员减 1delay11(5);if(people&

38、gt;0) people-;flag1=0;/清空各个标志位flag2=0;f3=0; 4.2.2 荷载重量监测程序在对客车的荷载重量进行监测的程序当中,最为核心的关键是HX711芯片,这个芯片程序中所进行的是函数Get_Weight()的运算,同时将会执行函数HX711_Read(),当其被执行的时候,将对系统驱动进行初始化,同时程序内部将会对重量数值进行检测,然后经过Weight_Shiwu = Weight_Shiwu - Weight_Maopi;获取净重,紧接着Weight_Shiwu = (unsigned int)(float)(Weight_Shiwu*10)/GapValue

39、);计算实物的实际重量。详见下图4-3所示客车称重程序结构及设计流程。图4-3 客车称重程序结构及设计流程核心代码如下:void Get_Weight()Weight_Shiwu = HX711_Read();Weight_Shiwu = Weight_Shiwu - Weight_Maopi;/获取净重Weight_Shiwu = (unsigned int)(float)(Weight_Shiwu*10)/GapValue); /计算实物的实际重量4.2.3 LED信息显示程序客车LED显示子程序设计的有显示重量的Display_Weight()函数,有显示人数的Display_peopl

40、e()函数。前者实现过过程如下:执行P0=LEDDataWeight_Shiwu%10,然后打开位,延时,关闭显示,此时P0=LEDDataWeight_Shiwu%100/10显示个位;然后打开位,延时,关闭显示,此时P0=LEDDataWeight_Shiwu%1000/100显示十位;接着继续打开相应的数位,经过一段时候后对其进行显示,此时的百位P0=LEDDataWeight_Shiwu%10000/1000被显示出来,同时小数点位被打开,短暂等待后关闭所显示的数位,最后返回到原有的数据。后者实现过程如下:执行P0=LEDDataren_num%10显示个位,打开位,延时,关闭显示,此

41、时P0=LEDDataren_num/10显示十位,相应的数位被打开,延时后关闭,显示出相应的数值。详见下图4-4中的显示程序流程结构与设计流程。图4-4 人数与重量显示程序结构及设计流程核心代码如下:void Display_Weight(uint aa) Weight_Shiwu=aa; P0 = LEDDataWeight_Shiwu%10; /P2 = 0x7F; /打开位Delay_ms(1); /延时P2 = 0xff; /关闭显示P0=LEDDataWeight_Shiwu%100/10; /显示个位P2 = 0xBF;Delay_ms(1);P2 = 0xff; /关闭显示P0

42、 =LEDDataWeight_Shiwu%1000/100; /显示十位P2 = 0xdf;Delay_ms(1);P2 = 0xff; /关闭显示P0 =LEDDataWeight_Shiwu%10000/1000; /显示百位DIAN = 0; /显示小数点P2 = 0xef;Delay_ms(1);P2 = 0xff; /关闭显示uchar ren_num;void Display_people(uint bb) ren_num=bb; P0 = LEDDataren_num%10; /显示个位P2 = 0xFe; /打开位Delay_ms(1); /延时P2 = 0xff; /关闭显

43、示P0=LEDDataren_num/10; /显示十位P2 = 0xFd;Delay_ms(1);P2 = 0xff; /关闭显示4.2.4 按键控制程序此处分析的按键子程序是设置键、增加和减少键,即Key_Check()函数。首先判断if(!key1)是否为真,如果为真执行moden_flag+,当然Buzzer=1蜂鸣器是关闭状态,当if(moden_flag=3)时,将moden_flag归零。如果if(!key1)不为真,不执行其内部代码,而是执行下一步代码,即判断if(moden_flag=1)是否为真,如果不为真,不执行其内部代码,如果为准,则执行其内部代码。判断按键2是否按下,

44、即if(!key2)的数值是真,在按键不再抖动后如果这一数值还是为真,则表示称得的重量上线数值增加了1。判断按键3是否按下,即if(!key3)如果是真的时候,在按键静止后,如果该按键的数值还是为真,则表示称得的重量减少了1 。同样的道理,通过函数if(moden_flag=2)主要是用来对人数的上限进行的判断与设定。此处不再一一详细说明,具体过程和称重上限值的增加和减少一样。具体的电路结构以及设计流程见下图4-5所示。图4-5 客车超载预防控制的按键设计及结构流程核心代码如下:void KeyPress()/if(ROW2=0) /加Display_Weight(Weight_Shiwu);

45、if(ROW2=0)while(!ROW2)key_press_num+;if(key_press_num>=100)key_press_num=0;while(!ROW2)if(GapValue<10000)GapValue+=10;Buzzer=0;for(p=0;p<2;p+)Display_Weight(Weight_Shiwu);Buzzer=1;for(p=0;p<2;p+)Display_Weight(Weight_Shiwu);Get_Weight();Display_Weight(Weight_Shiwu);Delay_ms(8);if(key_pre

46、ss_num!=0)key_press_num=0;if(GapValue<10000)GapValue+;Buzzer=0;for(p=0;p<10;p+)Display_Weight(Weight_Shiwu);Buzzer=1;write_eeprom();if(ROW3=0) /减Display_Weight(Weight_Shiwu);if(ROW3=0)while(!ROW3)key_press_num+;if(key_press_num>=100)key_press_num=0;while(!ROW3)if(GapValue>1)GapValue-=10;

47、Buzzer=0;for(p=0;p<2;p+)Display_Weight(Weight_Shiwu);Buzzer=1;for(p=0;p<2;p+)Display_Weight(Weight_Shiwu);Get_Weight();Display_Weight(Weight_Shiwu);Delay_ms(8);if(key_press_num!=0)key_press_num=0;if(GapValue>1)GapValue-;Buzzer=0;for(p=0;p<10;p+)Display_Weight(Weight_Shiwu);Buzzer=1;write

48、_eeprom(); /保存数?4.2.5 报警与锁定程序在客车防超载智能化控制系统当中,对报警系统与锁定程序的设计上主要有两种不同的状态设计15。首先是在称重的数值超过按键设定限制200克的时候,此时声光报警模块将会被触发,进入到工作的状态,电路中的继电器开始工作,客车的打火开关被锁定,不能打火。其次是在对人数进行监测的时候,如果发现客车上的人数大于按键设定的数值5的时候,声光报警模块同样被触发,电路中的继电器开始工作,客车的大火开关将会被锁定。在对这两个监测程序进行反复检测并通过单片机系统的判断,只有在人数与荷载的重量均在限值以内时,警报才被解除,继电器的触头会闭合,从而客车能够进入到正常

49、的运转状态。核心代码如下:if(moden_flag=0)if (FlagTest=1)Get_Weight();/获取重量FlagTest = 0;Display_Weight(Weight_Shiwu); /显示重量KeyPress();if(Weight_Shiwu>big_num&&Weight_Shiwu<100000)/默认大于200 报警 Buzzer =0; LED=0; jdq=1; else if(people>Set_people_H) /人数默认大于5 报警 Buzzer =0; LED=0; jdq=1; else /否则解除报警 B

50、uzzer =1; LED=1; jdq=0; 5防客车超载智能化控制系统程序调试5.1 LED数码管显示功能调试在LED数码显示模块当中,系统所使用的分别是由一个四位一体与一个两位一体的共阳极数码管,四位一体的LED数码管用于显示系统监测到的重量,两位一体数码管所显示的是客车荷载的人数16。在接通电源之后,这两个显示模块所显示出的数值均为0,表示系统的初始值正常。详见5-1所示为智能客车防超载控制系统LED数码管显示功能调试。图5-1 重量与人数监测LED信息显示模块5.2 称功能重模块调试在对称重功能模块进行调试的时候,首先准备一个标准质量的砝码,砝码重量为50克,那么在LED重量显示中将

51、会出现0050这个数值,表示此时系统监测到的重量为50克。详见下图5-2客车荷载重量监测显示模块。图5-2 客车荷载重量监测显示模块5.3 人数监测功能模块调试在智能监控系统接通电源之后,系统默认的车内人数是零,用一个木块作为上车的乘客进行模拟。在电路板的右侧是红外对射管。从下面的那对(下管)经过到上面的那对(上管),此时代表上车(人数加1);从上面的那对(上管)经过到上下面的那对(下管),此时代表下车(人数减1)。如图5-3(a)、(b)所示为智能客车防超载控制系统检测上下车人数功能模块调试。 图5-3(a) 上车人数监测模块 图5-3(b) 下车人数监测模块图5-3 客车防超载智能控制系统

52、人数监测模块5.4 按键功能模块调试在按键功能模块的电路板上我们可以看到有两排不同的按键,位于第一排的两个是对称重模块进行矫正的按键。第一排第一个是矫正加,第二个是矫正减。矫正过程中称重盘上不能放置任何东西。经过调试,第一排两个按键功能正常。在第二排上,首先第一个功能按键被按下一次之后,表示该状态下可以对称重的限制进行设定,随后可以通过第二个按键将称重的上限数值向上增加,通过第三个按键可以将称重的上限数值进行下调,这里所设定的数值将会直接与报警模块相关联,超出限定数后自动触发警报。再次按下第一个按键,此时调整进入客车的人数上限值,也可以通过第二、三个按键调整人数上限值。如图5-4(a)、(b)是智能客车防超载控制系统按键功能模块调试。 图5-4(a) 客车荷载重量上限报警模块 图5-4(b) 客车荷载人数上限报警模块图5-4 客车荷载重量及人数上限按键控制模块5.5 称重监测模块对继电器、报警

温馨提示

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

评论

0/150

提交评论