文档库 最新最全的文档下载
当前位置:文档库 › 自动售货机系统源代码

自动售货机系统源代码

自动售货机系统源代码
自动售货机系统源代码

#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)

{

case 'a':

{

Sum=Sum+2;

printf("\n\t·商品A价格为%d,请投币·",Sum);

}

break;

case 'A':

{

Sum=Sum+2;

printf("\n\t·商品A价格为%d,请投币·",Sum);

}

break;

case 'b':

{

Sum=Sum+3;

printf("\n\t·商品B价格为%d,请投币·",Sum);

}

break;

case 'B':

{

Sum=Sum+3;

printf("\n\t·商品B价格为%d,请投币·",Sum);

}

break;

case 'c':

{

Sum=Sum+6;

printf("\n\t·商品C价格为%d,请投币·",Sum);

}

break;

case 'C':

{

Sum=Sum+6;

printf("\n\t·商品C价格为%d,请投币·",Sum);

}

break;

default:

{

printf("\n\t输入物品有误!!!!\n");

}

break;

};

int Money;

bool st=false;

while(!st)

{

// printf("\n输入金额:");

scanf("%d",&Money);

getchar();

st=GetCharge(Sum,Money);

};

Pro = 'd';

system("PAUSE");

}

return '2';

}

bool GetCharge(int Sum,int Money)

{

int ChargeNum[4];

for(int i=0;i<4;i++)

{

ChargeNum[i]=0;

}

if(Sum>Money)

{

printf("\n\t·所投金额不足支付所选商品,请重新投币·");

return false;

}

else if(Sum==Money)

{

printf("\n\t·所投金额等于商品价格,请在商品出口处拿取商品·\n");

//销售成功的操作

if(Sum == goods[0].price){

goods[0].totalCount --;

Sale();

tj[0].jrxl ++;

tj[0].jrzje += Sum;

}else if(Sum == goods[1].price){

goods[1].totalCount --;

Sale();

tj[1].jrxl ++;

tj[1].jrzje += Sum;

}else if(Sum == goods[2].price){

goods[1].totalCount --;

Sale();

tj[2].jrxl ++;

tj[2].jrzje += Sum;

}

return true;

}

else

{

int Result=Money-Sum;

Getsmalcharge(Result,ChargeNum);

printf("\n\t·所投金额大于商品价格,为您找零%d元·\n",Result);

printf("\n\t\t-壹元面值%d张-\n",ChargeNum[0]);

printf("\n\t\t-贰元面值%d张-\n",ChargeNum[1]);

printf("\n\t\t-伍元面值%d张-\n",ChargeNum[2]);

printf("\n\t\t-拾元面值%d张-\n",ChargeNum[3]);

printf("\n\t·请在商品出口处拿取商品·\n");

// printf("\n余额为%d元,应找零\n1 元%d张\n2 元%d张\n5 元%d张\n10元%d张\n",Result,ChargeNum[0],ChargeNum[1],ChargeNum[2],ChargeNum[3]);

}//end if

//销售成功的操作

if(Sum == goods[0].price){

goods[0].totalCount --;

Sale();

tj[0].jrxl ++;

tj[0].jrzje += Sum;

}else if(Sum == goods[1].price){

goods[1].totalCount --;

Sale();

tj[1].jrxl ++;

tj[1].jrzje+= Sum;

}else if(Sum == goods[2].price){

goods[2].totalCount --;

Sale();

tj[2].jrxl ++;

tj[2].jrzje+= Sum;

}

return true;

}

/**

成功卖出操作的后台操作

*/

void Sale(){

FILE* fp;

if ((fp = fopen("d:\\goods.out", "w")) == NULL)

{

printf ("未找到文件d:\\goods.out...系统将退出\n ");

exit(0);

}

fprintf(fp,"%s %d %d\n",goods[0].name,goods[0].totalCount,goods[0].price);

fprintf(fp,"%s %d %d\n",goods[1].name,goods[1].totalCount,goods[1].price);

fprintf(fp,"%s %d %d\n",goods[2].name,goods[2].totalCount,goods[2].price);

//关闭文件

fclose(fp);

fp = NULL;

}

//------------------------------------

void Getsmalcharge(int Money,int *ChargeNum)

{

if(Money<0)

return;

int Sum=Money;

int charge[4]={1,2,5,10};

ChargeNum[3]=Sum/charge[3];

Sum=Sum%charge[3];

ChargeNum[2]=Sum/charge[2];

Sum=Sum%charge[2];

ChargeNum[1]=Sum/charge[1];

Sum=Sum%charge[1];

ChargeNum[0]=Sum/charge[0];

Sum=Sum%charge[0];

}

/**

*@return 1 口令正确0 口令错误,并返回销售界面

*/

int KouLing(){

char kl[50];

int count = 0,ret = 0;

char rkl[50] = "admin";

while(strcmp(rkl,kl) != 0){

if(count == 0){

printf("\n\t*******************************************");

printf("\n\t****************管理口令验证***************\n");

printf("\n\t·Tip·忘记口令,输入“cancel”,进入销售界面\n");

printf("\n\t*******************************************\n\t\t");

}

else

{

printf("\n\t*******************************************");

printf("\n\t****************管理口令验证***************\n");

printf("\n\t·Tip·忘记口令,输入“cancel”,进入销售界面\n");

printf("\n\t*******************************************");

printf("\n\t\t\t\t输入错误次数:%d次\n\t\t",count);

}

count++;

scanf("%s",kl);

system("CLS");

if(strcmp(kl,"cancel") == 0)

break;

}

if(strcmp(kl,"cancel") == 0)

ret = 0;

else

ret = 1;

return ret;

}

/**

* @ return '1' , '2'

*/

char ChooseJieMian()

{

char c = '3';

while(true){

system("cls");

printf("\n\t*******************************************");

printf("\n\t****************界面选择*******************\n");

printf("\n\t·1·-销售界面- ·2·-管理界面-\n");

printf("\n\t*******************************************\n\t\t");

c = getchar();

if(c == '1' || c == '2')

break;

}

system("cls");

return c;

char ManageCenter(){

while(true){

int op = 7;

while( !(op == 1|| op == 2 || op == 3 || op == 4|| op == 5 || op == 6))

{

system("cls");

printf("\n\t*******************************************");

printf("\n\t*************欢迎您,管理员****************\n");

printf("\n\t·1·-库存查询- ·2·-商品上架-\n");

printf("\n\t·3·-销售查询- ·4·-会计查询-\n");

printf("\n\t·5·-结算功能- ·6·-销售界面-\n");

printf("\n\t*******************************************\n\t\t");

scanf("%d",&op);

}

bool flag = false;

switch(op){

case 1:{

KunCun();

}break;

case 2:{

ShangJia();

}break;

case 3:{

TongJiFun();

}break;

case 4:{}break;

case 5:{}break;

case 6:{

flag = true;

}break;

default:break;

}

if(flag)

break;

else

system("PAUSE");

}

return '1';

}

*从文件里读取商品信息

@return 商品列表

*/

void loadGoodsFromFile(Goods* gs){

//获得FILE 指针

FILE* fp;

if ((fp = fopen("d:\\goods.out", "r")) == NULL)

{

printf ("未找到文件d:\\goods.out...系统将退出\n ");

exit(0);

}

//Goods gs[3];

int i = 0;

while(!feof(fp))

{

fscanf(fp,"%s %d %d",gs[i].name,&gs[i].totalCount,&gs[i].price);

i++;

}

//关闭文件

fclose(fp);

fp = NULL;

}

void KunCun(){

int i = 0;

printf("\n\t·商品名称··商品价格(元)··商品余量(件)·\n");

for(i = 0; i < 3; ++i){

printf("\n

\t-%s-\t\t-%d-\t\t-%d-\n",goods[i].name,goods[i].price,goods[i].totalCount);

}

}

void ShangJia(){

printf("\n\t·Tip·正数增加,负数减少商品\n");

int gs1 = 0,gs2 = 0,gs3 = 0;

printf("\n\t\t-商品%s(余%d件): ",goods[0].name,goods[0].totalCount);

scanf("%d",&gs1);

printf("\n\t\t-商品%s(余%d件): ",goods[1].name,goods[1].totalCount);

scanf("%d",&gs2);

printf("\n\t\t-商品%s(余%d件): ",goods[2].name,goods[2].totalCount);

scanf("%d",&gs3);

goods[0].totalCount = gs1 + goods[0].totalCount < 0 ? 0:gs1 + goods[0].totalCount;

goods[1].totalCount = gs2 + goods[1].totalCount < 0 ? 0:gs2 + goods[1].totalCount;

goods[2].totalCount = gs3 + goods[2].totalCount < 0 ? 0:gs3 + goods[2].totalCount;

//写文件

//获得FILE 指针

FILE* fp;

if ((fp = fopen("d:\\goods.out", "w")) == NULL)

{

printf ("未找到文件d:\\goods.out...系统将退出\n ");

exit(0);

}

fprintf(fp,"%s %d %d\n",goods[0].name,goods[0].totalCount,goods[0].price);

fprintf(fp,"%s %d %d\n",goods[1].name,goods[1].totalCount,goods[1].price);

fprintf(fp,"%s %d %d\n",goods[2].name,goods[2].totalCount,goods[2].price);

//关闭文件

fclose(fp);

fp = NULL;

}

void TongJiFun(){

printf("\n\t·今日商品销售情况一览·\n");

printf("\n\t\t-商品%s %d件共%d元-\n",goods[0].name,tj[0].jrxl,tj[0].jrzje);

printf("\n\t\t-商品%s %d件共%d元-\n",goods[1].name,tj[1].jrxl,tj[1].jrzje);

printf("\n\t\t-商品%s %d件共%d元-\n",goods[2].name,tj[2].jrxl,tj[2].jrzje);

printf("\n\t·共计%d件,%d元·\n",tj[0].jrxl + tj[1].jrxl+tj[2].jrxl,tj[0].jrzje+tj[1].jrzje+tj[2].jrzje);

}

//Goods.h

typedef struct _Goods{

char name[50];

int totalCount;

int price;

}Goods;

typedef struct _TongJi{

int jrxl;

int jrzje;

}TongJi;

自动售货机控制系统的设计(已修)

自动售货机控制系统的设计专业:电子信息工程 班级:10级电信(1)班 学号:12010248815 姓名:李浩

1.1系统描述与控制要求 PLC 控制的自动售货机系统主要有三个可以感受到投币量的传感器,六个按钮开关(分别为启动按钮、停止按钮、退币按钮、汽水选择按钮、花茶选择按钮和咖啡选择按钮)三个指示灯,(分别为汽水指示灯,花茶指示灯和咖啡指示灯),和两个七段数码管。传感器用来接收投币信号,传送投币量的多少;按钮开关分别对系统功能进行控制,当投入的钱币够某一种饮料时,按下这种饮料的选择按钮时才会有饮料送出,有剩余钱币时,还可以通过按下退币按钮来找回剩余钱币;三个指示灯分别用来只是哪种饮料可以选择,只有投币量大于或等于这种饮料的价格时,这种饮料的指示灯才会亮;同时,还有两个七段数码管,用于显示当前剩余的总钱币。具体对自动售货机的控制要求如下: 1.自动售货机有3 个投币孔,分别为1 元、5 元和10 元。 2.售货共有3种饮料供选择,分别为汽水、花茶和咖啡。 3.如投币总额超过销售价格,将可由退币钮找回余额。 4.投币总额或当前值显示在7段数码管上。 5.投币值等于或大于12 元时,汽水指示灯亮,表示只可选择汽水。 6.投币值等于或大于15元时,汽水和花茶指示灯亮,表示可选择汽水和茶。 7.投币值等于或大于20元时,汽水、花茶和咖啡指示灯亮,表示3 种均可选择。 8.按下要饮用的饮料按钮,则相对应的指示灯开始闪烁,3s 后自动停止,表示饮料已经掉出。 9.动作停止后按退币钮,可以退回余额,退回金额如果大于10元,则先退10元再退1 元,如果小于10元则直接退 1 元的。 1.2控制工艺分析 自动售货机的基本功能就是对投入的钱币数进行计算, 然后根据运算结果做出相应的判断,看看哪种商品可以进行购买,哪种商品不能购买,本次课程设计的要求是可识别三种钱币,分别是 1 元,5元,10 元,采用三个按钮进行模拟, 自动售货机共出售3 种货物,其价格分别定为12 元,15元,20元,当投币数大于等于货物价格时,该种货物的指示灯亮,表示可以进行购买,3 种货物分别用3个信号灯进行指示.除此之外,本次设计还涉及了显示,找零等功能的实现, 其中显示部分采用数码管进行显示, PLC的外围接口由两个CD4511 连接两个数码显示管,以显示投币总数和购买后的余额;当按下找零按钮后,数码管显示进行清零。整个系统由三个可以感受到投币量的传感器,六个按钮开关,三个指示灯,和两个七段数码管和两片CD4511组成。

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

课程设计任务书 设计题目:饮料自动售货机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的产生

自动售货机控制系统设计

综合课程设计报告书 自动售货机控制系统设计 题目: 学院:机械与电气工程学院 专业:电气工程及其自动化 班级:13级2班 姓名:付少官 学号: 指导教师:崔茂齐 教师职称:讲师 2016年6月29日

机械与电气工程学院综合课程设计任务书 专业:电气工程及其自动化班级:2013-2 姓名:付少官 自动售货机控制系统设计 (1) 摘要 (1)

Abstrct (1) 1、绪论 (1) 2、自动售货控制系统设计总体方案 (2) 元器件选择 (2) 开发工具 (2) 3、自动售货控制系统硬件设计 (3) 硬件总体框图 (3) AT89C51单片机模块(介绍本次设计所到的功能) (3) (3) (4) 本次所应用的管脚说明 (4) 单片机驱动模块 (5) 选择按键模块 (5) (6) (6) 系统显示模块 (6) 数码管显示器 (6) 显示器的驱动电路 (7) 出货以及退币模块 (8) 4、自动售货控制系统软件设计 (8) 系统流程图 (8) 元器件计算 (9) 5、系统总电路图及调试仿真 (10) 总电路图 (10) 系统调试 (11) 系统仿真 (11) 总结及致谢 (14) 参考文献 (15) 附录 (16) 附录1、元件清单 (16) 附录2、源程序 (16) 附录3、自动售货机控制系统protel99se原理图 (23)

自动售货机控制系统设计 付少官 摘要本文详细介绍了自动售货机系统的方案设计、硬件选择、软件规划和编写,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的原则和技巧。该系统以单片机AT89C51芯片为核心,采用集中控制方式实现了对自动售货机全过程的自动控制。本系统选择独立式键盘按键作为货物选择端,实现了投币总数的显示功能。此外,系统程序采用keil软件进行程序的编写和编译,该软件具有编程简单、查错方便、阅读容易等特点。汇编语言是程序的基本语言,具有容易理解,便于记忆和使用等特点。 关键词:自动售货机,AT89C51,LCD显示 Abstrct T his paper describes a vending machine system design, hardware selection, software planning and preparation, and describes the focus of the work vending machine system theory, system design, software programming principles and techniques. AT89C51in the system as the core chip, the realization of a centralized control of the vending machine's automatic control the entire process. Choice of the system as a stand-alone keyboard keys to choose the goods side, the realization of the coin shows the total number of features. In addition, the system program using keil software to prepare and compile procedures, the software programming is simple, convenient error checking, easy to read and so on. Assembly language is the basic language program with easy to understand, easy to remember and use and so on. Key words:Vending Machines,AT89C51,LED Display 1、绪论 自动售货机是一种全新的商业零售形式,从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。 随着科技的发展及人们生活水平的提高,自动售货机市场越来越呈现出多元化及个性化的需求。人们通过自动售货机自助购物,这种简单、快捷的方式正逐渐成为市民的一种新的消费时尚,并且满足了人们在当今科技高速发展的现代社会追求高品质生活的需要。自动售货机在城市商业区、写字楼大厅、风景区、车站、码头、繁华街道等公共场所的布设能够美化城市环境,方便群众生活,它已经成为城市各角落的一道亮丽风景线。 自动售货机必将在国内普及,并成为城市现代文明程度的一种象征性标志。本文详细介绍了如何控制、要求进行自动售货机系统的方案设计、硬件选择、软件规划和编写,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的原则和技巧。

自动售货机后台管理系统说明书版本TCNVMMS318一系统功能

自动售货机后台管理系统说明书 版本:TCN VMMS 3.18 一系统功能说明 运营监控、历史记录、系统设置、货机管理、商品管理、报表统计、系统日志 1、运营监控包括:状态监控和销售监控 ○1状态监控显示机器状态,可选择机器组和机器组合查询(如果没有选择机器组,默认查 询当前用户下所有的机器。如果选择了机器组没有选择机器号,查询的是该组下的机器。) ○2销售监控默认显示当天的销售数据,如要查看明细先选中要查询查看机器记录呈蓝色, 然后单击【查询明细】,交易流水显示出货的流水记录,单击每一条出货记录,在右边会显示该笔记录的收、退币信息。 2、历史记录包括:销售明细、出货记录、钱币记录、刷卡记录、报警 ○1销售明细与运营监控和销售监控相似,多了时间段选择。 ○2出货记录需要指定机器查询

○3钱币记录需要指定机器查询 ○4刷卡记录需要指定机器查询 ○5报警需要指定机器查询 3、系统设置包括:角色管理和用户管理 ○1角色管理不同的角色可分配不同的权限,选中要授权的角色单击【授权】,打勾的是该角色拥有的功能。

○2用户管理新增、修改、删除用户,设置用户角色、是否启用。

4、货机管理包括:机器组设置、机器管理、货道管理 ○1机器组设置新增、修改删除机器组,实现机器的分组管理。例如:客户购买了100台机器可分多个组管理。 ○2机器管理可看到当前用户下的所有机器,点击某一行记录或弹出编辑对话框,设置机器的别名、部署地址,选择机器组名。

○3货道管理需要指定机器,点击查询会显示机器的所有货道号,双击某个道会出现对话框,可选择更改货道商品 5、商品管理包括:厂商类型、商品类型、厂商管理、商品信息 ○1在新增商品信息前需要把厂商类型、商品类型、厂商信息录入。

自动售货机控制系统

电子课程设计 ——自动售货机控制系统 学院:电子信息工程学院 专业、班级:通信101501 姓名:黄兆凯 学号:201015030106 指导教师:李东红 2012年12月

目录 一、设计任务与要求 (1) (1)基本要求 (1) (2)提高要求 (1) 二、总体框图 (1) (1)设计思路 (1) (2)系统原理 (1) 三、器件选择 (2) 四、功能模块 (2) (1)功能控制模块 (2) (3)输入信号处理模块 (5) 五、总体设计电路说明 (6) (1)系统仿真 (7) (2)硬件验证(操作) (8) 六、总结 (9)

自动售货机控制系统 一、设计任务与要求 (1)基本设计要求 设计一个模拟自动售货机的逻辑控制电路 1、它有两个投币口分别为一元投币口和五角投币口。 2、每次只能投入一枚一元或五角硬币。 3、投入一元五角硬币后机器自动给出一瓶矿泉水。 投入两元硬币后,在给出一瓶矿泉水的同时找回一枚五角的硬币。 (2)提高要求 1、增加一个五元投币口和出水数量选择按钮,一个一元的找钱端口。 二、总体框图 1、设计思路 根据设计要求可以对售货机的基本功能进行确定。它应该能够区分一元和五角硬币,并且能够对投入的货币进行累加。当所投币值达到商品售价。就自动送出商品。因为题目要求只有一种商品并且其售价为一元五。根据这一特殊点可设计方案如下:用两个开关分别模拟投入一元和五角硬币时产生的信号,高电平有效。用两颗LED分别模拟售出商品和找钱信号,灯灭有效。 2、系统原理 自动售货机的所有信号均由同步时钟信号clk的正边沿触发。由于售货机的硬币接受器一般是一个机械设置装置,投币时产生的信号要比同步信号clk要慢得多,一般可持续好几个周期,必须对投币输入信号进行处理,使每一次投币时在clk脉冲周期内只能产生一个脉冲作为功能控制模块的投币驱动信号。因此可将该系统分为两个模块。 如图一:

售货机说明书

自动售货机控制系统 简介 一、硬件设备概述 1.硬件总装一览 2.android主板 1)主控板参数 2)接线方式 3.控制器 1)前面板接口 2)后面板接口 4.选配硬件设备 1)触摸显示屏 2)红外掉货监测 3)温度监测 4)通讯模块 5)金属键盘 6)其它 二、安卓界面操作说明 1. 购买界面 1)默认广告界面 2)商品选择 3)支付界面 4)掉货并返回广告界面 2. 业主界面 1)业主界面 2)货道检测界面 3)补货界面 4)库存管理 5)默认库存设置 6)机型设置 三、后台使用说明 1.登录界面 2.促销管理 3.广告管理 4.报表管理 5.系统管理 四、联系我们

一、硬件设备概述 1.硬件总装一览 系统:安卓操作系统 操作方式:触摸显示屏、数字按键 电源:直流24V,5A 电机:10*6(支持拓展至300) 出货检测:支持 前面板按键:支持 数字按键板:支持 MDB纸币器和硬币器:支持 硬件设备 产品名称规格型号数量单位备注 安卓主板MX6801-D 1 件系统平台,界面显示、数据处理、通讯控制 电机驱动盒T200 1 件货道电机、柜门电磁阀 控制 触摸屏大小可选型 1 件广告播放、购买界面显示、管理界面 红外掉货监测发射接收 1 件确认货品掉落温度监测DS18B20 1 件温度监测货道电机DSC7757L-12A06 若干件弹簧货道控制电磁阀DSC7757L-12A06 若干件柜门控制 电机拓展板60货道支持4个选配货道电机、柜门电磁阀 控制 3G模块龙尚U7500 1 选配配合SIM卡通讯金属键盘4*3 1 选配数字输入按键IC读卡器自定义充值卡 1 选配刷卡消费 纸币器ICT-NE77 1 选配现金支付 硬币器ICT-MH 1 选配现金支付其他压缩机、电源、开关、电缆、门锁、安装结构件等由客户自行选配

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

课程设计题目:自动售货机控制系统的设计 目的与任务: (1)进一步掌握MAX+PLUSⅡ软件的使用方法; (2)会使用VHDL语言设计小型数字电路系统; (3)掌握应用MAX+PLUSⅡ软件设计电路的流程; (4)掌握自动售货机的设计方法; (5)会使用GW48实验系统。 内容和要求: 设计一个简易的自动售货机,它能够完成钱数处理、找零、显示、退币等功能。 (1)用3个键表示3种钱,再用3个键表示3种物品。 (2)用2个数码管显示输入的钱数,再用2个数码管显示所找的钱数,以元为单位。 (3)买东西时,先输入钱,用数码管显示钱数,再按物品键,若输入的钱数大于物品的价格,用数码管显示所找的钱数,并用发光二极管表示购买成功。 (4)若输入的钱数少于物品的价格,用数码管显示退出的钱数,并用发光二极管表示购买失败。

设计内容(原理图以及相关说明、调试过程、结果) 一、系统设计方案 根据系统要求,系统的组成框图如图1所示。 (1) 即可,改变设 (a2)控制模块是这个系统的核心模块,它具有判断按键、计算输入钱数总和、计算找零、控制显示四个作用。它的工作原理是每当时钟上升沿到来时,判断哪个按键按下,若按下的是钱数键,则将钱数保存于中间信号COIN,若下次按下的仍是钱数键,COIN的值则加上相应的值并显示于数码管;当物品键按下时,则将COIN的值与物品价格进行比较,然后控制找零。 (3)由于钱数可能大于9,所以译码显示模块的作用就是将钱数译码后用两个数码管显示,这样方便观察。 根据各个功能模块的功能并进行整合,可得到一个完整的自动售货机系统的整体组装设计原理图,如图2所示。 图2 设计原理图 二、系统主要VHDL源程序 (1)分频器的源程序(外部时钟选用3MHz,实现3万分频)

饮料自动售货机系统

百度文库- 让每个人平等地提升自我 南华大学 计算机科学与技术学院实验报告 (2012 ~2013学年度第2学期) 课程名称现代软件工程 实验名称饮料自动售货机系统 姓名Xx 学号Xx 班级软卓01班教师Xx 2013年5月

目录 实验目的...................................................................................................................................... - 0 -实验题目...................................................................................................................................... - 0 -饮料自动售货机系统.......................................................................................................... - 0 -实验结果...................................................................................................................................... - 0 -1.用例图.......................................................................................................................... - 0 -2.类图.............................................................................................................................. - 1 -3.时序图.......................................................................................................................... - 1 -4.活动图.......................................................................................................................... - 2 -放置货物活动图.......................................................................................................... - 3 - 计算金额活动图.......................................................................................................... - 4 - 给出饮料活动图.......................................................................................................... - 5 - 取消交易活动图.......................................................................................................... - 5 - 投掷硬币活动图.......................................................................................................... - 6 -

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

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

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

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

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

精品文档 课程设计任务书 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.

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

自动售货机控制系统的 设计 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

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

【摘要】 本文介绍了自动售货机的基本原理以及工作流程,然后以一次交易过程为例,把交易过程分为几个程序块,然后分别对程序块进行编程。具体说明了可编程序控制器在自动售货机中的作用。程序涉及到了自动售货机工作的绝大部分过程。利用PLC控制的自动售货机提高了系统的稳定性,保证自动售货机能够长期稳定运行。 关键词:自动售货机;可编程序控制器;梯形图 Abstract:Thispaperintroducesthebasicprinciplesofvending machines,aswellasworkflow,andthentoatransactionprocessasan example,thetransactionprocessisdividedintoseveralblock,and thentheblockwereprogrammed.SpecifythePLCintheroleofvending machines.Proceduresrelatedtotheworkofthevastmajorityofvend ingmachineprocess.PLCcontroloftheuseofvendingmachinesenhan cethestabilityofthesystemtoensurethatvendingmachinescapabl eoflong-termstableoperation. Keywords:Vendingmachines;PLC;LadderDiagram 一.PLC的概述 PLC的产生 20世纪20年代起,人们把各种继电器,定时器,接触器及其触点按一定的逻辑关系连接起来组成控制系统,控制各种生产机械,这就是大家所熟悉的传统继电接触器控制系统。由于它结构简单。容易掌握,价格便宜,在一定范围内能满足控制要求,因而使用面

易触科技自动售货机管理系统使用说明书

易触科技Easy Touch 自动售货机管理系统 使用说明书 Vending machine management system An instruction manual

目录 一首页登录 (3) 1. 商家用户登录 (3) 2. 访客用户登录 (3) 二运营管理模块 (5) 1. 售货机监控预览 (5) 2. 售货机实时状态 (7) 3. 售货机位置地图 (10) 4. 售货机离线报表 (11) 三售货统计模块 (12) 1. 销售统计报表 (12) 2. 货品销售报表 (14) 3. 货品销售报表 (16) 四售货机管理模块 (17) 1. 商品ID库 (17) 2. 售货机录入 (23) 五系统管理模块 (29) 1. 用户管理 (29) 六修改信息 (34) 1. 修改个人信息 (34) 2. 修改密码 (34)

一首页登录 1. 商家用户登录 (1)点击主界面左侧的“我是商家用户”按钮,如图1-1-1所示,弹出“登录对话框”, 图1-1-1 (2)在对话框中输入用户名和密码,将滑块慢慢地拖动到最后,显示“验证通过”为止,如图1-1-2所示,点击“登录”按钮,即可登录成功。 图1-1-2 2. 访客用户登录

(1)点击主界面右侧的“我是访客用户”按钮,如图1-1-3所示, 图1-1-3 页面会跳转到“易触科技产品展示界面”如图1-1-4所示。 图1-1-4

二运营管理模块 1. 售货机监控预览 (1)点击主界面菜单栏的“运营管理”菜单,在下拉列表中选择“售货机监控预览”选项,如图2-1-1所示, 图2-1-1 (2)此时,页面将进入“监控预览”界面,该界面中会显示“售货机状态”、“巡线准备信息”、“机器系统故障”、“今日销售预览”等信息,如图2-1-2所示, 图2-1-2 (3)点击页面左上角的“”按钮,会显示出本公司所有的售货机信息,如图2-1-3所示,

饮料自动售货机系统的分析与设计样本

饮料自动售货机系统的分析与设计 1.系统的分析 1.1 需求分析描述 自动售货机像磁卡电话、银行柜员机一样, 以方便、新颖、文明、昼夜服务等特点, 成为便民配套设施。如今的自动售货机能够为顾客提供多种服务。顾客能够根据自己的需要选择商品并投入钱币, 售货机接收钱币, 售出商品。 自动售货机是一种无人售货系统。售货时, 顾客投入硬币, 售货机进行真假币的检查, 若是假币拒绝接收, 若是有效硬币则进行累加。售货机装有若干个含有相同价格货物的货物分配器。顾客能够经过货物分配器选择货物, 如果有被选货物, 而且顾客支付的货币值不小于货物的价格, 货物将被传送给顾客, 同时余额返回到退币口。如果货币值小于货物价格, 则等待投币, 此时如果顾客取消本次活动, 那么之前所投的货币将从退币口中退出, 返回给顾客。 1.2 系统功能结构图

图1 体统功能结构图 1.3 用例图 图2 饮料自动售货系统用例图 1.4 系统类图的建立 系统的类图揭示了系统的整个结构。分析时先产生问题域中的对

象, 再抽象出类。在本系统中, 类有: 自动售货机、顾客、货币、货币累加器、货物、货物分配器、显示屏、取消按钮、选择按钮、事务、更新。 货币顾客 图3 饮料自动售货系统类图 1.5 动态模型的建立 从系统模型的角度, 静态模型定义了系统的结构和组成。任何实际的系统都是活动的, 都经过系统元素间的互动来实现系统。面向对象的许多方法在建立动态模型时首先写各种情况时的交互行为脚本, 经过对脚本的分析描绘动态模型。脚本是用例的一次具体执行过程, 一般包括正常情况脚本和异常情况脚本。系统的卖货物用例中, 顾客投入硬币, 系统检查硬币的有效性, 然后对有效硬币进行累加, 顾客选择货物及其数量, 系统送出货物; 这系列步骤

自动售货机系统

摘要:本设计利用通讯领域的前沿技术GPRS网络,采用能够实现远程测控的GPRS模块,以实现自动售货机的远程管理。 关键词:自动售货机;MDB;GPRS;SIM300C 引言: 自动售货是20世纪70年代在日本、欧美发展起来的一种全新的消费方式,自动售货机又被称为24小时营业的微型自助超市,它的售货领域非常广泛,是发达国家商品零售的一种主要方式。近几年,自动售货机在国内迅速普及,逐渐被越来越多的消费者所接受。但由于售货机分布零散、范围广阔的特点,自动售货机在为消费者带来方便的同时,也为经营者在监控、管理、维护等方面带来很大的不便。目前售货机运行的各种情况都需要由人工判断,包括缺货、缺零钱、币箱已满、售货机机械故障等,经营者普遍采用人工定时巡回视察的管理办法,既费时费力,又无法及时准确获取自动售货机状态报告,给经营者增加了管理成本和难度,也有可能给消费者的正常消费造成不便。 本系统的设计和实现可以使自动售货机的经营者可以根据网络统计的销售状况进行商品销售状况分析,预测商品的销售走势,确定合理的采购和配送策略,以期获得最高的投资回报率。同时售货机的一些故障信息和警报信息可以实时的传送到相应运营人员,从而可以在第一时间内发现并解决问题。 1 GPRS通信 1.1 GPRS通讯技术优势 在自动售货机无线管理系统实现的前期,大部分都是采用GSM(Global System for Mobile Communications)通信技术来实现的,GSM是一种电路交换系统,通常使用短信形式传送数据:用户发出的短消息首先被发送到短信息中心的服务器中,然后短信中心的服务器对所收到的短消息进行排队处理,按顺序再发送给相应的接收用户终端,很容易发生短消息拥塞,造成短消息丢失,同时短消息在短消息中心服务器中保留的时间也有一定的期限,无法做到“实时在线”、“按量计费”,另外每一条短消息只能传送140个字节,大大限制了使用的灵活性和应用范围,增加了通信成本。 GPRS是通用分组无线业务(General Packet Radio Service)的简称,是在GSM系统基础上发展起来的分组数据承载和传输业务。GPRS与GSM系统最根本的区别是,GSM是一种电路交换系统,而GPRS是一种分组交换系统,具有"高速"和"永远在线"的优点。与GSM比较,GPRS在数据业务的承载和支持上具有非常明显的优势,更有效的利用无线网络信道资源,特别适用于间歇、非周期数据传输、少量的数据传输,较大容量数据不频繁传输等。GPRS的技术优势资源利用率高,接入时间短,支持IP协议和X.25协议,收费合理等。 GPRS网络是在现有GSM网络中增加GGSN和SGSN 来实现的,使得用户能够在端到端分组方式下发送和接收数据。其系统结构如图1所示。

自动售货机系统源代码

#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) {

饮料自动售货机的控制系统

九江职业技术学院 PLC课程设计报告饮料自动售货机的控制系统 班级: 组长: 学号: 指导教师: 撰写日期: 组员:

目录 1、课题说明 (1) 2、系统说明 (1) 3、课题分析 (1) 4、方案设计 (2) 5、饮料供应系统 (2) 6、硬件设计 (2) 7、PLC选型 (2) 8、硬件电路设计 (2) 9、软件设计 (3) 10、实训心得 (6)

1、课题说明 如图所示,为饮料自动售货机示意图,在该机中有两种饮料储液桶,一种为汽水,另一种为橙汁,分别的由两个电磁阀控制放入杯中的饮料品种。其控制要求如下: (1)自动售货机可投入一元的硬币。 (2)当投入的硬币总值超过二元时,汽水指示灯亮;当投入的硬币总值超过三元时,橙汁指示灯亮。 (3)当汽水指示灯亮时,按放汽水按钮,刚排出汽水,8秒后自动停止,在这段时间内,汽水指示灯闪烁。 (4)当橙汁指示灯亮时,按放橙汁按钮,刚排出汽水,8秒后自动停止,在这段时间内,橙汁指示灯闪烁。 (5)若投入硬币总值超过按钮所需的钱数时,找钱指示灯亮,并找出多余的钱。 2、系统说明 (1)课题分析 要实现自动售货机的功能,其自动控制系统主要包括:计币、比较、选择、饮料供应以及找钱。流程图如下:

(2)方案设计 当投入一元硬币时,将已经投入硬币值存放到一个已经清零的储存器VW0中,再次投币式运用加法指令进行累加。投币完成后,运用比较指令对投入的金额与商品金额进行比较从而控制汽水及果汁指示灯的状态。相应的饮料电磁阀打开时,指示灯的闪烁可以运用SM0.5串联相应的电磁阀控制。相应饮料的电磁阀分别对应一个减法指令计算剩余金额,然后使用比较指令,当剩余金额大于0且找钱指示灯亮时找钱机构开始运行,最后运用SM0.5串联边沿触发和减法指令对余额进行减一处理,当减到0的时候,与找钱指示灯串联的比较指令断开,从而断开找钱指示灯,找钱指示灯又将找钱机构断开,找钱机构停止找钱,结束商品交易。 3、硬件设计 (1)PLC选型 由实训室提供的西门子S7-200 CPU 226可满足课题设计要求。 (2)I/O分配表 光电 检测开关汽水 按钮 橙汁 按钮 汽水 指示 灯 橙汁 指示 灯 汽水 电磁 阀 橙汁 电磁 阀 找钱 指示 灯 找钱 执行 机构 I0.2 I0.3 I0.4 Q0.0 Q0.1 Q0.2 Q0.3 Q0.4 Q0.5 (3)硬件电路设计 根据实训室所提供的PLC类型,以及设定好的I/O点分配情况,可设计出PLC的外部硬件接线图,如下图所示:

售货机系统实现功能

售货机系统的实现功能 一:背景 自动售货机是一种全新的商业零售形式,20世纪70年代自日本和欧美发展起来。它又被称为24小时营业的微型超市。在日本,70%的罐装饮料是通过自动售货机售出的;全球著名饮料商可口可乐公司在全世界就布有50万台饮料自动售货机。在中国自动售货机1999年开始进人中国市场.如今,在机场、地铁、商场、公园等客流较大的场所,已不难发现自动售货机的身影。 从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了. 它的售货领域非常广泛,是发达国家商品零售的一种主要方式。近几年,自动售货机逐渐被越来越多的消费者所接受。但由于售货机分布零散、范围广阔的特点,自动售货机在为消费者带来方便的同时,也为经营者在监控、管理、维护等方面带来很大的不便。目前售货机运行的各种情况都需要由人工判断,包括缺货、缺零钱、币箱已满、售货机机械故障等,经营者普遍采用人工定时巡回视察的管理办法,既费时费力,又无法及时准确获取自动售货机状态报告,给经营者增加了管理成本和难度,也有可能给消费者的正常消费造成不便。 本系统的设计和实现可以使自动售货机的经营者可以根据网络统计的销售状况进行商品销售状况分析,预测商品的销售走势,确定合理的采购和配送策略,以期获得最高的投资回报率。同时售货机的一些支付信息、故障信息和警报信息可以实时的传送到相应运营人员,从而可以在第一时间内发现并解决问题。

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

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

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

相关文档