自动饮料售货机课程设计报告.docx
《自动饮料售货机课程设计报告.docx》由会员分享,可在线阅读,更多相关《自动饮料售货机课程设计报告.docx(34页珍藏版)》请在冰豆网上搜索。
自动饮料售货机课程设计报告
学生:
专业班级:
指导教师:
工作单位:
题目:
自动售货饮料机控制电路的设计与实现
初始条件:
本设计既可以使用计数器、比较器、脉冲发生器等和必要的门电路等,也可以使用单片机系统构建。
用数码管、LED灯显示结果。
要求完成的主要任务:
(包括课程设计工作量及技术要求,以及说明书撰写等具体要求)
1、课程设计工作量:
1周。
2、技术要求:
1)售货机只接受5角和1元的硬币,可以用按钮代替硬币的投入。
投入硬币的总金额用两位数码管显示,最大投入金额为9.5元。
2)售货机可以自动出售3种饮料,售价分别是0.5元,1元和1.5元。
当顾客完成投币后,根据投入金额,各饮料对应的LED将亮起(如投入1元硬币,0.5元和1元饮料的LED亮起,表示可以购买0.5元或1元饮料)。
3)顾客根据自身需要按下各饮料对应的按钮,每按一次掉出一瓶饮料,两位数码管显示剩余金额,LED继续指示可购饮料的种类;
4)顾客按下“找零”按钮将使机器发出找零信号,两位数码管清零。
5)确定设计方案,按功能模块的划分选择元、器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。
3、查阅至少5篇参考文献。
按《理工大学课程设计工作规》要求撰写设计报告书。
全文用A4纸打印,图纸应符合绘图规。
时间安排:
1、2013年5月16日,布置课设具体实施计划与课程设计报告格式的要求说明。
2、2013年6月28日至2013年6月30日,方案选择和电路设计。
3、2013年7月1日至2013年7月3日,电路调试和设计说明书撰写。
4、2013年7月5日,上交课程设计成果及报告,同时进行答辩。
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
本文设计了一种以INTEL公司的AT89C52单片机为核心的自动饮料售货机装置的控制系统,详细介绍了自动饮料售货机控制系统的方案设计、硬件选择、软件规划和编写,并重点描述了自动饮料售货机控制系统的工作原理、系统设计、软件编程的原则和技巧。
该系统以单片机AT89C52芯片为核心,采用集中控制方式实现了对自动饮料售货机全过程的自动控制。
本系统选择6个独立键盘按键作为货币投入端,饮料选择端和清零端,实现了投币,饮料选择功能,用两个7段共阳极数码管显示货币数以及找零数,用三个LED灯显示可供选择的饮料。
此外,系统程序采用KeiluVision4软件进行程序的编写和编译,采用C语言编写程序,用Proteus7软件进行仿真,stcisp-v4.79软件和USB转串口线驱动软件下载程序。
总体来说,通过实物的安装调试,本次课程设计基本达到了设计指标要求,实现了投币,选择饮料,购买饮料,找零等功能。
关键词:
自动售货机,AT89C52单片机,C语言程序,数码管显示
ABSTRACT
Inthispaper,thedesignofthecontrolsystemofautomaticbeveragevendingmachineisbasedonINTELcompanyAT89C52microcontrollerasthecore.Itdetailedlydesctribesthebeveragevendingmachinesystemdesign,hardwareselection,softwareplanningandpreparation,andemphaticallydescribestheprincipleandskillworkprinciple,beveragevendingmachinesystemdesign,softwareprogramming.ThesystemisbasedonAT89C52chipasthecore,adoptsthecentralizedcontrolmethodtorealizetheautomaticcontrolofthewholeprocessofbeveragevendingmachine.Inthissystem,sixindependentkeyboardkeysaretakenasmonetaryinputend,beverageofchoiceandclearterminal,torealizethecoin,beverageofchoicefunction.TwoofsevencommonanodeLEDaretaketodisplaycurrencyandthenumberofchange.Besides,ThreeLEDlightsaretakentodisplayalternativebeverage.Inaddition,ThesoftwareofKeiluVision4istakentoprepareandcompileprocedures,usingClanguageprogram,ThesoftwareofProteusistakentosimulateinthesystem.Thesoftwareofstcisp-v4.79andUSBtoseriallinedriveraretakentodownloadprogramma.
Ingeneral,thedesignrequirementsaremetinthecurriculumdesigninrealizingthesefunctionsinthecoin,drinkschoose,drinksbuyandchange.
KeyWords:
AutomaticBeverageVendingMachine,AT89C52,CLanguage,DigitalTubeDisplay
1绪论.....................................................1
1.1设计背景..............................................................1
1.2应用前景..............................................................1
1.3设计的目的和意义......................................................1
2控制系统总体方案的概述...................................2
2.1自动售货机的工作时序..................................................2
2.2控制系统的硬件需求分析................................................2
2.3控制系统的软件需求分析...............................................3
3控制系统的硬件设计.......................................4
3.1中央控制元件AT89C52...................................................4
3.1.1AT89C52简介......................................................4
3.1.2主要特性..........................................................5
3.1.3管脚说明..........................................................5
3.1.4实验用模块........................................................7
3.2.投币模块和购买模块...................................................7
3.3可供购买模块..........................................................8
3.4显示模块..............................................................8
4控制系统的软件设计.......................................10
4.1编程语言与软件.......................................................10
4.2C语言程序...........................................................10
4.3程序执行流程.........................................................11
5整体电路设计.........................................12
5.1整体电路图.......................................................12
5.2整体工作及原理说明...............................................12
6实验仿真.............................................13
7实物调试.............................................14
7.1实物图..............................................................14
7.2实物调试结果........................................................15
8设计小结.............................................19
8.1实验结果............................................................19
8.2实验收获............................................................19
8.3实验体会............................................................19
参考文献...............................................21
附录1整体电路图.......................................22
附录2元器件清单.......................................23
附录3实验源代码.......................................24
附录4本科生课程设计成绩评定表.........................32
1绪论
1.1 设计背景
随着劳动密集型的产业构造向技术密集型社会转变,自动售货机日趋盛行,主要用于公共场合,且种类繁多。
一般的自动售货机由钱币装置、指示装置、贮藏售货装置等组成。
钱币装置是售货机的核心,其主要功能是确认投入钱币的真伪,分选钱币的种类,计算金额。
如果投入的金额达到购买物品的数值即发出售货信号,并找出余钱。
指示装置用以指示顾客所选商品的品种。
贮藏售货装置保存商品,接收出售指示信号,把顾客选择的商品送至付货口。
一般售货机的钱币装置由投币口、选别装置、确认钱币真伪的检查装置、计算金额的计算装置和找钱装置组成。
70年代以来,出现了采用微型计算机控制的各种新型自动售货机和利用信用卡代替钱币并与计算机连接的更大规模的无人售货系统,如无人自选商场、车站的自动售票和检票系统、银行的现金自动支付机等。
1.2 应用前景
现在,自动售货机产业正在走向信息化并进一步实现合理化。
例如实行联机方式,通过线路将自动售货机的库存信息及时地传送各营业点的电脑中,从而确保了商品的发送、补充和商品选定的顺利进行。
进入21世纪时,自动售货机将进一步向节省资源和能源以及高功能化的方向发展。
从自动售货机的发展趋势来看,大量生产,大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道,而相对的超市,百货购物中心等新的流通渠道的产生,人工费用也不断上升,在加上场地的局限性和购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器也就有了其相当可观的前景。
1.3 设计的目的和意义
本次课程设计是自动饮料售货机控制系统,可用于简单的自动饮料售货机。
本次设计采用手动按键控制,数码管显示,简单清晰,操作简洁,以AT89C52为核心,C语言编程,提高了系统的稳定性,保证了自动售货机能够长期稳定的运行。
2控制系统总体方案的概述
对自动售货机控制系统进行完整的功能需求分析,确定总体设计方案,是完成设计的前提。
这不仅有助于时间的合理规划和安排,而且可避免因盲目进行设计而达不到要求的情况。
2.1自动售货机的工作时序
自动售货机是智能化售货设备,只需顾客进行简单的操作选择,就能够方便快捷地购买到想要的商品,其工作时序图1所示。
图1自动售货机工作时序图
图1自动饮料售货机工作时序图
售货机的工作流程是:
(1)用户投币口送入货币--按按键,程序自动计数。
(2根据金额LED显示显示可供选选择的商品。
(3)顾客选择商品,程序计算余额。
(4)数码管显示余额。
(5)系统复零,完成售货。
2.2控制系统的硬件需求分析
控制系统要完成图1的各个环节,应具备货币识别、商品选择、缺货提醒、缺币提醒、硬币找零、准确出货、金额显示和语音提示等功能。
但是本次设计要求简单不要求货币识别、缺货提醒、缺币提醒和语音提示功能。
因此,硬件需要按键控制,LED显示,数码管显示和AT89C52核心芯片
2.3控制系统的软件需求分析
本此设计是在windows7系统下,
(1)系统程序采用Keil4软件进行程序的编写和编译,采用C语言编写程序,
(2)用Proteus软件进行仿真,
(3)stcisp-v4.79软件和USB转串口线驱动软件下载程序。
3控制系统的硬件设计
3.1中央控制元件AT89C52
本次设计中,中央控制元件采用MCS-51系列单片机中的AT89C52芯片,其引脚图如下图2所示.
图2AT89C52引脚图
3.1.1AT89C52简介
AT89C52是一个低电压,高性能CMOS8位单片机,片含8KB的可反复擦写的Flash只读程序存储器和256B的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
....
3.1.2主要特性
(1)兼容MCS51指令系统
(2)8k可反复擦写(>1000次)FlashROM
(3)32个双向I/O口
(4)256x8bit部RAM
(5)3个16位可编程定时/计数器中断
(6)时钟频率0-24MHz
(7)2个串行中断
(8)可编程UART串行通道
(9)2个外部中断源
(10)共6个中断源
(11)2个读写中断口线
(12)3级加密位
(13)低功耗空闲和掉电模式
(14)软件设置睡眠和唤醒功能
3.1.3管脚说明
1、VCC:
供电电压,一般接+5V电压
2、GND:
接地。
3、P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器或程序存储器。
它可以在总线分时转换地址(低8位)和数据总线复用,在访问期间激活部上拉电阻。
在FIASH编程时,P0口作为原码输入口,在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻
4、P1口:
P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。
P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
5、P2口:
P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
6、P3口:
P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
7、P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
8、ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
9、PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
10、EA/VPP:
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。
注意加密方式1时,EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
11、XTAL1:
反向振荡放大器的输入及部时钟工作电路的输入。
12、XTAL2:
来自反向振荡器的输出。
3.1.4实验用模块
本次实验用P2、P3的I/O口作为数码管显示模块控制输出端,P1的六个I/O口——P1.0、P1.1、P1.2、P1.3、P1.4和P1.6作为按键控制输入端,P0的三个I/O口——P0.2、PO.3和P0.4作为可供购买饮料控制输出端。
部时钟电路及复位端连接如下图:
图3时钟电路及复位端
3.2.投币模块和购买模块
投币系统是自动售货设计当中比较重要的一块,涉及到货币识别系统,对于识别货币器是如何设计、如何工作的,在这里将不做进一步的研究。
在本次设计中用P1.0和P1.1上的两个按键来代替投币0.5元与投币1元,投币时,按键按下,给P1.0/P1.1一个低电平,通过程序控制,实现加法计数。
P1.2、P1.3、P1.4口分别表示购买饮料A、B、C,购买时,按键按下,给P1.2/P1.3/P1.4一个低电平,通过程序控制,实现减法计数。
P1.7口表示清零,案件按下是,通过程序控制,实现清零。
具体代码将在后面介绍,投币模块和购买模块电路图连接如下:
图4投币模块和购买模块电路图
3.3可供购买模块
售货机可以自动出售3种饮料A、B、C,售价分别是0.5元,1元和1.5元。
当顾客完成投币后,根据投入金额,各饮料对应的LED将亮起,比如投入1元硬币,0.5元和1元饮料的LED亮起,1.5元的饮料的LED不亮,表示可以购买A或B元饮料,不可购买C饮料。
P0的三个I/O口——P0.2、PO.3和P0.4作为饮料A、B、C控制输出端,对的LED灯亮,表示可购买。
可供选择模块电路连接图如下:
图5可供选择模块电路图
3.4显示模块
显示模块用7段段共阳极数码管显示,分别接在P2和P3I/O口,A、B、C、D、E、F、G和dp分别接第7脚到第0脚。
公共短接+5V,为防止数码管被烧掉,须在数码管和I/O间接上1K的限流电阻。
通过程序控制分别给8个管脚送相应的高低电平,使之显示对应的数字。
数码管显示模块电路连接图如下:
图6数码管显示模块电路
4控制系统的软件设计
4.1编程语言与软件
C语言是编译型程序设计语言的一种,它兼顾了各种高级语言和汇编语言的特点。
使用C语言进行程序设计已经成为单片机软件开发的主流。
其有以下优点:
Ø不懂得单片机的指令集,也能编写完美的单片机程序;
Ø程序具有坚固性:
数据被破坏是导致程序运行异常的重要因素;
Ø提供常用的标准函数库,以供用户直接使用;
Ø有严格的语法检查,错误很少,可容易地在高级语言的水平上迅速地被排除。
因此,本设计使用被广泛应用的KeiluVision4语言编译器为开发环境,进行了单片机的C语言程序设计。
4.2C语言程序
综合考虑自动售货机的功能需求和硬件设计,软件程序的编写应该包括以下几个容:
独立键盘扫描函数KeyScan,数码管显示函数Display、非精确延时Delay函数和主程序main。
具体代码见附录3
4.3程序执行流程
在程序层次结构方面,当系统上电之后,应先对其进行相关初始化。
然后程序应当进入无限循环,再根据相应的触发条件进入相应的子程序,完成相应的状态下的工作。
由于系统在多个状