(本科毕业论文设计)基于单片机的自动售货机的系统设计_第1页
(本科毕业论文设计)基于单片机的自动售货机的系统设计_第2页
(本科毕业论文设计)基于单片机的自动售货机的系统设计_第3页
(本科毕业论文设计)基于单片机的自动售货机的系统设计_第4页
(本科毕业论文设计)基于单片机的自动售货机的系统设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、安徽新华学院2013届本科毕业论文(设计)本科毕业论文(设计)基于单片机的自动售货机的系统设计 姓 名: * 学 号: * 专 业: * 院 系: * 指导老师: * 职称学历: * 完成时间: * 教务处制IV安徽新华学院本科毕业论文(设计)独创承诺书本人按照毕业论文(设计)进度计划积极开展实验(调查)研究活动,实事求是地做好实验(调查)记录,所呈交的毕业论文(设计)是我个人在导师指导下进行的研究工作及取得的研究成果。据我所知,除文中特别加以标注引用参考文献资料外,论文(设计)中所有数据均为自己研究成果,不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的工作已在论文中作

2、了明确说明并表示谢意。毕业论文(设计)作者签名: 日期: 基于单片机的自动售货机的系统设计摘 要本文设计了一种以STC89C52单片机为核心,采用集中控制方式实现了对自动售货机全过程的自动控制。本系统选择33矩阵式键盘作为控制按键,实现货物的掉出、退币以及货币数的LCD显示等功能。关键词: STC89C52,自动售货机,键盘控制,LCD显示Design of automatic system of vending machine based on MicrocontrollerAbstractThis paper introduces a design of STC89C52 microcon

3、troller as the core, adopts the centralized control method to realize the automatic control of the whole process of automatic vending machine. In this system, 3 * 3 matrix keyboard as the control button, realize the goods out of, the coin and currency number LCD display and other functions.Keywords:

4、STC89C52, vending machine, keyboard control, LCD display目 录1 绪 论12 自动售货机系统总体设计方案22.1 工作原理22.2 项目要求32.2.1 硬件设计要求32.2.2 软件设计要求43 控制系统的硬件电路设计53.1 硬件设计概述53.2 微控制器53.3 货币识别系统63.3 LCD显示系统模块83.4 提示程序模块94 控制系统的软件设计104.1软件设计概述104.2 主程序104.3 键盘程序设计124.4 字符型液晶显示模块程序设计134.5 提示模块程序设计165 结 论18致 谢19参考文献20附 录1 主函数程

5、序21附 录2 TC1602AL显示程序24附 录3 提示程序27附 录4 总原理图28安徽新华学院2013届本科毕业论文(设计)1 绪 论 自动售货机是一种全新的商业零售形式,20世纪70年代自日本和欧美发展起来。它又被称为24小时营业的微型超市。从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。从广义来讲投入硬币、纸币

6、、信用卡等后便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。从供给的条件看,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。 此次自动售货机的设计是以单片机为核心的自动化控制装置,它集按键选择技术、单片机技术和显示技术于一体。因此,在商业、生活中得到了广泛的应用。有些自动售货机不仅能够自动识别1元、5角硬币,而且能够自动识别20元、10元、5元纸币,还会自动找零,人机对话的应用性提高使自动售货机在国内外大面积普及成为可能。随着科技

7、的发展及人们生活水平的提高,自动售货机市场越来越呈现出多元化及个性化的需求。人们通过自动售货机自助购物,这种简单、快捷的方式正逐渐成为市民的一种新的消费时尚,并且满足了人们在当今科技高速发展的现代社会追求高品质生活的需要。自动售货机在城市商业区、写字楼大厅、风景区、车站、码头、繁华街道等公共场所的布设能够美化城市环境,方便群众生活,它已经成为城市各角落的一道亮丽风景线。自动售货机必将在国内普及,并成为城市现代文明程度的一种象征性标志。 本文详细介绍了如何控制、要求进行自动售货机系统的方案设计、硬件选择、软件规划和编写,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的原则和技巧。2 自

8、动售货机系统总体设计方案 该章节对自动售货机的控制系统进行完整的功能需求分析,并确定总体设计方案,这是完成系统设计的前提。这不仅有助于时间的合理计划和安排,还可以避免因盲目进行设计而达不到要求的情况。2.1 工作原理自动售货机是集机、电的独立智能化售货设备,只需顾客进行投币、选货、退币等简单的操作选择,就能够方便快捷地购买到想要的商品。其工作程序如下图2.1顾客投入钱币顾客选取货物机器记录金额机器送出货物顾客取出货物机器计算余额顾客取出余币图2.1 自动售货机的工作时序图自动售货机的工作时序是:顾客从投币口投入货币,然后通过货币识别器采集数据、识别判断货币的真伪并判别面值,并把信息数据传给主控

9、系统通信,启动售货机的货物选择键和退币按钮,并等待顾客按键选择货物。顾客选择货物后,自动售货机把货物准确送出领货口,顾客再取走货物。如果售货机内还有顾客未用完的货币,顾客可以选择按下退币按钮进行取零或者继续买商品;如果款额不够但还有余额,顾客依然可以按下退币按钮取零;如果没有余额,售货机将自动调成售货结束。最后系统复零,完成售货。2.2 项目要求此次自动售货机设计将满足一下几点要求:主控制系统对货币识别器识别的金额进行记录,根据金额数通过LCD显示器跟踪显示,同时售货机将货物选择权提供用户,用户选择货物后,单片机发出指令将所选商品从储货仓送到取物口。其功能描述:货物种类一共设有8种,这8种物品

10、分别对应着8个不同的按键选择,其中价格不等的物品各3种,1元的有3个可选按键,2元的有3个可选按键,3元的有2个可选按键;自动售货机将顾客投的货币进行金额累加。投了几次货币后,这样机器就会把投入的货币总额数目大小输入中央控制元器件,进行处理。如果累计投入的货币数目多于物品的设定价格,机器能够实现找钱功能,或者顾客可以继续选择货物;如果投入的货币没有达到所选择物品的预设价格时,投入的钱将全部退还。2.2.1 硬件设计要求控制系统要完成图2-1中的各个环节,应具备中央处理模块(微控制器),键盘输入模块,报警提示模块,数额显示模块、货币识别模块和电机驱动模块等,电机驱动模块是自动售货设计当中比较重要

11、的一块,涉及到送出货物的功能。对于驱动电机是如何设计、如何工作的,在这里将不做进一步的研究。本课题设计主要是要实现自动售货机的投币总数显示、货物选择、出货(用发光二极管替代)以及找零功能。在本次设计中用P2.0P2.7作为送出货物输出接口,以发光二极管作为出货状态。这就需要控制系统提供如表2.1中所列的外设器件。表2.1 硬件电路接口列表外 设 名 称数 量用 途备 注MDB货币识别器1货币识别、找零硬币器要符合国际标准MDB接口 键盘输入1输入设备采用33键盘,和1个退币按键报警提示1语音提示采用语音提示功能显示模块1显示货币金额采用TC1602的LCD显示器这些外设元器件的总体原理框架如图

12、2.2所示货币识别模块显示器STC89C52提示模块键盘模块MCUSTC89C52STC89C52STC89C52语音模块图2.2 硬件系统总体框架图2.2.2 软件设计要求控制系统的软件应包括主程序、启动退币系统程序、货币数额显示程序以及提示程序四个部分。参照国内外自动售货机的系统设计实例,结合自身硬件特点,系统要编写的程序需满足以下特点和要求:1、友好的人机交互界面,简易的操作步骤和可靠的销售流程;2、键盘模块能够激活自动售货机的售货系统,同时完成对商品的选择操作以及对货币识别器的退币系统的启动;3、语音提示模块要实现选取货物时金额不足的提示功能。本文第四章将重点讲述软件程序的设计。3 控

13、制系统的硬件电路设计3.1 硬件设计概述硬件是控制系统的物理载体,硬件设计是整个设计的基础环节。根据对第2.2.1节的硬件设计要求可知,此次控制系统的构成模块应包括:中央处理模块(微控制器),键盘输入模块,语音提示模块,LCD显示模块和MDB货币识别模块。各元器件的选用质量在此次设计中很重要,是否合理直接影响控制系统的设计质量,要以经济适用、稳定可靠为原则进行设计。3.2 微控制器 微控制器是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机。微控制器诞生于20世纪70年代中期,经过30多年的发展,其成本越来越低,而性能越来越强大,这使其应用已经无处不在,遍及各个领域。例如电机控制、条码

14、阅读器/扫描器、消费类电子、游戏设备、电话、HVAC、楼宇安全与门禁控制、工业控制与自动化和白色家电(洗衣机、微波炉)等。微控制器主要分为单片机、DSP、ARM等等,其中单片机体积小、使用灵活方便、价格便宜,主要应用于工业控制和智能仪表等领域;DSP芯片具高速运算能力,常用来处理大量数据或数字信号;ARM凭借低功耗、高性能的特点,广泛应用在移动通信和手持设备领域。 综合考虑技术指标、接口需求和经济性等因素,本设计采单片机STC89C52最合理。STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Onl

15、y Memory )的低电压,高性能COMOS8的微处理器,该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。该单片机具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。该单片机的引脚配置如图3.1所示: 图3.1 STC89C52引脚配置图3.3 货币识别系统货币识别分别有对硬币和纸币的识别,由此在下文中分别介绍说明:我国目前发行的1元、

16、5角和1角硬币的金属原材料是为造币而专门使用的特殊合金,因此在它通过投币入口进入由电感和电容组成的特定高频振荡线路所产生的磁场时,金属材质和体积的体积的差别对电感量的影响大小也出现微弱差异,电感量的变化将引起振荡频率的变化,与设定值进行比较,确定某种硬币后,经窄带选频电路将频率信号变为电压信号输出,完成对金属硬币的识别。金属硬币识别器种类繁多,但存币退币机构基本上分为两类:一类是平面是存币,电磁阀退币;另一类是圆筒式存币,步进机退币。当硬币投入后经过识别识别出电信号后,伪币和异物被排出真币按面值由几组分配电磁阀分配到不同存币腔体内备用。当收到退币找零电信号后,通过退币电磁阀或者退币电机拉杆,将

17、存币腔内下部依电信号程序退出,完成自动售货机的退币找零功能。硬件数据采集设备的电源为发光二极光,所发出的光的波长峰值在红外线波段,但不是单光谱,其中红外光成分达到90%以上,因此,光源辐射光中起主要作用的实际上是红外辐射。实验中对各种纸币的特征的识别也主要是根据纸币的表面特征对红外辐射的敏感。红外辐射是光辐射中的一种类型,它具有普通光辐射的共性。这主要是因为不同的纸币表面特征不同,所以在相同的光辐射下会呈现不同的反映,从而可以用来识别不同的纸币,具体地说,首先,钞票的纸张材料是特定的,所以同一种钞票具有一定程度的共性;其次,钞票表面的图案差异,对于相同面值的钞票而言,其表明的各种图案相同,不同

18、面值的钞票之间表明图案有较大区别,所以,根据所述的光的辐射理论,也可以根据它们对相同光辐射的不同反映来判断起面值归属;再次,钞票流通过程中所造成的不同程度的污损,就会造成钞票表面特征的变化,接受光辐射的特性就是有所变化。因此,光辐射可以反映钞票的新旧程度;另外,相对于伪币的鉴别,因为伪币的纸张一般都无法满足真钞的纸张特性,而且,伪币中某些图案达不到钞票的实际标准,如水印是在造纸过程中通过特征工艺抄制上去的无色图案,而伪钞的水印则是通过一定方式轧印或描绘上去的等等,这都能在钞票对光辐射的接受信息中反映出来。但是光辐射在传输过程中,会受外界环境的影响而产生能量损失。比如经过大气传输时,就会受到大气

19、成分的吸收,而在不同的环境条件下,大气的成分含量有某些程度的变化,因而导致能量损失的程度不同。所以光辐射到钞票介质的传输距离越短,所造成的能量损失的影响就越微小,如果硬件的性能较好,外界的这种影响可以不予考虑。作为整个货币识别系统的核心部分,纸币控制器必须由一颗功能相对较强的嵌入式微处理器以及一系列外围器件构成。89C52拥有4个I/O口即P0、P1、P2、P3,它有两个可编程的定时器/计数器,分别称为定时器/计数器0和定时器/计数器1。它们都是16位加法计数结构,分别由TH0和TL0及TH1和TL1两个8位计数器组成。其主要功能是:处理器通过控制发光二极管发光,当纸币进入时,入口处发光二极光

20、投射过纸币的光强变化,被相应入口处的光电三极管接受到后转换为电信号,传给89C52处理器,经过判断,处理器直接控制;当用户按下退币按钮时,单片机将信号发送到MDB中,再施行退币功能。其中注意的是,当选取货物后,货币器能监测到金额的减少,在退币系统启动时退出相应的金额。MDB的通信接口是全双工的主从式接口,使用标准的专用6针插头连接,其中4号接口与P3.0相连,CPU接收到信号并记录金额,5号接口与P3.1相连,CPU通过发送信号控制退币系统的运行。由于货币识别器的核心内容是保密的,可供参考的资料较少,因此本系统中的MDB的使用仅限1元的投币、退币方式,同时下一章的软件设计中不做详细的介绍。MD

21、B接口电路设计如图3.2所示。 图3.2 MDB接口电路图3.3 LCD显示系统模块在用户操作自动售货机时,为了让用户(顾客或运营商)更加简便、容易达成交易,本设计选用广州捷胜吉电子科技公司的TC1602AL型液晶显示模块实现此功能。其规格参数如下:外形尺寸:8036mm; 视域尺寸:64.513.8mm点尺寸:宽高=0.520.6mm 本文设计的电路如图3.3所示。图3.3 液晶模块电路图表3.1 液晶显示模块接口说明标 号功 能 说 明备 注Vss逻辑负电源输入引脚,0VVdd逻辑正电源输入引脚,+5VV0LCD驱动电源输入引脚,大小可调先是对比度一般接0VE读写使能引脚:高电平有效,下降

22、沿锁定数据RS数据/指令寄存器选择引脚:RS=“1”:数据D0-D7与数据寄存器通信 RS=“0”:数据D0-D7与指令寄存器通信R/W读/写选择引脚:高电平:读数据低电平:写数据若不须读操作功能,该引脚可直接接地D0D78位数据线引脚目前,液晶显示模块在国内已经规范化。其引脚接口形式都是标准统一的,只要在指令设置上稍加改动,就可驱动各规格的字符型液晶显示模块,因此使用起来非常方便。关于图3.3中各引脚的功能如表3.1中所描述。3.4 提示程序模块提示模块电路图,如图3.4所示。 图3.4 提示模块电路图1此次提示电路的功能是当用户投入金额不够并且按下货物选择按键时,短暂发出提示音,会给用户提

23、示作用。 2参数计算:这是一个报警提示电路它由电阻、三极管、蜂鸣器组成,R4作为保护电阻它的阻值范围:3301K。4 控制系统的软件设计4.1软件设计概述C语言是编译型程序设计语言的一种,它兼顾了各种高级语言和汇编语言的特点。使用C语言进行程序设计已经成为单片机软件开发的主流。其有以下优点:1、 C语言具有语法简洁的特点 2 、运算符丰富,夺得我有时后都分不清 3 、数据结构类型丰富 4 、结构化,就是想一小块一小块的程序,这样写起来容易 5 、语法要求不严格,这样的话相对容易一些,但有时喉也不爽,有错的时候不知道语言的语法错了6 、功能强大,现在诸如nuix这样的操作系统就是用c 语言写的本

24、设计使用被广泛应用的Keil uVision2 C语言编译器为开发环境,进行了单片机的C语言程序设计。综合考虑自动售货机的功能需求和硬件设计,软件程序的编写应该包括以下几个内容:主程序;键盘模块程序;液晶显示模块的程序;提示模块程序。4.2 主程序在程序层次结构方面,当系统上电之后,应先对其进行相关初始化(如对每种饮料价格的设定和商品原始库存数量的设定等)。然后程序应当进入无限循环,再根据相应的触发条件进入相应的子程序,完成相应的状态下的工作。由于系统在多个状态间跳转切换,所以在程序编写时比较适合应用循环结构实现。自动售货机工作的整个流程图如图4.1所示。开始顾客投币显示货币数顾客退币? N

25、N N顾客选货有货? Y金额足够? N Y Y顾客取走货物 有零? Y顾客退币? N退币 Y交易结束图4.1自动售货机的流程图主程序将调用其他子程序以达到自动售货机的完整工作。例如,当用户按下按键并顺利取得货物时,主程序将调用TC1602AL显示程序,以达到显示余额的功能,再让用户选择是否继续交易。主程序详见附录。4.3 键盘程序设计主程序中将直接对键盘实施控制,当用户在与自动售货机进行交易时,键盘则是重要的人机交互设备,对键盘的识别流程如图4.2。图4.2 按键识别模块原理图此次的键盘设计是以3X3矩阵形式,其中前八个按键是货物选择键,第九个键盘是作为退币系统启动按键,当用户按下键盘,程序通

26、过去抖动的方法来解除干扰,再以行扫描的方式来确定所按键盘,并确定键值,最后再等待顾客释放。4.4 字符型液晶显示模块程序设计TC1602AL液晶模块的功能相对简单,而控制器的设置也不多,下面就介绍常用的控制驱动特性。TC1602AL的基本操作分为以下4种,如表3-1所示。表3-1 TC1602AL的基本操作类 别 名 称输 入输 出状态字的读操作RS=L;RW=H;EP=HDB0-7读出为状态字数据读出操作RS=H;RW=H;EP=HDB0-7读出为数据指令写入操作RS=L;RW=L;EP=上升沿无数据写入操作RS=H;RW=L;EP=上升沿无TC1602AL指令的描述(其中:L=0,H=1,

27、X=0/1)1、清显示 CODE:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLLH 功能:送20H“空代码”到所有的DDRAM中,清楚所有的显示数据,并将DDRAM地址计算器(AC)清零,光标返回到原始状态,设置I/D=H,AC为自动加一的输入方式。2、返回 CODE:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLHX功能:设DDRAM地址为零,显示回原位,DDRAM内容不变。3、输入方式设置 CODE:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLI/DSH功能:设置光标移动方向并指定整体显示是否移动。 I

28、/D表示地址的修改方式,也是光标的移动方式: I/D=1:光标由左向右移动且AC自动加一; I/D=0:光标由右向左移动且AC自动减一。 SH表示是否允许显示画面的滚动方式: SH=0::禁止滚动;SH=1:允许滚动。 SH=1且I/D=0:显示画面向右移动一个字符。 SH=1且I/D=1:显示画面向左移动一个字符。4、显示开关控制 CODE:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLHDCB功能:控制整体显示开关(D),光标开关(C)及闪烁开关(B)的开关。 D=1:整体显示开;D=0:整体显示关。 C=1:光标显示开;C=0:光标显示关。 B=1:光标闪烁;B=

29、0:光标不闪烁。5、光标或整体显示移位位置 CODE:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0LLLLLHS/CR/LXX功能:移动光标或整体显示,同时不改变DDRAM内容,S/C和R/L置位不同时对应的操作: 00:光标左移;01:光标右移。 10:所有显示左移:11:所有显示右移。6、功能设置 CODE:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0LLLLHDLNFXX功能:设置接口数据位数(DL)、显示行数(N)以及字形(F)。 DL=1:8位数据接口模式,DL=0:4位数据接口模式(DB4-7有效,在这种模式下,传送的方式为先高4位,后低4位)。 N=1

30、:两行显示;N=0:单行显示。 F=1:510点阵模式加光标;F=0:57点阵模式加光标。7、设置CGRAM地址 CODE:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0LLLHACG5ACG4ACG3ACG2ACG1ACG0功能:将CGRAM地址送入AC中。设置后MCU对数据的操作是对DDRAM的读/ 写操作。8、设置DDRAM地址 CODE:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0LLHADD6ADD5ADD4ADD3ADD2ADD1ADD0功能:DDRAM地址送入AC中。当N=0时,DDRAM地址范围为:80H-FFH;当N=1时:第一行的DDRAM地址范围

31、为:80H-BFH;第二行的DDRAM地址范围为:C0H-FFH。9、读忙状态位(BF)及地址 CODE:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0LHBFAC6AC5AC4AC3AC2AC1AC0功能:读最高位(BF)判断内部操作是否正在执行,并读低7位地址计数器的内容。10、写数据 CODE:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0HLD7D6D5D4D3D2D1D0功能:写数据到CGRAM或是DDRAM.。如果写数据到CGRAM,要先执行“设置CGRAM地址”命令;如果写数据到DDRAM,则要先执行“设置DDRAM地址”命令。11、读数据 CODE:RS

32、R/WDB7DB6DB5DB4DB3DB2DB1DB0HLD7D6D5D4D3D2D1D0功能:从CGRAM或是DDRAM读出数据。如果从CGRAM读数据,要先执行 “设置CGRAM地址”命令;如果写数据到DDRAM,则要先执行“设置DDRAM地址”命令。执行读操作后,地址自动加/减1(根据输入方式设置指令)。TC1602AL显示器在交易过程能起到金额显示作用,对显示器的识别流程如图4.3。显示模块程序详见附录。图4.3 LCD显示原理图4.5 提示模块程序设计本系统的提示模块将实现的功能是:当客户按下选货按键后,如果金额足够,蜂鸣器不工作;如果金额不足,蜂鸣器将工作两秒,以提示余额不足,之后

33、再停止工作。提示模块程序原理如图4.4。提示模块程序详见附录。图4.4 提示模块原理图5 结 论本次的毕业设计是一次真正的理论与实际相结合,通过这次基于单片机的自动售货机系统的设计,不仅更加深入的了解了单片机等方面的理论知识,而且通过实际的动手操作,也更加成功地将理论知识与实际设计相结合在一起,全方面地提升了所学专业基础知识的理解和解决实际问题的能力,同时也提高我查阅文献资料、设计规范以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富,虽然毕业设计内容多,我的收获却更加丰富。通过几个月的不断努力,我摆脱了单纯的理论知

34、识学习状态,理论知识和实际设计的结合锻炼了我的综合运用所学专业基础知识的能力,使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是C语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。致 谢在毕业设计期间,每次的工作方案的确定、资料的收集还是论文的撰写,我都打到了指导老师薛老师的全力帮助和耐心指导。薛老师学识渊博、治学严谨而且还为人谦和、易于亲近,是我们学习和生活的榜样,在此我特向薛老师表示最崇高的敬意和由衷的感谢。其次,我要感谢每个曾经教导过我的所有老师们,他们广博精湛的学识,严谨的治学态度使我学到的不仅是知识,还有对知识孜孜不倦的追求

35、精神及做人的品质。同时,我也要感谢其他同学的帮助,从他们身上我学到了很多理论知识,自己的实践能力也得到了很大的提高。在未来的学习和工作中,我会继续努力,不断地实现自己的人生价值,以更好的成绩来回报母校,回报社会。参考文献1张毅刚等新编MCS-51单片机应用设计哈尔滨工业大学出版社,20082张志良单片机原理与控制技术机械工业出版社,20113陈涛等货币识别器的原理与设计贵州大学电气工程学院,2006年(第35卷)第6期4王琼单片机原理及应用合肥工业大学出版社,20085彭保基Keil C51入门教程西安交通大学,20056朱清慧,王志奎等Protues教程清华大学出版社,20117陈慧基于嵌入

36、式单片机的智能自动售货机控制系统华东交通大学学报,2008,第25卷第6期:78-828丁昊自动售货机控制系统的设计与实现东南大学硕士学位论文,20089蔡美琴,张为民等MCS-51系列单片机系统及其应用.北京高等教育出版社,2004:1-156,234-26810张建龙一种新型自动售货机控制系统研发浙江工业大学硕士学位论文,200911宋潇,李佩佩等自动售货机控制器设计科技信息,2009,第3期:119-12012余世明,晁岳磊等自动售货机研究现状及展望中国工程科学,2008,第10卷第7期:51-5513侯连宏自动售货机主控系统的研制东南大学硕士学位论文,200914李明C语言程序设计教程

37、上海交通大学,200815广州捷胜吉电子科技字符液晶模块使用手册201316广州致远电子有限公司ZY1730使用指南201317洪强宁,齐国生等基于MDB/ICP协议的自动售卖系统的主控实现 计算机应用2002,第9期:28-30附 录1 主函数程序#include #include # include sbit IN0=P32;#define uchar unsigned char / 宏定义#define uint unsigned intsbit TuiBi=P31; uchar m=0;uchar a;/*按键拐角定义*/ sbit Row1=P10; sbit Row2=P11; s

38、bit Row3=P12; sbit Line1=P13; sbit Line2=P14; sbit Line3=P15; uchar code chuhuo=0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/*延时程序*/ void delay(uint count) uint i ; while (-count!=0) for(i=0;i=1) m=1; a=a-1; Data=a; LCD(); else Tishi(); return; else if (Line2=0) /按键K2被按下 If (a=1) m=2; a=a-1; Data=a

39、; LCD(); else Tishi(); return; else if(Line3=0) /按键K3被按下 If (a=1) m=3; a=a-1; Data=a; LCD(); else Tishi(); return; Row1=1;Row2=0;Row3=1; if(Line1=0) /按键K4被按下 if (a=2) m=4; a=a-2; Data=a; LCD(); else Tishi(); return; else if (Line2=0) /按键K5被按下 If (a=2) m=5; a=a-2; Data=a; LCD(); else Tishi(); return;

40、 else if(Line3=0) /按键K6被按下 If (a=2) m=6; a=a-2; Data=a; LCD(); else Tishi(); return; Row1=1;Row2=1;Row3=0; if(Line1=0) /按键K7被按下 if (a=3) m=7; a=a-3; Data=a; LCD(); else Tishi(); return; else if (Line2=0) /按键K8被按下 If (a=3) m=8; a=a-3; Data=a; LCD( ); else Tishi( ); return; else if(Line3=0) /按键TuiBi被按

41、下 TuiBi=0; / 启动退币系统 String_s1=We appreciate your; String_s2= business,bye!; LCD(); return; 附 录2 TC1602AL显示程序#include # include #include sbit LCD_EP=P36;sbit LCD_RW=P35;sbit LCD_RS=P34;#define uchar unsigned char ; / 宏定义#define uint unsigned int #define LCD_Out P0#define LCD_In P0code uchar LCD_addr1

42、8= /共18行显示的首地址0x85,0xc5,0x86,0xc1, 0x82,0xc3,0x83,0xc3, 0x83,0xc0,0x81,0xc0, 0x82,0xc6,0x84,0xc6, 0x81,0xc3;code uchar LCD_InitialCode=0x30,0x30,0x30,0x38,0x01,0x06,0x0c; /初始化代码uchar *string_s1,*string_s2;uchar i,j;/* 函数: void LCD_DataWrite(unsigned char Data) 描述: 写一个字节的显示数据至LCD中的显示缓冲RAM当中 参数: Data 写入的数据*/void LCD_DataWrite(unsigned char Data) unsigned int Read_Dat=0; LCD_EP = 0; /EP、RS端口为低,RW为高 LCD_RS = 0; LCD_RW = 1; do /RS=0,RW=1时,在E高电平作用下,BF输出到总线DB7上 LCD_In = 0xff; LCD_EP = 1; Read_Dat = LCD_In&0x80; LCD_EP = 0; while(Read_Dat!=0); /读状态字(BF位)并判断

温馨提示

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

最新文档

评论

0/150

提交评论