自动售货饮料机控制电路的设计与实现_第1页
自动售货饮料机控制电路的设计与实现_第2页
自动售货饮料机控制电路的设计与实现_第3页
自动售货饮料机控制电路的设计与实现_第4页
自动售货饮料机控制电路的设计与实现_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、目录摘要1Abstract21 控制系统总体方案的概述31.1自动售货机的工作时序31.2自动售货机系统的硬件分析41.3自动售货机系统的软件分析42控制系统的硬件设计52.1中央控制元件AT89C5252.1.1 AT89C52简介52.1.2主要特性62.1.3管脚说明62.1.4单片机时钟模块82.2. 按键投币与购买模块92.3 LED购买指示模块102.4数码管显示模块103单片机主控系统的程序设计123.1编程语言与编译环境123.2 主控程序设计123.2.1主要程序函数123.2.2程序执行流程124整体电路设计134.1整体电路图134.2整体工作与原理说明135实验仿真14

2、5.1Proteus简介145.2 模块电路仿真146实物调试177小结体会22参考文献23附录1整体电路图24附录2 元器件清单25附录3实验源代码2630 / 31摘 要本次数字电路课程设计搭建一种以AT89C52单片机为核心的自动饮料售货机装置的控制系统,主要介绍了系统的方案设计、硬件选择、软件规划和编写,并重点描述了自动饮料售货机控制系统的工作原理、系统设计、软件编程的原则和技巧。该系统以单片机AT89C52芯片为核心,采用集中控制方式实现了对自动饮料售货机全过程的自动控制。本系统选择6个独立键盘按键作为货币投入端,饮料选择端和清零端,实现了投币,饮料选择功能,用两个7段共阳极数码管显

3、示货币数以与找零数,用三个LED灯显示可供选择的饮料。此外,系统程序采用Keil uVision 4软件进行程序的编写和编译,采用C语言编写程序,用Proteus7软件进行仿真,stcisp-v4.79软件和USB转串口线驱动软件下载程序。总体来说,通过实物的安装调试,本次课程设计基本达到了设计指标要求,实现了投币,选择饮料,购买饮料,找零等功能。达到了课程设计的目标。关键词:自动售货机,AT89C52单片机,C语言程序,数码管显示AbstractIn this paper, the design of the control system of automatic beverage vend

4、ing machine is based on INTEL company AT89C52 microcontroller as the core . It detailedly desctribes the beverage vending machine system design, hardware selection, software planning and preparation, and emphatically describes the principle and skill work principle, beverage vending machine system d

5、esign, software programming. The system is based on AT89C52 chip as the core, adopts the centralized control method to realize the automatic control of the whole process of beverage vending machine . In this system , six independent keyboard keys are taken as monetary input end, beverage of choice a

6、nd clear terminal, to realize the coin, beverage of choice function .Two of sevencommon anode LED are take to display currency and the number of change . Besides , Three LED lights are taken to display alternative beverage . In addition, The software of Keil uVision 4is taken to prepare and compile

7、procedures, using C language program , The software of Proteus is taken to simulate in the system . The software of stcisp-v4.79 and USB to serial line driverare taken to download programma . In general , the design requirements are met in the curriculum design in realizing these functions in the co

8、in , drinks choose, drinks buy and change Key Words : Automatic Beverage Vending Machine , AT89C52 ,C Language , Digital Tube Display1 控制系统总体方案的概述系统以单片机AT89C52芯片为核心,采用集中控制方式实现了对自动饮料售货机全过程的自动控制。本系统选择6个独立键盘按键作为货币投入端,饮料选择端和清零端,实现了投币,饮料选择功能,用两个7段共阳极数码管显示货币数以与找零数,用三个LED灯显示可供选择的饮料。1.1自动售货机的工作时序自动售货机的工作时序图

9、1所示。投入硬币系统自动计数选择饮料送出选定饮料取出商品送出余币取出余币图1-1-1 自动饮料售货机工作时序图自动售货机的工作流程是:(1)当用户投币口送入货,即在本电路中就是按下按键,程序自动计数。(2根据金额LED显示显示可供选选择的商品。(3)顾客选择商品,程序计算余额。(4)数码管显示余额。(5)系统复零,完成售货。(6)系统复零,完成售货。自动售货机的硬件原理构成如下图1-1-2所示LED灯组模块(指示可买饮料)独立按键模块(选择饮料与找零)数码管显示模块(显示金额)51单片机(主控系统)图1-1-2 自动售货机硬件模块组成1.2自动售货机系统的硬件分析控制系统要完成图1的各个环节,

10、应具备货币识别、商品选择、硬币找零、金额显示等功能。因此,硬件需要按键控制,LED显示,数码管显示和AT89C52核心芯片1.3自动售货机系统的软件分析(1)操作系统:Windows 7 Ultimate;(2)用Keil uVision4软件进行程序的编写和编译,采用C语言编写程序;(3)用Proteus软件进行仿真;(4)stcisp-v4.79软件和USB转串口线驱动软件下载程序。2控制系统的硬件设计2.1中央控制元件AT89C52本次设计中,中央控制元件采用MCS-51系列单片机中的AT89C52芯片,其引脚图如下图2所示.图2-1-1 AT89C52引脚图2.1.1 AT89C52简

11、介AT89C52是一个低电压,高性能CMOS 8位单片机,片含8KB的可反复擦写的Flash只读程序存储器和256B的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央 处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在

12、一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。 AT89C52有PDIP、PQFP/TQFP与PLCC等三种封装形式,以适应不同产品的需求。2.1.2主要特性(1) 兼容MCS51指令系统 (2)8k可反复擦写(>1000次)Flash ROM (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) 软件设置

13、睡眠和唤醒功能 2.1.3管脚说明 1、VCC:供电电压,一般接+5V电压 2、GND:接地。 3、P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器或程序存储器。它可以在总线分时转换地址(低8 位)和数据总线复用,在访问期间激活部上拉电阻。在FLASH编程时,P0 口作为原码输入口,在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻 4、P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。P1口管脚写入1后

14、,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 5、P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。P2口在FLASH编程和校验时

15、接收高八位地址信号和控制信号。 6、P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(TLL)这是由于上拉的缘故。 7、P3口也可作为AT89C51的一些特殊功能口,如下所示: 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(外部数据存储器读选

16、通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 8、ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。9、PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。 10、EA/VPP:当EA保持低电平时,则在此期间

17、外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。注意加密方式1时,EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 11、XTAL1:反向振荡放大器的输入与部时钟工作电路的输入。 12、 XTAL2:来自反向振荡器的输出。2.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作为可供购买饮料控制输出端。部时钟电路与复位端连

18、接如下图:图2-1-2 单片机部时钟电路与复位端2.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端口表示找零按键,但按键按下时,通过单片机部程序控制,实现数码管清零,就是相当于找零。投币模块和

19、购买模块电路图连接如下:图2-2-1 投币模块和购买模块电路图2.3 LED购买指示模块售货机可以自动出售3种饮料A、B、C,售价分别是0.5元,1元和1.5元。当顾客完成投币后,根据投入金额,各饮料对应的LED将亮起,比如投入1元硬币,0.5元和1元饮料的LED亮起,1.5元的饮料的LED不亮,表示可以购买A或B元饮料,不可购买C饮料。P0的三个I/O口P3.5、P3.6和P3.7端口作为饮料A、B、C控制输出端,对的LED灯亮,表示可购买。可供选择模块电路连接图如下:图5 LED购买指示模块电路图2.4数码管显示模块第一个按键投币与购买模块的功能必须由数码管显示模块方能体现出来。显示模块用

20、7段段共阳极数码管显示,分别接在P0和P2的I/O口,A、B、C、D、E、F、G和dp分别接第7脚到第0脚。公共短接+5V,为防止数码管被烧掉,须在数码管和I/O间接上1K的限流电阻。通过程序控制分别给8个管脚送相应的高低电平,使之显示对应的数字。数码管显示模块电路连接图如下:图2-4-1 数码管显示模块电路上述电路在仿真时数码管不会发光,故修改电路增加两块译码器74LS47来驱动数码管,其实际电路如下图所示:图2-4-2 数码管显示模块电路3单片机主控系统的程序设计3.1编程语言与编译环境编程语言为C语言,编程软件是Keil uVision4。3.2 主控程序设计3.2.1主要程序函数综合考

21、虑自动售货机的功能需求和硬件设计,软件程序的编写应该包括以下几个容:独立键盘扫描函数insert(),数码管显示函数display()、非精确延时delay()函数和主程序main()。具体代码见附录33.2.2程序执行流程在程序层次结构方面,当系统上电之后,应先对其进行相关初始化。然后程序应当进入无限循环,再根据相应的触发条件进入相应的子程序,完成相应的状态下的工作。由于系统在多个状态间跳转切换构实现。整个流程图如图7所示。图3-2-1 程序设计整体流程图4整体电路设计4.1整体电路图图4-1-1 整体电路设计4.2整体工作与原理说明电源供电后,手动控制按键投币,饮料选择等,按下按键等于给相

22、应的I/O口一个低电平,在通过单片机部的程序控制,AT89C52芯片给相应的I/O口高低电平,实现LED灯的亮灭表示是否可选择饮料以与数码管金额显示等课设要求的功能。5实验仿真5.1Proteus简介Proteus嵌入式系统仿真与开发平台是英国Labcenter公司开发的,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台。它是一种可视化的支持多种型号单片机(如51、PIC、AVR、Motorola hcll等),并且支持与当前流行的单片机开发环境(Keil、MPLAB、IAR)连接调试的软硬件仿真系统。Proteus除了具有和其他EDA工具一样的原理图、PCB自动或人工布线与电路仿真功能外

23、,针对微控制系统与外设的混合电路的电路仿真、软件仿真、系统协同仿真也做到了一体化和互动效果,是目前电子设计爱好者广泛使用的电子线路设计与仿真软件Proteus和Multisim功能的联合和进一步发展。5.2 模块电路仿真1点击Proteus仿真开始键,显示界面如下图所示:图5-2-1 自动售货机待机状态2.按下“一块”按键,即相当于投入一块钱硬币,仿真界面如下图所示:图5-2-2 投币一元的电路状态3.按下“A”按键,即相当于购买一瓶五毛钱的饮料,仿真界面如下图所示:图5-2-3 购买五毛饮料后的电路状态4.按下“RST”按键,即相当于购买完饮料后按下找零键,仿真界面如下图所示:图5-2-4

24、按下找零键后的电路状态仿真结果分析:从上述四个仿真状态来看,该电路基本符合设计需求。可以进行下一步实物焊接。6实物调试1.总机实物,如下图所示:图6-1 自动售货机总机实物该实物图由两部分组成,显示、手动模块和核心控制模块,由于时间和资源限制,该系统核心控制模块采用之前用于学习用途的MCS51系列单片机的核心板(即所示图片中上半部分电路板);而显示、手动模块由按键、LED灯和7段数码管手工焊接组成(即所示电路中下半部分电路板)。2.接通电源后,总机的待机状态如下图所示:图6-2 待机状态图3.投币五毛,即按下第一个按键,总机状态如下图所示:图6-3 投币五毛状态图 如图所示,当按下代表五毛的按

25、键后,数码管显示0.5,并且代表五毛价位饮料的LED-A灯亮起,表示可以购买。4.再按下第二个按键,即相当于再投入一块,总机状态如下图所示:图6-4 投币一块五的状态图 如图所示,当再投入一块银币后,数码管显示1.5,并且LED-A,B,C灯全亮表示三种饮料都可以购买。5.按下第三个按键,即相当于购买一瓶五毛的饮料,此时数码管显示1.0,并且LED-C灯熄灭,表示可购买的饮料只有两种。实物状态图如下图所示:图6-5 购买五毛的饮料后的总机状态6.检测最大输入金额,连续按下第一个或第二个按键,直到数码管显示9.5,再按下第一个或第二个按键,发现数码管仍旧只显示9.5,符合设计。按下最后一个按键后

26、,数码管归零,并且三个LED灯全熄灭,表示无法购买。图6-6 最大投入金额测试图6-7 清零状态实验结果分析:由仿真和实物测试可知,实验仿真成功,实物制作成功,可实现功能投币计数、显示可供选择的饮料、购买、显示余额以与清零等功能,达到了课程设计最初所定下的的技术要求。综上所述,本次课程设计基本成功。7小结体会通过本次数字电子线路课程设计,我有了以下几个方面的收获:1、 本次课程设计所设计的自动售卖机主控系统是由单片机架构出来的,由于本人之前从未接触过单片机,所以本次课设让我初次接触了解并且学会实际运用51单片机。本次设计采用两个7段共阳极数码管显示,实验过程中,复习了有关数码管的知识,比如引脚

27、图,还有编码知识。2、 由于主控程序采用C语言编程,让我回顾了大一学的C语言编程方法与原则,以与如何通过程序对单片机进行控制,进而控制显示电路。3、同时在本次课程设计过程中,我学会多个软件的联合使用。比如,用Keil4编程,其生成的hex文件可用于proteus仿真,还可以通过单片机程序烧录软件下载到单片机芯片实现电路控制。4、由于外设电路都是有自己设计并且焊接搭建起来的,所以增强了焊接技巧。并且在初次搭建外设电路时,我是将两位数码管接保护电阻后在接在单片机的两组I/O上,当时我没有进行仿真就进行硬件的焊接,结果焊接出来,数码管不亮。接着我分析,可能是由于本来I/O口驱动电流就小,再加上保护电

28、阻,所以电流更加小,而无法驱动数码管。所以我又将16个电阻全部短接掉,但仍旧不亮。后来没有办法,只能使用单片机核心板上的数码管。5、通过本次课程设计,强化了课程设计的流程,并且更加锻炼了写课程设计报告的能力。参考文献1电子技术基础课程设计,梅生等编著,高等教育,1998年。2电子线路设计·实验·测试第三版,自美主编,华中科技大学,2006年8月。3新型集成电路的应用电子技术基础课程设计,梁宗善主编,华中科技大学,1999年4月。4单片机原理与接口技术,余锡存、编,电子科技大学,2000年7月5MCS-51系列单片机系统与其应用蔡美琴,为民等编,高等教育2004年1月。6 P

29、roteus教程M,朱清慧、凤蕊、翟天嵩编,清华大学,2008 年9月附录1整体电路图附录2 元器件清单序号名称规格数量1电阻1K/0.25W16个2电阻10k/0.25W3个3电阻5.1k/0.25W3个4四脚按键6个7LED灯3个87段共阳极数码管2个9单片机 AT89C52核心板1块11杜邦线若干12排针 2排13数据下载与电源线1根附录3实验源代码#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar code dot=0x40,0x79,0x24,0x30, 0x19,0x12,

30、0x02,0x78,0x00,0x10;uchar code udot=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 ;sbit five=P10; /定义P10端口为五角sbit one=P11; /定义P11端口为一块sbit rst=P12; /定义P12端口为找零sbit first=P13; /定义P13端口为五角的饮料sbit second=P14; /定义P14端口为一块的饮料sbit third=P15; /定义P15端口为一块五的饮料sbit led1=P35; /代表五角的饮料sbit led2=P36; /代表一块的饮料sbit led3=P37; /代表一块五的饮料uint num=0;void delay(uchar k);void led();void display(

温馨提示

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

评论

0/150

提交评论