东南大学短学期实验地铁售票模拟系统

上传人:第*** 文档编号:56888820 上传时间:2018-10-16 格式:PDF 页数:21 大小:382.21KB
返回 下载 相关 举报
东南大学短学期实验地铁售票模拟系统_第1页
第1页 / 共21页
东南大学短学期实验地铁售票模拟系统_第2页
第2页 / 共21页
东南大学短学期实验地铁售票模拟系统_第3页
第3页 / 共21页
东南大学短学期实验地铁售票模拟系统_第4页
第4页 / 共21页
东南大学短学期实验地铁售票模拟系统_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《东南大学短学期实验地铁售票模拟系统》由会员分享,可在线阅读,更多相关《东南大学短学期实验地铁售票模拟系统(21页珍藏版)》请在金锄头文库上搜索。

1、数字系统课程设计地铁售票模拟系统地铁售票模拟系统设计报告设计报告范文佳 04212706许云珊 04212711何璐雅 04212716引言引言随着社会经济的发展,交通拥堵日益严重,地铁受到越来越多人的青睐。 地铁自动售票机以其安全性高、操作简单、方便快捷、人力成本低等优点受到人们的欢迎。同时,地铁售票系统也是应用电子技术中最经典的电子设计之一,但目前尚存在系列问题有待解决。 本文根据实际实际地铁自动售票机的设置与运行规律, 基于 VHDL 语言设计出自动售票机控制电路,并通过 XILINX_ISE 软件的仿真和 Nexys3 板硬件的模拟得到检验,证明设计是符合实际的。正文正文功能详述功能详

2、述模仿地铁售票的自动售票,完成地铁售票的核心控制功能。(1)地铁售票机有两个进币孔,可以输入硬币和纸币,硬币的识别范围是1 元的硬币,纸币的识别范围是5元,10元,20元。乘客可以连续多次投入钱币。(2)乘客买票时可以有两种选择,第一种,乘客已经知道所需费用,直接选择票价,可选2元、3元或4元。第二种,不知道票价,选择出站口,系统以目的地与当前站的站数来进行计算价格(地铁共有16个站,为0-15号站,当前站为0号站,然后通过判断当前站号与目标站号的差来判断需要的钱数。差距在4站及其以内,价格为2元,5-10站,价格为3元,11-15站,价格为4元)。(3)得到票价单价后,选择所需购买的票数,然

3、后进行投币,投入的钱币达到所需金额时, 售票机自动出票, 并找出余额, 本次交易结束, 等待下一次的交易。在投币期间,乘客可以按取消键取消本次操作,钱币自动退出。设计思路设计思路(1)总体方案设计:设计地铁自动售票系统时,我们采用自顶向下的设计方法和状态机的架构,将整个系统分成以下个状态:初始状态、选择状态、投币状态、出票/找零状态,各状态关系如图:(2)各状态功能设计初始状态state_initial:所有变量统一初始化清零。选择状态state_select:当“确认”信号为高电平时,输入票价,或者输入站点信号(0-15)被读入有效,0-4 站为 2 元票,5-10 站为 3 元票,11-1

4、5 站为 4 元票,确认票价,赋给相应暂存变量并接着输入选择的票数。否则当“确认”信号为低电平,所处状态不变,系统没有录入有效信息。输入票数(1-4)信号被读入有效,赋给相应暂存变量,计算出应付总金额,并进入投币状态。投币状态state_coin:乘客每投入钱币,系统更新“已付金额” 。若“已付金额”大于“应付金额” ,系统进入找零及出票状态。若不足,系统仍处于投币状态,直至金额足够。若中途乘客按下“取消”键,系统进入退款状态。出票、找零状态state_refund:根据已付金额和应付金额显示找零。根据票数和票的类型出票。系统重新进入初始状态。(3)系统变量及参数说明状态列表状态编号状态名称状

5、态描述0state_initial初始状态1state_select选择状态2state_coin投币状态3state_coin出票、找零状态定义的输入变量名称及含义:信号/变量名信号/变量含义数据类型Clk信号时钟STD_LOGICKey信号按键STD_LOGIC_VECTOR(4 downto 0)Switch信号开关STD_LOGIC_VECTOR(7 downto 0)定义的输出变量名称及含义:定义的临时变量名称及含义:信号/变量名信号/变量含义数据类型Led信号LED 灯STD_LOGIC_VECTOR(7 downto 0)Dua_slt信号数码管-段STD_LOGIC_VECTO

6、R(6 downto 0)Wei_slt信号数码管-位STD_LOGIC_VECTOR(3 downto 0)信号/变量名信号/变量含义数据类型total_price信号总价integer range 0 to 16price_in信号付款integer range 0 to 20(4)硬件设计实现8 位开关中,我们设定的是开关 0 置 0 表示选票,置 1 表示选站。若进行选票价格,则开关 14 共四位:0000 表示两元,0001 表示三元,0010 表示四元;若进行选择站数,则开关 14 共四位按照二进制表示 015 站,如 0010 表示选择第二站,1111 表示选择第十五站。开关 5

7、 始终置 0。开关 67 位用于表示买票数量,00 表示一张,01 表示两张,10 表示三张,11 表示四张。8 个 LED 灯,我们设定 LED02 表示出票种类,100 表示 2 元票,010 表示 3元票,001 表示 4 元票。LED3 始终置 0。LED47 表示出票张数,1000 表示 1 张,0100 表示 2 张,0010 表示 3 张,0001 表示 4 张。5 个按键中,我们设每按下一次按键 0 表示投入一次一元硬币,每按下一次按键 1 表示投入一张五元纸币,每按下一次按键 2 表示投入一张十元纸币,每按下一次按键 3 表示投入一张二十元纸币,按下按键 4 表示“ok”。8

8、 位 LED 灯中,4 位数码管中,前两位显示所需金额,后两位显示付款之后找零金额。系统流程图系统流程图change信号找零integer range 0 to 20temp1信号为总价定义变量 1integer range 0 to 9temp2信号为找零定义变量 2integer range 0 to 9仿真测试仿真测试我们设定的仿真是:开关全部置 1,表示进行站数选择,选择第十五站,共四张票,应付款十六元,实付款二十元,找零四元,LED 灯、数码管位与段均进行了相应的显示,可见仿真正确,为硬件的调试做了进一步铺垫。结论结论本系统较贴合实际地模拟了地铁售票机系统的工作方式。 将地铁购票过程

9、分成 4 个环节实现,通过不同环节的状态转换指导售票机的工作。我们实现了选站或选票价得到单价,选择购票数量计算应付金额,然后进行投币(可连续多次投入钱币),投入的钱币达到所需金额时,售票机自动出票,并找出余额,本次交易结束,等待下一次的交易。我们软件设计中设置了 Reset键进行取消,但是硬件上的 Reset 键是断电重启的,无法相对应,所以硬件中没有实现取消功能。分工分工短学期的数字系统课程设计是一次很好的锻炼我们编程能力、思维能力、 设计能力以及团队合作能力的契机,在整个项目的开发中,我们合力完成了所有的工作,包括项目分析、任务分配、编程、排查错误、波形仿真、硬件实现和报告撰写。在拿到题目

10、和掌握了基本设计知识之后,我们共同探讨了解题思路,设计出流程图,根据讨论结果将代码分为 4 个 process,分别编写对应的代码,最后整合、编译、改错、仿真:范文佳(04212706)负责 main process,实现地铁售票系统的逻辑模拟, 4个状态的转换、状态更新进程,实现开关、按键状态机的设定。许云珊(04212711)负责 switch process,实现开关选择价/站、票数,LED灯显示所购的票价及数量,以及开关切换时状态的处理和扳动开关时抖动的消除。何璐雅(04212716)负责数码管的显示,数码管位选状态机的设定、信号的定义, 根据主程序中给数码管 4 个位的赋值,在设计的

11、相应位置显示总价与找零数字,进行仿真的调试。由于 key process 需要分为松开、消抖、按下、再松开四个状态,相对比较复杂, 所以该部分由三位队员在课余时间共同探讨完成。 在数字系统设计课程上,我们三位成员共同完成了硬件部分的调用和调试, 完成了整个地铁售票系统的模拟。创新性与实用性创新性与实用性在选择状态中,通过选价和选站开关的分时复用,提高了地铁售票系统的效率。投币时,通过不断比较已付金额和应付金额的大小关系,无需按下确认键,系统自动进入找零状态或等待状态。 出于实际考虑, 在代码中可实现在投币期间,乘客可以按取消键取消本次操作,钱币自动退出。设计与代码优化设计与代码优化题目默认当前

12、站点为 0 站,可以增加选择当前起始站点的按钮,在选完终点站之后根据起点与终点站的距离自动算出票价。我们设计的系统可以显示所需付款数目和付款后找零数目, 可以充分利用数码管、LED灯,显示当前投入总金额在找零状态时显示每种钱币的找零数目。可在程序开始时定义常量,优化选票状态和找零状态时数码管、LED灯等代码的编写。致谢致谢首先感谢老师第一堂课的理论教学, 以及之后实验中耐心的实践指导; 其次,在学长学姐提供的资料的帮助下,我们较快寻找到了解决问题的思路;另外, 与其他同学们之间的探讨交流也对我们完成本课题起了不小的作用; 当然也不能忽视了我组成员的共同协作。在本次小组合作参与数字系统设计的过程

13、中,我们一方面掌握了数字系统设计的初步方法,能利用 VHDL 语言熟练地编写简单状态机程序, 运用 XILINX_ISE 进行波形仿真, 使用 Nexys3 板进行地铁售票系统的模拟。但更重要的是增进了队友之间的情谊,培养了团队合作精神,面对困难与挫折更加勇于去面对,学会了合作与分享,努力与坚持。附录附录源代码及注释源代码及注释library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all;-定义实体entity SUB is-定义变量 port(

14、Clk: in STD_LOGIC;-时钟信号 Key : in STD_LOGIC_VECTOR(4 downto 0);-按键 Switch : in STD_LOGIC_VECTOR(7 downto 0);-开关 Led : out STD_LOGIC_VECTOR(7 downto 0);-led 灯 Dua_slt : outSTD_LOGIC_VECTOR(6 downto 0); -数码管-段 Wei_slt : outSTD_LOGIC_VECTOR(3 downto 0)-数码管-位 ); end SUB;- architecture BEHAVIORAL of SUB i

15、s -分频常量- CONSTANT CLK_DIV_1MS:NATURAL:=100;-48000; CONSTANT CLK_DIV_1S:NATURAL:=1000; CONSTANT CLK_DIV_1MIN:NATURAL:=60; -开关常量- CONSTANT SWITCH_CHG_DLY:NATURAL:=50; CONSTANT SWITCH_CHG_CLOSE_DLY:NATURAL:=1000;-按键常量- CONSTANT KEY_PRESSED_DLY:NATURAL:=20; CONSTANT KEY_UNPRESSED_DLY:NATURAL:=1000; -数码管常量- CONSTANT SSD_SCAN_DLY:NATURAL:=20; CONSTANT DISPLAY_PRICE_DLY:NATURAL:=2000; CONSTANT RETURN_MONEY_OUT_TICKET_DLY:NATU

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号