ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:137.48KB ,
资源ID:7750079      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7750079.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易地铁自动售票系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

简易地铁自动售票系统.docx

1、简易地铁自动售票系统数字电路与逻辑设计实验 实验报告 题目:简易地铁自动售票系统 学院:信息与通信工程学院 专业:电子信息工程 一、 设计课题的任务要求基本要求:a) 地铁票价统一为每张两元,只能投入币值为五元的人民币进行购票。b) 能够开机自检,检验显示器件正常。c) 通过按键开关BTN输入购票张数和投入的人民币张数并恰当显示相应信息。d) 设置适当的声音提示或显示提示表示取票和找零。e) 一次购票成功后系统能够恰当地转入下一次购票等待状态。f) 系统能够复位。提高要求:将投币种类增加为1元、5元和10元三种。二、 系统设计本次实验中采用的是自自顶向下的设计方法,即从整个系统功能出发,按一定

2、原则将系统划分为若干子系统,再将每个子系统分为若干功能模块,再将每个模块分成若干较小的模块直至分成许多基本模块实现。1.外部呈现结构CAT5,CAT4:用数码管显示购票张数CAT3,CAT2:显示总共输入的钱数BTN7:开始购票按键BTN6:输入购票张数确定按键BTN5:输入钱数确定按键/确定购买按键BTN4:复位键/取消键BTN3:通过按键按下次数输入购票张数BTN2:每按下1次,输入1张1元纸币BTN1:每按下1次,输入1张5元纸币BTN0:每按下1次,输入1张10元纸币LED7-0:通过8个灯不同的亮灭显示不同的状态全亮:开机自检及复位状态LED7亮:输入购票张数状态LED6亮:输入总钱

3、数状态LED5,2亮:显示购票成功亮灭亮灭亮灭亮灭:显示找零状态2、模块划分及功能1、计算模块:计算用户投币的总金额,以及用户的余额。2、显示模块:将计算的结果及用户操作信号译码后显示在数码管或LED灯上。3、输入模块:通过按键,开关输入信息 4、信号模块:系统对系统时钟,用户的买、选择、完成信号,显示 开关信号等信号的设置。3、自动售货机系统总体框图4、流程图5、MSD图S0:waite_stateS1:select_stateS2:insert_stateS3:ticket_stateS4:change_state三、 仿真波形及波形分析1、 仿真波形2、 波形分析上面的波形只是仿真其中一

4、个情况,顺序输入信息,中间没有按过取消,且输入钱数大于总票价,通过波形可以看出,购票成功且有找零,跟所预期吻合,说明仿真成功。四、 源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity subway is port(clk :in std_logic; buy : in std_logic; yes : in std_logic; ok: in std_logic; start:in std_logic; no : in std_logic; count1:in std_logic;

5、 count2:in std_logic; count3:in std_logic; count0:in std_logic; f:out std_logic_vector(6 downto 0); sell:out std_logic_vector(5 downto 0); ticket_out : out std_logic_vector(2 downto 0); change_out : out std_logic_vector(3 downto 0); present_state : out std_logic; a,b,c,d:out std_logic:=0; -count_2,c

6、ount_3:out std_logic; afford:out std_logic; beep: out std_logic; led:out std_logic_vector(7 downto 0) ); end subway; architecture behave of subway is type state_type is (waiting_state,select_state,insert_state,ticket_state, change_state); signal state:state_type; signal clk_out100,clk_out200:std_log

7、ic; signal count_0,count_1,count_2,count_3:std_logic; signal tmp1:integer range 0 to 4999; signal tmp2:integer range 0 to 9999; signal count0temp,count1temp,count2temp,count3temp:std_logic; signal count0tempp,count1tempp,count2tempp,count3tempp:std_logic; signal ticket_count:std_logic_vector(2 downt

8、o 0); signal total_money:std_logic_vector(3 downto 0); begin-分频-p1:process(clk) /2次分频,一次分为10Khz,一次分为5Khz,一个用于数码管扫描begin 一个用于按键消抖 if (clkevent and clk=1) then if tmp1=4999 then tmp1=0; else tmp1=tmp1+1; end if;end if;end process p1;p11:process(clk)begin if (clkevent and clk=1) thenif tmp2=9999 then t

9、mp2=0; else tmp2=tmp2+1;-shumaguan shizhongend if;end if;end process p11;p2:process(tmp1,tmp2)begin if tmp1=4999 then clk_out200=1;else clk_out200=0;end if ;if tmp2=9999 then clk_out100=1;else clk_out100=0;end if;end process p2;-process(clk)-begin-clk_out100=clk;-clk_out200=clk;-end process;-按键消抖-p3

10、:process(clk_out100,count1,count2,count3)beginIF (clk_out100EVENT AND clk_out100=0) THEN count1tempp=count1temp; count1temp= count1; count2tempp=count2temp; count2temp= count2; count3tempp=count3temp; count3temp= count3; count0tempp=count0temp; count0temp= count0;END IF; count_1=clk_out100 AND count

11、1temp AND (NOT count1tempp); count_2=clk_out100 AND count2temp AND (NOT count2tempp); count_3=clk_out100 AND count3temp AND (NOT count3tempp); count_0=clk_out100 AND count0temp AND (NOT count0tempp);END PROCESS p3;-按键输入及计算-process(clk_out100,count_1,count_2,count_3)begin IF (clk_out100EVENT AND clk_

12、out100=1) THENif(buy=1) then ticket_count=000;total_money=0000;end if;if(no=1) then ticket_count=000;total_money=0000;end if; if (count_0=1) then a=1;ticket_count=ticket_count+001;end if ;if (count_1=1) thenc=1;total_money=total_money+0001;end if;if (count_2=1) thenb=1;total_money=total_money+0101;e

13、nd if;if (count_3=1) thend=1;total_moneyled=11111111; present_state=0; flag:=0; temp:=0000; total_price:=1011; ticket_out=001; change_out=0000; present_state=0; i:=0; j:=0; k:=0; ticket_temp:=000; total_money1:=0000; if (yes=1) then present_state=1; state=select_state; else state led total_price:=00

14、10; ticket_temp:=001; when 010= total_price:=0100; ticket_temp:=010; when 011= total_price:=0110; ticket_temp:=011; when 100= total_price:=1000; ticket_temp:=100; when 101= total_price:=1010; ticket_temp:=101; when 110= total_price:=1100; ticket_temp:=110; when 111= total_price:=1110; ticket_temp:=1

15、11; when others= state=select_state; end case; if (no=1) then state=waiting_state; end if; if (ok=1) then led=01000000; state -led=00001111; total_money1:=total_money; if (no=1) then statetotal_money1) then state=change_state; afford=1; else state led=00100100; beep=1; if(i=9999 ) then state=change_

16、state; else i:=i+1; ticket_out=ticket_temp; afford led=10101010; temp:=total_money1-total_price; if(flag=1) then if(j=9999) then state=waiting_state; else j:=j+1; change_out=1111; end if; elsif (temp=0000) then state=waiting_state; else if(k=9999) then state=waiting_state; else k:=k+1; change_out=11

17、11; led f=0111111;sell f=0000110;sell f=1011011;sell f=1001111;sell f=1100110;sell f=1101101;sell f=1111101;sell f=0000111;sell if (j=1) then f=0111111;sell=111011; j:=0; else j:=i+1; f=0111111;sell if (j=1) then f=0000110;sell=111011; j:=0; else j:=i+1; f=0111111;sell if (j=1) then f=1011011;sell=1

18、11011; j:=0; else j:=i+1; f=0111111;sell if (j=1) then f=1001111;sell=111011; j:=0; else j:=i+1; f=0111111;sell if (j=1) then f=1100110;sell=111011; j:=0; else j:=i+1; f=0111111;sell if (j=1) then f=1101101;sell=111011; j:=0; else j:=i+1; f=0111111;sell if (j=1) then f=1111101;sell=111011; j:=0; els

19、e j:=i+1; f=0111111;sell if (j=1) then f=0000111;sell=111011; j:=0; else j:=i+1; f=0111111;sellnull;when 1000= if (j=1) then f=1111111;sell=111011; j:=0; else j:=i+1; f=0111111;sell if (j=1) then f=1101111;sell=111011; j:=0; else j:=i+1; f=0111111;sell if (j=1) then f=0111111;sell=111011; j:=0; else

20、 j:=i+1; f=0000110; sell if (j=1) then f=0000110;sell=111011; j:=0; else j:=i+1; f=0000110;sell if (j=1) then f=1011011;sell=111011; j:=0; else j:=i+1; f=0000110;sell if (j=1) then f=1001111;sell=111011; j:=0; else j:=i+1; f=0000110;sell if (j=1) then f=1100110;sell=111011; j:=0; else j:=i+1; f=0000

21、110;sell if (j=1) then f=1101101;sell=111011; j:=0; else j:=i+1; f=0000110;sell=110111; end if;end case;end if;end if;end process;end behave;五、 功能说明设计系统时,是按照实验要求所做的,对照实验要求,完成的功能有:开机即自检,检验显示器件正常;可以输入1元,5元,10元的纸币,通过按键开关BTN输入购票张数和投入的人民币总额并在数码管上显示并需在按下相应按键进行确认;设置数码管亮灭表示取票和找零以及各状态,其中出票与找零状态是自动跳转至下一状态;一次购票成功后系统能够恰当地转入下一次购票等待状态;系统能够在任意状态复

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1