- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
《自动售货机》
实验报告
一.设计课程的任务要求
基本要求:
用2个数码管(disp5,disp4)显示钱数,以元为单位。用3个按键(btn0,btn1,btn2)分别表示一元、五元、十元,每按一次按键,增加一次相应的钱数,上限99元。
再用3个按键(btn3,btn4,btn5)分别对应3种商品,其中,商品甲售价3元、商品乙售价8元、商品丙售价12元;
买东西时,先输入钱币,再按对应的商品键。每按一次商品键,钱数要相应地减少,同时有声光(蜂鸣器或发光二极管)提示购买成功。剩余钱数大于3元可继续按商品键再次购买;当剩余钱数少于3元时,表示钱数的数码管disp5,disp4显示为零,同时用数码管disp0显示退出的钱数。
买东西时,按下商品键,若输入的钱数少于商品的价格,表示钱数的数码管disp5,disp4显示为零,同时用数码管(disp1、disp0)显示退出的钱数,并用蜂鸣器或发光二极管闪烁表示购买失败。
按下商品键时,用数码管disp2表示当前购买的商品,1代表商品甲,2代表商品乙,3代表商品丙。
用btn7做为退出功能键,退出键可以随时按下,按下后,数码管(disp5,disp4)显示为零,同时数码管(disp1、disp0)显示退出的钱数,表示结束购买,钱款全部退出。
提高要求:
用点阵设计显示投币动画、出货动画,购买成功/失败动画;
允许随时输入钱币,购买时,钱款不足有声光报警并等待追加钱币或选择别的商品;
商品数量管理,有缺货提示;
用点阵动态显示商品名称和库存数量等。
自拟其它功能
二.系统设计(包括设计思路、总体框图、分块设计)
1.设计思路:
本实验为设计一个自动售货机。由于本实验题目逻辑不太复杂,所以有两种设计思路可以选择。第一种是用顺序结构和ifwhen逻辑判断来实现。第二种是用状态机来实现。我选择的使用第一种。总体来说可以将其分为两个大块。第一个是接受键盘命令并通过逻辑判断向LED灯和数码管发出命令。第二个是显示模块,通过接收命令控制灯亮与数码管显示。
2.总体框图:
结构框图:
逻辑划分框图:
ASM图:
MDS图:
分块设计:
防抖:本程序防抖功能采取延时防抖,即在按键按下后若持续时间超过一定时长才计数。
计价器:计价器分为十位和个位分别计数,由两个信号控制。加减时根据补码计算的思想,先判断十位是否进位或退位,若有则对各位进行反向计算,若没有则直接修改个位。
充值模块:此模块与计价器加法思想一样。并设有99的最高限。
消费模块:此模块与计价器减法一样。在做减法前先判断是否减钱后余额大于零。
显示模块:此模块分为两步。第一步由充值消费后的价钱通过信号赋给显示输出管脚。第二步为通过循环用cat控制数码管关与开。
三.仿真波形及波形分析
由于程序加入了大量防抖与分频器,所以无法直接进行仿真。以下仿真为拆除了防抖、分频,并且将钱数两位分别输出观察结果。Money11为十位,money00为个位。
1.充值1元仿真:
当bn0按下后,十位不变,个位加一。
2.充值五元仿真
当bn1按下后,十位不变,个位加五。
3.充值十元仿真
当bn2按下后,个位不变,十位加一。
4.充值超过99仿真
充值超过九十九时,个位十位均不变保持九十九。
5.消费三元仿真
总钱数为十元时,当bn3按下后,十位减一,个位加七。
6.消费八元仿真
总钱数为十元,当bn4按下后,十位减一,个位加二。
7.消费十二元仿真
总钱数为二十元,当bn5按下后,十位减2,个位加8。
8.消费超出总额仿真
当消费超过总额时,钱数全部置零。
四.源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
use;
ENTITYcxzIS
PORT(bn0,bn1,bn2,bn3,bn4,bn5,bn7:INSTD_LOGIC;
clk_50M,reset:INSTD_LOGIC;
DOUT7:OUTSTD_LOGIC_VECTOR(6DOWNTO0);
CatL:OUTSTD_LOGIC_VECTOR(5DOWNTO0);
led1,led2,led3,led4:OUTSTD_LOGIC
);
ENDcxz;
ARCHITECTUREbehaveOFcxzIS
SIGNALdisp0,disp1,disp2,disp4,disp5:STD_LOGIC_VECTOR(6DOWNTO0);
SIGNALbtn0,btn1,bt
您可能关注的文档
最近下载
- GBT12474-2008 空气中可燃气体爆炸极限测定方法.pdf
- 【四川】2025年中考英语仿真模拟测试题(含答案).docx VIP
- 学堂在线行云流水——工科的中文写作(清华)章节作业答案.docx
- (新教材)粤教版五年级下册科学2.13网上学习:身边的发酵食品课件.pptx VIP
- 《SketchUp三维辅助设计》课件——05 SketchUp基本编辑工具.pptx VIP
- 云天课件-中职《机械基础》第十章-气动传动与液压传动(动画版)(栾学钢、赵玉奇、陈少斌).ppt VIP
- 全国农产品地理标志产品列表.docx VIP
- 《SketchUp三维辅助设计》课件——04 SketchUp基本绘图工具.pptx VIP
- 华为公司战略规划和落地方法之:五看三定工具解析.pptx
- 《SketchUp三维辅助设计》课件——03 SketchUp基本操作方法.pptx VIP
文档评论(0)