当前位置:文档之家› 自动售货机VHDL程序与仿真

自动售货机VHDL程序与仿真

自动售货机VHDL程序与仿真
自动售货机VHDL程序与仿真

自动售货机VHDL程序与仿真

(1)自动售货机VHDL程序如下:

--文件名:pl_auto1.vhd。

--功能:货物信息存储,进程控制,硬币处理,余额计算,显示等功能。

--说明:显示的钱数coin的以5角为单位。

--最后修改日期:2004.3.23。

library ieee;

use ieee.std_logic_arith.all;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity PL_auto1 is

port ( clk:in std_logic; --系统时钟

set,get,sel,finish: in std_logic; --设定、买、选择、完成信号

coin0,coin1: in std_logic; --5角硬币、1元硬币

price,quantity :in std_logic_vector(3 downto 0); --价格、数量数据

item0 , act:out std_logic_vector(3 downto 0); --显示、开关信号

y0,y1 :out std_logic_vector(6 downto 0); --钱数、商品数量显示数据

act10,act5 :out std_logic); --1元硬币、5角硬币

end PL_auto1;

architecture behav of PL_auto1 is

type ram_type is array(3 downto 0)of std_logic_vector(7 downto 0);

signal ram :ram_type; --定义RAM

signal item: std_logic_vector(1 downto 0); --商品种类

signal coin: std_logic_vector(3 downto 0); --币数计数器

signal pri,qua:std_logic_vector(3 downto 0); --商品单价、数量

signal clk1: std_logic; --控制系统的时钟信号begin

com:process(set,clk1)

variable quan:std_logic_vector(3 downto 0);

begin

if set='1' then ram(conv_integer(item))<=price & quantity;act<="0000";

--把商品的单价、数量置入到RAM elsif clk1'event and clk1='1' then act5<='0'; act10<='0';

if coin0='1' then

if coin<"1001"then coin<=coin+1; --投入5角硬币,coin自加1

else coin<="0000";

end if;

elsif coin1='1' then

if coin<"1001"then coin<=coin+2; --投入1元硬币,coin自加2

else coin<="0000";

end if;

elsif sel='1' then item<=item+1; --对商品进行循环选择

elsif get='1' then --对商品进行购买

if qua>"0000" and coin>=pri then coin<=coin-pri;quan:=quan-1;

ram(conv_integer(item))<=pri & quan;

if item="00" then act<="1000"; --购买时,自动售货机对4种商品的操作

elsif item="01" then act<="0100";

elsif item="10" then act<="0010";

elsif item="11" then act<="0001";

end if;

end if;

elsif finish='1' then --结束交易,退币(找币)if coin>"0001" then act10<='1';coin<=coin-2; --此IF语句完成找币操作

elsif coin>"0000" then act5<='1'; coin<=coin-1;

else act5<='0'; act10<='0';

end if;

elsif get='0' then act<="0000";

for i in 4 to 7 loop

pri(i-4)<=ram (conv_integer(item))(i); --商品单价的读取

end loop;

for i in 0 to 3 loop

quan(i):=ram(conv_integer(item))(i); --商品数量的读取

end loop;

end if;

end if;

qua<=quan;

end process com;

m32:process(clk) --此进程完成对32Mhz的脉冲分频variable q: std_logic_vector( 24 downto 0);

begin

if clk'event and clk='1' then q:=q+1;

end if;

if q="111111111111111111111111" then clk1<='1';

else clk1<='0';

end if;

end process m32;

code0:process(item) --商品指示灯译码

begin

case item is

when "00"=>item0<="0111";

when "01"=>item0<="1011";

when "10"=>item0<="1101";

when others=>item0<="1110";

end case;

end process;

code1: process (coin) --钱数的BCD到七段码的译码begin

case coin is

when "0000"=>y0<="0000001";

when "0001"=>y0<="1001111";

when "0010"=>y0<="0010010";

when "0011"=>y0<="0000110";

when "0100"=>y0<="1001100";

when "0101"=>y0<="0100100";

when "0110"=>y0<="0100000";

when "0111"=>y0<="0001111";

when "1000"=>y0<="0000000";

when "1001"=>y0<="0000100";

when others=>y0<="1111111";

end case;

end process;

code2: process (qua) --单价的BCD到七段码的译码begin

case qua is

when "0000"=>y1<="0000001";

when "0001"=>y1<="1001111";

when "0010"=>y1<="0010010";

when "0011"=>y1<="0000110";

when "0100"=>y1<="1001100";

when "0101"=>y1<="0100100";

when "0110"=>y1<="0100000";

when "0111"=>y1<="0001111";

when "1000"=>y1<="0000000";

when "1001"=>y1<="0000100";

when others=>y1<="1111111";

end case;

end process;

end behav;

(2)程序仿真

注:仿真图里没有对clk信号进行分频处理。

图8.21.2 系统仿真全图

图8.21.3 系统仿真图-预置部分

图21.4 系统仿真图-商品种类选择部分

2图8.21.5 系统仿真图-投币部分

图8.21.6 系统仿真图-购买、找币结束交易部分

自动售货机控制系统的设计(最终版)

课程设计任务书 设计题目:饮料自动售货机PLC控制系统设计 学院:机械工程学院 专业:机械测控 班级: 姓名: 组员: 指导老师:

【摘要】 本文介绍了自动售货机的基本原理以及工作流程,然后以一次交易过程为例,把交易过程分为几个程序块,然后分别对程序块进行编程。具体说明了可编程序控制器在自动售货机中的作用。程序涉及到了自动售货机工作的绝大部分过程。利用PLC控制的自动售货机提高了系统的稳定性,保证自动售货机能够长期稳定运行。 关键词:自动售货机;可编程序控制器;梯形图 Abstract:This paper introduces the basic principles of vending machines, as well as workflow, and then to a transaction process as an example, the transaction process is divided into several blo ck, and then the block were programmed. Specify the PLC in the r ole of vending machines. Procedures related to the work of the va st majority of vending machine process. PLC control of the use of vending machines enhance the stability of the system to ensure t hat vending machines capable of long-term stable operation. Key words:Vending machines; PLC; Ladder Diagram 一.PLC的概述 1.1 PLC的产生

基于plc的自动售货机程序设计

题目:基于plc的自动售货机程序设计 1 PLC的硬件组成 PLC的硬件主要由中央处理器(CPU)、存储器、输入单元、输出单元、通信接口、扩展接口、电源等几部分组成。其中,CPU是PLC的核心;输入单元/输出单元是CPU 与现场输入/输出设备之间的接口电路;通信接口用于连接编程器、上位计算机等外部设备,其硬件构成图如图1-1。 图1-1 PLC硬件结构图 2 PLC控制自动售货机的主要硬件及选型 2.2.2自动售货机I/O点的分配 输入/输出单元通常也称I/O单元或I/O模块,是PLC与工业生产现场之间的连接部件。PLC通过输入接口可以检测被控对象的各种数据,以这些数据作为PLC对被控对象进行控制的依据;同时PLC又通过输出接口将处理的结果送给被控对象,以实现控制目的。本次自动售货机I/O点的分配表如表3-1所示。 输入信号PLC地址输出信号PLC地址 找零按钮x0 找零y0 一元饮料按钮x1 咖啡出口y1 五元饮料按钮x2 汽水出口y2 十元元饮料按钮x3 汽水指示灯y3 咖啡饮料按钮x4 咖啡指示灯y4

2.2.3自动售货机的I/O接口图 此次自动售货机的I/O接口如图3-1所示,SB2-SB7是物品选择按钮,当投入货币物品绿灯亮(Q1.0-Q1.5)。按下SB2-SB7其中一个,对应的KM线圈得电,电机转动出相应的物品(Q0.1-Q0.6);当有物品售完,其行程开关断开,物品绿灯不亮并同时向总部发送物品销售完的信息;当购买物品总值低于投入总值时,可按找零按钮SB1后KM1得电,电机转动找零(Q0.0)。 图3-1自动售货机PLC控制I/O接口图 4.1.2 数学运算指令 在梯形图中,整数、双整数与浮点数的加、减、乘、除指令(见表4-2)分别执行下列运算:IN1+IN2=OUT,IN1-IN2=OUT,IN1*IN2=OUT,IN1/IN2=OUT。 在语句表中,整数、双整数与浮点数的加、减、乘、除指令分别执行下列运算:IN1+OUT=OUT,OUT-IN1=OUT,IN1*OUT=OUT,OUT/IN2=OUT。 表4-2 加减乘除指令

基于自动售货机的软件工程

面向对象分析实践大作业(40%) 下面是自动售货机系统的需求陈述,请 你: 1.编写分析和设计报告; 2.报告分需求分析、系统设计和对象设计三部分编撰,各部分应按相应的格式编写,并包含用例图、顺序图、类图、业务流程图、系统结构图等; 3.大作业的结构为: A项目需求说明 B需求分析报告 C系统设计报告 D对象设计报告 E分析设计过程说明:这部分介绍分析

和设计过程中使用了什么技术 需求陈述: 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、五分币、二分币、一分币。其他货币被认为是假币。机器拒绝接受假币,并将其从退币孔退出。当机器接受了有效的硬币之后,就把硬币送入硬币储藏器中。顾客支付的货币根据硬币的面值 进行累加。 自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返还到退币孔。如果分

配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的货币将从退币孔中退出。 参考资料:《软件工程》张海藩清华大学出版社 2009年第一版 下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模 型: 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、五分币、二分币、一分币。其他货币被认为是假币。机器拒绝接受假币,并将其从退币孔退出。当机器接受了有效的硬币之后,就把硬币送入硬币储藏

自动售货机程序

重庆科技学院 《C语言程序设计》 课程设计报告 学院:_电气与信息工程学院_ 专业班级:测控1302 学生姓名:张宇学号: 2013441294 设计地点(单位)_____重庆科技学院___ ________ __ 设计题目:_____________自动售货机系统________________ 完成日期: 2014 年 07月 04 日 指导教师评语: ______________________ _________________ __________________________________________________________________________________ __________________________________________________________________________________ 成绩(五级记分制):______ __________ 指导教师(签字):________ ________

重庆科技学院 课程设计任务书设计题目:自动售货机系统

2014年6月02日

摘要 有史以来,人类发明了无数的信息技术来扩展自身的信息交流、处理和记忆能力。然而,以1946年世界第一台电子计算机的出现为开端,信息技术开始走向一个全新的数字时代。50年多年来,计算机技术飞速发展,日新月异。人们发现起初为解决计算问题而发明的计算机用途越来越广,几乎渗透到涉及信息活动的一切领域。计算机软件的开发更是帮助到各个领域对计算机的使用,更加优化了计算机的功能。 根据本次课程设计内容及要求,完成自动售货机系统的设计。这种无人值守自动售货机贩卖价值为A、B、C的三种商品,价格分别为2元,3元和6元。顾客投入10元的纸币,然后选择购买3种商品之一,自动售货机吐出商品,并且找给用户零钱。如果商品已经卖完,或者无法找零,则给出用户一个提示,商品已售完,并且退还纸币。 在自动售货机系统中,数据的固化采用.out文件格式进行储存。 关键词:计算机自动售货机储存

自动售货机管理程序

1引言 21世纪,我们已经进入了信息时代,计算机的使用大大方便了我们的日常生活,超市和网上购物已经不能满足我们对便利生活的要求,不能随时随地购物的缺点不能克服的。在此情况下,就需要一个程序化的自动售货机来满足人们日常生活的需求。在C语言的平台下实现,用户可以方便的进行各项购物操作。 C语言是一种程序设计语言,早在20世纪90年代,C语言表现出了强劲的生命力,C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体,既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此可以广泛地移植到了各类型计算机上,从而形成了多种版本的C语言。 采用输入函数和输出函数方式,可以完成对待售物品的名称、数量、价格的输出、顾客所选物品的输入、以及其它购物信息显示。

在对自动售货机管理程序进行需求分析的过程中,需要确定系统的主要功能,对程序开发的主要目的、程序的使用领域和有关该程序开发的软硬件环境进行详细的分析。下面从系统概述、功能模块描述两个方面进行需求分析。 2.1程序概述 自动售货机管理程序是运行于Windows系统下的应用软件,主要用于对待售商品的品名、价钱、数量、生产日期、保质期、编号进行输出等操作。 2.2功能需求 自动售货机管理程序为路边的行人提供了一个随时随地进行购物的平台,给消费者提供了一个简单友好的购物窗口,功能需求如下: (1)输出模块 程序在消费者购物前将所售商品的品牌输出以供消费者选择品牌,然后将消费者选择的品牌下的商品信息输出让消费者选择所需的商品,最后输出“请你付款班级”提示消费者完成购物。 (2)输入模块 让将消费者选定的商品的编码输入程序中然后进行价格的输出,以上述的方式让消费者把购物数量输入进程序中,最后将消费者付款金额输入,进而完成找钱。 (3)返回模块 如果消费者所输入的商品编码自动售货机上没有,则程序自动跳转到商品品牌的选择,提示消费者输入正确的商品编码。并且如果消费者输入的购买数量大于库存数量,程序将自动返回到商品的数量选择界面下,还有如果消费者的付款金额小于消费金额时,程序将自动返回到付款界面。 (4)找钱模块 将消费者付款金额进行判断后,进行一定运算后按50元、20元、10元、1元的分类分别找对。 程序由上述几个模块组成,能帮助消费者以自助的方式完成所需商品的购买并且有效地减少购物时间。另外还能节省售货者的管理时间,大大的提高管理的效率。

简单自动售货机VerilogHDL程序

自动售货机VerilogHDL程序 一个简单的自动售卖饮料机的程序。该机器具有投币,显示余额,购买六种饮料,退钱等功能,为了更具实用性,增添了饮料选择允许提示和投币允许提示的功能。具体形容,可投入一元、五元、十元和二十元面值的钱币,显示出当前的余额,并根据当前的余额提示能购买哪些饮料,选择某种饮料,则输出选定的饮料,同时余额减去相应的金钱。若选择退钱,机器就退出所有的钱,余额清零。 下图为功能示意图: 程序的状态表:

程序中包含了一个状态机,定义了一个任务(task)和函数(function),用该任务调用了该函数,使用若干分支语句,详见附后源程序和测试程序。 附上程序编译仿真图:

源程序如下: `define one 3'b001 `define five 3'b010 `define ten 3'b011 `define twenty 3'b100 module automart(money,state,moneyout,coinable,adrkable,bdrkable, cdrkable,drkout1,drkout2,drkout3,drkout4,drkout5, drkout6,coin,clk,reset,moneyback,choice1,choice2, choice3,choice4,choice5,choice6); input[2:0] coin;//投币输入,分为1、5、10、20元四种输入 input clk,reset,moneyback,choice1,choice2,choice3,choice4, choice5,choice6;//moneyback为退钱输入,choice1~6是饮料选择output moneyout,coinable,adrkable,bdrkable,cdrkable,drkout1, drkout2,drkout3,drkout4,drkout5,drkout6; //依次为退钱输出,投币许可提示,饮料选择许可,6种饮料输出output[2:0] state;//状态记录 output[7:0] money;//余额显示 reg[7:0] money; reg[2:0] state; reg moneyout,coinable,backable,adrkable,bdrkable,cdrkable; parameter A=3'b000, B=3'b001, C=3'b010,D=3'b011, E=4'b100; assign drkout1=choice1&adrkable;

自动售货机控制系统的设计最终版

精品文档 课程设计任务书 PLC控制系统设计设计题目:饮料自动售货机 学院:机械工程学院 机械测控专业: 班级: 姓名: 组员: 指导老师:

精品文档 摘要】【本文介绍了自动售货机的基本原理以及工作流程,然后以一 次交易过程为例,把交易过程分为几个程序块,然后分别对程序块进行编程。具体说明了可编程序控制器在自动售货机中的作用。程序涉及到了自动售货机工作的绝大部分过程。利用PLC控制的自动售货机提高了系统的稳定性,保证自动售货机能够长期稳定运行。 关键词:自动售货机;可编程序控制器;梯形图 Abstract:This paper introduces the basic principles of vending machines, as well as workflow, and then to a transaction process as an example, the transaction process is divided into several block, and then the block were programmed. Specify the PLC in the role of vending machines. Procedures related to the work of the vast majority of vending machine process. PLC control of the use of vending machines enhance the stability of the system to ensure that vending machines capable of long-term stable operation.

c语言自动售货机实验报告

课程设计 课程名称C语言高级程序设计学院xxx 小组成员1 XXX 小组成员2 XXX 小组成员3 XXX 任课教师XXX 2016——2017学年第1学期

一.所选题目与要求 自动售货机 问题情景: 分析学校教学楼自动售货机的功能,设计一个自动售货系统。 功能要求: 1.系统能提供所售商品的清单(编号,名称,单价,数量) 2.客户输入商品编号及购买数量,系统显示应付的金额,输入客户实付的钱数,系统计算应找的钱数系统如果没有足够的库存或零钱时,现实应返还客户已付的金额。(不考虑用支付宝付款的情况) 3.可增加商品种类,增加商品库存,查询商品库存,查询商品销售量及销售额。 成果要求: 通过网络教学平台中的“研究型教学”建立分组,每组2-3人,通过小组讨论,确定每人的分工,并确定系统设计方案。 各小组成员在网络教学平台上进行讨论、并完成最终的报告,整个过程作为小组及个人工作评价的重要依据。 各小组成员根据系统设计方案分模块进行编程,在系统各模块编码完成后集成调试,并最终完成整个系统的测试。 根据下面的报告模板完成综合实验总结报告,并打印成纸质报告,作为大作业课程结束时上交。 附:综合实验总结报告应包含的内容: 1. 系统功能说明 2. 程序结构 程序结构说明 重要数据说明 函数清单 /* 每个函数的书写格式 */ 函数名:所在文件名 函数功能

参数说明 算法描述或程序代码 3. 系统运行结果 4. 系统设计难点及其解决方法 5. 不足之处 6. 人员分工说明 二.问题分析及算法设计 主函数 void main() //主函数模块 { do{ system("pause"); show(); //显示屏幕函数,商品清单 loop1:printf("现在你有%.1f元\n你可以选择商品序号开始选购或按0 退出\n",M); input(); //输入函数 if(M-goods[n-1].price>v) {t=0;printf("对不起,售货机没有足够的零钱了\n谢谢光临!退还%.1f元\n",M);break;} //判断售货机是否有足够的零钱,0表无if(n==0){ //确认用户是选择离开还是买东西开始购买 t=1; change(M);} //找零函数 else { loop2:sell(n,M,1,1); //购买函数 if(A==0)//货没有了怎么办 input(); //输入函数………………………………………………………………………..

自动售货机系统源代码

#include #include #include #include "goods.h" bool GetCharge(int Sum,int Money); void Getsmalcharge(int Money,int *ChargeNum); int KouLing(); char ChooseJieMian(); char SaleCenter(); void loadGoodsFromFile(Goods* gs); char ManageCenter(); void KunCun(); void Sale(); void ShangJia(); void TongJiFun(); Goods goods[3]; TongJi tj[3]; void init(){ for(int i = 0; i < 3; ++i){ tj[i].jrxl = 0; tj[i].jrzje = 0; } } void main() { //初始化 init(); int op = 0; //读取商品信息 loadGoodsFromFile(goods); char c = ChooseJieMian(); while(true) { system("cls"); if( c == '1'){ c = SaleCenter(); }else if(c == '2'){ op = KouLing(); if(op == 1){ //进入管理界面 c = ManageCenter();

//system("pause"); } else if(op == 0){ //进去销售界面 c = SaleCenter(); } } } } //---------------------------------------------------- /** * @return 1销售界面2管理界面 */ char SaleCenter() { char state='N'; int Sum=0; char Pro = 'd'; // printf("\n********************************\n"); while(true) { state='N'; Sum=0; while(!(Pro == 'c' || Pro == 'a' || Pro == 'b' || Pro == 'q')) { system("cls"); printf("\n\t*******************************************"); printf("\n\t*********顾客您好,请选择商品**************\n"); printf("\n\t·a·商品%s ·b·商品%s ·c·商品%s ·q·管理\n",goods[0].name,goods[1].name,goods[2].name); printf("\n\t -%d- -%d- -%d- (单位:件)",goods[0].totalCount,goods[1].totalCount,goods[2].totalCount); printf("\n\t*******************************************\n\t\t"); Pro = getchar(); } if(Pro == 'q') break; switch(Pro) {

基于自动售货机的软件工程(精)

面向对象分析实践大作业(40% 下面是自动售货机系统的需求陈述,请你: 1. 编写分析和设计报告; 2. 报告分需求分析、系统设计和对象设计三部分编撰, 各部分应按相应的格式编写,并包含用例图、顺序图、类图、业务流程图、系统结构图等; 3. 大作业的结构为: A 项目需求说明 B 需求分析报告 C 系统设计报告 D 对象设计报告 E 分析设计过程说明:这部分介绍分析 和设计过程中使用了什么技术 需求陈述: 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、五分币、二分币、一分币。其他货币被认为是假币。机器拒绝接受假币, 并将其从退币孔退出。当机器接受了有效的硬币之后,就把硬币送入硬币储藏器中。顾客支付的货币根据硬币的面值进行累加。 自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客

支付的货币值不小于该货物的价格, 货物将被分配到货物传送孔送给顾客, 并将适当的零钱返还到退币孔。如果分 配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物, 他投放进的货币将从退币孔中退出。 参考资料:《软件工程》张海藩清华大学出版社 2009年第一版 下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型: 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、五分币、二分币、一分币。其他货币被认为是假币。机器拒绝接受假币, 并将其从退币孔退出。当机器接受了有效的硬币之后,就把硬币送入硬币储藏 器中。顾客支付的货币根据硬币的面值进行累加。 自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格, 货物将被分配到货物传送孔送给顾客, 并将适当的零钱返还到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物, 他投放进的货币将从退币孔中退出。 参考资料:《软件工程》张海藩清华大学出版社 2009年第一版 面向对象的分析 面向对象分析方法的核心思想是利用面向对象概念和方法为软件需求构造一组相关模型(对象模型,动态模型和功能模型 ,来获得关于问题域的全面认识。

自动售货机C++程序设计

#include using namespace std; class Shop{ public : void shop(); float money(); float choose(); void out(); void con(); int a,b,c,d,v; }; void Shop::out(){ cout<<"该商品已售完\n\t\t1、购买其他商品\n\t\t2、退出"<>money; //输入 if (money!=0.5&&money!=1&&money!=2&&money!=5&&money!=10) {cout<<"请投入可接受面额!"<

cout<<"已投入金额: "<>a; switch(a){ case 1:{ if(f<=0){ out(); cin>>v; if(v==1){ shop(); continue; } if (v==2)exit(-1);} if(sum>=2) {f--;}change=sum-2; }break; case 2:{ if(g<0){ out(); cin>>v; if(v==1){ shop(); continue; } if (v==2)exit(-1); } if(sum>=2) {g--;}change=sum-2; }break; case 3:{ if(h<0){ out(); cin>>v; if(v==1){ shop(); continue;}

软件工程 自动售货机

软件工程 信息学院 08级通信工程二班罗运俊 200800120134 作业题:面向对象分析实践 下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型: 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、五分币、二分币、一分币。其他货币被认为是假币。机器拒绝接受假币,并将其从退币孔退出。当机器接受了有效的硬币之后,就把硬币送入硬币储藏器中。顾客支付的货币根据硬币的面值进行累加。自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返还到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的货币将从退币孔中退出。 参考资料:《软件工程》张海藩清华大学出版社2009年第一版 面向对象的分析 面向对象分析方法的核心思想是利用面向对象概念和方法为软件需求构造一组相关模型(对象模型,动态模型和功能模型),来获得关于问题域的全面认识。 这三个模型从不同的角度对系统进行描述,其中:对象模型描述了系统静态的、结构化的数据性质;动态模型描述了系统顺势的、行为化的控制性质;功能模型描述了变化的系统的功能性质。这三个模型都涉及到数据。控制和操作等共同的概念,但每种模型描述的侧重有所不同。它们各自以不同侧面反应系统的实质内容,综合起来则全面反映了目标系统的需求。 对象模型是三个模型中最关键的。它的作用是描述系统的静态结构,包括构成系

自动售货机代码

自动售货机控制电路设计 程序功能 本系统简单的完成了对街头自动售货机的一个模拟,算是一个小型售货机,可以完成简单的商品选择与投币处理,及输出找零等一系列流程。 调试和解决方案 调试步骤 具体的调试步骤如下: ①运行Quartus II,建立新的工程。 ②建立文本文件V erilog HDL File。在文件中写入程序。保存,编译。 ③分配管脚。保存,编译。 ④将生成的.sof文件写入FPGA试验箱中。 ⑤根据要求选择几种买东西的可能情况,在实验箱上实验,观察记录结果。调试现象 ⑴选择买1.5元的商品,投5元的金额,调试现象如下: ①选择1.5元商品 ②按下5元投币键 ③LED显示找零情况和商品。 ⑵选择1.5元的商品,投1元的金额,调试现象如下: ①选择1.5元的商品, ②按下1元的投币键, ③找零显示1元,退回所投的钱,蜂鸣器响。 测试成功

使用仪器 1.电脑一台,安装了ModelSim软件和QuartusII软件。 2.FPGA试验箱一个,内有2组4位共阳极数码管,6个LED灯。 程序代码 //先选择物品并投币 module seller(clock,reset,s1,s2,s3,s4,s5,s6,s7,LED,buzzer,prc1,cs1,prc2,cs2); //clock时钟信号,reset确认信号和复位信号 //LED代表售出标志,buzzer蜂鸣器报警标志金额不够 //prc1数码管显示商品价格,prc2数码管显示找零 //cs表示数码管片选,cs1 选择控制商品价格显示,cs2 选择控制找零显示 //s1:投币5角 s2:投币一元s3:投币五元 //s4:购买五角商品s5:购买一元商品s6:购买一元五角商品s7:购买二元商品input clock,reset,s1,s2,s3,s4,s5,s6,s7; output LED,buzzer,prc1,cs1,prc2,cs2; reg buzzer; reg [3:0] LED,cs1,cs2; reg [7:0] prc1,prc2;//a.b.c.d.e.f.g.dp reg [7:0] divtime=8'b0; reg [28:0] deltime=29'b0; always @( posedge clock)//控制片选信号的选择 begin divtime=divtime+1; end always @( posedge clock) begin deltime=deltime+1; if(deltime[28]==1'b1) begin deltime=29'b0; end if(reset) begin deltime=29'b0; end end always @( posedge clock) begin LED=4'b1111;//all LED ON buzzer=1'b0;//蜂鸣器不响

自动售货机——单片机——程序,PROTUES仿真(DOC)

兰州理工大学 信号检测与处理课程设计 设计题目自动售货机控制器的设计 学院电气工程与信息工程学院 专业班级10级自动化5班 学号10220526 姓名 指导教师刘仲明 时间2013 年春学期

目录 第一章绪论 (2) 1.1设计任务和要求 (2) 1.1.1设计任务 (2) 1.1.2设计要求 (2) 1.2工作原理 (2) 1.3设计思路和功能 (2) 第二章方案论证 (4) 2.1 方案设计 (4) 2.2.1方案1 (4) 2.1.2方案2 (4) 2.1.3方案3 (5) 2.2 方案比较 (5) 第三章硬件设计 (7) 3.1 设计思路 (7) 3.2 硬件设计方案 (8) 3.3 硬件设计概要 (8) 3.3.1 货币投入和选择货物 (8) 3.3.2 显示部分 (10) 3.3.3 货物输出与退币部分 (11) 第四章软件设计 (12) 4.1 整体设计思路 (12) 4.2 系统流程图 (12) 4.3 软件程序 (14) 4.4 软件仿真与调试 (20) 4.4.1 Proteus简介 (20) 4.4.2 仿真结果 (20) 第五章设计总结 (26)

5.1调试结果 (26) 5.2调试问题 (26) 总结 (27) 参考文献 (28)

摘要 自动售货机是劳动密集型的产业构造向技术密集型社会转变的产物。本文设计了一种以AT89C51单片机为核心的自动售货机装置的控制系统。详细介绍了自动售货机系统的方案论证、硬件设计、软件设计和结果仿真,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的原则和技巧。该系统以单片机AT89C51芯片为核心,采用集中控制方式实现了对自动售货机全过程的自动控制。本系统选择独立按键模拟货物选择端,选择LED和继电器模拟货物输出,实现了货物的掉出以及货币数的显示功能。此外,系统程序采用keil软件进行程序的编写和编译,该软件具有编程简单、查错方便、阅读容易等特点。汇编语言是程序的基本语言,具有容易理解,便于记忆和使用等特点。 关键词:自动售货机控制系统 89C51单片机 第一章绪论

完整版PLC课程设计(自动售货机)

目录 摘要 (1) 1 绪论 (2) 1.1 设计任务 (2) 1.2 设计要求 (2) 1.3 PLC可编程控制器简介 (3) 1.3.1 PLC的基本概念 (3) 1.3.2 PLC的基本结构 (3) 2 总体设计和系统框图 (4) 2.1 控制程序流程图设计 (4) 2.2 控制程序时序图设计 (4) 2.3 控制程序设计思路 (5) 3 设计方案 (6) 3.1 PLC与上位监控软件通讯 (6) 3.2 上位监控系统组态设计 (7) 3.2.1 仿真系统组成 (7) 3.2.2 仿真实验的售货分析 (7) 3.3 系统变量定义及分配表 (8) 4 系统仿真和调试 (9) 4.1 硬件和软件调试 (9) 4.2 梯形图 (10) 总结 (14) 致谢 (15) 参考文献 (16)

摘要 本文简要介绍了PLC可编程控制器的基本概念和基本结构,又简要分析了自动售货机的基本功能及工作方式。设计了一个基于PLC的自动售货机控制系统。 本设计使用三菱公司开发的可编程控制器实现对自动售货机的控制,设计了1元、5元和10元三种投币方式。自动售货机内有12元、15元和20元三种商品,当投入币值大于或等于商品价格时,则可以购买该商品。当自动售货机内还有剩余钱额时,则可以实现退币功能。设计实现了货币的自动加、减和比较功能。 关键词:自动售货机;PLC;可编程控制器

1 绪论 1.1 设计任务 设计一台完整的销售汽水和咖啡的自动售货机,具有硬币识别、币值累加,自动售货、自动找钱功能,此售货机可接受的硬币为1元、5元和10元。有三个钱币输入按钮,X0代表1元,X1代表5元,X2代表10元,当投入的硬币总值超过12元时,汽水指示灯Y3亮。当投入的硬币超过15元时,汽水指示灯Y3和花茶指示灯Y4亮。当投币超过20元时,汽水和花茶及咖啡指示灯Y5都亮。如果要汽水则按汽水按钮X3,这时汽水输出指示灯Y3亮,输出汽水,然后汽水指示灯闪烁,5 s后停止。如果要花茶则按花茶按钮X4,这时花茶输出指示Y4亮,输出花茶,然后花茶指示灯闪烁,5s后停止。如果要咖啡,则按咖啡按钮X5,这时咖啡输出指示灯Y5亮,输出咖啡,然后咖啡指示灯闪烁,5s 后也自动停止。当要完汽水、花茶或咖啡时,如有多余的钱,则找钱指示灯Y10亮,如果多余钱超过10元则找钱口Y7自动退出余额,2s 后停止,如果少于十元则找钱口Y8自动退出余额。X6为手动复位按钮。 1.2 设计要求 随着科技的发展和社会的进步, 自动化商业机械有了越来越广泛的应用, 自动售货机作为自动化商业机械的代表被广泛用于公共场所。人们通过自动售货机可以买到食品、香烟、饮料、报纸、票、卡甚至鲜花和小宠物等物品。自动售货机实现了商品需求化、性能多样化的发展, 又由原来只能出售有限商品品种, 转变为继百货公司、超级市场、便民店之后,以消费者与售货机“一对一”自动售货的无店铺销售业态。自动售货, 给人们的生活带来了极大的方便。自动售货机的新奇、文明、高档、灵活方便等深受广大市民青睐。 售货机的最基本功能就是对投入的货币进行运算,并根据货币数值判断是否能购买某种商品,并做出相应的反映。因此,售货机应能够辨识机内包含的商品:售货机应该能够显示已投入的币值,以及再投入货币累计显示;同时提示可以购买的商品(或商品的编号)。当按下选择商品的按钮时,售货机进行减法运算,从投入的货币总值中减去该商品的价格,同时起动相应的电机,提取该商品到出货口,此时售货机继续等待外部命令,如继续交易,则同上,如果此时不再购买,则按下退币按钮,售货机进行退币操作,退回相应的货币,并在程序中清零,完成此次交易。

自动售货机课程教学设计

课题一: 饮料自动售货机控制系统设计 一.饮料自动售货机概况及控制要求 饮料自动售货机有两种已经配制好的饮料储液桶,一种为汽水,另一种为橙汁,分别由两个电磁阀控制放入杯中的饮料品种。 1、自动售货机可投入1角、5角、1元的硬币。 2、当投入的硬币总值超过2元时,汽水指示灯亮;当投入的硬币总值超过 3元时,汽水及橙汁指示灯亮。 3、当汽水指示灯亮时,按放汽水按钮,则排出汽水,8 s后,自动停止, 且汽水指示灯熄灭。 4、当橙汁按钮指示灯亮时,按放橙汁按钮,则排出橙汁,8 s后,自动停 止且橙汁指示灯熄灭。 5、若投入硬币总值超过按钮所需的钱数(汽水2元,橙汁3元)时,找钱 指示灯亮,并找出多余的钱。 二.设计任务 1. 设计和绘制电气控制原理图或PLC I/O接线图、功能表图和梯形图,编写指令程序清单。 2.选择电气元件,编制电气元件明细表。 3.设计操作面板电器元件布置图。 4.上机调试程序。 5.编写设计说明书。

目录 第1章概述 (6) 第2章总体设计方案 (7) 第3章硬件电路设计 (8) 3.1 PLC型类选择 (8) 3.2 PLC I/O口分配 (8) 3.3 系统硬件接线图 (8) 第4章软件设计 (10) 4.1 程序流程图 (10) 4.2 梯形图 (10) 第5章实验调试 (14) 第6章总结 (15) 参考文献 (16) 附录A 梯形图……………………………………………………. 附录B 语句表 (17)

第1章概述 饮料自动售货机有两种已经配制好的饮料储液桶,一种为汽水,另一种为橙汁,分别由两个电磁阀控制放入杯中的饮料品种。如图所示。 1、自动售货机可投入1角、5角、1元的硬币。 2、当投入的硬币总值超过2元时,汽水指示灯亮;当投入的硬币总值超过 3元时,汽水及橙汁指示灯亮。 3、当汽水指示灯亮时,按放汽水按钮,则排出汽水,8 s后,自动停止, 且汽水指示灯熄灭。 4、当橙汁按钮指示灯亮时,按放橙汁按钮,则排出橙汁,8 s后,自动停 止且橙汁指示灯熄灭。 5、若投入硬币总值超过按钮所需的钱数(汽水2元,橙汁3元)时,找钱 指示灯亮,并找出多余的钱。

(完整word版)自动售货机合作协议

自动售货机合作协议 甲方: 地址: 乙方: 地址: 经双方协商,本着诚信、平等、互利、双赢的合作原则,双方就自动售货机合作事宜达成如下协议: 一、合作内容: 1、甲方向乙方提供设备摆放场地,指定在(地 址)。 2、乙方在甲方指定地点的办公区域及职工生活区 放置台自动售货机,自动售货机型号为:。 二、合作期限 1、协议期限为自2018 年月日起至20 年 月日止,共年。 2、协议期满后若乙方有意续约,应于合同期满前30日书面通知甲方,甲方同意续约的,双方重新签订合作协议。 三、合作费用及付款方式 1、乙方每台自动售货机支付甲方管理服务费 元/年/台,合计费用为元/年,该费用在签订合同后15日内按年度支付给甲方,此后每年度开始15日内乙方应将本年度费用支付给甲方,甲方收到该费用后15个工作日内开具发票给乙方。

2、在自动售货机运行期间产生的电耗,用电度表计量方式进行结算,电度表由乙方自行安装,计费标准为 1 元/度电,每月查表一次,乙方按照实际度数按约定收费标准支付电费给甲方,甲方收到电费后开具收据给乙方(电表数以双方确认数据为准)。 四、双方权责 (一)甲方权责: 1、甲方管理人员如发现自动售货机损坏及故障,应及时通知乙方,并为乙方的维修工作提供便利,甲方不承担赔偿责任。 2、如因甲方生产经营需调整自动售货机摆放位置的,甲方有权要求乙方在收到甲方通知后日内将自动售货机按要求搬迁至指定位置。 3、如因法律、政策、不可抗力以及甲方上级主管机关要求、产业结构调整等原因致使本协议不能继续履行,甲方有权解除协议且不视为违约,甲方无需对乙方进行赔偿或补偿。 4、免费为乙方配货车辆提供进出场地服务。 (二)乙方权责: 1、乙方负责自动售货机的购买、运作,自动售货机所有权属乙方所有,乙方拥有本协议的自动售货机型号的独家经营权。 2、乙方需按甲方指定位置摆放自动售货机,并提供相关联络人员和服务电话,以及时处理甲方或相关用户的投诉,对自动售货机及时进行日常维护、清洁。 3、乙方人员在进行安装、补货、维修等工作时应严格遵守甲方的各项规章制度,服从甲方管理。

基于PLC的自动售货机设计

摘要 本论文设计的是基于西门子S7-200 系列PLC构成的自动售货机监控系统,本文阐述了自动售货机的来源与发展,以及它在国内外发展的现状,对自动售货机的方案进行了论证,介绍了PLC的基本组成、特点以及工作原理,对基于西门子S7-200 系列PLC构成的自动售货机系统整体设计过程进行较为细致的论述。 文中详尽地介绍了自动售货机的各硬件组成,并完成了PLC外部接线图。在PLC 梯形图的编写时,文中采用的是西门子PLC梯形图专用编译软件STEP7来进行编写。介绍了自动售货机的基本原理以及工作流程,然后以一次交易过程为例,把交易过程分为几个程序块,然后分别对程序块进行编程。具体说明了可编程序控制器在自动售货机中的作用。程序涉及到了自动售货机工作的绝大部分过程。利用PLC控制的自动售货机提高了系统的稳定性,保证自动售货机能够长期稳定运行。 关键词: PLC;顺序功能图;梯形图;I/O点的分配

目录 摘要.................................................................................................................................. I 第1章绪论 (3) 1.1自动售货机的理论背景与实际意义 (3) 1.2 自动售货机设计的主要内容 (3) 1.3 自动售货机设计的基本思路 (4) 第2章PLC的概述 (5) 2.1 PLC的定义 (5) 2.2 PLC的简介 (5) 2.3 PLC的工作原理 (5) 2.4 PLC的循环扫描工作 (4) 2.5 PLC的硬件组成 (5) 2.6 PLC的编程语言 (6) 2.7 PLC的特点 (6) 第3章自动售货机的设计 (8) 3.1 自动售货机设计软元件 (8) 3.1.1 定时器 (8) 3.1.2 数学运算指令 (8) 3.2自动售货机的基本功能 (9) 3.3 自动售货机I/O点的分配 (10) 3.4 顺序功能图(SFC) (11) 3.4.1 什么是顺序功能图(SFC) (11) 3.4.2 所选择的顺序功能图(SFC) (11) 3.5 梯形图(LAD) (12) 3.5.1 什么是梯形图(LAD) (12)

相关主题
文本预览
相关文档 最新文档