地铁售票模拟系统设计与实现

需积分: 0 3 下载量 152 浏览量 更新于2024-08-05 收藏 581KB PDF 举报
本篇报告是东南大学信息科学与工程专业学生张逸帆在2019年9月12日进行的FPGA课程设计,主题是地铁售票模拟系统。设计目标是模拟南京地铁售票过程,包括核心控制功能和附加功能。 1.1 功能描述:系统主要功能有接收硬币和纸币支付(面额包括5元、10元和20元),支持两种购票方式:乘客预知费用直接选择或通过选择出站口确定票价。购票后,系统会出票并进行一次性找零。此外,系统还需区分硬币和纸币,并提供直观的界面显示。 1.2 功能要求详细说明: - **分币、纸币处理**:系统能识别不同面额的硬币和纸币,并正确计数。 - **线路和站点设置**:用户可以设置四条线路,通过拨码开关选择当前站。 - **购票流程**:乘客可以选择已知费用购票或根据起点和终点自动计算票价。 - **票数选择与显示**:购票后,系统会显示出票信息。 - **找零机制**:购票完成后,系统会根据票价进行找零,遵循一定的找零原则。 - **操作便捷性**:允许取消操作和在投币过程中退出钱币。 4.1 状态机设计:系统采用四种状态管理,通过RGB Led灯显示:待机(白色),选站(蓝色),购票(蓝色和绿色),找零(绿色)。状态转换通过确认键,找零状态后回到待机,而拨码开关15用于清空状态并跳转到选站。 4.2 地铁站路径规划:系统通过外部Excel文件预先计算各站之间的最低票价,并使用Python将数据转化为Verilog代码。93个站台编码对应起点和终点,用户通过按键选择起点和终点,避免选择无效编码。如果拨码开关14被触动,系统将切换到已知票价模式,终点站显示为“–”。 在整个设计中,项目采用了模块化结构,如顶层的顶层设计,以及选择电路、按键消抖电路、LED显示模块和7段数码管显示模块。这不仅体现了良好的软件工程实践,也为后续维护和扩展提供了便利。 通过这个项目,学生不仅锻炼了FPGA编程能力,还提升了算法设计、用户交互界面理解和硬件逻辑控制的综合技能。