自动售货机控制器的设计 (2).doc
《自动售货机控制器的设计 (2).doc》由会员分享,可在线阅读,更多相关《自动售货机控制器的设计 (2).doc(29页珍藏版)》请在沃文网上搜索。
1、目录第一章 绪论21.1设计任务和要求21.1.1设计任务21.1.2设计要求21.2工作原理21.3设计思路和功能2第二章 方案论证42.1 方案设计42.2.1方案142.1.2方案242.1.3方案352.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.1 Proteus简介204.4.2 仿真结果20第五章 设计总结265.1调试结果
2、265.2调试问题26总结 27参考文献 28摘 要 自动售货机是劳动密集型的产业构造向技术密集型社会转变的产物。本文设计了一种以AT89C51单片机为核心的自动售货机装置的控制系统。详细介绍了自动售货机系统的方案论证、硬件设计、软件设计和结果仿真,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的原则和技巧。该系统以单片机AT89C51芯片为核心,采用集中控制方式实现了对自动售货机全过程的自动控制。本系统选择独立按键模拟货物选择端,选择LED和继电器模拟货物输出,实现了货物的掉出以及货币数的显示功能。此外,系统程序采用keil软件进行程序的编写和编译,该软件具有编程简单、查错方便、阅
3、读容易等特点。汇编语言是程序的基本语言,具有容易理解,便于记忆和使用等特点。 关键词:自动售货机 控制系统 89C51单片机第一章 绪 论 随着科技的发展及人们生活水平的提高,自动售货机市场的发展越来越呈现出多元化及个性化的需求。通过自动售货机进行自助购物正逐渐成为市民的一种新的消费时尚,快捷方便的购物方式满足了人们在当今科技高速发展的现代社会追求高品质生活的需要。自动售货机已经成为城市各角落的一道亮丽风景线,其必将在国内普及,并成为城市现代文明程度的一种象征性标志。本文详细介绍了自动售货机系统的方案论证、硬件设计、软件设计和结果仿真,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的
4、原则和技巧。共分为五章,系统介绍了自动售货机系统从控制方案,操作逻辑到系统软件等各个环节的设计及系统调试的方法和原则。1.1设计任务和要求1.1.1 设计任务自动售货机控制器的设计1.1.2设计要求用MCS51系列单片机设计一种简易的售货机,只识别1元和5元硬币(5元硬币可以在服务台用纸币兑换),不识别纸币。基本要求:1) 啤酒每罐3元,可乐每罐5元。投入金额等于或超过定价时,相应的营业灯亮,同时用LED显示投入金额。营业灯亮,按相应按钮,即可取货。2) 选择啤酒或可乐后,找钱金额进行显示3s。3) 投入金额均为硬币,以1元和5元为单位。售货机按照币值进行计数。 1.2 工作原理 1)从投币口
5、送入货币,然后通过传感器采集数据、识别器判断货币的面值。 2)识别器把信息数据传给单片机。 3)单片机通过八位动态数码管显示投入金额,投入金额等于或超过定时,相应的营业灯亮。 4)按相应按钮,售货机自动把商品送出,等待顾客取走。 5)显示余额,顾客可以选择找币或者继续买商品亦可继续投币如果选择找币,系统会自动延时将硬币退出。 6)系统复零,完成售货。1.3设计思路和功能1)采用单片机MSC-51系列作为中央控制元件;2)用P3.4和P3.5作为识别货币输入端;3)P1作为货物选择选择端;4)P2.7和P2.6分别作为8255A的片选输入端。第二章 方案论证根据设计要求,该系统由以下四个部分组成
6、,分别是预设硬币投入、金额累计、可售指示和退币系统。经我们小组多次讨论,总结,从多个方案选择最佳的方案进行设计。2.1 方案设计2.1.1方案1 此方案中,自动售货机系统以FPGA器件作为处理和控制核心,能完成货物的信息存储,进程控制,硬币处理,余额计算,显示等功能。系统根据用户输入的货币,判断钱币是否足够,足够则售货,不够则提示并退出。系统自动的计算出应找钱币余额、库存数量并显示。系统按功能分为:分频模块、控制模块、译码模块、译码显示模块。时钟分频器RAM译码按键数据控制器显示方案1的系统组成方框图:2.1.2方案2基于PLC的方案设计,自动售货机控制系统设计主要有三个功能模块,一个为售货机
7、输入模块:该模块能完成货物信息的存储,硬币处理,余额计算。一个为中央处理模块:功能主要是硬件实验板上让两路信号同时在两个7段数码管上显示出来。另一个为输出控制模块:该模块主要是控制输出信号来控制阀门打开与找钱,并且控制阀门的打开时间。投币退币PLC各种指示灯退币电动机出货继电器货物选择输出显示方案2的系统组成框图2.1.3 方案3:基于单片机的自动售货机设计,选择AT89C51单片机在一块芯片中集成了CPU、RAM、 ROM、定时器/计数器和I/O口等基本功能部件。各功能部件由内部总线连接在一起。89C51基本结构见图3-6所示。图3-6 89C51单片机基本结构图CPU是单片机的核心部件,由
8、运算器和控制器等部件组成。运算器的功能主要是进行算术运算和逻辑运算。由8位ALU单元,两个8位的暂存器,8位的累加器ACC、B寄存器,程序状态寄存器PSW等组成。控制器用于控制单片机各部分的运行,由程序计数器PC,指令寄存器、译码器及定时控制逻辑和数据指针DPTR组成。2.2 方案比较 方案1功能模块较多,且每个功能模块下还包括几个程序模块,设计起来,程序输入必然很多很繁琐,当然涉及到的问题就较多,较复杂,而且对clk的分频也有多次,这不太利于功能和时序仿真,也不太利于最后在硬件实验板上进行模拟实验。 方案2设计程序简单,操作简单,但其价格太高,并维护费用高,过程复杂,输入输出电压过高,在人口
9、活动较高的地方,售后机的显示,输出都是小功率,不适合使用,不经济。方案3功能模块较少,但是功能实现都一样,这就减少了程序的繁冗,最后电路图显得就更加简短明了,越少的中间环节,实际操作起来肯定相对要容易一些。另外单片机的工作电压低,价格便宜,运行可靠,经济,维护费用不高。所以最后选择方案,最终考虑使用AT89C51单片机。 第三章 硬件设计3.1设计思路自动售货机是集光、机、电一体化的独立结构,它只需要顾客投币和按购物键选择即可自动售货及退找零钱,其工作程序如下图3-1顾客取出余币机器将余币送出顾客投入货币顾客按动按钮顾客取出商品机器自动计数机器送出选定商品 图3-1 自动售货机工作时序图售货机
10、的工作原理是: 1)从投币口送入货币,然后通过传感器采集数据、识别器判断货币的面值。 2)识别器把信息数据传给单片机。 3)单片机通过八位动态数码管显示投入金额,投入金额等于或超过定时,相应的营业灯亮。 4)按相应按钮,售货机自动把商品送出,等待顾客取走。 5)显示余额,顾客可以选择找币或者继续买商品亦可继续投币如果选择找币,系统会自动延时将硬币退出。 6)系统复零,完成售货。由于系统的局限性,本次设计有按钮来代替货币的投入动作,分别有1元和5元两种投币金额,使用89C51为系统的核心,完成投币、装货、金额计算、清零等操作,使用8位共阴极LED显示器来显示投入金额。3.2 硬件设计方案系统的硬
11、件部分主要包括货币投入、选择货物、显示、货物输出、退币以及主机,系统的结构框图如图3-2货币投入89C51货币显示货物输出退币显示货物选择 退币 图3-2 系统结构框图3.3 硬件设计概要系统的硬件电路主要包括投币输入、选择货物、货物输出、退币、显示以及主机这几个重要组成部分。主机:核心是89C51,晶振频率为12MHz。投币输入:投币的币值主要有1元和5元两种,在本次设计中由按钮来实现两种投币动作,每按一下代表投一次,之后通过89C51处理再显示在LED上。退币和货物输出:由89C51输出链接继电器来实现。3.3.1货币投入和选择货物1) 在本次设计中由于条件所限货币的投入由键盘来实现,货物
12、的选择同样由按键盘实现。2) 键盘是由若干按键组成的开关矩阵,它是微型计算机最常用的输入设备,用户可以通过键盘向计算机输入指令、地址和数据。一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统。3) 按键开关的抖动问题 4) 组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的。在下图中,当开图1 图2关S未被按下时,P1。0输入为高电平,S闭合后,P1。0输入为低电平。由于按键是机械触点,当机械触点断开、闭合时,会有抖动动,P1。0输入端的波形如图2所示。这种抖动对于人来说是感觉不到的,但对计
13、算机来说,则是完全可以感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。前面我们讲到中断时曾有个问题,就是说按键有时灵,有时不灵,其实就是这个原因,你只按了一次按键,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。为使CPU能正确地读出P1口的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,常用的去抖动的方法有两种:硬件方法和软件方法。单片机中常用软件法,因此,对于硬件方法我们不介绍。软件法其实很简单,就是在单片机获得P1。0口为低的信息后,不是立即认
14、定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P1。0口,如果仍为低,说明S1的确按下了,这实际上是避开了按键按下时的抖动时间。而在检测到按键释放后(P1。0为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。不过一般情况下,我们通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。当然,实际应用中,对按键的要求也是千差万别,要根据不同的需要来编制处理程序,但以上是消除键抖动的原则。键盘与单片机的连接 图3图4通过1/0口连接。将每个按键的一端接到单片机的I/O口,另一端接地,这是最简单的方法,如图3所示是实验板上按键的接法,四个按键分别接到P3.2 、P3.3、P
15、3.4和P3.5。对于这种键各程序可以采用不断查询的方法,功能就是:检测是否有键闭合,如有键闭合,则去除键抖动,判断键号并转入相应的键处理。2、 采用中断方式:如图4所示。各个按键都接到一个与非上,当有任何一个按键按下时,都会使与门输出为低电平,从而引起单片机的中断,它的好处是不用在主程序中不断地循环查询,如果有键按下,单片机再去做相应的处理。3、 K1模拟一块硬币输入,K2模拟五块硬币输入,K3模拟可乐输出,K4模拟啤酒输出,K5模拟退币。3.3.2显示部分在单片机系统中,通常用 LED 数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。
16、八段 LED 显示器由 8 个发光二极管组成。基中 7 个长条形的发光管排列成“日” 字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED 显示器有两种不同的形式:一种是 8个发光二极管的阳极都连在一起的,称之为共阳极 LED 显示器;另一种是 8 个发光二极管的阴极都连在一起的,称之为共阴极 LED 显示器。如下图所示。共阴和共阳结构的 LED 显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8 个笔划段 h g f e d c b a 对应于一个字节(8 位)的 D7 D6 D5 D4
17、D3 D2 D1 D0, 于是用 8 位二进制码就可以表示欲显示字符的字形代码。例如,对于共阴 LED 显示器,当公共阴极接地(为零电平),而阳极 h g f e d c b a 各段为 0111011 时,显示器显示P字符,即对于共阴极 LED 显示器,“P ” 字符的字形码是 73H。如果是共阳 LED 显示器,公共阳极接高电平,显示“P ” 字符的字形代码应为 10001100(8CH)。在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的 I/O 接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动售货机控制器的设计 2 自动 售货 控制器 设计
