自动售货机软件设计毕业设计.docx
- 文档编号:13520633
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:34
- 大小:273.98KB
自动售货机软件设计毕业设计.docx
《自动售货机软件设计毕业设计.docx》由会员分享,可在线阅读,更多相关《自动售货机软件设计毕业设计.docx(34页珍藏版)》请在冰点文库上搜索。
自动售货机软件设计毕业设计
摘要
提出并实现一套通过单片机控制步进电机的自动售货系统。
其主要目的是为当前的自动售货机系统提出一种可行的改进方案,扩展其功能,系统主要是由三部分组成:
步进电机、51单片机、以及中间的接口电路,可以使自动售货机的功能更加完善,更加有利于自动售货机的多样化发展。
关键词:
驱动电路,单片机,步进电机,
引言
随着经济发展,传统的固定地点人员售货方式暴露出许多弊端:
人力资源需求大;受所需服务地点,地理条件的限制;而且在服务时间上不能最大限度的服务于消费者。
自动售货机的出现解决了这些难题。
品种繁多,对生活的覆盖面广,自动售货,效率高,可24小时不间断运营;选址容易,且方便改换场地;适合全职经营,也可兼职(副业)经营;作为广告载体,可赚高额外块。
投资风险低,收益高。
工作人员唯一所需要做的就是添加商品取走货币。
如此多的优点使得自动售货机在世界范围内得到广泛的应用。
本次设计做的是一种功能增强的自动售货机,同现在通用的自动售货机,它增加了一些找零,显示余额,报警等功能,使之功能更为强大,本文着重介绍的是用单片机控制步进电机,通过各种方案比较得出的一个较优方案。
第1章自动售货机发展现状
各种自动售货机保有量约2万台,且品种单一,主要以瓶饮料售货机为主,技术质量还未完全过关,生产和运营成本较高,收益也不高。
导致此现状的主要原因是中国有关的自动售货机企业未能有效解决成本,质量,运营等诸多问题。
但由于随中国经济的快速发展和社会的巨大进步,自动售货机的实际需求已相当大。
过去的步进电机控制系统组成如图1-1所示:
图1-1步进电机控制系统框图
其工作原理是:
时钟脉冲产生电路给环形分配器提供输入脉冲,环形分配器将输入时钟脉冲信号转换A,B,C三相绕组所需的顺序控制信号,经各自的功率放大电路放大后,加到电机的三相绕组上,驱动电机转动,每输入一个时钟脉冲,步进电机就前进一步,时钟脉冲产生电路一般由多谐振荡器有“自动”和“手动”两种工作状态环形分配器一般选用中规模集成电路CH250(步进电机专用的环形脉冲分配器),也可以用中,小规模数字集成电路组成,还可以用GAL器件组成。
所设计的环形分配器电路具备“自启动”功能,即当环形分配器输出在全“0”或全“1”。
第2章自动售货机的构成及工作要求
自动售货机采用双螺旋体出货机构(见图2-1所示)主要由驱动电机、减速器、螺旋体挂轮、螺旋体、货道等组成。
左、右两个螺旋体通过一对齿轮啮合,图!
中左螺旋体逆时针旋转,同时右螺旋体顺时针旋转。
当螺旋体每个螺距间隔内放满货物后,螺旋体旋转一圈,即可推出一个货物。
由于采用双螺旋体向上(相对于两螺旋体靠近点)旋转,对货物的作用力,除了向前的推力外,还有向上和向货道两侧的分力,保证了出货的可靠性。
特别是对液体软包装货物而言,不易发生“卡货”故障。
图2-1双螺旋体出货机构图
2.1自动售货机的结构及组成
1.双螺旋体出货机构
双螺旋体出货机构的结构设计,主要是根据所售商品合理选择螺旋体的材料、钢丝直径、螺旋体直径和螺距,具体设计、计算方法可参考有关设计手册中弹簧的设计。
需要注意的是,螺旋体与弹簧的要求不同,螺旋体不要求弹簧的力学指标,但对几何形状、尺寸及其稳定性要求较高,否则将影响出货的可靠性。
对此,在螺旋体的加工过程中,特别是对螺旋体的热处理方法、工艺,应该给予足够重视。
建议采用冷卷法加工成型后,250摄氏度到300摄氏度低温回火。
回火时最好采用专用工装或注意螺旋体的摆放。
2.加热(制冷)装置及控制
该部分统称为温度控制装置。
加热元件选用了管状电加热棒,绝缘可靠,安全性好。
同时,降低使用电压为额定电压的1/2,每根加热管仅承受额定功率的1/4,不但降低了加热管的表面温度,还提高了使用寿命,加热功率为550W。
制冷部分采用全封闭式压缩机,冷凝器、蒸发器、压缩机采用风扇强制换热方式,制冷功率600W。
加热、制冷采用同一个风道、风扇及温控器,加热、制冷的切换由一个单刀双掷开关完成。
3.读写器
读写器由单片机、专用智能读写模块和感应天线组成,并配有与PC的通讯接口、打印口、I/O口等接口。
该模块适用于标准读写器(只需进行电平转换即可直接连接到PC机RS232口)、自动售货机、收费POS机、门禁器、考勤机及其他各种收费系统设备应用开发中。
4.电气控制系统
该控制系统借鉴分布式并行计算系统的设计思想,分3个模块独立开发,包括主控模块、用户管理模块、执行电机控制模块。
整个控制系统组成1个小型的分布式网络。
使用IIC串行通讯协议互相通讯。
5.用户管理模块
该模块主要实现用户输入数据的采集和前期处理,接受用户的按键选择商品。
可扩充的输入方式有硬币器和纸币器的输入,输出方式为数码管和蜂鸣器输出,或者液晶屏输出。
6.执行电机控制模块
该模块主要实现对主控命令的检测、分析、应答,从而确定执行电机的矩阵位置,并启动相应的电机,驱动双螺旋出货机构,完成自动售货。
7.电气控制系统的硬件结构(见图2-2)
图2-2电气控制系统的硬件结构图
2.2自动售货机的工作要求
1、自动售货机能销售五种商品:
A,B,C,D,E假设每种商品数量无限。
2、自动售货机允许投入1元、2元、5元硬币:
若总币值等于顾客需要的商品单价时,机器送出需要的商品;若总币值大于顾客需要的商品单价时,机器除提供所需商品外,显示余额等待继续输入或者找回余额;若总币值小于顾客需要的商品单价时,报警显示总额,机器提示“余额不足”等待继续输入或者取消交易。
机器内1元和2元的找零硬币无限。
3、如果投入的硬币达到或大于所要购买商品的价格,就不必再投入硬币了,自动售货机会发出一个指示信号使接受硬币的装置不再接收新的硬币。
4、每次投币时间有限制,设定每次投币时间不超过30秒,在时间到时,总币值不足顾客购买的商品单价时,自动售货机按钱数不足处理,退还全部硬币。
或者在设定时间内,总投币值不足顾客购买的商品单价时,若需要取消交易则可按取消键,售货机按不足钱数处理,退还全部硬币。
5、当顾客完成一次购买后或按错按钮后,显示余额等待继续输入或者找回余额;
6、顾客一次只能购买一种商品的一个,若需要更多商品,需要重复操作。
第3章自动售货机的单片机控制及系统硬件设计
自动售货机系统以8255单片机为中心,需要一系列如电源电路、复位电路、振荡电路保证其工作。
先通过键盘采集消费者所需商品信息,然后以电信号的形式传给单片机。
经过运算分析处理后单片机一边将数据传给数码管进行显示,一边通过8051控制电机的转动,从而推出顾客所需商品,达到售货目的。
另外,余额不足时可以通过LED报警。
当受到外界撞击时,由传感器接收信号转换为电信号,直接启动报警装置。
系统设计分为三部分:
即单片机信息检测以及显示部分,步进电机控制部分,遇到外界撞击报警部分
图3-1系统设计框图
我做的是第二部分,是在接受到单片机传送来的商品信息后,通过控制A步进电机的转动的方向以及圈数来选择商品然后通过步进电机B来推动商品。
即A电机控制X方向选择B电机控制Y方向的推动。
如图3-2所示
图3-2步进电机的控制
如:
若要推动商品E需要先转动步进电机向右3个单位,然后步进电机A推动商品,推动结束后,步进电机A向左移动三个单位,返回原来的位置,等待下次的推动,则依次推动结束。
同样推动商品B需要先左移动一个单位,然后步进电机A工作。
其他都是同样的工作原理。
3.1复位电路
在每个用户使用单片机之前,我们都得使单片机复位,使中央处理器CPU以及其他功能部件都处于一个确定的初始状态,以消除上一个用户的操作对本次用户操作运行的影响。
51的RST引脚是复位信号的输入端。
复位信号是高电平有效,持续时间要有24个时钟周期以上。
例如:
若MCS-51单片机的时钟频率为12MHz,则复位脉冲宽度至少应为2us。
通常,8051的复位有自动上电复位和人工按纽复位两种。
图3-3自动上电复位电路图3-4人工按钮复位电路
3.274LS373
74LS373是一种带输出三态门的8D锁存器。
1D~8D为8个输入端,
1Q~8Q为8个输出端。
G为数据锁存控制端:
当G为“1”时锁存器输出端同输入端:
当G由“1”变“0”时,数据输入锁存器中
为输出允许端:
当
为“0”时,三态门打开:
当
为“1”时,三态门关闭,输出呈高阻状态。
在51单片机系统中,常采用74LS373作为地址锁存器使用,其连接方法为:
输出端1D~8D接至单片机的PO口,输出端提供的是低8位地址,G端接至单片机的地址锁存允许信ALE。
输出允许端
接地,表示输出三态门一直打开。
图3-574LS373引脚图
4LS373的工作方式如表3-1
H=高电平
L=低电平
Z=高阻抗
X=无
表3-14LS373的工作方式
Dn
LE
On
H
H
L
H
L
H
L
L
X
L
L
Qo
X
X
H
Z*
3.3单片机引脚介绍
本次设计采用89C51单片机,其引脚如图3-6所示
图3-689C51单片机引脚
8051单片机是40引脚双列直插式的芯片,由左到右按U字形依次编号,则20引脚接地,40引脚接Vcc高电频。
1~8引脚为单片机P1口的8根引脚,10~17引脚为单片机P3口的8根引脚,21~28引脚为单片机P2口的8根引脚,32~39引脚为单片机P3口的8根引脚,这三个口是单片机的基本输入输出口。
其中P0口在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。
在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。
P1口可作为准双向I/O口使用。
P2口一般可以用作准双向I/O口使用;在接有片外存储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址线。
P3口处作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入或第二功能。
P3口的第二功能定义如表3-2:
表3-2P3口的第二功能定义
引脚
第二功能
P3.0
RXD
串行口输入端
P3.1
TXD
串行口输出端
P3.2
INT0
外部终端0请求输入端,低电平有效
P3.3
INT1
外部终端1请求输入端,低电平有效
P3.4
T0
定时器/计数器0技术脉冲输入端
P3.5
T1
定时器/计数器1技术脉冲输入端
P3.6
WR
外部数据存储器写选通信号输入端,低电平有效
P3.7
RD
外部数据存储器写选通信号输出端,低电平有效
9引脚(RST)是单片机的复位信号线。
上电复位和手动复位,当该引脚上持续两个机器周期的高电平后,就可以实现复位操作,使单片机回复到初始状态。
18引脚是单片机的XTAL2端口,接外部晶振的另一端。
在单片机内部,它是片内振荡器的反向放大器的输出端。
当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端;对于CHMOS单片机,该引脚悬空不接。
19引脚是单片机的XTAL1端口,接外部晶振的一端。
在单片机内部,它是一个反向放大器的输入端,这个放大器构成了片内振荡器。
当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。
29引脚(PSEN)是单片机的片外程序存储器读选通信号输出端,低电平有效。
每个机器周期该信号有两次有效,低电平有效的时候,单片机通过数据总线从P0口读取指令或常数。
在访问片外数据存储器期间,PSEN信号将不会出现。
30引脚(ALE/PROG)是单片机的地址锁存有效信号输出端。
在接片外程序存储器的时候,单片机的ALE端和锁存器的CE端,用来选中该芯片。
31引脚(EA)为单片机片外程序存储器选用端。
该引脚低电平有效时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。
3.4驱动电路
集成功率电子开关TWH8751可直接由TTL,CMOS等数字电路直接驱动,该器件开关速度快,工作频率高(可以达到1.5MHZ),控制功率比较大,内部开关管反向击穿电压为100v,加上散热器后,通过的灌电流可以达到3A,其输出管采用集电极开路方式,可以根据负载要求选择合适的电源电压,片内还没有热减流保护电路。
Vi,Vo分别为信号的输入端和输出端,V+为正电源的输入端,GND为接地端,St为选通控制端,该器件为数字逻辑开关,不是模拟开关。
当Sr为高电平“1”(大于1.6V)时,不论Vi端的电平为多少其输出级的达林顿管总是截至。
当St端为低电平(不超过1.2V)时,输出V0受Vi的控制,当Vi为高电平输出级的达林顿管截止:
当Vi为高电平“1”时应加限流电阻Rs,因片内电源与地之间设有一个6.8V的稳压管,Rs的值可以按照
进行估算。
由于输出级的达林顿管的反向击穿电压可以达到100V,所以输出级可以不与V+共电源,而是根据需要加80V~100V的高压于负载上。
图3-7斩波型功放电路
图3-7中只给出了驱动A相绕组的功放电路,B,C相的驱动电路与之相同,该电路的工作原理是:
环形分配器的输出信号A送到TWH8751的输入端Vi,NE555振荡器产生频率较高的载频脉冲信号,送到选通控制端St,因此,TWH8751处于高频开关斩波工作状态,其输出端Vo为间歇脉冲序列,故称为斩波型驱动电路,各点的波型如图3-8所示
图3-8A相波型
绕组中电流il的大小与电流Vcc和高频脉冲序列的脉宽Ton有关,当Vcc较大的时候,I较大,当Ton较宽的时候i会增大。
载频脉冲频率fc的选取是比较重要的。
当fc比较小的时候,电机会发出很大的噪声,一般选取fc〉=15MHZ为适宜的。
第4章执行装置的选择及其原理
4.1电机的选择
方案一采用步进电动机控制。
步进电动机的精度很高,可实现精确的步距角运动,由其组成的位置控制系统定位准确,稳定时间短,采用单片机控制步进电动机,控制信号为熟悉信号,不再需要数/摸转换,具有快速起停功能,延时短、定位准确、精度高和可操作性强。
与驱动控制器匹配使用时,控制起来也十分方便,很容易构成数字位置控制系统。
但步进电动机的控制系统相对复杂,价格比直流电动机高。
方案二采用直流电动机控制。
直流电动机精度较低,不易实现精确的位置控制。
用单片机和A/D转换构成系统,控制普通电动机的步数和旋转方向,可以考虑达林顿管组成的H型PWM电路。
用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速,减小因惯性、速度和步距角过大而引起的调整误差。
其控制信号为模拟信号,需要将单片机输出的序列脉冲转换,延长了控制时间,将难以控制其精确位置,系统稳定性也比较差。
但使用方便,价格便宜。
但是本次设计是由单片机直接控制,步进电机可以直接接受的数字信号不需要数/模转换,具有快速起停功能,延时短、定位准确、精度高和可操作性强。
与驱动控制器匹配使用时控制起来方便,在销售移动距离较小的商品的时候不会产生误差。
4.2步进电机的工作原理
图4-1三相步进电机结构示意图
步进电机的工作就是步进转动。
在一般的步进电机工作中,其电源都是单极性的直流电源。
要使步进电机转动,就必须对步进电机的定子的各项绕组以适当的时序进行通电。
步进电机的步进过程表示为,其定子的每相都有一对磁极,每个磁极都只有一个齿,即磁极本身,故三相步进电机有三对磁极一共是6个齿;其转子有4个齿,分别称为0.1.2.3齿直流电源U通过开关A,B,C,分别对步进电机的A,B,C,相绕组通电。
初始状态时,开关A接通,则A相磁极和转子的0,2号齿对齐,同时转子的1,3号齿和B,C相磁极形成错齿状态。
当开关A断开,B接通,由于B相绕组和转子的1,3号齿之间的磁力线作用,使得转子的1,3号齿和B相磁极对齐,则转子的0,2号齿就和A,C,相绕组形成错齿状态。
此后,开关的B断开,C接通,由于C相绕组和转子的0,2之间的磁力线的作用,使得转子0,2号齿和C相磁极相对齐,这时转子的1,3号齿和A,B相绕组磁极产生错齿。
当开关C断开,A接通后,由于A相绕组磁极和转子1,3号之间的磁力线的专用使转子1,3号齿和A相绕组磁极对齐,这时转子的0,2号齿和B,C相绕组磁极产生错齿。
很明显,这时转子转动了一个齿距角。
如果对一相绕组的操作称为一拍,那么对A,B,C三相绕组的轮流通电需要三拍。
对A,B,C,三相轮流通电一次成为一个周期。
从上面分析看出,该三相步进电机转子转动一个齿距需要三拍操作。
由于按A———B———C———A相轮流通电,则磁场沿A,B,C方向转动了360度空间角,而这时转子沿ABC方向转动了一个齿距的位置。
在图一中,转子的齿数为4,故齿距角为90度,转动了一个齿距就是转动了90度.
本次设计采用的是三相步进电机型号是36BF003(属于三相步进电机),工作电压的标称值是27V相电流的标称值是1.5A,保持转矩是78Mn.m(豪牛顿。
米),步距角为1.5度/3度,矩频特性:
Pulse-torqueCharacteristics
图4-236bf003矩频特性
4.3步进电机控制的输出字表
选定由PA口的PA0,PA1,PA2,控制x轴的三相步进电机,PB0,PB1,PB2通过驱动电路控制y轴三相步进电机,并假设数据输出为“1”时,相应的绕组通电;当“0”时,相应的绕组断电。
下面介绍三相六拍控制方式确定步进电机的输出的控制字.当步进电机的相数和控制方式确定之后,PA0~PA2和PB0~PB2输出变化规律就确定了。
这种输出变化规律可以用输出字来描述。
为了寻找,输出字以表的形式存放在计算机指定的存储区域,下表5-1给出了三相六拍的控制方式的输出字表。
表4-1三相六拍的控制方式的输出字表
X轴步进电机输出字表
Y轴步进电机输出字表
存储地址标号
PA口输出字
存储地址标号
PB口输出字
ADX1
00000001=01H
ADY1
00000001=01H
ADX2
00000011=03H
ADY2
00000011=03H
ADX3
00000010=02H
ADY3
00000010=02H
ADX4
00000110=06H
ADY4
00000110=06H
ADX5
00000100=04H
ADY5
00000100=04H
ADX6
00000101=05H
ADY6
00000101=05H
显然,若要控制步进电机正转。
则按ADX1——ADX2——。
。
。
ADX6和ADY1——ADY2——。
。
ADY6顺序向PA口和PB口送输出字即可:
若要控制步进电机反转,则要按相反的顺序送输出字。
第5章单片机与步进电机的接口电路设计
5.1芯片引脚及其内部说明
8255芯片的引脚如图5-1所示,引脚信号如表5-1所示。
表5-18255的引脚信号说明
引脚信号
引脚号
引脚名称和功能
Vcc
26
电源的+5V端
GND
7
电源的0端
RESET
35
复位信号输入端。
使内部各寄存器清除,置A,B,C口为输入口
36
写信号输入端,使CPU输出的数据或者控制字到8255A
5
读信号输入端。
使8255A输出数据或者状态信息到CPU
6
片选端
A1,A0
8,9
地址总线的最低2位。
用于决定断口地址:
如A1A0为00,是A口:
A1A0为01,是B口:
A1A0为10,是C口:
A1A0是11,是控制字寄存器
D7~D0
27~34
双向数据总线
PA7~PA0
37~401~4
A口的8位I/O引脚
PB7~PB0
25~18
B口的8位I/O引脚
PC7~PC0
10~1317~14
C口的8位I/O引脚
数据总线缓冲器:
是一个8位的双向三态驱动器,用于与单片机的数据总线相连。
读/写控制逻辑:
根据单片机的地址信息(A1A0)与控制信息(RDWRRESET),控制片内的数据,CPU控制字,外设状态信息的传送。
控制电路:
根据CPU送来的控制字所管I/O口按一定的方式工作。
对C口甚至可按位实现置位或者复位。
控制电路分为两组:
A组控制电路控制A口及C口的高四位(PC7~PC4),B组控制电路控制B口及C口的低四位(PC3~PC0)。
三个并行I/O端口:
A口可编程为8位输入,或者8位输出,或者双向输出:
B口可编程为8位输入,或者8位输出,但是不可以双向传输;C口分为两个4位口,用于输入或者输出,也可以用作A口,B口的状态控制信号。
图5-18255引脚图
5.28255的操作方式
5.2.1读/写控制逻辑操作选择
由单片机输出的地址A1,A0及控制信号
,
,
来选择口的操作状态。
口的操作状态如表5-2-1所示
表5-28255的口操作状态
A1A0
输入操作(读)
00010
A口——数据总线
01010
B口——数据总线
10010
C口——数据总线
输出操作(写)
00100
数据总线——A口
01110
数据总线——B口
10100
数据总线——C口
11100
数据总线——控制口
禁止操作
————1
数据总线为三态
11010
非法状态
——010
数据总线为三态
5.2.28255的三种工作方式
方式0(基本输入/输出方式):
这种工作方式不需要任何选通信号。
A口,B口及C口的两个4位口中任何一个端口都可以由程序设定为输入或者输出。
作为输出口时,输出数据被锁存:
作为输入口,输入数据不锁存。
方式1(选通输入/输出方式):
在这种工作方式下,A,B,C三个口分为两组。
A组包括A口和C口的高四位,A口可由编程设定为输入口或者输出口,C口的高四位则是用来作为A口输入/输出操作的控制和同步信号:
B组包括B口和C口的低四位,B口可由编程设定为输入口或者输出口,C口的低四位则是用来作为B口输入/输出操作的控制和同步信号。
A口和B口的输入或者输出的数据都被锁存。
方式2(双向传送方式)在这种方式下,A口可以用于双向传送,C口的PC3~PC74用来作为输入/输出的控制同步信号。
应该注意的是,只有A口允许用作双向传送,这时B口和PC0~PC2则可编程为方式0或者方式1工作。
5.2.3编程控制字
8255A的编程选择是通过对控制口输入控制字的方式实现的。
控制字有方式选择控制字和C口置位/复位控制字。
方式选择控制字:
其格式如下表5-3所示:
表5-3方式选择控制字
D7
D6
D5
D4
D3
D2
D1
D0
A组
B组
控制字
标志
1=方式控制字
方式选择00=方式001=方式1
1*=方式2
A口
1=输入
0=输出
上C口1=输入0=输出
方式选择
00=方式0,01=方式1
B口
1=输入
0=输出
下C口1=输入0=输出
C口置位/复位控制字:
C口具有位操作功能,把一个置位/复位控制字送入送入8255A的控制寄存器(控制口)就能把C口的某一位置1或者清0而不影响其他位的状态。
C口置位/复位控制的格式与定义如表5-4所示。
表5-4C口置位/复位控制字
D7
D6
D5
D4
D3
D2
D1
D0
控制字标志
位选择
置位
0=位操作
当不用的时候
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动 售货 软件设计 毕业设计