简易售货机的设计数字逻辑课程设计

上传人:206****923 文档编号:42573140 上传时间:2018-06-02 格式:DOC 页数:12 大小:205.50KB
返回 下载 相关 举报
简易售货机的设计数字逻辑课程设计_第1页
第1页 / 共12页
简易售货机的设计数字逻辑课程设计_第2页
第2页 / 共12页
简易售货机的设计数字逻辑课程设计_第3页
第3页 / 共12页
简易售货机的设计数字逻辑课程设计_第4页
第4页 / 共12页
简易售货机的设计数字逻辑课程设计_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《简易售货机的设计数字逻辑课程设计》由会员分享,可在线阅读,更多相关《简易售货机的设计数字逻辑课程设计(12页珍藏版)》请在金锄头文库上搜索。

1、石家庄经济学院 华信学院数字逻辑课程设计报告题题 目目 简易售货机的设计 姓姓 名名 学学 号号 班班 号号 指导老师指导老师 成成 绩绩 目目 录录1. 课程设计目的课程设计目的2. 开发工具选择开发工具选择3. 设计方案设计方案 4 模块描述模块描述5. VHDL 实现实现6. 调试仿真调试仿真7. 课程设计回顾总结课程设计回顾总结 参参 考考 文文 献献 附录附录 1 课程设计目的(1)设计一个简易售货机,可销售巧克力(0.5 元) 、纯净水(1 元) 、牛奶(1.5 元) 、汉堡(2 元)4 种商品,数量无限。 (2)只能投入 1 元或 5 角硬币,如果投的钱数等于或则大于所购买的商品

2、单价, 则自动售货机会给出所购买的商品;如果投的钱数不够,自动售货机不做响应,继续 等待顾客的下次操作。两个输出口分别输出购买的商品和找零,零币无限。 (3)有两个 LED 数码管显示已经投入的币值或找零数。顾客一次只能购买一种商 品的一个,若需要更多商品,需要重复操作。2 开发工具选择(1)硬件描述语言 简易售货机的设计采用了功能强大的 VHDL 语言,它具有很强的行为能力描述, 设计方法灵活,可以支持库和模块设计方法。 (2)QuartusII 软件开发工具 本设计采用的软件开发工具是美国的 Altera 公司的 QuartusII,它支持多种 设计输入方法,包括原理图输入、文本输入。 (

3、3)EDA 实验开发系统 本设计采用的 EDA 实验开发系统,主要用于提供可编程逻辑器件的下载电路及 EDA 实验开发的外围资源,供硬件验证用。3 设计方案图 3-1 状态转换图选择商品投币结束投币商品价格继续投币退币清零出货找零YYNNNY开始图 3-2 操作流程图4 模块描述(1) 模块一:选择商品 分别有价格为 0.5 元、1 元、1.5 元和 2 元的商品,此自动售货机每一次售货时 只能一次选择一种商品,当同时选择两种以上时,选择商品无效,重新进行商品选择。 选择商品后,数码管显示所选商品价格。 (2) 模块二:投币当选好商品后,开始投币。投币口只接受 0.5 元、1 元,投完币后,先

4、有一个确 认买商品的过程,若投了币但又不购买商品了,进入退钱的模块;若确认购买商品, 则进入出货找零模块。 (3) 模块三:退钱、出货找零投币后取消购买,退回投入的硬币。投完币,若大于等于商品价格,进入找零模块,两者做差,得到需要找零的钱。5 VHDL 实现1 1选择商品模块选择商品模块(1)选择商品模块的元件图符resetenchocolatewatermilkhumbergerprice4.0select_goodsinst(2)选择商品模块的 VHDL 描述LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsi

5、gned.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); BEGIN goodspricepricepricepricepriceif prices/=0 thenstateif (coins=prices an

6、d ok_buy=1) thenstatestateengoodsengoodsif coins=prices thenengoodsif coins=prices and ok_buy=1 thenengoods=0;encoin=0;clrcoin=0;outgoods=1;backcoin s=coins-prices;elseengoods=0;encoin=0;clrcoin=0;outgoods=0;backco ins=coins; end if;end case; end process; END arc1;6 调试仿真1 1选择商品模块选择商品模块说明:当 en=1 时,选择

7、 humberger,此商品的价格为 2 元,prices=20。当 en=0 时,商 品选择模块禁止工作, prices 保持不变。2 2投币模块投币模块说明:当 en=1 时,投入一枚 5 角、一枚 1 元、一枚 5 角硬币,总币值为 20 即 2 元。3 3退钱、出货找零模块退钱、出货找零模块 图 6-1 选择商品模块的功能仿 真波形图图 6-2 投币模块的功能仿真波 形图说明:选择商品的价格 prices 为 10,投入币值 coins 为 20,当取消购买 cancel_buy=1时,outgoods=0 表示未出货,backcoins=20 表示退回 20说明:选择商品的价格 pr

8、ices 为 10,投入币值 coins 为 20,当确认购买 ok_buy=1 时, outgoods=1 表示出货,backcoins=10 表示找零 10图 6-3 退钱的功能仿真波形图图 6-4 出货找零的功能仿真波 形图4.4. 自动售货机整体结构图及调试仿真:自动售货机整体结构图及调试仿真:(1)自动售货机整体结构(2)仿真结果及说明:说明: (1)选择 milk,price=15,投入一枚 1 元硬币,coins=10,又投入一枚 1 元硬币,coins=20, 之后,选择取消购买,cancel_buy=1,outgoods=0 表示未出货,outcoins=20 表示退回投 入

9、硬币 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,又投入

10、一枚 5 角硬币,coins=15,图 6-5 自动售货机整体结构图 6-6 自动售货机仿真波形图之后,选择确认购买,ok_buy=1,outgoods=1 表示出货,outcoins=0 表示找零 0 元。 7 课程设计回顾总结通过这次数字逻辑课程设计,我收获了很多:在选择课题时,原以为并没有那么难,但是当进行设计时,才知道远远没有自己想 象的那么简单。在进行退钱、出货找零模块的时候出现了很多错误,仿真结果不正确。 在经过请教老师和同学讨论后,才将问题一一解决,最后调试出了正确的结果。这次课程设计,使我对数字逻辑上课所学习的知识有了更深的巩固,对 VHDL 语言 有了更深刻的理解,对 QuartusII 软件的使用更加熟练了,对 VHDL 语言的组成和一些 基本语句的使用方法记得更加牢固。经过这次课程设计,锻炼了我综合运用所学知识,发现问题,提出问题,分析问题, 解决问题的能力, 将所学到的理论与实际相结合。从而提高了自己实际动手和独立思 考的能力,对以后的学习、工作、生活有很大的帮助。并且让我深刻体会到遇到问题 不能灰心,要冷静下来仔细思考,一部分一部分的检查,成功就是在不断摸索着前进 的过程中实现的。8 参考文献逻辑与数字系统设计

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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