




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录摘 要 .IAbstract .II绪论 .1第一章 自动售货机的系统结构 .51.1 自动售货机的系统概述 .3111 自动售货过程的控制子系统简述 . .4112 自动售货过程的通讯子系统简述 .5自动售货机的功能简介 . .61 此次设计的自动售货机的功能简介 . .6实现自动售货机的功能的设计思路 . 7论文的内容及拟解决的问题 . .7第二章自动售货机的系统硬件电路设计. .102.1 自动售货机中央控制元件 8751 的介绍 .82.2 货币识别系统 .92.3 货物选择系统 .112.4 出货及显示花钱数系统 . 112.5 找钱及显示找钱数系统 . .1326 出错报警系统简述 .14第三章自动售货机的系统软件程序设计.15自动售货机货币识别系统程序流程图 . .15自动售货机货物选择系统的程序流程图 . .15自动售货机出货,显示花钱数系统流程图 . .194 自动售货机找钱,显示找钱数系统流程图 . 2035 出错报警系统流程图 . 21 第四章系统软、硬件设计实现 .211 驱动程序 .234.1.1 实现有效投币定时 30 秒以及累加计数程序: . .234.1.2 货物选择系统的驱动程序. 244.1.3 报警系统的驱动程序 . .30结论 .27参考文献 .28致 谢.29附 录 .30 摘 要自动售货机是劳动密集型的产业构造向技术密集型社会转变的产物。本文设 计了一种以 INTEL 公司的 8751 单片机为核心的自动售货机装置的控制系统。详细介绍了自动售货机系统的方案设计、硬件选择、软件规划和编写,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的原则和技巧。该系统以单片机 8751 芯片为核心,采用集中控制方式实现了对自动售货机全过程的自动控制。本系统选择 44 矩阵式键盘按键作为货物选择端,采用了 2 个可编程并行接口8255A 实现并行接口的扩展,解决了单片机 8751 芯片输入/输出口引脚紧张的问题,实现了货物的掉出以及货币数的显示功能。此外,系统程序采用 keil 软件进行程序的编写和编译,该软件具有编程简单、查错方便、阅读容易等特点。汇编语言是程序的基本语言,具有容易理解,便于记忆和使用等特点。关键词:自动售货机;控制系统,8751 单片机;系统程序 AbstractThe system that I design is an automat basing on microcontroller 8751to controlthe sell goods system .In the following paper introduce the system design andhandware sellection software design and write . and emphases describe the automatsystem worke principle system design and sofeware programing technique Themaster mcu 8751 is INTEL Company. The system has some prominent excellences byconcentrate control. It is very steady and credible,my system use 44keyboard tosellecting goods useing two programing parallel interface 8255 to resolve i/otensional problem make goods dorp and coin display function . I program the system by software named keilc51 The whole of programmer iswrited by asembeling language.keilc51 software makes my programmer easier andcheck work more convenient.Key words: vending machine;MCU8751;8255A keyboard/display绪 论从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。 从广义来讲投入硬币、纸币、信用卡等后便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。从供给的条件看,自动售货机可以充分补充人力资源的不足,适 24应消费环境和消费模式的变化, 小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。 自动售货机是以单片机为核心的自动化控制装置,它集按键选择技术、单片机技术和显示技术于一体,具有功能强大、可靠性高、使用方便、维护简单等特点。因此,在商业、生活中得到了广泛的应用。有些自动售货机不仅能够自动识别 1元、5 角硬币,而且能够自动识别 20 元、10 元、5 元纸币,还会自动找零,人机对话的应用性提高使自动售货机在国内大面积普及成为可能。 随 着科技的 发展 及人们生活水平的提高,自动售货机市场的发展越来越呈现出多元化及个性化的需求。通过自动售货机进行自助购物正逐渐成为市民的一种新的消费时尚,快捷方便的购物方式满足了人们在当今科技高速发展的现代社会追求高品质生活的需要。自动售货机在城市商业区、写字楼大厅、风景区、车站、码头、繁华街道等公共场所的布设能够美化亮化城市环境,方便群众生活,已经成为城市各角落的一道亮丽风景线。自动售货机必将在国内普及,并成为城市现代文明程度的一种象征性标志。 本文详细介绍了如何控制、要求进行自动售货机系统的方案设计、硬件选择、软件规划和编写,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的原则和技巧。 本文共分为五章。系统介绍了自动售货机系统从控制方案,操作逻辑到系统软件等各个环节的设计及系统调试的方法和原则。第一章简单介绍了自动售货机的 第 2 页系统结构,第二章介绍了自动售货机的系统硬件电路设计,第三章介绍了自动售货机的系统软件程序设计及分析,第四章主要介绍了自动售货机的系统软件驱动程序实现。第一章 自动售货机的系统结构1.1自动售货机的系统概述自动售货机是集光、机、电一体化的独立机构,它只需要顾客投币和按购物键选择即可自动售货及退找零钱,其工作程序如下图 1.1 图 1.1自动售货机工作时序图售货机的工作原理是:(1) 从投币口送入货币,然后通过传感器采集数据、识别器判断货币的真伪并 判别面值。(2)识别器把信息数据传给通信模块。(3)通 信模块与售货机的主控系统通信,主控系统显示面值,启动售货机的面板键,显示出哪个货道有货,哪个货道已经售完,并等待顾客按键选择商品。(4)顾客选择商品后,售货机自动把商品送出,等待顾客取走。(5)显 示余额,如果金额足够多,顾客可以选择找币或者继续买商品;如果款额不够,售 货机经过延时予以退币。退币分为两种情况:一种是由货币识别器完成退纸币,另一种是由硬币的通信模块完成退硬币。(6)系统复零,完成售货。自动售货机的硬件原理构成如下图 2.2 所示 图 1.2 自动售货机硬件结构图综合所述,售货机系统可以分为三部分组成,即自动售货机的控制子系统、通讯子系统、硬币器子系统以及纸币器子系统。其中控制子系统是本设计研究重点。这些内容在下文中进一步介绍。111 自动售货过程的控制子系统简述 控制子系统由以下四个部分组成,分别是预设自动售货机系统、金额累计、可售指示和退币系统、售完检测系统、售出累计及自测功能系统。1、 预设 自动售货机系统。自动售货机售出的同类商品可分为若干品种,其售前设定价格须预先寄存在控制系统内。售货机的价格设置由按键和存储器组成。通过按键选择被设价商品的种类及价格,并将价格写入存储器中,该存储器本身具有掉电保护功能,属于软件设置方式。此外,在简易售货机中,由于出售商品的种类少,价格变化下,使用币种单一,也可以用硬件设置价格,才用拨码开关对应方式,结构简单,操作方便。 2、金额累计、可售指示和退币系统。控制系统的核心 CPU 对识币、退币、无货检验及购货信号进行循环检查,当有识币信号后,将金额数值送入金额累计存储器中进行累计,并通过串行接口使可售指示灯亮,提示购货。此时可以按下购货按钮,由于 CPU 检测到有购货信号后,如金额累计器中的数值与预设价格相等,则通过并行扩展接口驱动电磁阀或者微电机驱动出商品,并将金额累计存储器清零,完成一次售货过程,如累计金额大于预设价格时,驱动商品后,相减差额由信号驱动退币,实现退币和找钱功能。 3、售完检测系统。在自动售货机商品存储存道下方按照有接触行程开关,当存储存道有商品时,压下行程开关,自动售货机正常工作;当商品出售完毕时,行程开关被释放,向 CPU 发出无货信号,经过检测通过串行扩展接口向相应的售完指示灯发出信号,使机身“售完”指示灯亮,此种商品自动停售,即使投币金额达到该道商品预设价格数值,可售按钮仍然无法启动信号,金额累计存储器也不清零。 4、自动售货机售出累计及自测功能系统。该机 CPU 在每次售出商品后,向售出累计存储器中累计售出数据,通过自动售货机内部的按键可在金额显示窗口中读到累计结果。此外,在按下自测功能键后,出现自测功能信号,由外部按键操作,可检测各商品存储道的驱动商品功能。112 自动售货过程的通讯子系统简述 自动售卖系统的外围设备较为复杂,导致对主控制器的要求越来越高。为了简化设计,采用简单、稳定的内部通讯总线协议非常必要。有些公司采用欧洲售货机制造协会(EVMMA)制定的 MDB/ICP 总线协议。该协议简洁明了,功能强大,可扩展性强并且对外挂设备数目没有限制,是理想的自动售卖系统内部总线协议。 MDB/ICP 协议是欧洲 售货机制造协会制定的一套用于协调自动售货机的 主控制器(MMC)与多个设外之间通讯的协议。 MDB 接口实际上是工作于波特率 9600 的主从型串行总线接口,所以外围设备(例 如硬币器、纸币器等)均为主控制器(传统上称为售货机控制器VMP)的从机。所有外围设备与主控制器之间的通讯方式都一致。 MDB 协议的串行位格式为:1 个起始位,8 个数据位,1 个方式位和 1 个停止位,共 11 位。其中方式位根据传递的方式的不同置 0 或置 1。在 MDB 总线上,VMC通过广播方式向外发送命令。第一字节为地址字节(实际上只有高 5 位寻址信息,低 3 位为对外设的指令),该字节被所有的外设读取,但只有符号地址字节所指定的外设才处理其后的数据字节,并做出反应。在 VMC 到外设的数据中,地址字节的方式位被置 1,数据字节的方式位被置 0,外设通过检验接受到的方式位确定是地址指令还是数据。当数据从外设发送到主机时,最后送出的字节方式位被置 1,标志着数据发送完毕。 10 VMC 向外 设发送的 指 令由一个字节、一些可选的数据字节一个校验和字节 构成。发送指令后,外设应答 VMC 的通信块可以由一个数据块和一个字节组成,或者一个应答字节,或者一个无应答字节。如果外设应答数据块的话,VMC 将通过一个应答字节、无应答字节或重发字节应答外设传回的数据。自动售货机的功能简介1 此次设计的自动售货机的功能简介 基本原理:货币识别器对所投货币进行识别,根据金额将商品选择权提供用户,用户选择后,控制芯片发出指令将所选择商品从储备料道中送达取物口。其功能描述:货物种类一共设有12种,这12种物品分别对应着12个不同的按键选择,其中1元,2元,3元价格不等的物品各4种;货币识别器能够识别1元,5元的货币,自动售货机能够实现货币累加功能。在规定的30秒中内,投了几次货币后,货币能够实现累加功能,这样机器就会把投入的货币总额数目输入中央控制元器件,进行处理;超过30秒后投币,投币无效,机器自动把钱全部退出来。如果累计投入的货币数目超过物品的预设价格,机器能够实现找钱功能;如果投入的货币没有达到所选择物品的预设价格时,投入的钱将全部退还;在投入一次累加货币后选择物品,如果投入的累加货币数目大大超过所选择物品的预设单个价格时,那么能够实现选择同一个物品购买多个,在本设计中设为可以同时购买2个或3个物品。 本设计中有一共有 16 个按键选择,其中 12 个是货物选择键,有 2 个是多选键(一次购买 2 个或 3 个货物),还有 1 个确定键和 1 个取消键。如果没有按照预先设计的流程顺序进行按键选择,自动售货机将启动报警系统,等待再次正确的按键选择。 在出货系统中设计了,显示购买货物的共花钱数。 在找零系统中设计了,显示找零的货币数。实现自动售货机的功能的设计思路 采用单片机MSC-51系列中的8751作为中央控制元件; 用P3.4和P3.5作为识别货币输入端; P1作为货物选择选择端(采用44行列式键盘做为选择货物端); 采用两个8255A扩展并行I/O接口,实现掉出货物功能、显示功能、找钱功能; P2.7和P2.6分别作为8255A的片选输入端。论文的内容及拟解决的问题 1、 从投币口送入货币,然后经过传感器采集数据、识别器判别人民币的真伪并判别面值。2、识别器把信息数据传给通讯模块。3、 通讯模 块与售 货机的主 控系统通信,启动售货机的面板控制,并等待顾客按键选择商品。 4、顾客选择商品后,售货机自动把商品送出,等待顾客取走。 5、金额足够多,售货机将自动找回钱。 6、系统复零,完成售货。第二章自动售货机的系统硬件电路设计2.1自动售货机中央控制元件8751的介绍在本次设计中,中央控制元件采用 MCS-51 系列单片机中的 8751。 8751 单片机是 Intel 公司生产的 MCS-51 系列单片机中的一种,其特性与MCS-51 单片机基本一样。 8751 单片机内部结构: 8751 单片机包含中央处理 器、程 序存 储 器ROM、数 据存储 器RAM、定 时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。其中, 中央处理器CPU是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 8751 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运算的中间结果或用户定义的字型表。 图 2.1 8751 内部结构MCS-51 的引脚说明: 图 2.2 8751 引脚图MCS-51 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP结构,上图是它们的引脚配置,40 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根, 8751 共有 4 组 8 位 I/O 口P0、 P1、P2 或 P3,用于对外部 ,4数据的传输。 组 8 位共 32 个 I/O 口,中断口线与 P3 口线复用。2.2 货币识别系统货币识别分别有对硬币和纸币的识别,由此在下文中分别介绍说明:1 我国目前发行的 1 元、 角和 1 角硬币的金属原材料是为造币而专门使用的特殊合金,因此在它通过投币入口进入由电感和电容组成的特定高频振荡线路所产生的磁场时,金属材质和体积的体积的差别对电感量的影响大小也出现微弱差异,电感量的变化引起振荡频率的变化,与设定值进行比较,确定某种硬币后,经窄带选频电路将频率信号变为电压信号输出,完成对金属硬币的识别。金属硬币识别器种类繁多,但存币退币机构基本上分为两类:一类是平面是存币,电磁阀退币;另一类是圆筒式存币,步进机退币。当硬币投入后经过识别识别出电信号后,伪币和异物被排出真币按面值由几组分配电磁阀分配到不同存币腔体内备用。当收到退币找零电信号后,通过退币电磁阀或者退币电机拉杆,将存币腔内下部依电信号程序退出,完成自动售货机的退币找零功能。2 硬件数据采集设备的电源为发光二极光,所发出的光的波长峰值在红外线波段,但不是单光谱,其中红外光成分达到 90%以上,因此,光源辐射光中起主要作用的实际上是红外辐射。实验中对各种纸币的特征的识别也主要是根据纸币的表面特征对红外辐射的敏感。红外辐射是光辐射中的一种类型,它具有普通光辐射的共性。这主要是因为不同的纸币表面特征不同,所以在相同的光辐射下会呈现不同的反映,从而可以用来识别不同的纸币,具体地说,首先,钞票的纸张材料是特定的,所以同一种钞票具有一定程度的共性;其次,钞票表面的图案差异,对于相同面值的钞票而言,其表明的各种图案相同,不同面值的钞票之间表明图案有较大区别,所以,根据所述的光的辐射理论,也可以根据它们对相同光辐射的不同反映来判断起面值归属;再次,钞票流通过程中所造成的不同程度的污.就会造成钞票表面特征的变化。因此,光辐射可反映钞票的新旧程度;另外,相对于尾部的鉴别,因为伪币的一般无法拥有真钞纸的特性,而且,伪币中的某些图案达不到钞票的实际标准,如水印是造纸过程中通过特殊工艺抄制上去的无色图案,而伪钞的水印则是通过一定方式轧印或扫描印上去的,这都能在钞票对光辐射的接受信息中反映出来。作为整个货币识别系统的核心部分,纸币控制器必须有一颗功能相对较强的嵌入式 微处理器以及一系列外围器件构成。在这里选用的是8751单片机,8751拥有四个I/O口即P0、P1、P2、P3,它有两个可编程的定时器/计数器,分别称为定时器/计数器0和定时器/计数器1。它们都是16位加法计数结构,分别有TH0和TL0及TH1两个8位计数器组成。其主要功能是:处理器通过控制发光二级管发光,当纸币进入时,入口处发光二极管投射过纸币的光变强变化,被相应入口处的光电三极管接受到后转换成为电信号,传给8751处理器,经过判断,处理器直接控制。2.3货物选择系统 货物选择系统主要通过键盘操作来完成。键盘是人机交换的装置,价格低廉,使用方便,带单片机应用系统中得到了广泛的应用。按键按照接口原理可分为编码键盘和非编码键盘两类,它们的主要区别是识别键符及给出相应键码的方法。编码键盘主要用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别。在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外其它按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能。2.4出货及显示花钱数系统 由于还要实现显示花钱数这项功能,这样导致I/O接口紧张考虑到8751自身资源有限,并不能很好的满足系统的要求,明显需要实现并行接口扩展,在本设计中采用了8255A实现扩展并行I/O接口功能。8255A是一个具有两个8位(A口和B口)和两个4位(C口高/低4位)并行输出输入端口的接口芯片。8255A可作为提供TTL电平兼容接口,如打印机、A/D、D/A转换器、键盘以及需要同时两位以上信息工作的一切形式的并行接口,还提供按位控制的功能。8255A能适应CPU与I/O接口之间的多种数据传送控制方式要求,如无条件传送,应答方式传送和中断方式传送。8255A使用方式字控制和位置/复位控制字因而执行功能很强。其内部结构如下:图2.3 8255A内部结构图图中A1、A0和RD、WR及组合所实现的端口寻址各种结构功能表2.1 引脚功能CSRDWRA1 A0操作0100 0向A口写数据0100 1向B口写数据0101 0向C口写数据0101 1写控制字0010 0从A口读数据0010 1从B口读数据0011 0从C口读数据1XXX X呈高阻态011X X呈高阻态000X X非法操作8255A的工作方式有三种,在本设计中只采用了方式0方式0基本的输入/输出方式8255A的PA、PB、PC74、P30可分别被定义为方式0输入或方式0输出。方式0输出具有所存功能,输入没有锁存。方式0适用于无条件传输数据设备,双方不需要握手信息,局可以使数据简单的写入或写出。2.5找钱及显示找钱数系统本设计中,货币识别器能识别1元、2元、5元货币。并能实现货币累加功能。再通过投币后,将会把产生的信号输入给8751的P3.4和P3.5的引脚上,其中P3.4控制货币的累加,P3.5控制货币的有效时间30秒。在经过8751处理后,将会在找钱输出端产生与其相对应的信号输出,控制所选钱的掉出,并实现找钱功能。2.6出错报警系统简介在本设计中,只有在按键选错的情况下,导致系统无法正常处理,才会出现报警现象。当出现错误时候,8751A将会控制8255A的PC端输出信号,再通过光电耦合,在这样来驱动一个扬声器工作,实现报警功能。第三章自动售货机的系统软件程序设计3.1自动售货机货币识别系统程序流程图图3.1识别货币系统程序流程图3.2自动售货机货物选择系统的程序流程图本设计中,分别设置了价格为1元、2元、3元不等的货物,这里只列出1元货物处理子程序的流程图: 图3.2按键选择程序流程图36图3.3 1元钱货物处理子程序流程图3.3自动售货机出货,显示花钱数系统流程图本设计设置了价格为1元、2元、3元不等的货物,一共12件。再通过按键选择货物后,将会把产生的信号输入给8255A的P1引脚上,8255接收信号后,经过处理将会在货物输出端产生与其相对应的信号输出,控制所选货物的掉出。图3.6 报警功能驱动程序流程图由找钱系统1图(图见附录)我们可以看到芯片8255A与8751的P2.6相连,A0、A1分别与74LS373的3Q、4Q相连。当3Q、4Q输出不同组合时,则控制选择了8255A的PA、PB、PC口,当取10时对应PC口输入输出;由于也受到P2.6的控制,只有当P2.6输出为0时,才能选到该芯片8255A。最后我们可以计算出PA、PB、PC及控制口对应的地址分别为BFF3H、BFF7H、BFFBH和BFFH。第四章 系统软、硬件设计实现4.1驱动程序4.1.1实现有效投币定时30秒以及累加技术程序ORG 1000HMONEY:DATA 2000H MOV IE ,#8AH MOV TMOD ,#04H ;设置T1为定时工作方式0,T0为计数工作方式0 MOV TH0,#00H ;置计数初值 MOV TL0,#00H MOV TL1,#9EH ;置计数初值 MOV TL1,#58H STEB TR0 ;启动计数器 STEB TR1 ;启动定时器 MOV R0,#601LOOP1:DJNZ R0,T1_END ;循环600次实现30秒计时MOV A,P3JBC ACC.5,LP1LP1: JBC TF1,NEXT ;查询计数溢出值 SJMP LP1NEXT: MOV TL1,#9HMOV TL1,#58H JMP LOOP1T1_END:MOV R1,TL0MOV MONEY,R1 ;将投入的货币累加数存入MONEYCLR AMOV TL0,AMOV TH0,ARET4.1.2货物选择系统的驱动程序VULE EUQ 40H MOV A,MONEY MOV B,A SJMP KEYKEY: MOV R2,#0FEH ;设置键码寄存器 ANL P1,#0F0H ;设置初始扫描码 MOV A,P1 ;全扫描行线 CLP A ;取反 ANL A,#0F0H ;屏蔽回扫值低位 JZ KEY3 ;无键闭合,返回 LCALL D10MS ;延时10ms去抖动 MOV R3,#04H ;设置扫描行数 ORL P,#0FH4 ;位描行线全置高KEY1:MOV P1,R2 ;逐行扫描键盘 MOV A,P1 ;读入状态值 CPL A ;取反 ANL A,#0F0H ;屏蔽状态低4位 JNZ KEY2 ;有键闭合,转键处理 MOV A,R1 ;无键闭合,继续扫描下一个按键 RL A ;左移扫描码,指向下一行扫描线 MOV R2,A DJNZ R3,KEY1 ;逐行扫描未完成,继续 LJMP KEY3 ;本轮扫描无键闭合,返回KEY2:MOV A,P1 ;键处理 ORL A,#0FH ;扫描码与状态值拼装成特征字节 ANL A,R2 CPL A ;取反,特征字节变换成键位码 MOV VULE,A ;保存键位码 LCALL KEYPCS ;用查表法查找键码WAIT: ANL P1,#0F0H ;判断键释放否 ? MOV A,P1 ANL A,#0F0H CPL A JNZ WAIT RETKET3:MOV VULE,#OFFH ;无键闭合,置无效码 RET查找键码子程序如下:KEYPCS:MOV R4,#10H ;查找键码程序,设子键码(16个按键)MOV R4,#00H ;清除键码计数器MOV DPTR,#KEYTAB ;设置键码表首址KEYP1: CLR A MOVC A,A+DPTR ;查表 CJNE A,VULE,KEYP2 ;未找到,转到下一个 MOV VULE,R5 ;找到键位码,键码装入键码寄存器 RETKEYP2: INC R5 ;键码计数器加1 INC DPTR ;键码表地址加1 DJNZ R4,KEYP1 ;未查完16个按键,继续 MOV VULE,#0FFH ;无键闭合,置无效码 RETKEYTAB: DB 11H ;键码=00H对应键1 DB 21H ;键码=00H对应键1 DB 41H ;键码=00H对应键1 DB 81H ;键码=00H对应键1 DB 12H ;键码=00H对应键1 DB 22H ;键码=00H对应键1 DB 42H ;键码=00H对应键1MOV A,R5MOV R6,A ;将选物按键码存入R6中ANL R0,,#00H ;R0清零ANL R1,#00H ;R1清零*选择1元钱的货物A* CJNZ A,#00H,NEXTB ;判断是否按下键0 JMP 1YUAN*选择1元钱的货物B*NEXTB; CJNA A,#01H,NEXTC ;判断是否按下键1*选择1元钱的货物C*NEXTC; CJNZ A,#02H,NEXTD ; 判断是否按下键2 JMP 1YUAN*选择1元钱的货物D*NTXTD; CJNE A,#03H,NEXTE ; 判断是否按下键31YUAN: MOV A,B ;将投入的货币累加数存入寄存器B CJNZ A,#01H,NEXTA1 ;判断投入的货币是否为1元 MOV R0,#01H ;选择货物数为1个LOOPA1:LCALL KEY MOV A,R5 CJNE A,#0FH,NEXTA2 ;按下确定键,所选货物掉出 LJMP OUTGOODSNEXTA2:CJNZ A,#0EH,VOICEA1 ;按下取消键 MOV A,B ;钱全部退回 JMP OUTMONEY VOICEA1:LCALL VOICE ;选择按下其他键,报警 JMP LOOP1 ;返回,等待有键按下NEXTA1:JNC NEXTA3 ;投入的货物币数小于所选货物值 JMP OUTMONEY ;钱全部退还NEXTA3:LCALL KEY ;等待是否有键按下 MOV A,R5 CJNE A,#0CH,NEXTA4 ;选择一次性购买2个货物 MOV A,B CJNZ A,#02H,NEXTA5 ;判断投入货币是否为2元 MOV R0,#02H ;将选择的货物数量值存入R0LOOPA2:LCALL KEY ;等待是否有键按下 MOV A,R5 CJNE A,#0FH,NEXTA6 ;按下确定键,所选货物掉出 LJMP OUTGOODSNEXTA6:CJNE A,#0EH,VOICEA2 MOV A,B ;退还全部的钱 JMP OUTMONEYVOICEA2:LCALL VOICE ;选择按下其他键,报警 JMP LOOPA2 ;返回,等到有键按下NEXTA5:JNC NEXTA7 ;投入的货币数小于所选货物的预设价格 JMP OUTMONEY ;钱全部退还NEXTA7:LCALL KEY ;等待是否有键按下 MOV A,R5 CJNZ A,#0FH, NEXTA8 ;按下确定键,所选货物掉出 MOV A,B SUBB A,#02H MOV R0,#02H ;将所选的货物数量值存入R0 MOV R1,A ;将找钱数存入R1 LCALL OUTMONEY ;找钱 JMP OUTGOODS ;所选货物掉出NEXTA8:CJNZ A,#0EH,VOICEA3 MOV A,B ;退还全部的钱 JMP OUTMONEYVOICE3:LCALL VOICE ;按下其他键,报警 JMP NEXTA7 ;返回,等到有键按NEXTA4:CJNE A,#0DH, NEXTA9 ;选择一次性购买3个货物 MOV A,B CJNE A,#03H, NEXTA10 ;判断投入的货币数是否为3元 MOV R0,#03H ;将选择的货物数量值存入R0LOOPA3:LCALL KEY ;等待是否有键按下 MOV A,R5 CJNE A,#0FH, NEXTA11 ;按下确定键,所选货物掉出 LJMP OUTGOODSNEXTA11:CJNEA,#0EH,VOICEA4 MOV A,B ;退还全部钱 JMP OUTMONEYVOICEA4:LCALL VOICE ;选择按下其他键,报警 JMP LOOPA3 ;返回,等待有键按下NEXTA10: JNC NEXTA12 JMP OUTMONEY ;钱全部退还NEXTA12:LCALL KEY ;等待是否有键按下 MOV A,R5 CJNE A,#0FH, NEXTA13 ;按下确定键,所选货物掉出 MOV A,B SUBB A,#03H MOV R0,#03H ;将选择的货物数量值存入R0 MOV R1,A ;将找钱数存入R1 LCALL OUTMONEY ;找钱 JMP OUTGOODS ;所选货物掉出NEXTA13:CJNE A,#0EH,VOICE5 MOV A,B 退还全部的钱 JMP OUTMONEYVOICEA5:LCALL KEY ;选择按下其他键,报警 JMP NEXTA12 ;返回,等待有键按NEXTA9:LCALL KEY ;等待是否有键按下 MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB61T 520-2011 主动富氮文物保护系统 设计、施工与验收规范
- DB61 1227-2018 农村生活污水处理设施水污染物排放标准
- 江苏省兴化市戴泽初中2025年高三数学第一学期期末监测试题
- 上海市宝山区上海交大附中2025年高三数学第一学期期末复习检测试题
- 2025重庆市永川区胜利路街道办事处招聘公益性岗位人员2人备考练习题库及答案解析
- 吉安市卫生学校公开招聘9名非编教师备考练习试题及答案解析
- 植物雄性不育原因探究及应用讲课文档
- 心血管疾病与心理卫生讲课文档
- 2025年新乡辉县市特岗教师招聘递补备考练习题库及答案解析
- 苏州教育知识与能力培训课件
- 2023年各地中考语文卷名著《昆虫记》阅读题汇集练附答案解析
- 消防设备销售员入职培训
- 建筑消防工程学课件
- 医院老年科管理制度
- 艺术导论(公共艺术通识课)第二版全套教学课件
- 小学生中餐在校就餐申请书
- 大学物理第三版课后习题答案详解
- 高中日语学习宣讲+课件
- 成都理工大学工程技术学院毕业实习报告
- 2022年新高考II卷高考语文试卷试题深度解读及答案详解(精校版)
- 现代测试与分析技术绪论
评论
0/150
提交评论