基于VHDL的自动售货机控制系统设计与实现
4星 · 超过85%的资源 需积分: 13 122 浏览量
更新于2024-08-02
4
收藏 127KB DOC 举报
"庞金伟同学的VHDL与数字电路课程设计报告,主题为自动售货机控制系统的设计。该设计旨在让学生掌握MAX+PLUSⅡ软件的使用、VHDL语言编写数字电路系统、电路设计流程以及自动售货机工作原理。设计要求包括钱数处理、找零、显示和退币功能,通过3个键代表3种钱和3种物品,2个数码管分别显示输入和找零金额,使用发光二极管反馈购买状态。系统由分频模块、控制模块和译码输出模块构成,其中分频模块用于产生稳定的时钟信号,控制模块负责按键判断、金额计算和找零控制,译码输出模块则将金额转换为数码管显示。"
该设计中,自动售货机的控制系统基于VHDL语言,这是一种硬件描述语言,用于描述数字系统的逻辑功能。设计的核心是控制模块,它包含了以下关键功能:
1. **按键判断**:通过检测按键输入,识别用户是选择投入货币还是选择商品。3个货币键代表不同面额的钱币,3个商品键对应不同的商品。
2. **金额计算**:用户投入货币后,系统会累计输入的金额,并在2个数码管上显示。每次按键,系统都会更新当前的金额。
3. **找零计算**:当用户选择商品后,系统会将输入金额与商品价格进行比较。如果输入金额大于商品价格,系统会在数码管上显示应找回的金额,并通过发光二极管指示购买成功。若输入金额不足,系统会显示需退出的金额,发光二极管提示购买失败。
4. **分频模块**:此部分用于产生稳定、频率较低的时钟信号,以避免按键抖动的问题。它通过内部计数器在外部时钟信号的控制下产生新的时钟信号,确保系统操作的精确性。
5. **译码输出模块**:为了在数码管上显示输入和找零的金额,需要将数值译码成7段数码管可以显示的形式。由于金额可能超过9,译码模块必须能处理两位数的显示。
在实际实现中,设计者可能利用MAX+PLUSⅡ软件进行电路的仿真和综合,最终将设计下载到GW48实验系统中进行硬件验证。这个过程涉及到VHDL代码的编写、逻辑功能的验证以及硬件平台的适配,全面锻炼了学生的数字系统设计能力。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-05-13 上传
2021-10-08 上传
2024-01-15 上传
2024-01-24 上传
点击了解资源详情
点击了解资源详情
erpent
- 粉丝: 0
- 资源: 7
最新资源
- Angular程序高效加载与展示海量Excel数据技巧
- Argos客户端开发流程及Vue配置指南
- 基于源码的PHP Webshell审查工具介绍
- Mina任务部署Rpush教程与实践指南
- 密歇根大学主题新标签页壁纸与多功能扩展
- Golang编程入门:基础代码学习教程
- Aplysia吸引子分析MATLAB代码套件解读
- 程序性竞争问题解决实践指南
- lyra: Rust语言实现的特征提取POC功能
- Chrome扩展:NBA全明星新标签壁纸
- 探索通用Lisp用户空间文件系统clufs_0.7
- dheap: Haxe实现的高效D-ary堆算法
- 利用BladeRF实现简易VNA频率响应分析工具
- 深度解析Amazon SQS在C#中的应用实践
- 正义联盟计划管理系统:udemy-heroes-demo-09
- JavaScript语法jsonpointer替代实现介绍