




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机的客车超载监控系统的设计2010年6月摘 要本文设计了一个客车超载监控系统,以MCS-51单片机为核心,利用反射式红外传感器、方向识别电路、报警电路、锁定电路设计,能够通过键盘手动设置乘客人数的上限值,并用LED显示器显示车内的实时乘客人数。当客车内人数超载时,系统发出声光报警,并通过继电器切断客车的电子启动装置,从而将汽车锁定,使之无法行驶。当超载解除后,声光报警也相应的解除,客车锁定解除,可以正常运行。本设计共分两部分,硬件系统设计和软件系统设计。硬件部分利用红外传感器和方向识别电路将乘客的上、下车情况进行检测和判断并输入单片机系统。经过单片机系统将处理的数据送LED显示,声光报
2、警电路由蜂鸣器和发光二极管组成,用继电器实现对客车启动装置的锁定。软件部分用汇编语言进行编程,采用模块化设计思想。该系统通过调试后,能够较好的完成客车超载的预警提示,并对超载情况进行相关控制。关键词:客车;超载;监控;单片机AbstractThis paper illustrates the design of a carriage overload monitoring systerm.MCS-51 MCU as core is used to design hardware circuit and software.In this subject we useensors,identify
3、 circuit and alarmcircuit latch circuit to design a carriage overload monitoring systerm that enables the keyboard to manually set limits on the number of passengers and can use LED at the same time to display the number of passengers inside.If the passenger overloading,the sound and light alarm sys
4、term cuts off the bus through the electronic launch devices.By doing this,the overload monitoring systerm can lock the car,so that the car cant be started.When the overload is canceled,the sound and light warning is canceled. The bus is also unlocked and can be operated normally.The design is divide
5、d into two parts,hardware systerm design and software systerm design.The hardware systerms part uses and identify circuit to detect and judge the situation whether the passengers are getting on or off the bus.This systerm can display the number of passengers on LED. The sound and light alarm circuit
6、 is composed of buzzer and LEDs,the lock function of the buss launch devices achieves by using the relay unit.Assemble language is used in the software system and modularization design idea is adopted.The monitor system can complete an alarm beforehand for overload, meanwhile the mut uality cont rol
7、 will be adopted.Key words: carriage;overloading;monitoring; SCM(single chip micro computer)目 录第1章 绪论11.1立题的意义11.2课题研究任务及目标31.3课题主要内容3第2章 客车超载监控系统的方案论证42.1系统的原理42.2系统的组成4第3章 客车超载监控系统的硬件设计63.1客车超载监控系统的检测电路6传感器的选择6反射式红外传感器检测原理7方向识别电路的设计83.2单片机最小系统的设计11单片机的选择11单片机外围电路的设计133.3显示电路的设计153.4键盘电路的设计173.5报警电
8、路的设计183.6客车锁定电路的设计19第4章 客车超载监控系统的软件设计214.1客车超载监控系统的软件设计方案214.2 T0、T1中断计数程序的设计234.3按键子程序的设计244.4报警与锁定子程序的设计254.5显示子程序的设计26第5章 系统调试与分析275.1系统的硬件调试275.2系统的软件调试285.3调试故障及原因分析28结论30社会经济效益分析31致 谢32参考文献33附录I 客车超载监控系统硬件系统原理图34附录 客车超载监控系统程序清单35附录III 客车超载监控系统硬件实物图41附录IV 客车超载监控系统元器件清单42第1章 绪论1.1立题的意义随着生活水平的不断提
9、高,人们外出打工、探亲、旅游的人数越来越多,尤其是节假日,而与此相关的公路客运(长途客车,旅游客车等)的运力却没有相应增加,致使超员现象频频出现。目前,它已成为一个严重影响交通运输环境和社会经济可持续发展的社会问题。客车超载对国家的公路设施和客运市场造成了不良的影响,也影响车辆本身和车辆的驾驶、控制,容易引发事故,我们都知道车辆超载运输并且长期处于超负荷状态,就会导致车辆的制动装置和操作系统等安全性能迅速下降,表现为轮胎变形爆胎,刹车失灵,转向器轻飘抖动,钢板弹簧折断,半轴断裂等等。而客车一旦发生事故,给国家和百姓带来重大的经济损失和感情伤害。目前,国家虽然出台了一系列的政策法规来制止客车超载
10、,各地政府也制定了相关的制度来对客车超载进行管理,在一定程度上减少了客车超载现象,但在节假日等客流高峰期,超载现象还是屡禁不止。在采取行政监督管理的同时,通过科学技术的手段来消除客车超载的现象也有着极其重要的意义和实用性。单片机作为微型计算机的一个很重要的分支,是将CPU、存储器、总线、I/O接线口电路集成在一片超大规模集成电路芯片上。自问世以来,以其极高的性价比,受到人们的重视和关注,应用很广,发展也很快。因此它广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:(1)在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵
11、活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。(2)在工业控制中的应用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。(3)在家用电器中的应用现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。(4)在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在
12、计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话、集群移动通信、无线电对讲机等。(5)单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等。因此单片机的出现应用于监测系统后,智能化的监测系统的模型也就基本具备了。单片机以其兼容性强,软件、硬件应用设计资源资料丰富,以及极高的性能价格比受到人们的重视和关注。单片机以及外围芯片的不断发展促进了超载、超量监测系统的发展。以单片机为核
13、心的智其体积小,抗干扰能力强,对环境的要求不高,价格低廉,可靠性高,开发较为容易,并可获得较高的经济效益等特点,很快占有了监控器领域的市场,所以其应用很广,发展很快。因此本课题正是基于此点,采用单片机为核心的智能以对客车内乘客人数的统计,并通过LED显示器实时显示。当客车出现超载时,系统进行声光报警。同时通过继电器关闭客车的启动装置来阻止超载客车的运行。反之,1.2课题研究任务及目标本课题主要任务是以MCS-51单片机为控制核心,能够自动检测车内乘客的人数并用LED即时显示,通过键盘设置超载人数的上限值,一旦客车超载时能进行声光报警,同时锁定客车的启动装置。它的硬件电路部分主要包括检测电路(红
14、外传感器和方向识别电路)、键盘电路、显示电路、控制电路和报警电路五大部分。其中,主要研究内容为:红外检测技术、运动方向识别电路、LED数码管的显示、单片机控制系统等。该设计技术指标如下:(1)能够完成车厢内人数的显示,并用LED即时显示(2)超载人数的上限值可以通过键盘设置(默认人数为30)(3)客车一旦超载时将发出声光报警信号,并关闭汽车的启动装置。(4)光报警信号要实现1S闪烁功能,声音报警电路要产生1kHz音频信号驱动蜂鸣器完成。1.3课题主要内容本文主要介绍了客车超载监控系统的软硬件设计思想、各功能的实现方法、相应的电路原理、以及各元器件性能型号的选择,内容主要分为三部分:第一部分是硬
15、件和软件的设计,包括硬件电路方案的设计、元器件的选择等,具体的硬件电路包括检测电路(传感器和方向识别电路),AT89C51单片机的最小系统电路、键盘输入电路、LED显示电路、声光报警电路、锁定电路等。软件设计采用模块化的思想,逐步完善设计功能,初步绘制出电路图和程序的流程图。第二部分是软、硬件仿真,程序采用汇编语言编写,通过Keil软件进行编译调试,硬件电路用protues软件绘制。程序调好后,利用Keil软件生成单片机能识别的后缀为“.hex”的机器码文件,然后把程序下载到protues电路图中的单片机芯片,运行程序和protues电路(即protues和Keil的联调)来实现设计要求的各功
16、能。 第三部分是在实验板上焊接硬件电路的各个模块,每一部分单独调试,在各个部分调试成功后,联调整个硬件电路,全部调通后用烧录器把程序烧到AT89C51单片机里,上电后一切运行正常,系统实现预期的目标。第2章 客车超载监控系统的方案论证2.1系统的原理本课题所设计的客车超载监控系统主要是避免因人数超载而引发的交通事故,所以本系统应该具备对乘客上、下车动作的智能检测,通过单片机来处理传感器获取的信息,即自动统计客车内的具体人数,能用LED进行实时显示。当客车内的实际人数超过设置值的上限值时,系统将自动进行声光报警,同时客车的启动装置也被锁定,这样可以有效地阻止超载情况的发生。本系统中智能监控的方法
17、显得尤为重要。其中,智能监控包括两部分:第一是检测模块部分。通过E3F-DS30C4反射式红外传感器和双D触发器对乘客的上、下车动作进行检测和判断。第二是数据统计部分。由单片机对接收的脉冲信号进行相应的加减计数,即完成统计乘客人数的功能。只有对车内人数准确的监控,才能判断出是否超载,来避免交通事故的发生,从而达到防患于未然的现实意义。2.2系统的组成系统结构框图如图2.1所示。主要包括:检测电路(红外传感器和方向识别电路)、键盘电路、单片机系统、LED显示电路、继电器控制电路、报警电路六部分。红外传感器(1)红外传感器(2)双D触发器组成的互锁电路 单片机数码管显示电路继电器控制电路声光报警电
18、路键盘输入图2.1 系统的总体设计框图系统各部分的基本功能简介如下:(1)反射式红外传感器(2)方向识别电路方向识别电路是由双D触发器组成的双稳态电路,它可以通过自身的逻辑电路,来实现辨向的功能。方向识别电路与单片机的T0 、T1口相连,当乘客上车时会产生一个相应的负脉冲信号,把其接入T0端作为乘客上车动作信号的输入端,从而实现辨别乘客运动方向的功能。同理,当乘客下车时也会产生一个相应的负脉冲信号,把其接入T1端,即T1端作为乘客下车动作信号的输入端。社会UCHU 55555555555555555555555555555555555555555555555555555555555555555
19、5555555555555555555555555555555555555555555(3)单片机系统单片机是本系统的核心元件,它实现了对传感器所采集的信号的判断和处理,控制硬件部分的键盘电路、显示电路、报警电路从而完成客车超载的智能监控。(4)键盘键盘采用4个独立式的按键来手动设置客车乘客人数的上限值。(5)LED显示电路该电路用两位共阴极LED数码管来即时显示,其系统开始时显示预置上限人数,当系统进入监控阶段则显示客车内乘客的实际人数。(6)继电器在该系统中用继电器来模拟客车的启动装置。若继电器断开,则代表客车已被锁定无法开启;若继电器闭合则代表客车恢复正常的启动,可以运行。(7)报警电路
20、报警电路由蜂鸣器和发光二极管组成,当接收到单片机的命令时进行相应的声光报警和解除报警。第3章 客车超载监控系统的硬件设计系统的硬件设计是该系统设计成功与否的基础。按照系统设计的总体方案,本设计采用模块化的设计思想。硬件设计主要完成:检测电路、单片机最小系统电路、LED显示电路、继电器控制电路、声光报警电路、键盘输入电路。3.1客车超载监控系统的检测电路3.1.1传感器的选择表3.1 传感器性能比较3.1.2反射式红外传感器检测原理3.1.3方向识别电路的设计在该系统的设计中,传感器单元的功能是检测乘客经过车门的动作信号,但是对乘客的具体上、下车的动作不能作出判断,因而采用方向识别电路对传感器的
21、输出信号进行区分、判断就成为了一个必要的环节。外传感器安装在客车车门附近,其具体安置方法如图3.3所示上车方向车 门传感器1传感器2下车方向车厢内 车厢外图3.3 检测传感器安放图 R1 /Q1CLK1 Q1D1 S1D2 S2 Q2CLK2 /Q2 R2传感器1传感器2INT1INT074F0474F0474F0474F04+5V本系统对方向识别电路的设计采用了双D触发器,实现了对乘客方向的识别。方向识别电路如图3.4所示 图3.4 辨别方向电路图 如图3.4所示,将D触发器的端与端连接起来,这样D触发器的特征方程为。当时钟信号CLK=0时,D触发器的端和端保持逻辑状态不变;当CLK=1时,
22、即D触发器时钟信号的上升沿到达时,端和端的状态要进行翻转,转变成相反的逻辑状态。其特性表如表3.2所示表3.2 边沿触发器特性表CRSD 01010101 11001111当没有乘客经过车门时,传感器1、2均输出为高电平,经74F04 反相处理后,输出为低电平。触发器的复位端和置位端为低电平有效,。在没有乘客上车时,两个D触发器的时钟信号CLK1、CLK2均等于0, =0,=0,D1=0,D2=0。如图3.3所示,当有乘客上车时,乘客先经过1号传感器,此时传感器1输出信号为低电平,经第一个74F04后变为高电平,CLK1=0,CLK2=1;D1=0,D2=1;=0,=1,即的状态发生翻转。当乘
23、客离开1号传感器时,由于此时CLK1=0, D1=0,R1=1,D1触发器的和端状态将会保持不变,CLK2=0, R2=1,=1也保持为高电平状态。当乘客进入2号传感器的检测范围时,传感器2输出信号为低电平,这样CLK1=1,CLK2=0;D1=1,D2=1;R1=1,R2=0;和逻辑状态要进行翻转=0,的状态仍保持不变。在上车这一过程中,只有和状态发生了变化,从低电平变为高电平再变为低电平。这样就产生了一个可由单片机T0端识别的脉冲信号。根据本电路的设计,T0端为乘客上车动作信号的输入端,从而实现了辨别乘客运动方向的功能。同理,当乘客下车时也会产生一个相应的脉冲信号接入T1端,在本设计中T1
24、端是乘客下车动作信号的输入端。3.2单片机最小系统的设计单片机的选择单片机模块主要用来实现对上、下车人数的加、减计数。单片机模块在设计中,考虑到系统中的程序量和数据量较少,需要I/O口资源也相对较少,AT2MEL公司的AT89C51芯片的资源就能很好的满足系统的需求,所以在系统设计中采用了MCS-51系列单片机AT89C51芯片的最小系统来实现。我们选用ATMEL公司89系类的标准型单片机AT89C51,AT89C51是一种低功耗、高性能的8位单片机,片内带有一个4K字节的FLASH可编程可擦除只读存储器(EPROM),它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器(NURAM)技
25、术,而且其输出引脚和指令系统都与MCS-51兼容。另外,AT89C51还具有MCS-51系类单片机的所有优点。128*8位内部RAM,32位双向输入输出线,两个十六位定时/计时器,5个中断源,两级中断优先级,一个全双工异步串行口及时钟发生器等。片内的FLASH存储器允许在系统内改编程序或用常规的非易失性存储器来编程。因此AT89C51是一种功能强、灵活性高且价格合理的单片机,它可方便地应用在各个领域。89C51引脚图如图3.5所示AT89C51图3.5 89C51芯片引脚图下面介绍89C51的主要引脚功能如下:(1)VCC(40):电源+5V;(2)VSS(20):接地;(3)P0口(32-3
26、9):双向I/O口,既可作低8位地址和8位数据总线使用,也可作普通I/O口;(4)P3口(10-17):多用途端口,既可作普通I/O口,也可按每位定义的第二功能操作;(5)P2口(21-28):既可作高8位地址总线,也可作普通I/O口;(6)P1口(1-8): 准双向通用I/O口;(7)PSEN:内外程序存储器选择线;(8)XTAL1(19)和XTAL2(18):外接石英晶体振荡器;(9)RST(9):复位信号输入端,高电平有效;(10)ALE/PROG(30):地址锁存允许信号;(11)(31):内、外程序存储器控制端;由于本系统需要用到单片机内部的计数器,所以在这里有必要介绍定时/计数器的
27、工作原理,定时/计数器的结构图如图3.6所示图3.6 定时/计数器的结构原理图从定时/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当定时/计数器
28、用作计数器时,计数脉冲来自相应的外部输入引脚T0或T1。当输入信号产生由1到0的负跳变时,计数器的值加1。每个机器周期的S5P2期间,对外部输入引脚进行采样。如在第一个机器周期中采得的值为1,而在下一个周期中采得的值为0,则在紧跟着的再下一个周期S3P1的期间,计数器加1。由于确认一次负跳变要花两个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。本课题选用11.0592MHz频率的晶体,允许输入的脉冲频率为500MHz。由于本课题所利用的是计数器T0、T1,并且是工作在工作方式2。所以以下重点介绍工作方式2的特点。工作方式2是自动恢单片机外围电路的设计由
29、单片机硬件设计原理可知:第一,尽可能采用功能强的芯片,以简化电路;第二,留有余地。在设计硬件电路时,要考虑到将来修改、扩展的方便。(1)晶振电路89C51单片机的时钟可以两种方式产生,一种是内部方式,利用芯片内部的振荡电路;另一种方式为外部方式。本系统采用内部时钟电路。单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成一个自激振荡器。图3.7是89C51片内振荡器电路。89C51虽然有内部振荡电路,但要形成时钟,必须外接元件,图3.8是内部时钟方式的电路。外接晶体(在频率稳定性不高,
30、而尽可能要求廉价时,可选用陶瓷谐振器)以及电容CX1和CX2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡频率的高低,晶体可在1.2MHz12MHz之间任选,电容CX1和CX2的典型值在20pF100pF之间选择,在本课题中pF。晶体的振荡频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。为了提高温度稳定性,应采用温度稳定性能好的NPO高频电容。在本课题中晶振采用11.0592MHz。图3.7 89C51片内振荡器电路图 图3.8 内部时钟方式电路图(2)复位电路89C51的复位输入引脚RST(即RESET)为89C51提供了初始
31、化的手段。有了它可以使程序从指定处开始执行,即从程序存储器中的0000H地址单元开始执行程序。在89C51的时钟电路工作后,只要在RST引脚上出现两个机器周期以上的高电平时,单片机内部则初始复位。只要RST保持高电平,则89C51循环复位。只有当RST由高电平变成低电平以后,89C51才从0000H地址开始执行程序。复位电路如图3.9所示GND89C51RSTCR1R2VCC 图3.9 单片机复位电路图本系统采用的复位电路其复位可分为两种方式,即上电复位和手动按键复位。后,P0到P3并行I/O口全为高电平,其它寄存器全部清零,只有SBUF寄存器状态不确定。3.3显示电路的设计显示电路主要由74
32、07集电极开路六正相高压驱动器和两位共阴极LED构成,其中7407主要增加驱动LED的能力,两位LED采用ARKSR420561K型连体共阴极数码管。本设计以P0作为码段输出口,P2口的前两位作为位选口,以动态方式实时显示数据。LED即发光二极管,它是由某些特殊的半导体材料制作成的PN结,由于参杂浓度很高,当正向偏置时,会产生大量的电子空穴,把多余的能释放变为光能。LED显示器具有工作电压低、体积小、寿命长(约十万小时)、响应速度快,颜色丰富等特点,是智能仪器最常用的显示器。LED的正向工作压降一般在1.2V-2.6V,发光工作电流在5mA -20mA,发光强度基本上与正向电流成正比,故电路须
33、串联适当的限流电阻。LED显示器的发光管分别为a、b、c、d、e、f、g、dp,通过八个发光段的不同组合,可以显示09和AF等16个字母数字,从而可以实现十六进制整数和小数的显示。控制不同组合的二极管导通,就能显示出各种字符。LED显示器有共阳极和共阴极两种。LED显示器有单个、七段、八段和点阵式等几种类型,本次设计采用八段式共阴极LED,它的结构和外型图如图3.10所示。图3.10 结构外形图共阴极LED显示器的发光二极管的阴极连接在一起,通常叫做共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。通常将控制发光二极管发光的8位字节数据编码称为LED显示的段选码,要
34、构成多位LED显示时,除需要段选线外,还需要位选线,以确定段选码对应的显示位,位选线控制第几个LED显示,段选线则控制显示字符。 本课题所设计的显示部分电路图如图3.11所示P1.0 VCCP1.1 P0.0P1.3 P0.2P1.4 P0.3P1.5 P0.4P1.6 P0.5P1.7 P0.6P0.7RST /EA ALEP3.0 /PSENP3.1 P2.7P3.2 P2.6 P3.3 P2.5P3.4 P2.4P3.5 P2.3P3.6 P2.2P3.7 P2.1XTAL2 P2.0XTAL1VSS5VP2.1P2.0AT89C51abcdefgdp74077407图3.11 LED显
35、示部分电路图在多位LED显示时,为了简化电路,节省I/O口,降低成本,动态显示方案具备一定的实用性,也是目前单片机数码管显示较为常用的一种显示方法。本设计采用一个两位LED动态显示,在位选线和段选线的共同作用下,可以使各个显示器显示各自的字符,当然这些字符不是同时显示的,但由于人眼存在视觉暂留,加上发光二极管的余辉效应,由于扫描的速度足够快,每位显示的间隔时间足够短,就可以给人同时显示的感觉,而不会有闪烁感,犹如同时显示一样。通过软件编程,先把所要显示的数据放入存储单元,然后把数据送入段选通对应的地址,再选通某一个LED,逐步完成两个LED的显示。3.4键盘电路的设计键盘也是微型机算机系统中最
36、常用的人机对话输入设备。在单片机应用系统中,为了控制系统的工作状态,以及向系统输入数据,应用系统应设有按键或键盘。常用的键盘接口分为独立式按键接口和矩阵式键盘接口。矩阵式键盘适用按键比较多的场合,它由行线和列线组成,按键位于行、列的交叉点上,它的特点是比较节省I/O端口;独立式按键就是各按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。因此,通过检测输入线上的电平状态可以很容易判断哪个键被按下了。键盘也有工作方式之分:分别为程序扫描方式、定时扫描方式和中断扫描方式。本设计键盘电路如3.12所示:5V10KAT89C51P1.3P1.4P1.5人数加
37、S1人数减确定人数S2S310K10K图3.12 键盘电路原理图在本系统程序设计时,从按键被识别按下之后,通过延时避开干扰信号,由于系统要求按键每按下一次,命令被执行一次,直到下一次再按下的时候,再执行一次命令,从而按键被识别出来之后,我们就可以执行这次的命令,所以要有一个等待按键释放的过程,而这个释放的过程,就是使其恢复为高电平的状态。对于按键识别的指令,本设计选择指令JB来检测按键是否为高电平,若为高电平,则按键抬起,否则继续执行程序。采用指令JNB来检测按键是否为低电平,若为低电平,则执行相应程序。考虑到客车的实际要求,客车的实际装载乘客的人数默认值设置为30人。所以本设计采用比较简单的
38、独立式按键接口电路,用两个按键设置上限值,一个为人数加设置,一个为人数减设置,按键线路如图所示。无键按下时,P1.3为高电平,有键按下时变为低电平,设置值加1,同理P1.4口作为减操作,P1.5为高电平,有键按下时变为低电平,确定设置人数。3.5报警电路的设计当客车内乘客人数超过预置数值时,超载监测系统将会发出声光报警。本课题采用蜂鸣器作为声报警的发生元件,采用红色发光二极管作为光报警的发生元件。其具体的电路图如图3.13所示。SPEAKERA1 Y1A2 Y27406RP1.0P1.1+5V图3.13 蜂鸣器报警电路当超载现象发生时,由单片机向P1.0、P1.1口发出高电平指令,经六向反相器
39、7406后,驱动蜂鸣器、发光二极管工作,调用延时子程序使蜂鸣器发出1KHZ的音频信号,发光二极管实现一秒闪烁功能。当P1.0、P1.1口为低电平时,蜂鸣器不工作发光二极管不发光,即声光报警取消。3.6客车锁定电路的设计当客车超载时,为了阻止客车超载行驶,常常采用切断客车发动机的电子点火装置的方法。本课题中采用继电器元件,通过继电器的内部开关在常闭触点和常开触点之间的切换来实现这一功能。P2.6+5V4.7K图3.14 继电器电路图本系统所采用的继电器为五脚,工作电压为+5V直流电压,将 第4章 客车超载监控系统的软件设计研制一台智能仪器是一个复杂的过程,这一过程包括分析仪表的功能要求和拟定总体
40、设计方案,确定硬件结构和软件算法,研制逻辑电路和编制程序,以及仪表的调试和性能的测试等等。软件的设计应遵循模块化设计原则,在总体概况设计的基础上进行具体的子程序设计,功能分解,模块划分,细化软件层次,优化软件结构,以达到模块功能的独立性,执行的高效性。总之,设计的程序应该达到可读性,可理解性,可维护性,有效性。4.1客车超载监控系统的软件设计方案在单片机系统程序的设计开发中,单片机是整个系统的核心部分,各个部分模块化的程序就是整个系统的组成成份。软件编写的好坏,语句运用的是否简洁直接关系单片机的工作效率。在各个模块化的程序中尽量用最少的语句做最多的事情,不让语句出现歧义,这样就可以使整个程序可
41、以在系统中更好的运行,使单片机工作效率大大的提高。下面就对本次毕业设计的软件部分作些介绍,如图4.1所示为软件总体流程图。首先是对系统的初始化,包括通过键盘手动设置乘客上限值,各个寄存器、计数器的工作方式等。子程序包括:T0、T1计数中断程序的设计、按键处理子程序、报警子程序,显示子程序。下面就其主要部分进行分析。(1)T0、T1计数中断程序是将传感器产生的脉冲信号接入计数器的T0、T1口,首先把计数的初始值设为0FFFFH,然后计数器开始计数,当T0、T1口有高低电平变化时,计数器就产生溢出中断。(2)按键处理子程序用来实现手动设置上限值。(3)显示子程序是将数据处理的结果送显示器实时显示。
42、(4)报警子程序是将统计脉冲信号的数目与所设预置数进行比较,若大于预置数则进行报警,若小于或等于预置数则解除报警。本系统软件总体流程图如图4.1所示。T0产生溢出中断?计数器人数加1T1产生溢出中断?计数器人数减1调用显示子程序是否大于超载人数?声光报警启动继电器锁定装置YNYNYN初始化键盘设置超载人数开 始解除报警解除继电器锁定图4.1 系统软件总流程图程序的初始化是对AT89C51的初始化,包括对中断计数器工作方式和计数初值的初始化,对堆栈的初始化,以及对暂存地址的分配等。在初始化结束以后,程序进入循环等待中断的环节。当发生中断时,单片机转入中断子程序进行相应的数据处理,同时还对显示子程
43、序和报警子程序进行了调用,完成实时显示和实时监控的功能。当统计数值大于预置数值时,程序执行报警和锁定指令;当统计数值小于或等于预置数值,程序解除报警、锁定指令。4.2 T0、T1中断计数程序的设计EA=0累加器A、寄存器内容入栈开中断中断处理R1+1或R1-1现场恢复开 始中断返回图4.2 中断程序流程图计采用T0、T1计数器对外部脉冲进行计数。计数器T0、T1的溢出中断标志位TF0、TF1作为外部中断请求的标志位被置1,CPU经查询后便暂时终止当前的工作,转去执行中断服务程序。所不同的是:T0计数器用做统计上车的人数,所以T0每中断一次数据寄存器内容加1;T1计数器累计的是下车的人数,所以T
44、1每中断一次数据寄存器内容减1。在每次溢出中断子程序中都调用了显示子程序和报警子程序,这样就实现了实时显示和实时监控。进入中断子程序后,硬件会自动把断点地址(16位程序计数器PC的值)压入堆栈,保护有关工作寄存器、累加器、标志位等信息,在完成中断服务程序后,恢复有关的工作寄存器、累加器、标志位内容,最后执行中断返回指令,从堆栈中自动弹出断点地址到PC,继续执行被中断的程序。 4.3按键子程序的设计开始按键电路在本设计采用独立式接口电路,由于所用按键不多,不会占用大量I/O口线,所以采用设计和结构简单的独立式按键。考虑到客车的实际要求,客车的实际装载乘客的人数应小于100,所以只用键盘设置上限值
45、。为了确保CPU对一次按按键DEC_SET=0?返 回N超载人数减1超载人数加1按键ADD_SET=0?有键闭合吗?延时10ms有键闭合吗?YNYNYYN图4.3 按键子程序流程图键动作只确认一次按键,必须消除抖动的影响,本设计采用软件延时的方法来消除按键的抖动。按键子程序流程图见图4.3所示。4.4报警与锁定子程序的设计报警与锁定子程序流程图如图4.4。该模块的主要功能是实现客车是否超载的判断,若检测值大于设置的上限值时,则进行报警,通过软件程序控制继电器动作,切断客车的电子启动装置。报警时的现象为:红色发光二极管进行闪烁,蜂鸣器发出蜂鸣声,由继电器控制的红色指示灯亮起。若检测值等于或低于所
46、设阈值则解除报警,现象为:声光报警消失,由继电器控制的红色指示灯熄灭。其中P2.6为继电器控制端口,P1.0为红色二极管报警控制端口,P1.1为蜂鸣器报警控制端口。P1.0=1,P1.1=1P2.6=1返 回YNP1.0=0,P1.1=0,P2.6=0调用延时子程序开 始车内人数值大于超载人数? 图4.4 报警与锁定子程序流程图报警与锁定子程序是一个实时比较程序,实现对超值报警与锁定的控制。将数据处理后的实时检测值与预置上限值进行比较,报警子程序用SUBB语句进行判断,即预置值减测量值,若后者大于前者则进行报警,否则消除报警。 在主程序的执行过程中,每次显示乘客人数值时都对报警子程序进行了调用
47、,从而完成了实时监控的要求。4.5显示子程序的设计显示子程序流程图如图4.5所示。返 回个位、十位分离存入30HBCD转换01H送P2口取个位段码送P0口延时02H送P2口取十位段码送P0口延时开 始 图4.5 显示子程序流程图数据处理完后,显示子程序开始工作,由于LED显示为段码的显示,所以处理后的十进制数要首先将个位十位分离再将数据存入显缓单元30H,然后位选数据送P2口,取个位段码送P0口,调用延时子程序。再将位选数据送P2口,取十位段码送P0口,再调用延时子程序。在发生中断和等待中断时,都对显示子程序进行了调用,完成了实时显示的要求。两位位选码由P2.0-P2.1控制。第5章 系统调试
48、与分析调试与分析的过程一般包括所有硬件电路的调试、程序的调试及它们的联合调试过程。一旦系统的工作总框图确定之后,电路原理图和程序的设计工作就可以迅速展开了。系统的硬件、软件的单独调试和软、硬联调是系统最后的步骤是系统特别重要的环节,因为设计和开发出的系统是否成功,功能是否完善只有在这里才能体现出来。所以为了保证设计系统能够正常工作,必须对软件和硬件部分的每一个部分进行调试和分析。本章详细的介绍了基于单片机的客车超载监控系统的硬件调试、软件调试和软、硬联调的过程,并对调试结果进行了介绍和分析。5.1系统的硬件调试本课题的硬件电路是系统的核心部分。它包括单片机的外围电路、传感器电路、方向识别电路、
49、显示电路、报警电路和继电器锁定电路等,下面主要介绍单片机最小系统电路、方向识别电路在本次设计调试的方法与过程。(1)单片机小系统的调试:按照设计好的电路图焊接好单片机的小系统,主要包括晶振电路、复位电路。上电后用万用表测量各个端口的电压情况,查看18、19晶振引脚的电压是否在2.0V左右,用示波器检测ALE口是否有固定的方波信号输出。当复位键按下时,查看RST 9引脚是否能达到3.5V以上的高电平,一切都正常后,编制一段延时亮灭的小程序,然后烧到单片机中,再重新验证一下最小系统是否全部正常工作。(2)方向识别电路的调试:按照设计好的方向识别电路图,把74LS04反相器和74LS74双D触发器安
50、插在面包上,用两个按键一端接地,另外两端代替传感器产生对应的脉冲信号,连接在方向识别电路的输入端。然后用万用表测试触发器Q1、Q2端的电平情况,调整相应的电路设计,直到实现辨向功能。此外,在硬件的焊接过程中,需要十分的仔细和认真,尽量避免虚焊、漏焊现象,并且在焊接管脚时,应把芯片取下来,再进行焊接,防止因芯片过热而烧坏。焊点较近的点位也用万用表进行检测,查看焊点是否焊接在一起,以免出现混连的现象。这样逐一检查,容易发现问题排查故障,很有针对性。更重要的一点就是硬件系统必须要一部分一部分的焊接,即调通一部分再焊下一个小系统。若在硬件全部焊接完毕再进行检测的话,因为导线、焊点较多,对具体的线路很不
51、容易分辨,排查故障也会很困难。5.2系统的软件调试软件的调试采用Keil Vision2编译与Proteus软件联调。其中Keil Vision2是Keil公司(ARM子公司)开发的一款用于MCS-51单片机开发的应用十分广泛的编译和调试软件。该软件可以编辑、编译汇编语言、C51语言,连接定位目标文件和库文件,创建HEX文件,调试目标程序等。而Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它
52、与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED等。所以通过Proteus和Keil软件的仿真使我比较方便、快捷的调通程序,确定好电路。在Keil工作窗口下观察存储单元数据的变化,查找并解决程序的语法和逻辑错误,具体的调试步骤如下:(1)把系统的各个模块在仿真软件中逐个调试,如报警模块、显示模块等。(2)对各个需要赋值模块调试时,赋入初值,单步调试,观察仿真器窗口,看输出结果是否为设计时想要的结果。(3)把各个模块组合起来,全速运行,看程序是否运行流畅的,是否能实现系统的所有功能。5.3调试故障及原因分析本节对在智能客车超载监测系统的设计中,所遇到的故障和调试方面出现的问题作一概要的叙述。)在实际焊接硬件电路的过程中,由于线路较多,出现了交叉混接现象,导致部分电路短路;还有漏焊现象,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论