自动售货机系统设计设计_第1页
自动售货机系统设计设计_第2页
自动售货机系统设计设计_第3页
自动售货机系统设计设计_第4页
自动售货机系统设计设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自动售货机系统设计

摘要:自动售货机越来越多的出现在人们的视线当中,主要因为自动售货机不受

任何场地,时间限制,而且方便快捷,操作简单。木文介绍一款以单片机AT89s52模块

为核心的自动售货机系统,系统采用独立式4X4键盘模块实现货物选择、货币面值选

择及找零功能,LED模块根据当前货币面值,提示出可购买的货物种类,LCD1602液晶

模块将消费者在当前售货机上的购物信息显示出来。通过多次系统测试表明,该系统操

作简单方便,交互性强,易于实现。

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

Thedesignofvendingmachinesystem

Abstract:vendingmachinemoreandmoreappearinthelineofsightofpeople,mainly

becauseofthevendingmachinewithoutanyspace,timeconstraints,andconvenient,simple

operation.Thispaperintroducesasingle-chipAT89S52moduleasthecoreofthevending

machinesystem,systemusesanindependenttype4x4keyboardmodulechoiceofgoods,

currencyofdenominationchoiceandchangefunction,theLEDmoduleaccordingtothe

currencyofdenominationthatcanbuygoods,LCD1602LCDmodulewillconsumers

shoppinginformationdisplayedinthevendingmachines.Thatmanytimesthroughthesystem

test,thissystemissimpleandconvenientoperation,stronginteraction,easytorealize.

Keywords:vendingmachine;controlsystem;AT89S52;LCDdisplay

目录

前言........................................................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按键输入模块....................................................15

2.2.14X4矩阵键盘的工作原理.................................15

2.3输出显示模块....................................................16

2.3.1LCD显示模块的设计.......................................16

2.3.2LED显示模块的设计.......................................17

2.4电源模块.......................................................18

2.4.1LM7805简介..............................................18

2.4.25V直流稳压电源设计......................................18

第3章系统软件设计........................................20

3.1程序的设计思想.................................................20

3.2主程序流程图...................................................20

3.3液晶写命令子程序设计..........................................22

3.4液晶写数据子程序设计..........................................23

3.5显示定位子程序设计.............................................23

3.5.1LCD1602光标定位方法....................................23

3.5.2定位程序设计.............................................24

3.6定时中断服务子程序设计........................................25

3.7按键扫描子程序设计.............................................26

第4章调试..........................................................28

4.1硬件的调试......................................................28

4.2软件的调试.....................................................28

4.3系统调试........................................................29

第五章结束语........................................................31

参考文献..............................................................32

致谢...................................................................34

附录1电路原理图....................................................35

附录2实物图.........................................................37

附录3程序...........................................................38

附录4元器件清单...................................................41

前言

自动售货机最早出现在二十世纪五、六十年代的西欧,英国是较早实行自动售货机

售货的国家之一。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所示。

顾客

厂顾客投入]机器

I货币

.计数

顾客按动7」:

按钮

IZ机器送E出

选定商品

顾客取出I----------1-------------

商品

币送函1

顾客取出

余币页1

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

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

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

并判别面值。

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

3、通信模块与售货机的主控系统通信,主控系统显示面值,启动售货机的

面板键并等待顾客按键选择商品。

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

5、显示余额,如果金额足够多,顾客可以选择找币或者继续买商品;如果

款额不够,售货机予以退币。

6、系统复零,完成售货

由于系统的局限性,本次设计由按键来替代货币的投入动作,分别有一角、五角,

一元3种投币金额,使用AT89s52为系统的核心,完成投币、金额计算、清零等操作,

使用LCD1602来进行显示。

1.2系统硬件设计

依据上述自动售货机的工作程序,本次自动售货机的设计主要包括货币投入、

选择货物、显示、货物输出、退币以及单片机控制模块等。

图1-2硬件框图

在图「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软件设计流程图

软件设计流程图如图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是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash

存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80c51产品指令和引

脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片

上,拥有灵巧的8位CPU却在系统可编程Flash,使得AT89s52在众多嵌入式控制应用

系统中得到广泛应用。

J

<T2>R1.O匚140□vcc

(T二EX>P1.1C239□F»CC(ADO)

R1.2C338□PC1(AO1>

R1.3匚437□FC2(AD2)

R1.-4匚536□PC3(AD3>

(MOSI>P1.5Ce3S□PC-4•AE>4)

(MISO>R1.O匚7二□PC*<AC«>

(SCK>P1.7匚o33ZJPCe<AE»)

RST仁032ZJPC7(A,D7)

<RXO>R3.O匚TO31□EA.-VRP

<TXO>R3.1匚1130Z1AU三QRO&

:rTro>R3.2匚128□PSerJ

:IVJT!>F>3.3匚13二a□P27(A15>

4匚14)7ZJ叱e4A14)

(T1>R3.5匚15X□P25(A13>

P3.e匚-1625□PC-4(A12)

(一:-P3.7c17K□P2.34All)

XTAL2匚IBZ3ZJP22(A1O>

XTALICIdnZ)F二•,1:

GNID匚2021□P2C(A9i

图2-1AT89s52芯片引脚图

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:接地。

POU:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻

辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,

P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。在flash

编程时,P0口也用来接收指令字节:在程序校验时,输出指令字节。程序校验时,需要

外部上拉电阻。

P1口:P1口是一个具有内部上拉电阻的8位双向I/OU,pl输出缓冲器能驱动4个

TTL逻辑电平。

此外,P1.0和PL1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/

计数器2的触发输入(Pl.1/T2EX)。在flash编程和校验时,P1口接收低8位的地址字节。

引脚号第二功能:

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

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

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

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

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

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口亦作为AT39s52特殊功能(第二功能)使用,如下表所示。在flash编

程和校验时,P3口也接收一些控制信号。

端口引脚第二功能:

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

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

P3.2INTO(外中断0);

P3.3INT1(外中断1);

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

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

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

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

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

并不是所有的地址都被定义了,片上没有被定义的地址是不能用的。读取这些地址

会得到一个随机的数据,这个数据写入程序会无效,复位以后,这些都会被置为“0”。

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

机复位。

ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉

冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉

冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储

器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲

(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可

禁止ALE操作。该位置位后,只有一条指令才能将ALE激活。此外,该引脚会被微弱拉

高,单片机执行外部程疗E寸,应设置ALE禁止位无效。

PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89s52由

外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,

在此期间,当访问外部数据存储器,将跳过两次PSE\信号。

EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为OOOOH-FFFFH),

EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会

锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH

存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V

编程电压Vppo

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

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

2.1.2单片机最小系统设计

单片机最小系统,或者称为最小应用系统,对于AT89S52单片机来说,最小系统一

般应该包括:单片机模块、时钟模块及复位模块。

1、时钟模块。时钟电路就像是单片机的心脏,没有时钟电路来驱动单片机,单片

机无法执行程序,它为单片机产生时钟信号。原理图如图2-2所示:

'll~HI——r-<XT.AL2>

CAP

与1~~112M

Cl

~IF<XT.ALf>

CAP

图2-2时钟电路图

图2-2中,利用芯片内部振荡电路,在XTAL1,XTAL2的引脚上外接定时元件,内

部振荡器便能产生自激振荡。本次设计选择12MHz的晶体,每个机器周期为lus。电容

一般选择20PF,本系统电容选择22pF0电容Cl,C2的大小对振荡频率有微小影响,可

起频率微调作用。

2、复位模块。无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。

而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完

单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,

这主要是单片机的复位电路设计不可靠引起的。

单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初

态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的触发器中的。当系

统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机

器周期以上,则CPU就可以响应并将系统复位。复位原理图如图2-3所示:

VCC

R2

10K

图2-3复位电路

图2-3中,上电后,VCC对电容C1充电,C1端的电流达到最大,此时,电容C1相

当于短路,复位端为高电平,单片机自动复位。复位要求RST上加高电平的时间为2个

机器周期以上,木系统中晶振为12MHz,则每个机器周期为lus.当电容C1两端的电压

达到电源电压时,流过C1的电流变为0,此时复位端降为低电平,单片机开始正常工作。

复位时间为:

7=R?xG(2-1)

由公式(2T)可知「为ln】s,值远大于2us,满足复位要求。

当按下按键S0后,RST直接通过R2和VCC相连,此时复位端RST为高电平,电容

C1短路放电,放电完成之后,系统开始正常工作。只要复位端持续高电平两个机器周期

以上,就可以保证可靠复位。

2.2按键输入模块

2.2.14X4矩阵键盘的工作原理

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。

在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以

连接。这样,一个端口(如P1口)就可以构成4*用16个按键,比直接将端口线用于

键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的

键盘,而直接用端口线贝!只能多出一键(9键)。由此可见,在需要的键数比较多时,

采用矩阵法来做键盘是合理的。

矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接

正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。

这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电

平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否

有键按下了。如图2-4为矩阵键盘电路图,列线接P1.4—P1.7,行线接P1.0—P1.3。

图2-4矩阵键盘电路图

工23A

4|5^6B

7|89C

在0#D

图2-5按键排列

图2-4中,P1.4-P1.7为4X4键盘的列扫描线,P1.0-P1.3为4X4键盘的行

扫描线。行列式键盘的操作一般完成两个任务,一是检测是否有键被按下,二是识别被

按下的键是哪一个。一般会采用行列扫描法,可以同时完成上述两项任务。基本的扫描

原理是:先使行扫描线输出高电平,然后读取列扫描线的状态,得到与按键横向位置对

应的4位列码;如果是有键被按下时,则对应的列扫描线必然会被读回高电平,如果是

无键盘按下时,则读取的列码必定全是0。这也就可以判断有无按键的按下了。一旦检

测到有键按下时,还需要有一个延时消除抖动的操作,以消除按键时带有的抖动信号;

一般延时在12ms左右即可。延时后,如还能检测到有按键按下,则可确定当前是有键

按下,可进入获取键值的操作。获取键值时,采用行列依次扫描的方法。首先使第一行

扫描线输出高电平,其它的行扫描线输出低电平,然后读取列扫描线的状态,得到列码;

如果本行无键按下,则得到的列码为全0,并扫描下一行;如本行有键按下,则会读取

到对应的列码值,并退出扫描,进行键值计算。当第一行扫描没有检测到按键时,则扫

描下一行,即使第二行扫描线输出高电平,其它行扫描线输出低电平,其它与前面所述

类似。在行列扫描时,可以用一个变量记录下当前扫描的行号,在计算键值时可以利用

此行号以及列码得知是哪一行、哪一列上的按键按下了。

2.3输出显示模块

2.3.1LCD显示模块的设计

为了让顾客看到购物的整个过程,设计添加了LCD显示电路,具体电路如图2-6

所示:

LCD1

1

2\'SS

VCC

3

VL

P2.54

RS

P2.65

XXV

P2.76

E

P0.07

DO

P0.1S

DI

P0.29

D2

PGa10f、工

P0.411

D4

P0.512

D5

P0.613

D6

P0.714

D7

15

VCCBLA

,||16TZ>TTZ"

图2-6LCD显示电路

图2-6中,AT89s52芯片的P2.5,P2.6,P2.7作为LCD1602显示器的控制口。P2.5

接RS端,RS为1时,进行数据操作,RS为0时进行指令操作;P2.6接RW端,RW为1

时,进行读操作,RW为0时进行写操作;P2.7接E使能端,E为1时使能端拉高,E为

0时,使能端拉低;把P0口作为数据输出,PO.O-P使7接D0-D7端口,D0-D7为8位双

向数据端。15T6为空脚或背光电源,15为背光正极,16为背光负极。电路中还加了一

个10K的可调变阻器W1,因为3号脚为液晶显示器对比度调整端,接正电源时对比度最

弱,接地电源时对比度最高,对比度过高时会产生“鬼影”。

2.3.2LED显示模块的设计

为了使售货机能够根据当前投入币值指示出可售物品状态,系统设计添加了LED显

示电路,具体电路如图2-7所示:

图2-7LCD显示电路

图2-7中,D2表示矿泉水,D3表示可乐,D4表示冰红茶;D2,[)3,D4分别与单片机

P2.0口,P2.1口,P2.2口相连,单片机三个端口P2.0,P2.1,P2.2输出为低电平时点

亮,R3,R4,R5这三个电阻的作用是限流。

2.4电源模块

2.4.1LM7805简介

电子产品中,常见的三端稳压集成电路有正电压输出的LM7805系列和负电压输出

的LM7905系列。顾名思义,三端TC是指这种稳压用的集成电路,只有三条引脚输出,

分别是输入端、接地端和输出端。它的样子像是普通的三极管,T0-220的标准封装。三

端稳压集成电路LM7805如图2-8所示。

图2-8LM7805

用LM7805系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有

过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。该系列集成稳

压IC型号中LM78后面的数字代表该三端集成稳压电路的输出电压,如LM7805表示

输出电压为正5V。

2.4.25V直流稳压电源设计

为了给单片机模块,时钟模块及复位模块供电,本次设计添加了5V直流稳压电源

设计。电路原理图如图2-9所示:

2

Z

图2-9直流稳压电路

图2-9中,交流220V电压经过6v/10w的变压器T1降压成7.6v的交流电压。桥式

整流电路是利用二极管的单向导通性进行整流的最常用的电路,常用来将交流电转变为

直流电。电路中采用DI,D2,D3,D4四个二极管,互相接成桥式结构。利用二极管的

电流单向导通作用,在交流输入电压的正半周内,二极管DI、D3导通,D2、D4截止,

在负载上得到上正下负的输出电压;在负半周内,正好相反,DI、D3截止,D2、D4导

通,流过负载的电流方向与正半周一致。因此,利用变压器的一个副边绕组和四个二极

管,使得在交流电源的正、负半周内,整流电路的负载上都有方向不变的脉动直流电压

和电流。通过C1滤波之后,经过LM7805稳压成5V的直流电压。再通过C2高通滤波,

C3低通滤波使电压更为稳定。该稳压电源设计简单方便,但也有不足,就是电路温度会

升高,对电路的保护要求更高,但在这里足够了。

第3章系统软件设计

3.1程序的设计思想

本次程序的设计思想是在主程序一开始就进行初始化子程序的操作,然后开

始进行按键扫描,等待按键按下,再进入相应的子程序从而完成相应的操作。下

面就介绍一下主程序和重要子程序。

3.2主程序流程图

主程序流程图如图3~1所不:

图37主程序流程图

图37为主程序流程图。首先,系统对LCD1602进行初始化设置,对系统设

置初值。自动售货机判断顾客是否投币,当顾客投币满1元时,矿泉水指示灯亮

并启动矿泉水按键;当顾客投币满2元时,矿泉水和可乐指示灯亮并启动矿泉水

和可乐按键;当顾客投币满2.5元时,矿泉水,可乐及冰红茶指示灯亮并启动全

部键盘。当顾客按键选择商品后,自动售货机扫描键盘获取键值,并根据顾客的

选择出货。一旦检测到有键按下时,还需要有一个延时消除抖动的操作,以消除按键

时带有的抖动信号,顾客可以选择继续购买商品或者找零。

3.3液晶写命令子程序设计

开始

进行指令操作,写操作,使能瑞拉

图3-2LCD1602写入控制命令流程图

图3-2为液晶写命令子程序流程图,主要可以分以下几个步骤:

1、延时5ms,作用是等待数据写入。

2、将LCD1602的RS置0,表示要对LCD1602指令寄存器操作。

3、将LCD1602的RW置0,表示单片机将要对LCD1602写操作。

4、将LCD1602的使能端E拉低,表示LCD1602可以执行指令寄存器中的控制命令。

5、通过单片机的P0口向LCD1602的指令寄存器写入需执行的控制指令,如:

(1)当P0口为0X38时,LCD1602执行初始化;

(2)当P0口为0X0C时,LCD1602执行开显示;

(3)当P0口为0X01时,LCD1602执行清屏。

6、LCD1602执行指令寄存器中的指令,同时,重新将使能端E拉高。

7、延时20ms,作用是等待数据写入。

8、将LCD1602的使能端E拉低。

3.4液晶写数据子程序设计

图3-3写数据流程图

图3-3为液晶写数据子程序流程图。写数据子程序设计与写命令子程序设计大致相

同,不同点主要有:

1、将LCD1602的RS置1,表示要对LCD1602数据寄存器操作。

2、通过单片机的P0口向LCD1602的数据寄存器写入需执行的控制指令。

3.5显示定位子程序设计

3.5.1LCD1602光标定位方法

1、定义光标位置

显示数据的某位,就足把显示数据写在相应的DDRAM地址中,DDRAM地址占7位。

SetDDRAMaddress命令如表3-4所示。光标定位,写入一个显示字符后,DDRAM地址

会自动加1或减1,加或减由输入方式设置。

表3-4SetDDRAMaddress命令

RSR/WDB7DB6DB5DB4DB3DB2DB1DBO

001AC6AC5AC4AC3AC2AC1ACO

第1行DDRAM地址与第2行DDRAM地址并不连续,如表3-5所示。

表3-5DDRAM地址

row12345・..141516

linl80H81H82H83H84H•••8dH8eH8fH

lin2OcOHOclH0c2H0c3H0c4H•・・OcdHOceHOcfH

3.5.2定位程序设计

goto_xy(ucharx,uchary)

(

if(y==O){write_com(0x80+x);delay(5000);}

else{write_com(0x80+0x40+x);delay(5000);}

)

显示定位子程序设计的目的是进行光标定位,把数据显示在LCD1602的液晶屏幕

上。显示数据的某位,就是把显示数据写在相应的DDRAM地址中,DDRAM地址并不连续。

比如:要显示第一行第三列的值,苜先,设置X的值为2,y的值为0,则读取的数值为

8211;当要显示第二行第匹列的值,首先,设置X的值为3,y的值为1,则读取的数值

为0C3Ho

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

IN

判断是否投币?

Y

根据不同的市值点亮不同的灯

判断是否购物?

根据选择不同的商品闪烁不同的灯

返回

图3-6中断服务子程序流程图

图3-6为定时中断服务子程序流程图。首先,对定时器T设置初值,THO=Oxd8,

TLO=OxfOo设置定时器每隔10ms加I,当定时器累加到达3s时,将系统设置为投币状

态。自动售货机判断顾客是否投币,系统根据顾客投入不同的币值点亮不同的指示灯;

自动售货机判断顾客是否购物,系统根据顾客的选择闪烁不同的指示灯。

3.7按键扫描子程序设计

启动面板键

一、X

1)号键被按下?二>」^

|4N|

<诵键被按下匚

<2号键被按力>吗3案:。起

二‘3号键被按下?

...45展789g健被

、按下一

N

[io号键被按下?找钱子程序

X号健被按下?:>与[『岁外>

12号键被按下?::>工|可乐子程序,

接下图

图3-7为按键扫描子程序流程图。下面对图3-7中一些问题作较为详尽的描述:

1、启动面板键

(1)当顾客投币达到1元时,表示矿泉水的LED灯被点亮,矿泉水按键启动,顾

客可以购买矿泉水。

(2)当顾客投币达到2元时,表示矿泉水和可乐的LED灯分别被点亮,矿泉水、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论