基于VHDL的自动售货机控制系统设计与实现
4星 · 超过85%的资源 需积分: 13 7 浏览量
更新于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代码的编写、逻辑功能的验证以及硬件平台的适配,全面锻炼了学生的数字系统设计能力。
2009-09-14 上传
2023-05-13 上传
2023-06-28 上传
2023-05-12 上传
2023-06-11 上传
2023-12-30 上传
2023-03-28 上传
erpent
- 粉丝: 0
- 资源: 7
最新资源
- 开源通讯录备份系统项目,易于复刻与扩展
- 探索NX二次开发:UF_DRF_ask_id_symbol_geometry函数详解
- Vuex使用教程:详细资料包解析与实践
- 汉印A300蓝牙打印机安卓App开发教程与资源
- kkFileView 4.4.0-beta版:Windows下的解压缩文件预览器
- ChatGPT对战Bard:一场AI的深度测评与比较
- 稳定版MySQL连接Java的驱动包MySQL Connector/J 5.1.38发布
- Zabbix监控系统离线安装包下载指南
- JavaScript Promise代码解析与应用
- 基于JAVA和SQL的离散数学题库管理系统开发与应用
- 竞赛项目申报系统:SpringBoot与Vue.js结合毕业设计
- JAVA+SQL打造离散数学题库管理系统:源代码与文档全览
- C#代码实现装箱与转换的详细解析
- 利用ChatGPT深入了解行业的快速方法论
- C语言链表操作实战解析与代码示例
- 大学生选修选课系统设计与实现:源码及数据库架构