基于单片机的自动停车收费系统设计 联系客服

发布时间 : 星期六 文章基于单片机的自动停车收费系统设计更新完毕开始阅读e1ff912248d7c1c708a145da

本 科 毕 业 设 计 第 24页 共 49 页

4 程序设计

4.1 程序设计介绍

程序设计就是用计算机所能接受的语言把所需解决问题的步骤逐一描述出来,也就是编制计算机的程序,在设计应用系统时,软件的编制是重要环节。软件的质量直接影响整个系统功能的实现。应用程序的设计因系统而异,但程序设计总是有共同特点及其规律的。在编写程序时,采取如下几个步骤:

(1)分析问题,明确所要解决问题的要求,将软件分成若干个相对独立的部分。根据功能关系和时序关系,设计出合理的软件总体结构。

(2)定程序框图,即根据所选择的计算方法制定框图,这不仅是程序设计的一个重要组成,而且是决定成败的关键部分。

(3)合理分配系统资源,包括定时器/计数器、中断、堆栈等。分配好单元后,进一步将程序框图画成详细的操作流程。

(4)根据程序的流程图和指令系统编写出程序。注意在程序的有关位置处写上功能注释,提高程序的可读性。

(5)程序调试。通过编辑软件编辑出的源程序,必须用编译程序汇编后生成目标代码。如果源程序有语法错误,需修改源文件后继续编译,直到无语法错误为止,然后利用目标代码通过仿真器进行程序调试,排除设计和编程中的错误直到成功。

(6)程序优化。使各功能程序模块化,子程序化,缩短程序的长度,加快运算速度和节省数据存储空间,减少程序执行的时间。

4.2 方案设计程序流程图

单片机控制中心的程序采用C语言编写,运行效率较高。其主要程序有: ①主循环程序:用于内部RAM和各种中断的设置,不断扫描操作按键,做出相应操作,并送显示器显示。根据系统要求,主循环程序的流程图如图4.1所示。

本 科 毕 业 设 计 第 25页 共 49 页

开始 有无车位? N 栏杆不开 进车检测 时间调整 LCD初始化 车位数减1并开始计时 Y 栏杆开启 出车检测 有无车辆出去? Y 调用收费显示函数 N 栏杆不开

4.1 主循环程序流程图

打印收费小票 栏杆开启 剩余车位数加1 LCD显示

本 科 毕 业 设 计 第 26页 共 49 页

②检测子程序:包括进车检测子程序和出车检测子程序。检测部分流程图如图4.2,4.3所示。

4.2 进车检测子程序流程图

开始

调用收费显示函数

剩余车位数加1

4.3 出车检测子程序流程图

开始 进车检测 有无车位? Y 栏杆开启 N 栏杆不开 车位数减1并开始计时 N 有无车辆出去? 栏杆不开 Y 打印收费小票 栏杆开启

本 科 毕 业 设 计 第 27页 共 49 页

③显示子程序:键盘上的按键可以切换显示北京时间、空位数、停车信息(包括剩余的停车位、已停车位数、总停车数量、停车费用)。显示停车信息时,如果不能同时显示全部内容,可通过按下切换键切换显示。初始化时是显示北京时间。显示部分流程图如图4.4所示。 4.4 显示子程序流程图

④时钟中断程序:系统时钟采用单片机内部时钟,该程序将时钟设置为24小时制。时钟中断流程图如图4.5所示。

调用显示停车时间和收费金额函数 有无车辆出去? 调用显示时间和剩余车位函开始