文档库 最新最全的文档下载
当前位置:文档库 › 自动售货机系统设计--毕业论文设计

自动售货机系统设计--毕业论文设计

自动售货机系统设计

摘要:自动售货机越来越多的出现在人们的视线当中,主要因为自动售货机不受任何场地,时间限制,而且方便快捷,操作简单。本文介绍一款以单片机AT89S52模块为核心的自动售货机系统,系统采用独立式4×4键盘模块实现货物选择、货币面值选择及找零功能,LED模块根据当前货币面值,提示出可购买的货物种类, LCD1602液晶模块将消费者在当前售货机上的购物信息显示出来。通过多次系统测试表明,该系统操作简单方便,交互性强,易于实现。

关键词:自动售货机;控制系统;AT89S52;LCD显示

The design of vending machine system

Abstract: vending machine more and more appear in the line of sight of people,mainly because of the vending machine without any space, time constraints, and convenient, simple operation. This paper introduces a single-chip AT89S52 module as the core of the vending machine system, system uses an independent type 4 × 4 keyboard module choice of goods, currency of denomination choice and change function, the LED module according to the currency of denomination that can buy goods, LCD1602 LCD module will consumers shopping information displayed in the vending machines. That many times through the system test, this system is simple and convenient operation, strong interaction, easy to realize.

Keywords: vending machine; control system; AT89S52; LCD display

目录

前言 (1)

第1章系统总体设计 (5)

1.1 自动售货机工作流程 (5)

1.2系统硬件设计 (7)

1.3系统软件设计 (8)

1.4主要功能及技术指标 (9)

第2章硬件电路设计 (10)

2.1 单片机控制模块 (10)

2.1.1 单片机AT89S52简介 (10)

2.1.2单片机最小系统设计 (13)

2.2按键输入模块 (14)

2.2.1 4×4矩阵键盘的工作原理 (14)

2.3输出显示模块 (16)

2.3.1 LCD显示模块的设计 (16)

2.3.2 LED显示模块的设计 (17)

2.4电源模块 (17)

2.4.1 LM7805简介 (17)

2.4.2 5V直流稳压电源设计 (18)

第3章系统软件设计 (20)

3.1程序的设计思想 (20)

3.2主程序流程图 (20)

3.3液晶写命令子程序设计 (21)

3.4液晶写数据子程序设计 (22)

3.5 显示定位子程序设计 (23)

3.5.1 LCD1602光标定位方法 (23)

3.5.2 定位程序设计 (23)

3.6定时中断服务子程序设计 (24)

3.7按键扫描子程序设计 (25)

第4章调试 (27)

4.1硬件的调试 (27)

4.2软件的调试 (27)

4.3系统调试 (28)

第五章结束语 (30)

参考文献 (31)

致谢 (33)

附录1 电路原理图 (34)

附录2 实物图 (35)

附录3 程序 (36)

附录4 元器件清单 (39)

前言

自动售货机最早出现在二十世纪五、六十年代的西欧,英国是较早实行自动售货机售货的国家之一。1942年,在食品销售中首先推广了自动售货的销售方式。1950年,

英国食品杂货行有500家商家采用自动售货机售货。1969年,采用自动售货机售货的商家增加到23000家,销售的商品扩展到文化用品、唱片、香烟、食品等多个方面。进入70年代后,约有40多万家香烟、饮料店采用自动售货机售货。1980年英国有50余万台自动售货机,年销售额达8.81亿英镑。70年代后,日本、美欧等发达国家和地区自动售货机迅猛发展,短短30年的时间,发达国家自动售货机产业已发展到相当大的规模。

自动售货机被广泛地分放于车站、油站、码头、机场、宾馆、写字楼、娱乐场所及大街小巷和公路旁,人们通过自动售货机可以买到食品、香烟、饮料、报纸、票、卡甚至鲜花和小宠物等物品。自动售货机实现了商品需求化、性能多样化的发展, 又由原来只能出售有限商品品种, 转变为继百货公司、超级市场、便民店之后, 以消费者与售货机“一对一”自动售货的无店铺销售业态。自动售货, 给人们的生活带来了极大的方便。

从广义上来说自动售货机就是投入硬币、纸币、信用卡等以后,便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。从供给的条件上来看,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购买的自身性能,可以很好地解决人工费用上升的问题等多种优点。

自动售货机的分布密度高,满足了消费者的便利性和即时性需求。随着人们生活方式向快节奏、高效率变化,时间的价值显著提高,消费者在购物时更加注重便利性、即时性。随着自动售货机数量的增加,商品包装的定量化和标准化,出售的商品多样化,自动售货的便利性日益显现。同时,被称为“永不下班的超级营业员”的自动售货机在满足人们的即时性需求方面是其它零售方式不可替代的。

现在,自动售货机产业正在走向信息化,并进一步实现合理化。同时因经济复苏缓慢,社会对扩大就业与工作场所提供茶点饮料的福利事业更为关注。自动售货机不仅保障了惬意的工休时间,也是最廉价、提高职工工作效率最有效的手段。特别是在24小时无休工作状态中的办公场所,使用独具魅力的迷你型饮料冲饮机,解决了不间断提供咖啡饮品服务的问题,这种服务加速了自动售货机与咖啡饮品服务的融合。

随着劳动密集性的产业构造向技术密集型社会转变,自动售货机也随之出现在人们的视线当中。它的产生为许多人群密集的交易场所提供了新的途径。自动售货机不受任何场地限制,时间限制而且方便快捷,操作简单。零售业各业态日趋激烈的竞争,使得商家不断寻求新的投资机会,而自动售货业态恰好符合投资的风险——收益原则。由于

自动售货机的销售效率高(平均每台自动售货机销售额达到1万美元) ,运营商规模大(一般拥有10多万台甚至100多万台) ,加上自动售货机本身具有的节约劳动力与场地等优势,从而降低了经营成本,提高了投资收益,满足了运营商获取高收益的需求。

专家预测,未来几年中国市场上的自动售货机将每年增加5-10万台。中国沿海比较富裕的地区,将大约有3.5亿人口经常使用自动售货机。目前按人均台数计算,自动售货机在日本达到每台25人,在美国达到每台50-60人,在欧洲每台50-120人,而中国的人均拥有量却很低,若按每台500人计算,中国城市人口3.6亿,中国自动售货机的潜在容量为73万台,以每天销售200元计,73万台自动售货机的全年销售额可达500亿。因此加快发展中国自动售货业,对提高投资效益具有重要的意义。

为防止地球暖化,自动售货机的开发致力于能源的节省,节能型清凉饮料自动售货机成为该行业的主流。在夏季电力消费高峰时,这种机型的自动售货机即使在关掉冷却器的状况下也能保持低温,与以往的自动售货机相比,它能够节约10-15%的电力。进入21世纪时,自动售货机也将进一步向节省资源和能源以及高功能化的方向发展。

自动售货机作为自动化商业机械的代表被广泛应用于公共场所,它是中国生产技术机械化、智能化和自动化的体现。自动售货机的诞生完善了市政的建设,符合现代化建设的需要,提高了经济活动效率,节约劳动力,把有限的人力物力集中到其他资源上。相信随着社会的发展,人们对于生活高效性的重视也会逐渐提高,自动售货机也会受到更多人的关注和喜爱。

第1章系统总体设计

1.1 自动售货机工作流程

自动售货机是集光、机、电一体化的独立机构,只需要顾客投币和按购物键选择即可自动售货及退找零钱,其工作程序流程如图1-1所示。

顾客

图1-1 自动售货机工作程序流程图

由图1-1可以看出,操作自动售货机基本流程如下:

1、从投币口送入货币,然后通过传感器采集数据、识别器判断货币的真伪并判别面值。

2、识别器把信息数据传给通信模块。

3、通信模块与售货机的主控系统通信,主控系统显示面值,启动售货机的面板键并等待顾客按键选择商品。

4、顾客选择商品后,售货机自动把商品送出,等待顾客取走。

5、显示余额,如果金额足够多,顾客可以选择找币或者继续买商品;如果款额不够,售货机予以退币。

6、系统复零,完成售货

由于系统的局限性,本次设计由按键来替代货币的投入动作,分别有一角、五角,一元3种投币金额,使用AT89S52为系统的核心,完成投币、金额计算、清零等操作,使用LCD1602来进行显示。

依据上述自动售货机的工作程序,本次自动售货机的设计主要包括货币投入、选择货物、显示、货物输出、退币以及单片机控制模块等。

图1-2硬件框图

在图1-2中,各模块的主要作用如下:

1、单片机控制模块:设计采用AT89S52单片机,主要完成各种信号处理。

2、货币投入:投币的币值主要有1角、5角,1元共3种,在本次设计中由按键来实现3种投币动作,每按下一次按键代表投一次货币,之后通过AT89S52处理再显示到LED上。

3、选择货物:本次设计采用三个按键完成货物选择的模拟操作,本次设计可供选择的货物有3种,分别是1元的矿泉水、2元的可乐、2.5元的冰红茶,使用3个按键来完成选择。

4、显示:设计采用LCD1602液晶显示器显示消费、投币、找零等信息。

5、货物输出:使用LED指示灯来表示货物输出。

6、退币:使用按键来模拟退币操作,按下按键后总金额清零。

图1-3 软件设计流程图

软件设计流程图如图1-3所示。首先,LCD进行初始化设置,顾客从投币口送入货币,自动售货机扫描键盘获取键值并加以计算,通过LCD液晶屏幕显示面值,自动售货机根据顾客投入不同的面值启动售货机不同的面板键,并等待顾客按键选择商品。顾客选择商品后,售货机自动把商品送出,等待顾客取走,自动售货机显示余额并找零。系统复零,完成售货。

1.4主要功能及技术指标

本课题设计的具体工作任务如下:

售货机可以出售矿泉水1元、可乐2元、冰红茶2.5元。此售货机可投入1角、5角和1元硬币,当投入的硬币总值超过1元时,矿泉水灯亮;当投入的硬币总值超过2元时,矿泉水灯和可乐灯亮;当投入的硬币总值超过2.5元时,矿泉水灯、可乐灯和冰红茶灯亮。当按键矿泉水灯亮时,按动矿泉水按键,开始售货,同时矿泉水灯闪3s后熄灭。可乐和冰红茶售货与矿泉水售货相同,本系统可以进行找零,找零时三个LED灯全闪。

第2章硬件电路设计

2.1 单片机控制模块

2.1.1 单片机AT89S52简介

AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。

图2-1 AT89S52芯片引脚图

1、AT89S52主要性能参数:

(1)与MCS-51单片机的产品兼容;

(2)8K字节在系统可编程Flash存储器;

(3)全静态操作:0Hz-33MHz;

(4)三级加密程序存储器;

(5)32个可编程I/O口线;

(6)三个16位定时器/计数器;

(7)六个中断源;

(8)低功耗空闲和掉电模式;

(9)掉电后中断可唤醒;

(10) 看门狗定时器;

(11) 双数据指针;

(12) 掉电标识符。

2、AT89S52引脚说明:

VCC:电源端。

GND:接地。

P0口:P0口是一个8位漏极开路的双向I/0口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。在flash 编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。

P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1 输出缓冲器能驱动4个TTL逻辑电平。

此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位的地址字节。

引脚号第二功能:

P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出;

P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制);

P1.5 MOSI(在系统编程用);

P1.6 MISO(在系统编程用);

P1.7 SCK(在系统编程用);

P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用 8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL 逻辑电平。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。

端口引脚第二功能:

P3.0 RXD(串行输入口);

P3.1 TXD(串行输出口);

P3.2 INTO(外中断0);

P3.3 INT1(外中断1);

P3.4 TO(定时/计数器0);

P3.5 T1(定时/计数器1);

P3.6 WR(外部数据存储器写选通);

P3.7 RD(外部数据存储器读选通);

此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

并不是所有的地址都被定义了,片上没有被定义的地址是不能用的。读取这些地址会得到一个随机的数据,这个数据写入程序会无效,复位以后,这些都会被置为“0”。

RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。

ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH 存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。

XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2:振荡器反相放大器的输出端。

2.1.2单片机最小系统设计

单片机最小系统,或者称为最小应用系统,对于AT89S52单片机来说,最小系统一般应该包括:单片机模块、时钟模块及复位模块。

1、时钟模块。时钟电路就像是单片机的心脏,没有时钟电路来驱动单片机,单片机无法执行程序,它为单片机产生时钟信号。原理图如图2-2所示:

图2-2时钟电路图

图2-2中,利用芯片内部振荡电路,在XTAL1,XTAL2的引脚上外接定时元件,内部振荡器便能产生自激振荡。本次设计选择12MHz的晶体,每个机器周期为1us。电容一般选择20PF,本系统电容选择22pF。电容C1,C2的大小对振荡频率有微小影响,可起频率微调作用。

2、复位模块。无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。

单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期以上,则CPU就可以响应并将系统复位。复位原理图如图2-3所示:

图2-3复位电路

图2-3中,上电后,VCC 对电容C1充电,C1端的电流达到最大,此时,电容C1相当于短路,复位端为高电平,单片机自动复位。复位要求RST 上加高电平的时间为2个机器周期以上,本系统中晶振为12MHz ,则每个机器周期为1us 。当电容C1两端的电压达到电源电压时,流过C1的电流变为0,此时复位端降为低电平,单片机开始正常工作。复位时间为:

12C R ?=τ (2-1)

由公式(2-1)可知τ为1ms ,值远大于2us ,满足复位要求。

当按下按键S0后,RST 直接通过R2和VCC 相连,此时复位端RST 为高电平,电容C1短路放电,放电完成之后,系统开始正常工作。只要复位端持续高电平两个机器周期以上,就可以保证可靠复位。

2.2按键输入模块

2.2.1 4×4矩阵键盘的工作原理

在键盘中按键数量较多时,为了减少I/O 口的占用,通常将按键排列成矩阵形式。 在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比直接将端口线用于

键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O 口作为输出端,而列线所接的I/O 口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。如图2-4为矩阵键盘电路图,列线接P1.4-P1.7,行线接P1.0-P1.3。

图2-4 矩阵键盘电路图

图2-5 按键排列

图2-4中,P1.4-P1.7为 4×4 键盘的列扫描线,P1.0-P1.3 为 4×4 键盘的行扫描线。行列式键盘的操作一般完成两个任务,一是检测是否有键被按下,二是识别被

相关文档