APP下载

智能客车超载检测系统的设计与实现*

2022-10-31赵宇兰

山西电子技术 2022年5期
关键词:子程序按键程序设计

赵宇兰

(山西工程科技职业大学信息工程学院,山西 晋中 030619)

0 引言

公路客运是当今人们外出打工、探亲、旅游的重要交通方式。但是随着出行客流量的增加,客运力度没有相应跟上的情况下,客车超载现象频频发生。目前,客车超载已经成为严重影响交通环境和社会经济可持续发展的社会问题[1]。客车超载不仅会对国家的公路设施和客运市场造成不良影响,还会给国家和人民群众带来重大的经济损失和感情伤害。虽然我国出台了一系列的政策法规来制止客车超载,但在节假日和春运等客流高峰期,超载现象仍然屡禁不止。因此,在采取行政监督管理的同时,通过科学技术手段来消除客车超载现象有重要的现实意义。

本文拟设计一种智能型客车超载检测系统,对客车内部承重及人数进行双重检测,实现对客车超载的全方面预防。

1 系统总体设计

针对客车检测系统的社会需求分析,需对车内承重力及人数进行检测方能实现客车超载的全方面预防。设计以单片机为核心控制单元,通过重力传感器和红外光电传感器检测数据,使用独立式的按键设置客车内的超载人数阈值和承重阈值,同时采用有源蜂鸣器作为报警元器件。系统在检测到客车内人数或重力超过了设定的阈值时,程序判定超载,蜂鸣器电路接通并发声报警,警示灯闪烁,同时启动继电器自动切断客车打火装置,实现对客车超载的强制控制[2-3]。系统总体设计如图1所示。

图1 系统总体设计图

2 硬件选型

本设计采用STC89C52型单片机作为主控芯片,HX711采集模块、LCD1602液晶显示屏。通过单片机引脚对芯片的信号进行驱动。同时使用独立按键以使操作更简便。

1) STC89C52型单片机是目前电子设计经典的单片机型号,可以实现逻辑编程。另外,拥有高性能、低功耗等特点。STC89C52储存相较于AT系列51单片机的4k内存增加了一倍,功能更全,运算速度更快[4]。

2) LCD1602可显示32位字符,显示分辨率清晰。在与单片机相连时只需要根据显示屏各个引脚的不同功能与单片机引脚相连接。与LCD12864液晶显示器相比,LCD1602性能更快,成本更低,适用于本系统中对于重力及人数显示的要求。

3) HX711内部集成了电源以及可以实现重力采集的外围电路,可实现24位AD信号采集,其精度符合智能超载系统的设计需求[5]。

4) 独立按键是每一个I/O口都对应一个按键,其优势是设计简单、使用方便,缺点是设计中需要按键数量较多时,容易造成浪费资源。由于本设计中不需要很多的按键,因此采用独立按键能够满足系统需求。

3 软件设计

本设计使用C语言为编程语言,KEIL4为编译软件。系统主要程序包括系统主程序和子程序,其中,子程序包括显示子程序、重力检测子程序、人数检测子程序等。

3.1 系统主程序设计

系统主程序首先对LCD1602显示屏、HX711重力采集模块及按键进行初始化,并设置重力和人数阈值。然后对承重信息采集,对车上实时人数信息采集,并将采集到的数据通过单片机处理。系统主程序设计如图2所示。

图2 系统主程序设计

3.2 显示子程序设计

主程序直接调用LCD1602液晶显示屏的子程序即可实现重力、车内人数等内容的显示。LCD1602液晶显示屏程序代码需要经过信号的检测、延时等一系列流程实现显示程序。LCD1602液晶显示程序如图3所示。

3.3 重力检测子程序设计

重力检测子程序在开始后,首先读取HX711采集的重力数据,并对实际的重量进行计算并校正,从而实现对重力的显示。重力采集子程序设计如图4所示。

图4 重力采集子程序设计

3.4 人数检测子程序设计

人数检测子程序在开始后,首先初始化传感器,然后进行上下车信号的检测,进入判断,上车门检测到信号时车内人数加1,下车门检测到信号时车内人数减1。人数检测子程序设计如图5所示。

图5 人数检测子程序设计

4 系统调试

4.1 硬件调试

硬件的调试是在焊接好各个元器件模块后需要对整个硬件及模块的电路进行一定的调试。在硬件测试过程中,万用表可以帮助我们进行电路测试。另外,以下问题也要特别注意:

1) 元器件引脚连接的正负极问题:该系统中使用的各模块的电路虽然简单,但也要注意它们的引脚不能接反。

2) 电路虚焊问题:电路的焊接过程中可能会存在一些没有焊好的元器件的引脚,这时我们需要用万用表来测试各个元器件两端。如果通电了,万用表会发出“嘟嘟”的声音。

3) 显示问题:在整个电路都没有问题的情况下,显示屏幕也有可能出现蓝屏状态,此时要滑动变阻器来进行调节。

4.2 软件调试

创建新的KEIL工程文件,使用C语言编写程序,建立一个main.c文件写代码。在程序的编写过程中首要的步骤是定义头文件保存到工程中。在程序编写的过程中,出现错误是难免的,所以检查错误也是必不可少的一项,若出现错误编译器会提示相关的错误信息,反复检查出现的错误并加以改正,再进行编译并生成镜像文件。最后,将生成好的镜像文件烧录到单片机中,完成软件调试。

5 结语

系统硬件方面元器件选型合理、电路设计简单;在系统软件中,利用C语言实现了重力检测、人数检测和实时预警等功能,达到了预期目标。今后还可以增加语音播报功能,实时播报车载人数,为客车司机提供更智能的服务。

猜你喜欢

子程序按键程序设计
基于有限状态机的按键检测程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
按键消抖在单片机和FPGA实验教学中的应用
高职高专院校C语言程序设计教学改革探索
一种多方向导光按键结构设计
浅谈子程序在数控车编程中的应用
PLC梯形图程序设计技巧及应用
子程序在数控车加工槽中的应用探索
西门子840D系统JOG模式下PLC调用并执行NC程序