简易售货机的设计-数字逻辑课程设计报告_第1页
简易售货机的设计-数字逻辑课程设计报告_第2页
简易售货机的设计-数字逻辑课程设计报告_第3页
简易售货机的设计-数字逻辑课程设计报告_第4页
简易售货机的设计-数字逻辑课程设计报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

石家庄经济学院华信学院数字逻辑课程设计报告题 目 简易售货机的设计 姓 名 学 号 班 号 指导老师 成 绩 目 录1. 课程设计目的2. 开发工具选择3. 设计方案 4 模块描述5. VHDL实现6. 调试仿真7. 课程设计回顾总结 参 考 文 献 附录 1课程设计目的 (1)设计一个简易售货机,可销售巧克力(0.5元)、纯净水(1元)、牛奶(1.5元)、汉堡(2元)4种商品,数量无限。(2)只能投入1元或5角硬币,如果投的钱数等于或则大于所购买的商品单价,则自动售货机会给出所购买的商品;如果投的钱数不够,自动售货机不做响应,继续等待顾客的下次操作。两个输出口分别输出购买的商品和找零,零币无限。(3)有两个LED数码管显示已经投入的币值或找零数。顾客一次只能购买一种商品的一个,若需要更多商品,需要重复操作。2开发工具选择(1)硬件描述语言简易售货机的设计采用了功能强大的VHDL语言,它具有很强的行为能力描述,设计方法灵活,可以支持库和模块设计方法。 (2)QuartusII软件开发工具 本设计采用的软件开发工具是美国的Altera公司的QuartusII,它支持多种设计输入方法,包括原理图输入、文本输入。 (3)EDA实验开发系统 本设计采用的EDA实验开发系统,主要用于提供可编程逻辑器件的下载电路及EDA实验开发的外围资源,供硬件验证用。3设计方案图 3-1状态转换图 图 3-2操作流程图4模块描述(1) 模块一:选择商品 分别有价格为0.5元、1元、1.5元和2元的商品,此自动售货机每一次售货时只能一次选择一种商品,当同时选择两种以上时,选择商品无效,重新进行商品选择。选择商品后,数码管显示所选商品价格。(2) 模块二:投币 当选好商品后,开始投币。投币口只接受0.5元、1元,投完币后,先有一个确认买商品的过程,若投了币但又不购买商品了,进入退钱的模块;若确认购买商品,则进入出货找零模块。(3) 模块三:退钱、出货找零 投币后取消购买,退回投入的硬币。 投完币,若大于等于商品价格,进入找零模块,两者做差,得到需要找零的钱。5 VHDL实现1选择商品模块(1)选择商品模块的元件图符(2)选择商品模块的VHDL描述 LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY select_goods ISPORT(reset,en,chocolate,water,milk,humberger: INSTD_LOGIC;price: OUTinteger range 0 to 20);END select_goods; ARCHITECTURE arc1 OF select_goods ISsignal goods:std_logic_vector(3 downto 0);BEGINgoods=chocolate&water&milk&humberger; process(reset,en) begin IF reset=1 THEN pricepricepricepricepriceprice=0; end case; end if; end process;END arc1;2.投币模块 (1)投币模块的元件图符 (2)投币模块的VHDL描述 LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_arith.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY coin ISPORT(reset,clk,en,coin5,coin10: INSTD_LOGIC; total:bufferinteger range 0 to 30);END coin;ARCHITECTURE arc1 OF coin ISbeginprocess(clk,reset) begin if (reset=1 and en=0) then total=0; else if clk event and clk=1 then if en=1 then if coin5=1 then total=total+5; elsif coin10=1 then total=total+10; end if; end if; end if; end if; end process; END arc1;3退钱、出货找零模块 (1)退钱、出货找零模块的元件图符 (2)退钱、出货找零模块的VHDL描述LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;ENTITYcontrolISPORT(clk,start,ok_buy,cancle_buy :IN STD_LOGIC;prices,coins :IN integerrange0to30;engoods,encoin,clrcoin,outgoods :OUT STD_LOGIC;backcoins:OUT integerrange0to20);ENDcontrol;ARCHITECTUREarc1OFcontrolIStypestate_typeis(salesgoods,incoins,outgoods_coin,back_coin);signalstate:state_type;BEGINprocess(start,clk)beginifstart=1thenstateifprices/=0thenstateif(coins=pricesandok_buy=1)thenstate=outgoods_coin;elsestatestateengoods=1;encoin=0;clrcoin=1;outgoods=0;backcoinsengoods=0;encoin=1;clrcoin=0;outgoods=0;backcoinsifcoins=pricesthenengoods=0;encoin=0;clrcoin=0;outgoods=1;backcoins=coins-prices;elseengoods=0;encoin=0;clrcoin=0;outgoods=0;backcoinsifcoins=pricesandok_buy=1thenengoods=0;encoin=0;clrcoin=0;outgoods=1;backcoins=coins-prices;elseengoods=0;encoin=0;clrcoin=0;outgoods=0;backcoins=coins;endif;endcase;endprocess;ENDarc1;6调试仿真1选择商品模块图 6-1选择商品模块的功能仿真波形图说明:当en=1时,选择humberger,此商品的价格为2元,prices=20。当en=0时,商品选择模块禁止工作, prices保持不变。2投币模块图 6-2投币模块的功能仿真波形图说明:当en=1时,投入一枚5角、一枚1元、一枚5角硬币,总币值为20即2元。3退钱、出货找零模块 图 6-3退钱的功能仿真波形图说明:选择商品的价格prices为10,投入币值coins为20,当取消购买cancel_buy=1时,outgoods=0表示未出货,backcoins=20表示退回20图 6-4出货找零的功能仿真波形图说明:选择商品的价格prices为10,投入币值coins为20,当确认购买ok_buy=1时,outgoods=1表示出货,backcoins=10表示找零104. 自动售货机整体结构图及调试仿真: (1)自动售货机整体结构图 6-5自动售货机整体结构(2)仿真结果及说明:图 6-6自动售货机仿真波形图说明:(1)选择milk,price=15,投入一枚1元硬币,coins=10,又投入一枚1元硬币,coins=20,之后,选择取消购买,cancel_buy=1,outgoods=0表示未出货,outcoins=20表示退回投入硬币2元。(2)选择milk,price=15,投入一枚1元硬币,coins=10,又投入一枚1元硬币,coins=20,之后,选择确认购买,ok_buy=1,outgoods=1表示出货,outcoins=5表示找零5角。(3)选择milk,price=15,投入一枚1元硬币,coins=10,又投入一枚5角硬币,coins=15,之后,选择取消购买,cancel_buy=1,outgoods=0表示未出货,outcoins=15表示退回投入硬币1.5元。(4)选择milk,price=15,投入一枚1元硬币,coins=10,又投入一枚5角硬币,coins=15,之后,选择确认购买,ok_buy=1,outgoods=1表示出货,outcoins=0表示找零0元。7课程设计回顾总结 通过这次数字逻辑课程设计,我收获了很多: 在选择课题时,原以为并没有那么难,但是当进行设计时,才知道远远没有自己想象的那么简单。在进行退钱、出货找零模块的时候出现了很多错误,仿真结果不正确。在经过请教老师和同学讨论后,才将问题一一解决,最后调试出了正确的结果。 这次课程设计,使我对数字逻辑上课所学习的知识有了更深的巩固,对VHDL语言有了更深刻的理解,对QuartusII软件的使用更

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论