您的当前位置:首页正文

自动售货机的设计

来源:一二三四网
自动售货系统

摘要:提出并实现一套基于单片机控制步进电机的自动售货系统。其主要目的是为当前的自动售货机系统提出一种可行的改进方案,扩展其功能,系统主要是由三部分组成:步进电机、51单片机、以及中间的接口电路,可以使自动售货机的功能更加完善,更加有利于自动售货机的多样化发展。 关键词:驱动电路,单片机,步进电机,OCS

Abstract:Put forward and realize a set of auto selling machine system according to the single-chip microcomputer control stepper motors .Its main purpose is to put forward a kind of viable improvement project, expanding its function for current auto selling machine system .the system primarily is composed of three parts: stepper motors ,single-chip microcomputer, and connecting circuit in them which can make the function of auto selling machine more perfect, is benefit to have more diverse uses of auto selling machine.

Keyword: the driving circuit, single-chip microcomputer , Office Coffee Service

自动售货机系统

目 录

言…………………………………………………………………………………………1

第一章 设计题目述……………………………………………………………………3

1.1自动售货机产业的状………………………………………………………......3

1.2我国自动售货机技术的状……………………………………………………..3

1.3单片机控制步进电机的自动售货机统………………………………………..4 第二章 系统总体方案计………………………………………………………………..5

2.1系统方案述……………………………………………………………………..5

2.2功能

求…………………………………………………………………………..6 第三章 系统硬件计……………………………………………………………………..7

3.1单片机硬件计…………………………………………………………………..7

3.11 复位

路………………………………………………………………….8

3.12

74LS373…………………………………………………………………..8

3.13单片机引脚

绍……………………………………………………………9

3.2电机选择及绍…………………………………………………………………10

3.21电机方案

较……………………………………………………………..10

3.22步进电机的工作

理……………………………………………………..10

3.3步进电机驱动电路计…………………………………………………………12

3.4单片机与步进电机的接口电路计……………………………………………15 第四章 系统软件计…………………………………………………………………..19

4.1程序流

概现现系设总要设设电

介介比原设设设程

2

合肥工业大学2005届论文集

图………………………………………………………………………19

4.2程序设计…………………………………………………………………………20 致

谢………………………………………………………………………………………..22 参考文献…………………………………………………………………………………..22

引 言

随着经济发展,传统的固定地点人员售货方式暴露出许多弊端:人力资源需求大;受所需服务地点,地理条件的限制;而且在服务时间上不能最大限度的服务于消费者。自动售货机的出现解决了这些难题。品种繁多,对生活的覆盖面广,自动售货,效率高,可 24 小时不间断运营;选址容易,且方便改换场地;适合全职经营,也可兼职(副业)经营;作为广告载体,可赚高额外块。投资风险低,收益高。工作人员唯一所需要做的就是添加商品取走货币。如此多的优点使得自动售货机在世界范围内得到广泛的应用。

本次设计我们小组做的是一种功能增强的自动售货机,同现在通用的自动售货机,它增加了一些找零,显示余额,报警等功能,使之功能更为强大,本文着重介绍的是用单片机控制步进电机,通过各种方案比较得出的一个较优方案。 第一章是设计题目概述关于本产业的介绍以及技术现状,第二章是系统总体方案介绍

第三章是硬件设计,包括单片机,驱动电路,接口电路设计,第四章是软件设计.

3

自动售货机系统

第一章 设计题目概述

1.1自动售货机产业的现状

1. 发达国家现状

日本:各种自动售货机保有量超过 600 万台,平均 20 人一台,世界普及率第一。 1990 年通过自动售货机实现的销售额即已达到 5 兆日元(约 3000 亿人民币)。

美国:总的机器保有量大致和日本相当, 2000 年通过自动售货机实现的销售额达到 250 亿美元,其中 OCS(Office Coffee Service )的销售额排第六位。

韩国:自动售货机的使用历史要远短于其它发达国家,仅有 25 年,但据 2001 年的统计,总保有量已超过 80 万台。在 2001 年韩国生产的自动售货机中 OCS 占 32.7% ,排第一位,咖啡自动售货机占 18.1% ,排第三位,仅次于 18.6% 的充电自动售货机。瓶罐饮料自动售货机和复合型自动售货机(同机销售瓶罐饮料和热咖啡)都仅占 8.6% ,并列第四位。

2. 国内现状

4

合肥工业大学2005届论文集

保有量约 2 万台,且品种单一,主要以瓶饮料售货机为主,技术质量还未完全过关,生产和运营成本较高,收益也不高。导致此现状的主要原因是中国有关的自动售货机企业未能有效解决成本,质量,运营等诸多问题。但由于随中国经济的快速发展和社会的巨大进步,自动售货机的实际需求已相当大。 1.2我国自动售货机技术的现状

过去的步进电机控制系统组成如图一所示:

其工作原理是:时钟脉冲产生电路给环形分配器提供输入脉冲,环形分配器将输入时钟脉冲信号转换A,B,C三相绕组所需的顺序控制信号,经各自的功率放大电路放大后,加到电机的三相绕组上,驱动电机转动,每输入一个时钟脉冲,步进电机就前进一步,时钟脉冲产生电路一般由多谐振荡器有“自动”和“手动”两种工作状态环形分配器一般选用中规模集成电路CH 250(步进电机专用的环形脉冲分配器),也可以用中,小规模数字集成电路组成,还可以用GAL器件组成。所设计的环形分配器电路具备“自启动”功能,即当环形分配器输出在全“0”或全“1”。

1.3单片机控制步进电机的自动售货机系统

采用单片机控制,主要取代脉冲分配器,而给步进电机提供电源的驱动电路必不可省,同时用单片机可以实现对步进电机的走步数,转向以及速度控制等。步进电机控制,用单片机同时控制x轴和y轴两台三相步进电机,控制接口如图二所示。此接口电路可选用可编程并行接口芯片8255,8255的PA口的PA0,PA1,PA2,控制x轴的三相步进电机,8255的PB0,PB1,PB2控制y轴三相步进电机。只要确定了步进电机的工作方式,就可以控制各相绕组的通电顺序,实现步进电机正转或者反转。

5

自动售货机系统

图二,两台步进电机控制接口示意图

第二章 系统总体方案设计

2.1系统方案总述

自动售货机系统以8051单片机为中心,需要一系列如电源电路、复位电路、振荡电路保证其工作。先通过键盘采集消费者所需商品信息,然后以电信号的形式传给单片机。经过运算分析处理后单片机一边将数据传给数码管进行显示,一边通过8255控制电机的转动,从而推出顾客所需商品,达到售货目的。另外,余额不足时可以通过LED报警。当受到外界撞击时,由传感器接收信号转换为电信号,直接启动报警装置。

系统设计分为三部分:即单片机信息检测以及显示部分,步进电机控制部分,遇到外界撞击报警部分

6

合肥工业大学2005届论文集

图三 系统设计框图

我做的是第二部分,是在接受到单片机传送来的商品信息后,通过控制A步进电机的转动的方向以及圈数来选择商品然后通过步进电机B来推动商品。即A电机控制X方向选择B电机控制Y方向的推动。如图四所示

图四 方案显示

如 :若要推动商品E需要先转动步进电机向右3个单位,然后步进电机A推动商品,推动结束后,步进电机A向左移动三个单位,返回原来的位置,等待下次的推动,则依次推动结束。同样推动商品B需要先左移动一个单位,然后步进电机A工作。其他都是同样的工作原理。 2.2 功能要求

1、 自动售货机能销售五种商品:A,B,C,D,E 假设每种商品数量无限。 2、 自动售货机允许投入1元、2元、5元硬币:

若总币值等于顾客需要的商品单价时,机器送出需要的商品;

若总币值大于顾客需要的商品单价时,机器除提供所需商品外,显示余额等待继续输入或者找回余额;

7

自动售货机系统

若总币值小于顾客需要的商品单价时,报警显示总额,机器提示“余额不足”等待继续输入或者取消交易。

机器内1元和2元的找零硬币无限。

3、 如果投入的硬币达到或大于所要购买商品的价格,就不必再投入硬币了,

自动售货机会发出一个指示信号使接受硬币的装置不再接收新的硬币。 4、 每次投币时间有限制,设定每次投币时间不超过30秒,在时间到时,总

币值不足顾客购买的商品单价时,自动售货机按钱数不足处理,退还全部硬币。或者在设定时间内,总投币值不足顾客购买的商品单价时,若需要取消交易则可按取消键,售货机按不足钱数处理,退还全部硬币。 5、 当顾客完成一次购买后或按错按钮后,显示余额等待继续输入或者找回余额;

6、 顾客一次只能购买一种商品的一个,若需要更多商品,需要重复操作。

第三章 系统硬件设计

3.1单片机硬件设计

本次设计采用89C51单片机,其引脚如图所示

8

合肥工业大学2005届论文集

图五 8051引脚图

3.11 复位电路

在每个用户使用单片机之前,我们都得使单片机复位,使中央处理器CPU以及其他功能部件都处于一个确定的初始状态,以消除上一个用户的操作对本次用户操作运行的影响。51的RST引脚是复位信号的输入端。复位信号是高电平有效,持续时间要有24个时钟周期以上。例如:若MCS-51单片机的时钟频率为12MHz,则复位脉冲宽度至少应为2us。通常,8051的复位有自动上电复位和人工按纽复位两种,图六、图七分别显示出了它们的电路

9

自动售货机系统

图六 自动上电复位电路 图七 人工按钮复位电路

自动上电复位电路的工作原理是:通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工作。

人工按钮复位的工作原理是:按钮按下后,电容两端被短路,RST端电压上为高电平,单片机进入复位状态,按钮断开后,电源通过电阻R1对电容充电,RST端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工作。 本次单片机采用自动上电复位电路。

3.12 74LS373

74LS373 是一种带输出三态门的8D锁存器。 1D~8D为8个输入端, 1Q~8Q为8个输出端。

G为数据锁存控制端:当G为“1” 时锁存器输出端同输入端:当G由“1”变“0”时,数据输入锁存器中OE为输出允许端:当OE为“0”时,三态门打开:当OE为“1”时,三态门关闭,输出呈高阻状态。在51单片机系统中,常采用74LS373作为地址锁存器使用,其连接方法为:输出端1D~8D接至单片机的PO口,输出端提供的是低8位地址,G端接至单片机的地址锁存允许信ALE。输出允许端OE接地,表示输出三态门一直打开。

图八 74LS373引脚图

74LS373 的工作方式为:

10

合肥工业大学2005届论文集

3.13 单片机引脚介绍

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口的第二功能定义如下: 引脚 第二功能 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单片机,该

11

自动售货机系统

引脚作为外部振荡信号的输入端;对于CHMOS单片机,该引脚悬空不接。

19引脚是单片机的XTAL1端口,接外部晶振的一端。在单片机内部,它是一个反向放大器的输入端,这个放大器构成了片内振荡器。当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。

29引脚(PSEN)是单片机的片外程序存储器读选通信号输出端,低电平有效。每个机器周期该信号有两次有效,低电平有效的时候,单片机通过数据总线从P0口读取指令或常数。在访问片外数据存储器期间,PSEN信号将不会出现。

30引脚(ALE/PROG)是单片机的地址锁存有效信号输出端。在接片外程序存储器的时候,单片机的ALE端和锁存器的CE端,用来选中该芯片。

31引脚(EA)为单片机片外程序存储器选用端。该引脚低电平有效时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。 3.2 电机选择及介绍

3.2 1 电机方案比较

方案一 采用步进电动机控制。步进电动机的精度很高,可实现精确的步距角运动,由其组成的位置控制系统定位准确,稳定时间短,采用单片机控制步进电动机,控制信号为熟悉信号,不再需要数/摸转换,具有快速起停功能,延时短、定位准确、精度高和可操作性强。与驱动控制器匹配使用时,控制起来也十分方便,很容易构成数字位置控制系统。但步进电动机的控制系统相对复杂,价格比直流电动机高。

方案二 采用直流电动机控制。直流电动机精度较低,不易实现精确的位置控制。用单片机和A/D转换构成系统,控制普通电动机的步数和旋转方向,可以考虑达林顿管组成的H型PWM电路。用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速,减小因惯性、速度和步距角过大而引起的调整误差。其控制信号为模拟信号,需要将单片机输出的序列脉冲转换,延长了控制时间,将难以控制其精确位置,系统稳定性也比较差。但使用方便,价格便宜。

但是本次设计是由单片机直接控制,步进电机可以直接接受的数字信号不需要数/模转换,具有快速起停功能,延时短、定位准确、精度高和可操作性强。与驱动控制器匹配使用时控制起来方便,在销售移动距离较小的商品的时候不会产生误差。

步进电机又叫脉冲电机,它是一种将电脉冲信号转化为角位移的机电数模(D/A)转换器。在开环数字程序控制系统中,输出控制部分常用步进电机作为驱动元器件。步进电机的控制电路接受计算机发来的指令脉冲,控制步进电机作相应的转动。很明显脉冲的总数决定了移动量,指令的频率决定了移动的速度。因此,指令脉冲可否被可靠的执行,基本上取决于步进电机的性能。

3.22步进电机的工作原理

12

合肥工业大学2005届论文集

图九 三相步进电机结构示意图

步进电机的工作就是步进转动。在一般的步进电机工作中,其电源都是单极性的直流电源。要使步进电机转动,就必须对步进电机的定子的各项绕组以适当的时序进行通电。步进电机的步进过程表示为,其定子的每相都有一对磁极,每个磁极都只有一个齿,即磁极本身,故三相步进电机有三对磁极一共是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(豪牛顿。米),

13

自动售货机系统

步距角为1.5度/3度,矩频特性:Pulse-torque Characteristics

图十 36bf003矩频特性

3.12,步进电机控制的输出字表。

在图二中,选定由PA口的PA0,PA1,PA2,控制x轴的三相步进电机, PB0,PB1,PB2通过驱动电路控制y轴三相步进电机,并假设数据输出为“1”时,相应的绕组通电;当“0”时,相应的绕组断电。下面介绍三相六拍控制方式确定步进电机的输出的控制字.当步进电机的相数和控制方式确定之后,PA0~PA2 和PB0~PB2输出变化规律就确定了。这种输出变化规律可以用输出字来描述。为了寻找,输出字以表的形式存放在计算机指定的存储区域,下表一给出了三相六拍的控制方式的输出字表。 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口送输出字即可:若要控制步进电机反转,则要按相反的顺序送输出字 3.3步进电机驱动电路设计

方案一 使用功率场效应管的单电压功放电路

单电压功率放大电路是步进电机控制中最简单的一种驱动电路,图十一是一相绕组驱动电路的原理图(其他各相绕组的驱动电路与此相同)。图中,T是功率场效应管,L1是步进电机一相绕组电感,RD为场效应管的漏极限流电阻,D为续流二极管,为绕组提供放电回路,工作原理是:当环形分配器输出的信号v01为高电平时,T为 饱和导通,绕组L1中产生电流v01为低电平时,T截至,L1中的电流消失。所以场效应管工作在开关状态。功放电路的负载是电机绕组,属于感性负载,当功放管T从饱和变截至时,由于绕组中的电流不会改变,从而会在绕组中产生一个很强的反电势,这个反电势和电源Vcc一起 叠加在功放管T的漏极上,很容易将功放管击穿,故将二极管D接在T的漏极D和电源Vcc之

14

合肥工业大学2005届论文集

间,使得T在截至瞬间,电机绕组产生的反电势能通过续流二极管D泻放,从而保护功放管不受损害。同时,功放管应该选用反向耐压高的管子。IRF640 是VMOS功率场效应晶体管,它的典型参数是:Vds=200v,Rds(on)=0.18欧姆,Id=18A,作为普通电机的功放管是非常理想的。

方案二 使用集成功率放大开关器件构成的斩波型功放电路

集成功率电子开关TWH8751 可直接由TTL,CMOS等数字电路直接驱动,该器件开关速度快,工作频率高(可以达到1.5MHZ),控制功率比较大,内部开关管反向击穿电压为100v,加上散热器后,通过的灌电流可以达到3A,其输出管采用集电极开路方式,可以根据负载的要求选择合适的电源电压,片内还没有热减流保护电路。

TWH8751的引脚如图十二所示,

图十二 TWH8751引脚图

Vi,Vo分别为信号的输入端和输出端,V+为正电源的输入端,GND为接地端,St为 选通控制端,该器件为数字逻辑开关,不是模拟开关。当Sr为高电平“1”(大于1.6V)时,不论Vi端的电平为多少 其输出级的达林顿管总是截至。当St端为低电平(不超过1.2V)时,输出V0受Vi的控制,当Vi为高电平输出级的达林顿管截止:当Vi为高电平“1”时应加限流电阻Rs,因片内电源与地之

Vcc6.8V间设有一个6.8V的稳压管,Rs 的值可以按照 进行估算。由于输出

10mA级的达林顿管的反向击穿电压可以达到100V,所以输出级可以不与V+共电源,而是根据需要加80V~~~~100V的高压于负载上。

15

自动售货机系统

图十三斩波型功放电路

图中只给出了驱动A相绕组的功放电路,B,C相的驱动电路与之相同,该电路的工作原理是 :环形分配器的输出信号A送到TWH8751的输入端Vi ,NE555振荡器产生频率较高的载频脉冲信号 ,送到选通控制端St ,因此,TWH8751 处于高频开关斩波工作状态,其输出端Vo为间歇脉冲序列,故称为斩波型驱动电路,各点的波型如图十四所示

16

合肥工业大学2005届论文集

图十四 A相波型,

绕组中电流il的大小与电流Vcc和高频脉冲序列的脉宽Ton有关,当Vcc较大的时候,I 较大,当Ton较宽的时候i会增大。

载频脉冲频率fc的选取是比较重要的。当fc比较小的时候,电机会发出很大的噪声,一般选取fc〉=15MHZ为适宜的。

比较 斩波功放电路与普通单电压功放电路相比较,前者的工作效率可以提高百分之三十 左右 ,力矩可以提高百分之十到百分之二十五左右。效率提高也非常显著。在输出功率相同的条件下,斩波电路的输入功率大约为单电压功放电路输入功率的一半。因此采用方案二。 3.4单片机与步进电机的接口电路设计

8255是单片机应用系统中广泛被采用的可编程外部I/O扩展芯片。它有3个8位并行I/O口,每个口有三种工作方式,

1芯片引脚及其内部说明

8255芯片的引脚如图十五所示,引脚信号如表二所示。 引脚信号 引脚号 引脚名称和功能 Vcc 26 电源的+5V端 GND 7 电源的0端 RESET 35 复位信号输入端。使内部各寄存器清除,置A,B,C口为输入口 36 写信号输入端,使CPU输出的数据或者控制字到8255A WR RD 5 读信号输入端。使8255A输出数据或者状态信息到CPU 17

自动售货机系统

CS 6 8,9 片选端 A1,A0 地址总线的最低2位。用于决定断口地址:如A1A0为00,是A口:A1A0 为01,是B口:A1A0为10,是C口:A1A0 是11,是控制字寄存器 D7~D0 27~34 双向数据总线 PA7~PA0 37~40 1~4 A口的8位I/O引脚 PB7~PB0 25~18 B口的8位I/O引脚 PC7~PC0 10~13 C口的8位I/O引脚 17~14 表二8255的引脚信号说明 数据总线缓冲器:是一个8位的双向三态驱动器,用于与单片机的数据总线相连。 读/写控制逻辑:根据单片机的地址信息(A1 A0 )与控制信息(RD WR RESET),控制片内的数据,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口的状态控制信号。

图十五8255引脚图

2 8255的操作方式

1)读/写控制逻辑操作选择

由单片机输出的地址A1,A0及控制信号WR,CS,RD来选择口的操作状态。口的操作状态如表三所示 输入操作(读) A1 A0 RD WRCS 0 0 0 1 0

A口——数据总线 18

合肥工业大学2005届论文集

0 1 0 1 0 B口——数据总线 1 0 0 1 0 C口——数据总线 输出操作(写) 0 0 1 0 0 数据总线——A口 0 1 1 1 0 数据总线——B口 1 0 1 0 0 数据总线——C口 1 1 1 0 0 数据总线——控制口 禁止操作 — — — — 1 数据总线为三态 1 1 0 1 0 非法状态 — — 0 1 0 数据总线为三态 表三 8255的口操作状态 2)8255的三种工作方式

方式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工作。

3)编程控制字

8255A 的编程选择是通过对控制口输入控制字的方式实现的。控制字有方式选择控制字和C口置位/复位控制字。

方式选择控制字:其格式如下表四所示:

C口置位/复位控制字:C口具有位操作功能,把一个置位/复位控制字送入送入8255A的控制寄存器(控制口)就能把C口的某一位置1或者清0而不影响其他位的状态。C口置位/复位控制的格式与定义如表五所示。 D7 D6 D5 D4 D3 D2 D1 D0 A组 B组 控制字 方式选择 00=方式A口 上C口方式选择 B口 下C口标志 0 01=方式1 1=输入 1=输00=方式1=输入 1=输入1=方式控1*=方式2 0=输出 入0=0,01=方0=输出 0=输出 制字 输出 式1 表四 方式选择控制字 D7

D6 D5 D4 D3 D2 D1 D0 19

自动售货机系统

控制字标志 0=位当不用的时候置为 000 操作 位选择 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 表五 C口置位/复位控制字 置位 BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 3 8051与8255的接口方法

51单片机与8255的接口逻辑简单,其接口电路为图十六所示,因为8255A芯片内部没有地址锁存能力,所以图中8255A 的片选信号CS及口地址选择线A1,A0分别由8051的P0.7 和P0.1 经由地址锁存器后提供。如果没有参入选址的地址的状态都看作“1 ”状态,则8255的A,B,C口及控制口地址为FF7CH,FF7DH,FF7EH,FF7FH。当然各口都有重复的地址,8255的复位端与8051的复位端相连,都接到8051的复位电路。

图十六 8255与8051的连接图

20

合肥工业大学2005届论文集

第四章 系统软件设计

4.1程序流程图

图十七 程序流程图

21

自动售货机系统

图十八 转动子程序流程图4.2程序设计

PUSH A PUSH 00H PUSH 01H PUSH 02H PUSH 03H PUSH 05H PUSH 06H PUSH 07H

MOV DPTR,#FF7FH MOV A ,#80H MOV @ DPTR,A CLR C

MOV A ,R4 RLC A

ADD A ,#04H MOVC A ,@A+PC MOV R2 ,A INC A

MOV R3, A

XZXX:DB #01H, #02H, #01H, #01H, #00H, #01H

#00H, #02H ,#00H, #03H MOV DPTR ,#77FCH

22

合肥工业大学2005届论文集

MOV R5, #03H

AXZ :MOV R1, #00H MOV A ,R2 JNB ACC0, ZZ MOV R1, #06H F: MOV A, R3

JZ BX2

F1: MOV A, R1

ADD A ,#09H MOVC A ,@A+PC MOVX @DPTR, A ACALL YS INC R1

CJNZ R1, #06H ,BXZ DEC R3 AJMP F1

FZB:DB #05H, #04H, #06H, #02H

#03H, #01H

ZZ: MOV A ,R3 JNZ Z DJNZ R3, ZZ AJMP BXZ Z: MOV A ,R1 ADD A ,#09H MOVC A, @A+PC MOVX @DPTR, A ACALL YS

INC R1

CJNE R1, #06H,LZ1

AJMP Z LZ1:RET

ZZB:DB #01H #03H #02H #06H #04H #05H BXZ: MOV A , R5 JNZ Z DEC R5

DJNZ R5, BX2 AFXZ: MOV A, R2 JZ J1 DEC R2 AJMP AXZ RET

POP 07H POP 06H POP 05H

23

自动售货机系统

POP 03H POP 02H POP 01H POP 00H POP A

J1: INC R2 AJMP AXZ RET YS: MOV R7 ,#02H DL: MOV R6 ,#0FFEH DL0: DJNZ R6 ,DL6

DJNZ R7, DL RET

致 谢

我所做的“自动售货机系统”这个设计是一个综合的工作。它涉及到电路的设计、单片机的编程,电路焊接等工作还有些相关软件的使用。由于本人的能力有限,在毕业设计的制作过程中,遇到的问题和困难很多,但在老师的指导和同学的帮助下,我成功地完成了系统的设计工作。在此,我向他们致以诚挚的感谢!

首先要感谢的是我的指导老师蒋老师。蒋老师虽然公务繁忙,还在新区上课,但几乎每次见到我,都要关注询问我的毕业设计进展情况,对于我在毕业设计中遇到的一些问题,都给予我耐心的指导和解释,提出了大量宝贵的意见,并介绍了许多期刊书目资料供我参考。在此,我向张老师致以我最诚挚的谢意! 特别要感谢刘老师给了我很大的帮助,我经常向他请教一些单片机方面的问题,还有询问芯片方面的问题每次刘老师都不厌其烦地给我讲解;还有郭老师,以及实验室的其他老师还有我们班的很多同学也给了许多帮助,在此,对他们一并表示感谢。

最后,再次对老师和同学们致以衷心的感谢!是他们的关心和帮助,使我顺利地度过了四年的大学生活。

参 考 文 献

[1]单片机原理及应用 西安电子科技大学出版社 李建忠 2002.2

[2]机电专业毕业设计指南 机械工业出版社 张桂香 柯志敏 2005.1

[3]微型计算机控制技术 清华大学出版社 于海生 1999 [4]电子线路设计.实验.测验 华中科技大学出版社 谢自美 2002.。7

[5]现代控制与驱动技术 化学工业出版社 谢少荣 蒋秦罗均 林中华 2004.10

[6]单片机原理及应用实验教程 合肥工业大学出版社 王琼 2004.10

[7]PROTEL电路设计入门与应用 中国铁道出版社 韩晓东 2003.11 [8] PROTEL从入门到精通 西安电子科技大学出版社 吉雷

24

合肥工业大学2005届论文集

2000.10

[9] 《电子制作》1997年,第5期,第12页 蔡玉超

[10]单片机人机接口实例集,北京航空航天大学出版社 公茂法、马宝甫、孙晨 1999.4 [11] MCS单片机应用系统使用指南,机械工业出版社, 陈宝江,瞿湧 1997.7 [12] Visual Basic 6.0中文版实用参考手册,电子工业出版社 晶辰工作室 [13]电子技术基础模拟部分(第四版) 高等教育出版社 康华光、陈大钦

25

因篇幅问题不能全部显示,请点此查看更多更全内容

Top