自动售货机设计报告 - 图文
更新时间:2023-09-11 12:51:01 阅读量: 教育文库 文档下载
数字电子技术课程设计
——自动售货机
摘 要
自动售货机是一台机电一体化的自动化装置,在接收到货币已输入的前提下,靠触摸控制按钮输入信号使控制器启动相关位置的机械装置完成规定动作,将货物输出。当顾客按下需要买的商品所对应的按键时,数码管将显示出该商品的的价格,然后顾客需要将货币投入投币口,数码管上显示出所投币额。当按下确认键,则自动售货机将对投入的货币与商品的价格进行比较。如果投入的币额足够时,则自动送出商品,并且把多余的钱找回,在数码管上显示出来。如果两者币的相等,则直接送出商品。如果投入的币额不足时则报警,设计时可以设置报警时间。当顾客一旦按下确认键3秒后,自动售货机将自动恢复到初始状态,此时顾客才可以进行下一次购货操作。售货机还具有商家使用累加货币的功能,累加的货币在数码管上显示出,此累加器只能有商家可以控制清零。此售货机还有商家控制的整体复位功能。该售货机具有使用方便,结构简单,灵活通用等优点,因此在销售业,食品产业得到广泛的应用。本文设计的自动售货机,主要应用到Verilog语言和Quartus II软件,通过编写Verilog语言子模块程序经过Quartus II仿真生成电路图,然后编写总体程序并调用各子程序,经过Quartus II仿真反馈连接生成一个自动售货机模型,最后将其下载到FPGA开发板内进行功能测试。
关键字:自动售货机、Verilog语言、Quartus II软件、FPGA开发板
目录
1.设计完成的功能…………………………………………………1
2.实验原理…………………………………………………………1
3.设计思路………………………………………………………1-2
4.程序代码段…………………………………………………2-9
5.Quartus II综合分析得各模块RTL电路图………………9-12
6.Quartus II仿真结果………………………………………13-15
7.FPGA开发板管脚配置图………………………………………15
8.FPGA开发板测试结果…………………………………………16
一、设计完成的功能
(1)设计一个自动售货机,此机能出售1元、2元、5元、10元的四种商品。出售哪种商品可有顾客按动相应的一个按键即可,并同时用数码管显示出此商品的价格。
(2)顾客投入硬币的钱数也是有1元、2元、5元、10元四种,但每次只能投入其中的一种硬币,此操作通过按动相应的一个按键来模拟,并同时用数码管将投币额显示出来。
(3)顾客投币后,按一次确认键,如果投币额不足时则报警,报警时间3秒(可用点阵模拟报警)。如果投币额足够时自动送出货物(送出的货物用相应不同的指示灯显示来模拟),同时多余的钱应找回,找回的钱数用数码管显示出来。 (4)顾客一旦按动确认键3秒后,自动售货机即可自动恢复到初始状态,此时才允许顾客进行下一次购货操作。
(5)售货机还应具有供商家使用的累加卖货额的功能,累加的钱数要用数码管显示,显示2位即可。此累加器只有商家可以控制清零。 (6)此售货机要设有一个由商家控制的整体复位控制。
二、实验原理
总的设计思想:首先用Verilog语言编写各子模块程序代码,来实现各子模块设计要求功能。然后编写一个顶层模块,并在顶层模块中调用各子模块的程序代码,以使各子模块联系起来。编程完成以后通过Quartus II调入程序进行综合分析仿真,得到总模块以及各子模块的RTL电路图,最后将其下载到FPGA开发板内进行功能测试。
具体流程:首先应搭建识别模块,将代表每种硬币的拨码开关信号转变为BCD码进行累加。当累加完成后,将累加结果与代表商品的BCD码相比较。如果大于售出商品并对两个BCD码求差,求差的结果作为找钱信号;如果等于直接售出商品;小于则报警。至于统计卖钱额,则是对售出的商品进行累加。同时还要通过数码管显示模块进行显示。
三、设计思路
采用先部分再整体的设计思想,将总体设计分为以下模块 (1)分频(fenpin)模块。
(2)计时(count)模块。用于控制确认键后到恢复初始化的3秒计时。
1
(3)识别(shibie)模块。将每种硬币、货品的拨码开关信号转变为编码 。 (4)清零(qingling)模块 。用于销售总额的清零。 (5)初始化(init)模块
(6)控制(control)模块。用于数据读入、投币不足、交易成功状态的控制及转化。
(7)显示(display)模块
四、程序代码段
(1)fenpin模块程序代码: module fenpin(clk,f_1m,f_1s); input clk;
output f_1m,f_1s; reg f_1m,f_1s;
integer a_temp1,a_temp2; always@(posedge clk) begin
if (a_temp2==24999) begin
f_1m=~f_1m; a_temp2<=0; end else
a_temp2<=a_temp2+1; end
always@(posedge clk) begin
if(a_temp1==24999999) begin
f_1s=~f_1s; a_temp1<=0; end else
a_temp1<=a_temp1+1; end endmodule
该模块设计目的是实现分频,以使后续模块能得到毫秒和秒级的动作。 (2)count模块程序代码: module count(f_1s,ret,a); input f_1s; input ret;
2
正在阅读:
自动售货机设计报告 - 图文09-11
《高数(上)》单元训练题(2016版)04-20
产科实习日记范文10-29
关于忽略的作文02-04
大工15春《路基路面工程》在线作业106-11
小学数学新教材培训学习心得体会11-11
新视野大学英语4期末考试范围05-02
中医住院完整病历示例12-05
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 自动售货机
- 图文
- 报告
- 设计
- 环境保护综合治理实施方案
- 膜法脱硝在离子膜烧碱生产的应用总结
- 天然药物化学
- 互联网思维造不出扎实的产品
- 2018年江苏省南通市如皋市中考语文一模试卷
- 新苏教版小学数学六年级上册单元试题全册2017年用
- 6KV立式高压电机(轴瓦式)大修作业指导书
- 语文:2011高考一轮复习评价诗歌的思想内容和作者的观点态
- 学生成绩管理系统的设计与实现本科毕业论文 - 图文
- 新课程标准下初探小学美术教学评价-2019年精选教育文档
- 额外性论证评价工具要点分析
- 2011年安全工程师《安全生产法及相关法律知识》考试大纲
- 初中生演讲稿,青春梦想责任感恩
- 校园咖啡书吧项目可行性分析
- 2017-2022年中国汽车安全气囊市场行情动态与投资战略分析报告(目录) - 图文
- 《马克思主义哲学原理》样卷
- 历年初级统计师考试统计学和统计法基础知识真题答案
- 2015-2016年人教版小学四年级语文下册期中测试题试卷(11)
- 基于现金流盈利的上市公司质量评价研究
- 7.7 动能和动能定理 学案(人教版必修2)