资源描述:
《设计地铁售票系统-vhdl语言.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、摘要:VHDL语言对于复杂的数字系统的设计,它有独特的作用。它的硬件描述能力强,能轻易的描述出硬件的结构和功能。这种语言的应用至少意味着两种重大的改变:电路的设计可以通过文字描述的方式完成;电子电路可以当作文件一样来存储。随着现代技术的发展,这种语言的效益与作用日益明显,每年均能够以超过30%的速度快速成长。这次毕业设计就是利用VHDL语言设计地铁售票系统的核心功能MAX+PLUSII软件作为发平台,设计城市地铁售票系统程序并进行仿真。使其实现选站、选择张数、出票、找零等功能。关键词:地铁,售票,VHDL语言,Max+PlusII。Abstract:
2、VHDLlanguageisusedtodescribethebehaviorandstructureofelectronicsystems,butisparticularlysuitedasalanguagetodescribethestructureandbehaviorofdigitalelectronichardwaredesigns.Theapplicationofitmeanstwochanges:electrocircuitdesigncanbedonebythekindoffiledescription.;andelectrocirc
3、uitcanbestoredasafile.Itisusedtolowerthecostandreducethedesigncycle.Itcansupplydesigners’needseasily.Withthedevelopmentofmoderntechnologyitgrowsmorethan30%everyyear.TheGraduationProjectjustsimulatetickedsalessystemofmetrouseVHDLlanguage,anditundertheplatformofMax+PlusII.Thefunc
4、tions,stationselect,numbersselect,ticketout,bids,allwillbeshowingintheemulator.Keywords:Metro,tickedsales,VHDL,Max-PlusII正文:一.设计课题分析及描述-16-1.1课题要求功能描述:用于模仿城市地下铁售票系统的工作过程,完成自动售票机的核心控制功能。功能要求:售票机有两个进币孔,一个是输入硬币,一个是输入纸币,硬币的识别范围是五角和一元的硬币,纸币的识别范围是一元、两元,五元,拾元。乘客可以连续多次投入钱币。乘客一次只能选择一个出站
5、口。购买车票时,乘客先选择出站名,然后选择所需的票数,再进行投币,投入的钱币达到所需金额时,售票机自动出票,并找出余额,本次交易结束,等待下一次的交易。在投币期间,乘客可以按取消键取消本次操作,钱币自动退出。1.2课题分析根据选择的毕业设计课题我找了一些资料,经过思考研究得出可以用两种方法来实现地铁自动售票的功能,即用模块实现和用状态机实现。最初画流程图和状态图时,先考虑的是状态机,因为我发现用状态机不仅思路很清楚而且可读性也非常强.因此就把要用到的状态都给罗列出来,然后实现每个状态的内容,最后再利用一些变量使状态之间连接起来,实现按键的基本功能.1
6、.3状态机设计根据以上分析,系统应分为如下几个状态:selstation:站点选择状态selballot:票数选择状态inputcoin:投币状态comparemoney:比较钱状态ticketsout:出票状态waitdibs:等待找钱状态(包括出票)dibs:出钱状态给出tp,money,alarm,num,en几个变量,控制状态间的转移。根据tp判断是否完成选站,根据money判断是否完成选票,根据alarm判断投币是否足够,根据num判断出票是否足够,根据en判断找钱是否足够.设计中输入有clk,station,tn,lettuce,coin
7、,ok,reset.其中clk是时钟周期信号,station-16-是乘客所选的站号,程序中一共设置了16个站,不同的站所对应的票价是不一样的.0站是0元,1~8站票价为2元,9~11站票价为3元,12~15站票价为4元.而tn表示乘客所选的票数,为方便设计,乘客一次购车票数在3张以内.Lettuce表示乘客投入的纸币,coin表示乘客投的硬币,只有乘客在按下ok键后系统才会工作,否则将一直处于等待当中,reset键是乘客用来取消操作的.设计中输出有tout,mout,alarm,state.其中tout是表示出票,周期数即是出票数,mout是表示找
8、的零钱,若恰好为所需金额,则mout一直为0.alarm表示所投金额不足时发出的警报,当继续投钱至足额时al