您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 自动售货机——单片机——程序-PROTUES仿真
兰州理工大学信号检测与处理课程设计设计题目自动售货机控制器的设计学院电气工程与信息工程学院专业班级10级自动化5班学号10220526姓名指导教师刘仲明时间2013年春学期2目录第一章绪论…………………………………………………………………………21.1设计任务和要求…………………………………………………………………21.1.1设计任务…………………………………………………………………21.1.2设计要求…………………………………………………………………21.2工作原理…………………………………………………………………………21.3设计思路和功能…………………………………………………………………2第二章方案论证……………………………………………………………………42.1方案设计………………………………………………………………………42.2.1方案1……………………………………………………………………42.1.2方案2………………………………………………………………………42.1.3方案3………………………………………………………………………52.2方案比较…………………………………………………………………………5第三章硬件设计……………………………………………………………………73.1设计思路…………………………………………………………………………73.2硬件设计方案……………………………………………………………………83.3硬件设计概要……………………………………………………………………83.3.1货币投入和选择货物……………………………………………………83.3.2显示部分…………………………………………………………………103.3.3货物输出与退币部分……………………………………………………11第四章软件设计…………………………………………………………………124.1整体设计思路…………………………………………………………………124.2系统流程图……………………………………………………………………124.3软件程序………………………………………………………………………144.4软件仿真与调试………………………………………………………………204.4.1Proteus简介…………………………………………………………204.4.2仿真结果………………………………………………………………20第五章设计总结……………………………………………………………………2635.1调试结果……………………………………………………………………265.2调试问题……………………………………………………………………26总结…………………………………………………………………………………27参考文献……………………………………………………………………………284摘要自动售货机是劳动密集型的产业构造向技术密集型社会转变的产物。本文设计了一种以AT89C51单片机为核心的自动售货机装置的控制系统。详细介绍了自动售货机系统的方案论证、硬件设计、软件设计和结果仿真,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的原则和技巧。该系统以单片机AT89C51芯片为核心,采用集中控制方式实现了对自动售货机全过程的自动控制。本系统选择独立按键模拟货物选择端,选择LED和继电器模拟货物输出,实现了货物的掉出以及货币数的显示功能。此外,系统程序采用keil软件进行程序的编写和编译,该软件具有编程简单、查错方便、阅读容易等特点。汇编语言是程序的基本语言,具有容易理解,便于记忆和使用等特点。关键词:自动售货机控制系统89C51单片机第一章绪论5随着科技的发展及人们生活水平的提高,自动售货机市场的发展越来越呈现出多元化及个性化的需求。通过自动售货机进行自助购物正逐渐成为市民的一种新的消费时尚,快捷方便的购物方式满足了人们在当今科技高速发展的现代社会追求高品质生活的需要。自动售货机已经成为城市各角落的一道亮丽风景线,其必将在国内普及,并成为城市现代文明程度的一种象征性标志。本文详细介绍了自动售货机系统的方案论证、硬件设计、软件设计和结果仿真,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的原则和技巧。共分为五章,系统介绍了自动售货机系统从控制方案,操作逻辑到系统软件等各个环节的设计及系统调试的方法和原则。1.1设计任务和要求1.1.1设计任务自动售货机控制器的设计1.1.2设计要求用MCS—51系列单片机设计一种简易的售货机,只识别1元和5元硬币(5元硬币可以在服务台用纸币兑换),不识别纸币。基本要求:1)啤酒每罐3元,可乐每罐5元。投入金额等于或超过定价时,相应的营业灯亮,同时用LED显示投入金额。营业灯亮,按相应按钮,即可取货。2)选择啤酒或可乐后,找钱金额进行显示3s。3)投入金额均为硬币,以1元和5元为单位。售货机按照币值进行计数。1.2工作原理1)从投币口送入货币,然后通过传感器采集数据、识别器判断货币的面值。2)识别器把信息数据传给单片机。3)单片机通过八位动态数码管显示投入金额,投入金额等于或超过定时,相应的营业灯亮。4)按相应按钮,售货机自动把商品送出,等待顾客取走。5)显示余额,顾客可以选择找币或者继续买商品亦可继续投币如果选择找币,系统会自动延时将硬币退出。6)系统复零,完成售货。1.3设计思路和功能1)采用单片机MSC-51系列作为中央控制元件;2)用P3.4和P3.5作为识别货币输入端;3)P1作为货物选择选择端;4)P2.7和P2.6分别作为8255A的片选输入端。67第二章方案论证根据设计要求,该系统由以下四个部分组成,分别是预设硬币投入、金额累计、可售指示和退币系统。经我们小组多次讨论,总结,从多个方案选择最佳的方案进行设计。2.1方案设计2.1.1方案1此方案中,自动售货机系统以FPGA器件作为处理和控制核心,能完成货物的信息存储,进程控制,硬币处理,余额计算,显示等功能。系统根据用户输入的货币,判断钱币是否足够,足够则售货,不够则提示并退出。系统自动的计算出应找钱币余额、库存数量并显示。系统按功能分为:分频模块、控制模块、译码模块、译码显示模块。方案1的系统组成方框图:2.1.2方案2基于PLC的方案设计,自动售货机控制系统设计主要有三个功能模块,一个为售货机输入模块:该模块能完成货物信息的存储,硬币处理,余额计算。一个为中央处理模块:功能主要是硬件实验板上让两路信号同时在两个7段数码管上显示出来。另一个为输出控制模块:该模块主要是控制输出信号来控制阀门打开与找钱,并且控制阀门的打开时间。时钟分频器RAM译码按键数据控制器显示8方案2的系统组成框图2.1.3方案3:基于单片机的自动售货机设计,选择AT89C51单片机在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和I/O口等基本功能部件。各功能部件由内部总线连接在一起。89C51基本结构见图3-6所示。图3-689C51单片机基本结构图CPU是单片机的核心部件,由运算器和控制器等部件组成。运算器的功能主要是进行算术运算和逻辑运算。由8位ALU单元,两个8位的暂存器,8位的累加器ACC、B寄存器,程序状态寄存器PSW等组成。控制器用于控制单片机各部分的运行,由程序计数器PC,指令寄存器、译码器及定时控制逻辑和数据指针DPTR组成。2.2方案比较方案1功能模块较多,且每个功能模块下还包括几个程序模块,设计起来,投币退币PLC各种指示灯退币电动机出货继电器货物选择输出显示9程序输入必然很多很繁琐,当然涉及到的问题就较多,较复杂,而且对clk的分频也有多次,这不太利于功能和时序仿真,也不太利于最后在硬件实验板上进行模拟实验。方案2设计程序简单,操作简单,但其PLC价格太高,并维护费用高,过程复杂,输入输出电压过高,在人口活动较高的地方,售后机的显示,输出都是小功率,不适合使用,不经济。方案3功能模块较少,但是功能实现都一样,这就减少了程序的繁冗,最后电路图显得就更加简短明了,越少的中间环节,实际操作起来肯定相对要容易一些。另外单片机的工作电压低,价格便宜,运行可靠,经济,维护费用不高。所以最后选择方案,最终考虑使用AT89C51单片机。10第三章硬件设计3.1设计思路自动售货机是集光、机、电一体化的独立结构,它只需要顾客投币和按购物键选择即可自动售货及退找零钱,其工作程序如下图3-1图3-1自动售货机工作时序图售货机的工作原理是:1)从投币口送入货币,然后通过传感器采集数据、识别器判断货币的面值。2)识别器把信息数据传给单片机。3)单片机通过八位动态数码管显示投入金额,投入金额等于或超过定时,相应的营业灯亮。4)按相应按钮,售货机自动把商品送出,等待顾客取走。5)显示余额,顾客可以选择找币或者继续买商品亦可继续投币如果选择找币,系统会自动延时将硬币退出。6)系统复零,完成售货。由于系统的局限性,本次设计有按钮来代替货币的投入动作,分别有1元和5元两种投币金额,使用89C51为系统的核心,完成投币、装货、金额计算、清顾客取出余币机器将余币送出顾客投入货币顾客按动按钮顾客取出商品机器自动计数机器送出选定商品11零等操作,使用8位共阴极LED显示器来显示投入金额。3.2硬件设计方案系统的硬件部分主要包括货币投入、选择货物、显示、货物输出、退币以及主机,系统的结构框图如图3-2图3-2系统结构框图3.3硬件设计概要系统的硬件电路主要包括投币输入、选择货物、货物输出、退币、显示以及主机这几个重要组成部分。主机:核心是89C51,晶振频率为12MHz。投币输入:投币的币值主要有1元和5元两种,在本次设计中由按钮来实现两种投币动作,每按一下代表投一次,之后通过89C51处理再显示在LED上。退币和货物输出:由89C51输出链接继电器来实现。3.3.1货币投入和选择货物1)在本次设计中由于条件所限货币的投入由键盘来实现,货物的选择同样由按键盘实现。2)键盘是由若干按键组成的开关矩阵,它是微型计算机最常用的输入设备,用户可以通过键盘向计算机输入指令、地址和数据。一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统。3)按键开关的抖动问题4)组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的。在下图中,当开货币投入CPU89C51货币显示货物输出退币显示货物选择退币12图1图2关S未被按下时,P1。0输入为高电平,S闭合后,P1。0输入为低电平。由于按键是机械触点,当机械触点断开、闭合时,会有抖动动,P1。0输入端的波形如图2所示。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全可以感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。前面我们讲到中断时曾有个问题,就是说按键有时灵,有时不灵,其实就是这个原因,你只按了一次按键,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。为使CPU能正确地读出P1口的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,常用的去抖动的方法有两种:硬件方法和软件方法。单片机中常用软件法,因此,对于硬件方法我们不介绍。软件法其实很简单,就是在单片机获得P1。0口为低的信息后,不是立即认定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P1。0口,如果仍为低,说明S1的确按下了,这实际上是避开了按键按下时的抖动时间。而在检测到按键释放后(P1。0为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。不过一般情况下,我们通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。当然,实际应用中,对按键的要求也是千差万别,要根据不同的需要来编制处理程序,但以上是消除键抖动的原则。键盘与单片机的连接图3图4通过1/0口连接。将每个按键的一端接到单片机的I/O口,另一端接地,这是最简单的方法,如图
本文标题:自动售货机——单片机——程序-PROTUES仿真
链接地址:https://www.777doc.com/doc-5631053 .html