设计电路有两个投币口(1元和5角),货物2元一件,不设找零。out表示是否提供货物。

设计代码

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2020/07/23 11:30:37
// Design Name:
// Module Name: Test1130
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module Test1130(reset,clk,jiao,yuan,out);
input clk,reset,jiao,yuan;
output out;
reg out;reg [2:0] state;
parameter idle=0,half=1,one=2,one_half=3,two=4;
always @(posedge clk or posedge reset)if(reset)beginout <= 1'b0;state <= 0;endelsecase(state)idle:beginout<=0;if(jiao)state<=half;else if(yuan)state=one;elsestate<=idle;endhalf:beginif(jiao)state<=one;else if(yuan)state=one_half;elsestate<=half;endone:beginif(jiao)state<=one_half;else if(yuan)beginout<=1;state=two;endelsestate<=one;endone_half:beginif(jiao)beginout<=1;state=two;endelsestate<=one_half;endtwo:beginout<=0;state<=idle;enddefault:beginout<=0;state<=idle;endendcase
endmodule

测试代码

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2020/07/23 16:21:33
// Design Name:
// Module Name: Test1621
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module Test1621;
reg reset;
reg clk;
reg jiao;
reg yuan;
wire out;
always begin#100 clk=1;#100 clk=0;
endinitial beginreset=1;clk=0;jiao=0;yuan=0;#500;reset=0;//投入5角repeat(2)@(posedge clk);#2;   jiao=1;repeat(1)@(posedge clk);#2;   jiao=0;
//投入5角   repeat(2)@(posedge clk);#2;   jiao=1;repeat(1)@(posedge clk);#2;   jiao=0;
//投入5角  repeat(2)@(posedge clk);#2;   jiao=1;repeat(1)@(posedge clk);#2;   jiao=0;
//投入5角  repeat(2)@(posedge clk);#2;   jiao=1;repeat(1)@(posedge clk);#2;   jiao=0;//投入一元repeat(2)@(posedge clk);#2;   yuan=1;repeat(1)@(posedge clk);#2;   yuan=0;
//投入一元   repeat(2)@(posedge clk);#2;   yuan=1;repeat(1)@(posedge clk);#2;   yuan=0;
//投入一元 repeat(2)@(posedge clk);#2;   yuan=1;repeat(1)@(posedge clk);#2;   yuan=0;//投入一元 repeat(2)@(posedge clk);#2;   yuan=1;repeat(1)@(posedge clk);#2;   yuan=0;endTest1130 x1(.reset(reset),.clk(clk),.jiao(jiao),.yuan(yuan),.out(out));
endmodule

仿真波形

更新一下改进版的自动售货机
增设了售货机的找零功能,将货品价格修改为2.5元一件。

设计代码

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2020/07/23 11:30:37
// Design Name:
// Module Name: Test1130
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module Test1130(reset,clk,jiao,yuan,out,change);
input clk,reset,jiao,yuan;
output out,change;
reg out;
reg change;
reg [2:0] state;
parameter idle=0,half=1,one=2,one_half=3,two=4,two_half=5,three=6,cha=7;
always @(posedge clk or posedge reset)if(reset)beginout <= 1'b0;state <= 0;change<=0;endelsecase(state)idle:beginout<=0;if(jiao)state<=half;else if(yuan)state=one;elsestate<=idle;endhalf:beginif(jiao)state<=one;else if(yuan)state=one_half;elsestate<=half;endone:beginif(jiao)state<=one_half;else if(yuan)beginout<=0;state=two;endelsestate<=one;endone_half:beginif(jiao)beginout<=0;state=two;endelse if(yuan)beginout<=1;state<=idle;endelsestate<=one_half;endtwo:beginif(jiao)beginout<=1;state=idle;endelse if(yuan)beginout<=1;state<=three;end   endthree:beginout<=1;change<=1;state<=cha;endcha:beginchange<=0;out<=0;state<=idle;enddefault:beginout<=0;state<=idle;change<=0;endendcase
endmodule

测试代码

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2020/07/23 16:21:33
// Design Name:
// Module Name: Test1621
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module Test1621;
reg reset;
reg clk;
reg jiao;
reg yuan;
wire out;
wire change;
always begin#100 clk=1;#100 clk=0;
endinitial beginreset=1;clk=0;jiao=0;yuan=0;#500;reset=0;//投入5角repeat(2)@(posedge clk);#2;   jiao=1;repeat(1)@(posedge clk);#2;   jiao=0;
//投入5角   repeat(2)@(posedge clk);#2;   jiao=1;repeat(1)@(posedge clk);#2;   jiao=0;
//投入5角  repeat(2)@(posedge clk);#2;   jiao=1;repeat(1)@(posedge clk);#2;   jiao=0;
//投入5角  repeat(2)@(posedge clk);#2;   jiao=1;repeat(1)@(posedge clk);#2;   jiao=0;
//投入5角  repeat(2)@(posedge clk);#2;   jiao=1;repeat(1)@(posedge clk);#2;   jiao=0;
//投入一元repeat(2)@(posedge clk);#2;   yuan=1;repeat(1)@(posedge clk);#2;   yuan=0;
//投入一元   repeat(2)@(posedge clk);#2;   yuan=1;repeat(1)@(posedge clk);#2;   yuan=0;
//投入一元 repeat(2)@(posedge clk);#2;   yuan=1;repeat(1)@(posedge clk);#2;   yuan=0;
//投入一元 repeat(2)@(posedge clk);#2;   yuan=1;repeat(1)@(posedge clk);#2;   yuan=0;
//投入一元 repeat(2)@(posedge clk);#2;   yuan=1;repeat(1)@(posedge clk);#2;   yuan=0;
//投入5角  repeat(2)@(posedge clk);#2;   jiao=1;repeat(1)@(posedge clk);#2;   jiao=0;
endTest1130 x1(.reset(reset),.clk(clk),.jiao(jiao),.yuan(yuan),.out(out),.change(change));
endmodule

change的指数1表示0.5元。

简易自动售货机控制电路相关推荐

  1. 随笔--java-一次简易自动售货机程序设计

    文章目录 前言 一.实验内容要求 二.代码 总结 前言 在课堂上一次性完成了老师布置的实验任务,记录一下. 一.实验内容要求 简易自动售货机程序设计 说明: (a)可多次投币,累计金额超过商品价格时, ...

  2. 简易售货机JAVA sql_JAVA基础---简易自动售货机

    JAVA基础练手项目-自动售货机 要求: 简易售货机 流程: [投币]->[显示货物清单]->[选择一个商品编号购买]->[提示出货]->[找钱] 功能要求: 1. 使用mys ...

  3. java自动售货机代码_急求简易自动售货机(java编程)

    引用z17199的回答: package com.test; import java.util.Scanner; import com.sun.java_cup.internal.internal_e ...

  4. 简易售货机JAVA sql_求一个简易自动售货机的代码(java)要用创建类封装性,输出的时候要有提示语句,代码类似以下图片...

    展开全部 //Example类文件Example.java package cn.zhouhan; import java.util.Scanner; public class Example { s ...

  5. 【记录】Multisim设计仿真简易自动售货机

    很长时间没用Multisim了,做了一个小设计作为回顾. 设计内容 设计自动售货机,要求如下: 1)待售物品价格1元.2元.3元.5元: 2)只接受1元.5元.10元币值: 3)机内存有1元零钱无限: ...

  6. 基于GEC6818的简易自动售货机的设计

    第一阶段的学习已经完成,老师布置了一个阶段验收项目,我以为是电子相册,谁知道,是这个,售货机,来说一下自己的心得体会吧 1 大二下学期的时候,有一个一周的简易项目需要完成,学生信息管理系统,不涉及到U ...

  7. 基于有限状态机的自动售货机控制电路

    1.该售货机的功能为每件商品25元,投入总金额大于25元时可找回零钱.(如图为状态转移图) 2.使用VHDL实现 library IEEE; use IEEE.STD_LOGIC_1164.ALL; ...

  8. c++语言简易自动售货机,C++自动售货机源代码 课程设计

    #include #include #include using namespace std; class moneycounter { public: moneycounter()//初始化 { i ...

  9. 用c语言写一个自动售货机

    自动售货机 如图所示的简易自动售货机,物品架1.2上共有10样商品,按顺序进行编号,分别为1-10.同时标有价格与名称,- 一个编号对应一个可操作按钮,供选择商品使用.如果物架上的商品被用户买走,储物 ...

最新文章

  1. Webpack中的sourcemap
  2. java tf值搜索_搜索引擎优化 TF_IDF之Java实现
  3. RAID5EE 含有上次残余信息的分析
  4. 阿里文娱首次公开!AI 如何对爆款内容未卜先知?
  5. CentOS的ssh sftp配置及权限设置整理
  6. springboot 指定 logback_Spring Boot日志框架实战解析
  7. 【POJ 3666】Making the Grade【线性DP】
  8. acfun json 弹幕 转换 bilibili xml 弹幕
  9. python文本关联分析_如何对文本内的某个词的关联词进行提取?
  10. [原创]和Taskmgr过不去篇(无厘头版)
  11. 播放和保存视频,图像倒置纠正到本地文件夹(含ffmpeg ,pyav多线程读取多路网络摄像头)
  12. 加利福尼亚大学圣地亚哥分校计算机科学专业,美国加州大学伯克利分校计算机专业排名一览...
  13. 实例10 等差数列求和
  14. 前端入门练习之将psd文件转换为HTML文件
  15. 超级实用的PLSQLDEV客户端总结
  16. VS2005 下使用BoundsChecker检测内存泄露
  17. 淘宝开放平台 top 的概要
  18. C# winform 编写一键排班软件时遇到的问题
  19. Stm32之RTC时钟(2021-07-26)
  20. vmware安装redhat7.0虚拟机没有找到gcc命令的经验

热门文章

  1. 王立铭紧急发声:为什么基因编辑婴儿在今天不可原谅?
  2. 3.27 制作文字沿路径排列的艺术效果 [原创Ps教程]
  3. 怎么建立工程和源代码文件在VC++6.0 中
  4. oracle vm 不能用 u盘,ubuntu下oracle vm virtualbox中如何使用U盘、U盾
  5. 微软Google暗战:霸主的商战智慧
  6. error:03000086:digital envelope routines::initialization error
  7. xp系统无法工作组计算机,xp系统进不去工作组计算机的解决方法
  8. 【计算机视觉 | 目标检测】CORA: Adapting CLIP for Open-Vocabulary Detection with Region Prompting and Anchor
  9. uniapp项目中使用canvas生成海报并保存、微信分享、发送至朋友圈
  10. 有符号数与无符号数的加减法