毕业设计(单片机控制自动售货机)_第1页
毕业设计(单片机控制自动售货机)_第2页
毕业设计(单片机控制自动售货机)_第3页
毕业设计(单片机控制自动售货机)_第4页
毕业设计(单片机控制自动售货机)_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、科技学院2021届本科毕业论文自动售货机控制器设计 学科专业: 通信工程 指导教师: 马 奎 学生姓名: 任 小 珊 学生学号: 062004101647 中国贵州贵阳2021年5月目 录 TOC o 1-3 h z u HYPERLINK l _Toc261768671 摘 要 PAGEREF _Toc261768671 h VIII HYPERLINK l _Toc261768673 Abstract PAGEREF _Toc261768673 h IX HYPERLINK l _Toc261768675 绪论 PAGEREF _Toc261768675 h 1 HYPERLINK l _

2、Toc261768676 第一章,自动售货机的系统结构 PAGEREF _Toc261768676 h 3 HYPERLINK l _Toc261768677 1.1自动售货机的系统概述 PAGEREF _Toc261768677 h 3 HYPERLINK l _Toc261768678 111自动售货过程的控制子系统简述 PAGEREF _Toc261768678 h 4 HYPERLINK l _Toc261768679 112自动售货过程的通讯子系统简述 PAGEREF _Toc261768679 h 5 HYPERLINK l _Toc261768680 自动售货机的功能简介 PAG

3、EREF _Toc261768680 h 6 HYPERLINK l _Toc261768681 1此次设计的自动售货机的功能简介 PAGEREF _Toc261768681 h 6 HYPERLINK l _Toc261768682 实现自动售货机的功能的设计思路 PAGEREF _Toc261768682 h 6 HYPERLINK l _Toc261768683 论文的内容及拟解决的问题 PAGEREF _Toc261768683 h 7 HYPERLINK l _Toc261768684 第二章自动售货机的系统硬件电路设计 PAGEREF _Toc261768684 h 8 HYPER

4、LINK l _Toc261768685 2.1自动售货机中央控制元件8751的介绍 PAGEREF _Toc261768685 h 8 HYPERLINK l _Toc261768686 2.2货币识别系统 PAGEREF _Toc261768686 h 9 HYPERLINK l _Toc261768687 2.3货物选择系统 PAGEREF _Toc261768687 h 11 HYPERLINK l _Toc261768688 2.4出货及显示花钱数系统 PAGEREF _Toc261768688 h 11 HYPERLINK l _Toc261768689 2.5找钱及显示找钱数系统

5、 PAGEREF _Toc261768689 h 14 HYPERLINK l _Toc261768690 26出错报警系统简述 PAGEREF _Toc261768690 h 14 HYPERLINK l _Toc261768691 第三章自动售货机的系统软件程序设计 PAGEREF _Toc261768691 h 15 HYPERLINK l _Toc261768692 自动售货机货币识别系统程序流程图 PAGEREF _Toc261768692 h 15 HYPERLINK l _Toc261768693 自动售货机货物选择系统的程序流程图 PAGEREF _Toc261768693 h

6、 16 HYPERLINK l _Toc261768697 自动售货机出货,显示花钱数系统流程图 PAGEREF _Toc261768697 h 19 HYPERLINK l _Toc261768698 4自动售货机找钱,显示找钱数系统流程图 PAGEREF _Toc261768698 h 20 HYPERLINK l _Toc261768701 35出错报警系统流程图 PAGEREF _Toc261768701 h 21 HYPERLINK l _Toc261768702 第四章系统软、硬件设计实现 PAGEREF _Toc261768702 h 23 HYPERLINK l _Toc261

7、768703 1驱动程序 PAGEREF _Toc261768703 h 23 HYPERLINK l _Toc261768705 实现有效投币定时30秒以及累加计数程序: PAGEREF _Toc261768705 h 23 HYPERLINK l _Toc261768706 货物选择系统的驱动程序 PAGEREF _Toc261768706 h 23 HYPERLINK l _Toc261768707 报警系统的驱动程序 PAGEREF _Toc261768707 h 29 HYPERLINK l _Toc261768708 第六章 结束语 PAGEREF _Toc261768708 h

8、30 HYPERLINK l _Toc261768709 参考文献 PAGEREF _Toc261768709 h 31 HYPERLINK l _Toc261768710 致 谢 PAGEREF _Toc261768710 h 32 HYPERLINK l _Toc261768711 附 录 PAGEREF _Toc261768711 h 33自动售货机控制器设计摘 要 自动售货机是劳动密集型的产业构造向技术密集型社会转变的产物。本文设计了一种以INTEL 公司的8751单片机为核心的自动售货机装置的控制系统。详细介绍了自动售货机系统的方案设计、硬件选择、软件规划和编写,并重点描述了自动售货

9、机系统的工作原理、系统设计、软件编程的原那么和技巧。该系统以单片机8751芯片为核心,采用集中控制方式实现了对自动售货机全过程的自动控制。本系统选择44矩阵式键盘按键作为货物选择端,采用了2个可编程并行接口8255A实现并行接口的扩展,解决了单片机8751芯片输入/输出口引脚紧张的问题,实现了货物的掉出以及货币数的显示功能。此外,系统程序采用keil软件进行程序的编写和编译,该软件具有编程简单、查错方便、阅读容易等特点。汇编语言是程序的根本语言,具有容易理解,便于记忆和使用等特点。 关键词:自动售货机;控制系统,8751单片机;系统程序The new business tax under th

10、e Ordinance Analysis of Tax PlanningAbstractThe system that I design is an automat basing on microcontroller 8751to control the sell goods system .In the following paper introduce the system design and handware sellection software design and write . and emphases describe the automat system worke pri

11、nciple system design and sofeware programing technique The master mcu 8751 is INTEL Company. The system has some prominent excellences by concentrate control. It is very steady and credible,my system use 4*4keyboard to sellecting goods useing two programing parallel interface 8255 to resolve i/o ten

12、sional problem make goods dorp and coin display function . I program the system by software named keilc51, The whole of programmer is writed by asembeling language.keilc51 software makes my programmer easier and check work more convenient. Key words: vending machine;MCU8751;8255A keyboard/display 绪

13、论从自动售货机的开展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。从广义来讲投入硬币、纸币、信用卡等后便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。从供应的条件看,自动售货机可以充分补充人力资源的缺乏,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购置好奇心的自身性能,可

14、以很好地解决人工费用上升的问题等各项优点。自动售货机是以单片机为核心的自动化控制装置,它集按键选择技术、单片机技术和显示技术于一体,具有功能强大、可靠性高、使用方便、维护简单等特点。因此,在商业、生活中得到了广泛的应用。有些自动售货机不仅能够自动识别1元、5角硬币,而且能够自动识别20元、10元、5元纸币,还会自动找零,人机对话的应用性提高使自动售货机在国内大面积普及成为可能。 随着科技的开展及人们生活水平的提高,自动售货机市场的开展越来越呈现出多元化及个性化的需求。通过自动售货机进行自助购物正逐渐成为市民的一种新的消费时尚,快捷方便的购物方式满足了人们在当今科技高速开展的现代社会追求高品质生

15、活的需要。自动售货机在城市商业区、写字楼大厅、风景区、车站、码头、繁华街道等公共场所的布设能够美化亮化城市环境,方便群众生活,已经成为城市各角落的一道亮丽风景线。自动售货机必将在国内普及,并成为城市现代文明程度的一种象征性标志。本文详细介绍了如何控制、要求进行自动售货机系统的方案设计、硬件选择、软件规划和编写,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的原那么和技巧。本文共分为五章。系统介绍了自动售货机系统从控制方案,操作逻辑到系统软件等各个环节的设计及系统调试的方法和原那么。第一章简单介绍了自动售货机的系统结构,第二章介绍了自动售货机的系统硬件电路设计,第三章介绍了自动售货机的

16、系统软件程序设计及分析,第四章主要介绍了自动售货机的系统软件驱动程序实现第一章,自动售货机的系统结构1.1自动售货机的系统概述自动售货机是集光、机、电一体化的独立机构,它只需要顾客投币和按购物键选择即可自动售货及退找零钱,其工作程序如下列图1.1顾客投入货币机器自动计数顾客按动按钮机器送出选定商品顾客取出商品机器将余币送出顾客取出余币图1.1 自动售货机工作时序图售货机的工作原理是:从投币口送入货币,然后通过传感器采集数据、识别器判断货币的真伪并判别面值。2识别器把信息数据传给通信模块。3通信模块与售货机的主控系统通信,主控系统显示面值,启动售货机的面板键,显示出哪个货道有货,哪个货道已经售完

17、,并等待顾客按键选择商品。4顾客选择商品后,售货机自动把商品送出,等待顾客取走。5显示余额,如果金额足够多,顾客可以选择找币或者继续买商品;如果款额不够,售 货机经过延时予以退币。退币分为两种情况:一种是由货币识别器完成退纸币,另一种是由硬币的通信模块完成退硬币。6系统复零,完成售货。自动售货机的硬件原理构成如下列图2.2所示购货状态显示金额显示继电器&电磁铁串行输出接口扩展并行输出接口扩展CPU&ROM&RAM自动复位线路并行输入接口扩展无货检测识币器按钮图1.2 自动售货机硬件结构图综合所述,售货机系统可以分为三局部组成,即自动售货机的控制子系统、通讯子系统、硬币器子系统以及纸币器子系统。

18、其中控制子系统是本设计研究重点。这些内容在下文中进一步介绍。111自动售货过程的控制子系统简述控制子系统由以下四个局部组成,分别是预设自动售货机系统、金额累计、可售指示和退币系统、售完检测系统、售出累计及自测功能系统。1、预设自动售货机系统。自动售货机售出的同类商品可分为假设干品种,其售前设定价格须预先存放在控制系统内。售货机的价格设置由按键和存储器组成。通过按键选择被设价商品的种类及价格,并将价格写入存储器中,该存储器本身具有掉电保护功能,属于软件设置方式。此外,在简易售货机中,由于出售商品的种类少,价格变化下,使用币种单一,也可以用硬件设置价格,才用拨码开关对应方式,结构简单,操作方便。

19、2、金额累计、可售指示和退币系统。控制系统的核心CPU对识币、退币、无货检验及购货信号进行循环检查,当有识币信号后,将金额数值送入金额累计存储器中进行累计,并通过串行接口使可售指示灯亮,提示购货。此时可以按下购货按钮,由于CPU检测到有购货信号后,如金额累计器中的数值与预设价格相等,那么通过并行扩展接口驱动电磁阀或者微电机驱动出商品,并将金额累计存储器清零,完成一次售货过程,如累计金额大于预设价格时,驱动商品后,相减差额由信号驱动退币,实现退币和找钱功能。 3、售完检测系统。在自动售货机商品存储存道下方按照有接触行程开关,当存储存道有商品时,压下行程开关,自动售货机正常工作;当商品出售完毕时,

20、行程开关被释放,向CPU发出无货信号,经过检测通过串行扩展接口向相应的售完指示灯发出信号,使机身“售完指示灯亮,此种商品自动停售,即使投币金额到达该道商品预设价格数值,可售按钮仍然无法启动信号,金额累计存储器也不清零。 4、自动售货机售出累计及自测功能系统。该机CPU在每次售出商品后,向售出累计存储器中累计售出数据,通过自动售货机内部的按键可在金额显示窗口中读到累计结果。此外,在按下自测功能键后,出现自测功能信号,由外部按键操作,可检测各商品存储道的驱动商品功能。112自动售货过程的通讯子系统简述自动售卖系统的外围设备较为复杂,导致对主控制器的要求越来越高。为了简化设计,采用简单、稳定的内部通

21、讯总线协议非常必要。有些公司采用欧洲售货机制造协会EVMMA制定的MDB/ICP总线协议。该协议简洁明了,功能强大,可扩展性强并且对外挂设备数目没有限制,是理想的自动售卖系统内部总线协议。MDB/ICP协议是欧洲售货机制造协会制定的一套用于协调自动售货机的主控制器MMC与多个设外之间通讯的协议。MDB接口实际上是工作于波特率9600的主从型串行总线接口,所以外围设备例如硬币器、纸币器等均为主控制器传统上称为售货机控制器VMP的从机。所有外围设备与主控制器之间的通讯方式都一致。MDB协议的串行位格式为:1个起始位,8个数据位,1个方式位和1个停止位,共11位。其中方式位根据传递的方式的不同置0或

22、置1。在MDB总线上,VMC通过播送方式向外发送命令。第一字节为地址字节实际上只有高5位寻址信息,低3位为对外设的指令,该字节被所有的外设读取,但只有符号地址字节所指定的外设才处理其后的数据字节,并做出反响。在VMC到外设的数据中,地址字节的方式位被置1,数据字节的方式位被置0,外设通过检验接受到的方式位确定是地址指令还是数据。当数据从外设发送到主机时,最后送出的字节方式位被置1,标志着数据发送完毕。10VMC向外设发送的指令由一个字节、一些可选的数据字节一个校验和字节构成。发送指令后,外设应答VMC的通信块可以由一个数据块和一个字节组成,或者一个应答字节,或者一个无应答字节。如果外设应答数据

23、块的话,VMC将通过一个应答字节、无应答字节或重发字节应答外设传回的数据。自动售货机的功能简介1此次设计的自动售货机的功能简介根本原理:货币识别器对所投货币进行识别,根据金额将商品选择权提供用户,用户选择后,控制芯片发出指令将所选择商品从储藏料道中送达取物口。其功能描述:货物种类一共设有12种,这12种物品分别对应着12个不同的按键选择,其中1元,2元,3元价格不等的物品各4种;货币识别器能够识别1元,5元的货币,自动售货机能够实现货币累加功能。在规定的30秒中内,投了几次货币后,货币能够实现累加功能,这样机器就会把投入的货币总额数目输入中央控制元器件,进行处理;超过30秒后投币,投币无效,机

24、器自动把钱全部退出来。如果累计投入的货币数目超过物品的预设价格,机器能够实现找钱功能;如果投入的货币没有到达所选择物品的预设价格时,投入的钱将全部退还;在投入一次累加货币后选择物品,如果投入的累加货币数目大大超过所选择物品的预设单个价格时,那么能够实现选择同一个物品购置多个,在本设计中设为可以同时购置2个或3个物品。本设计中有一共有16个按键选择,其中12个是货物选择键,有2个是多项选择键一次购置2个或3个货物,还有1个确定键和1个取消键。如果没有按照预先设计的流程顺序进行按键选择,自动售货机将启动报警系统,等待再次正确的按键选择。在出货系统中设计了,显示购置货物的共花钱数。在找零系统中设计了

25、,显示找零的货币数。实现自动售货机的功能的设计思路采用单片机MSC-51系列中的8751作为中央控制元件;用P3.4和P3.5作为识别货币输入端;P1作为货物选择选择端采用4*4行列式键盘做为选择货物端;采用两个8255A扩展并行I/O接口,实现掉出货物功能、显示功能、找钱功能;P2.7和P2.6分别作为8255A的片选输入端。论文的内容及拟解决的问题 1、从投币口送入货币,然后经过传感器采集数据、识别器判别人民币的真伪并判别面值。 2、识别器把信息数据传给通讯模块。 3、通讯模块与售货机的主控系统通信,启动售货机的面板控制,并等待顾客按键选择商品。 4、顾客选择商品后,售货机自动把商品送出,

26、等待顾客取走。 5、金额足够多,售货机将自动找回钱。6、系统复零,完成售货。第二章自动售货机的系统硬件电路设计2.1自动售货机中央控制元件8751的介绍在本次设计中,中央控制元件采用MCS-51系列单片机中的8751。8751单片机是Intel公司生产的MCS-51系列单片机中的一种,其特性与MCS-51单片机根本一样。8751单片机内部结构:8751单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。其中,中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二

27、进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。8751内部有128个8位用户数据存储单元和128个专用存放器单元,它们是统一编址的,专用存放器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。87518751内部结构图2.1 8751内部结构MCS-51的引脚说明: 图2.2 8751引脚图MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,上图是它们的引脚配置,40个引脚中,正电源和地线两根,

28、外置石英振荡器的时钟线两根, 8751共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。,4组8位共32个I/O口,中断口线与P3口线复用。42.2货币识别系统货币识别分别有对硬币和纸币的识别,由此在下文中分别介绍说明:1,我国目前发行的1元、5角和1角硬币的金属原材料是为造币而专门使用的特殊合金,因此在它通过投币入口进入由电感和电容组成的特定高频振荡线路所产生的磁场时,金属材质和体积的体积的差异对电感量的影响大小也出现微弱差异,电感量的变化引起振荡频率的变化,与设定值进行比拟,确定某种硬币后,经窄带选频电路将频率信号变为电压信号输出,完成对金属硬币的识别。金属硬币识别器

29、种类繁多,但存币退币机构根本上分为两类:一类是平面是存币,电磁阀退币;另一类是圆筒式存币,步进机退币。当硬币投入后经过识别识别出电信号后,伪币和异物被排出真币按面值由几组分配电磁阀分配到不同存币腔体内备用。当收到退币找零电信号后,通过退币电磁阀或者退币电机拉杆,将存币腔内下部依电信号程序退出,完成自动售货机的退币找零功能。2,硬件数据采集设备的电源为发光二极光,所发出的光的波长峰值在红外线波段,但不是单光谱,其中红外光成分到达90%以上,因此,光源辐射光中起主要作用的实际上是红外辐射。实验中对各种纸币的特征的识别也主要是根据纸币的外表特征对红外辐射的敏感。红外辐射是光辐射中的一种类型,它具有普

30、通光辐射的共性。这主要是因为不同的纸币外表特征不同,所以在相同的光辐射下会呈现不同的反映,从而可以用来识别不同的纸币,具体地说,首先,钞票的纸张材料是特定的,所以同一种钞票具有一定程度的共性;其次,钞票外表的图案差异,对于相同面值的钞票而言,其说明的各种图案相同,不同面值的钞票之间说明图案有较大区别,所以,根据所述的光的辐射理论,也可以根据它们对相同光辐射的不同反映来判断起面值归属;再次,钞票流通过程中所造成的不同程度的污损,就会造成钞票外表特征的变化,接受光辐射的特性就是有所变化。因此,光辐射可以反映钞票的新旧程度;另外,相对于伪币的鉴别,因为伪币的纸张一般都无法满足真钞的纸张特性,而且,伪

31、币中某些图案达不到钞票的实际标准,如水印是在造纸过程中通过特征工艺抄制上去的无色图案,而伪钞的水印那么是通过一定方式轧印或描绘上去的等等,这都能在钞票对光辐射的接受信息中反映出来。但是光辐射在传输过程中,会受外界环境的影响而产生能量损失。比方经过大气传输时,就会受到大气成分的吸收,而在不同的环境条件下,大气的成分含量有某些程度的变化,因而导致能量损失的程度不同。所以光辐射到钞票介质的传输距离越短,所造成的能量损失的影响就越微小,如果硬件的性能较好,外界的这种影响可以不予考虑。本系统中光源采用发光二极管,所发出的光的波长峰值在红外波段,并且90%以上是红外线,但不是单光谱,还有其它光谱范围的光线

32、。接受管使用NPN型的光电三极管,工作在红外波长范围内,发射管和接受管分别有6个,采用光的透射方式,采集数据时,完全对应位于钞票的两侧。作为整个货币识别系统的核心局部,纸币控制器必须由一颗功能相对较强的嵌入式微处理器以及一系列外围器件构成。通过对各种微处理器的研究,考虑到开发本钱,我们最终选用8751作为控制器的中央处理单元。该处理器在上一章中已经做了简单介绍。8751拥有4个I/O口即P0、P1、P2、P3,它有两个可编程的定时器/计数器,分别称为定时器/计数器0和定时器/计数器1。它们都是16位加法计数结构,分别由TH0和TL0及TH1和TL1两个8位计数器组成。其主要功能是:处理器通过控

33、制发光二极管发光,当纸币进入时,入口处发光二极光投射过纸币的光强变化,被相应入口处的光电三极管接受到后转换为电信号,传给8751处理器,经过判断,处理器直接控制。由于时间的关系,识别货币器是如何设计、如何工作的,在这里将不做进一步的研究。本课题设计主要是研究自动售货机的选择货物、出货以及显示功能。2.3货物选择系统货物选择系统主要通过键盘操作来完成。键盘是人机交互中重要的输入装置,价格低廉,结构简单,使用方便,在单片机应用系统中得到广泛地应用。按键按照接口原理可分为编码键盘与非编码键盘两类,它们的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软

34、件来实现键盘的定义与识别。在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。2对于一组键或一个键盘,总有一个接口电路与CPU相连。CPU可以采用查询或中断方式了解有无将键输入,并检查是哪一个键按下,将该键号送入累加器ACC,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。 键盘按键无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的跳转。一个完善的键盘控制程序应

35、具备以下功能:(1) 检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。(2) 有可靠的逻辑处理方法。每次只处理一个按键,其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。(3) 准确输出按键值或键号,以满足跳转指令要求。2.4出货及显示花钱数系统由于还要实现显示花钱数这项功能,这样导致I/O接口紧张,考虑到8751自身资源有限,并不能很好的满足系统的要求,明显需要实现并行接口的扩展,在本设计中采用了8255A实现扩展并行I/O接口功能。 8255A是一个具有两个8位A口和B口和两个4位C口高/低4位并行输出输入端口的接口芯片。

36、8255A可作为提供TTL电平兼容的接口,如打印机、A/D、D/A转换器、键盘以及需要同时两位以上信息工作的一切形式的并行接口,还提供按位控制的功能。8255A能适应CPU与I/O接口之间的多种数据传送控制方式要求,如无条件传送,应答方式传送和中断方式传送。8255A使用方式字控制字和置位/复位控制字因而执行功能很强。1其内部结构如下:读/写控制 逻辑数据总线缓冲器D0D7A0RDWRB组控制CSPA07A组控制A1RESETA组 A口(8位)A组 PC上 (4位)B组 B口(8位)PB07PC47PC03B组 PC下 (4位)图2.3 8255A内部结构图中A1、A0和RD、WR及CS组合所

37、实现的端口寻址及各种结构功能表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的工作方式有3种,在本设计中只是采用了方式0方式0根本的输入/输出方式8255A的PA、PB、PC74、P30可分别被定义为方式0输入或方式0输入。方式0输出具有锁存功能,输入没有锁存。方式0适用于无条件传输数据的设备,双方不需要握手信息,就可以使数据简单地写入或读出。如读一组开关的状态、控制

38、一组指示灯的显示等。 本设计的显示用的是LED显示器,常用的LED显示器有LED状态显示器俗称发光二极管、LED七段显示器俗称数码管和LED十六段显示器。发光二极管可显示两种状态,用于系统状态显示;数码管用于数字显示;LED十六段显示器用于字符显示。其中所说的静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。这种显示方式的各位数码管相互独立,公共端恒定接地共阴极或接正电源共阳极。每个数码管的8个字段分别与一个8位I/O口地址相连,I/O口只要有段码输出,相应字符即显示出来,并保持不变,直到I/O口输出新的段码。采用静态显示方式,较小的电流即可获得较高的亮度,且占用CPU时间

39、少,编程简单,显示便于监测和控制,但其占用的口线多,硬件电路复杂,本钱高,只适合于显示位数较少的场合。6本设计的显示就是用的这种静态显示2.5找钱及显示找钱数系统本设计中,货币识别器能识别1元、2元、5元货币,并能实现货币累加功能。在通过投币后,将会把产生的信号输入给8751的P3.4和P3.5的引脚上,其中P3.4控制货币的累加,P3.5控制投币的有效时间30秒。再经过8751处理后,将会在找钱输出端产生与其相对应的信号输出,控制所选钱币的掉出,实现找钱功能。要实现显示找钱数这项功能也将会导致I/O接口紧张,而8751自身资源有限,它并不能很好的满足系统的要求,所以为了实现并行接口的扩展,在

40、本设计中也将采用了8255A实现扩展并行I/O接口功能。在上一节中已经详细介绍了8255A及其控制的LED显示,在本节中要实现的找钱、显示找钱数与出货系统的设计原理根本一致,在这里就不加以介绍了。26出错报警系统简述在本设计中,只有在按键选错的情况下,导致系统无法正常处理,才会出现报警现象。当出现错误的时候,8751将会控制8255A的PC端输出信号,再通过光电耦合,这样来驱动一个扬声器工作,实现报警功能。第三章自动售货机的系统软件程序设计 HYPERLINK l _Toc4166 自动售货机货币识别系统程序流程图IE、TMOD置初值,使T0为计数工作方式0,T1为定时工作方式0TH0、TL0

41、、TH1、TL1置初值,启动T0计数器、T1定时器,循环计数R0置初值601是否完成? Y N检测T0是否有脉冲?N YT0、T1开始计数T1计数是否溢出?N YTH1、TL0重新设置计数初值将TL0计的数值存入R1、MONEY单元,然后TL0清零识别货币、累加计数结束 图3.1 识别货币系统驱动程序流程图自动售货机货物选择系统的程序流程图本设计中,分别设置了价格分别为1元、2元、3元不等的货物,这里只列出一元货物处理子程序的流程图如下:图3.2 按键选择程序流程图 图3.3 1元钱货物处理子程序流程图自动售货机出货,显示花钱数系统流程图 本设计设置了价格分别为1元、2元、3元不等的货物,一共

42、12种。在通过按键选择物品后,将会把产生的信号输入给8255A的P1的引脚上,8255接收信号后,经过处理后,将会在货物输出端产生与其相对应的信号输出,控制所选货物的掉出。 图3.4出货及显示的功能驱动程序流程图4自动售货机找钱,显示找钱数系统流程图本设计用8255A的PA控制找钱,用PB控制LED显示找钱数,其中能够找钱货币的面值为1元、2元、5元。PA0控制1元,PA1控制2元,PA2控制2元,PA3控制5元。图3.5找钱及显示功能驱动程序流程图由找钱系统1图图见附录我们可以看到该芯片8255A的CS与8751的P2.6相连,A0、A1分别与74LS373的3Q、4Q相连。当的3Q、4Q输

43、出不同组合时,那么控制选择了8255A的PA、PB、PC口,当取00时对应PA口输入输出,当取01时对应PB口输入输出,当取10时对应PC口输入输出;由于也受到P2.6的控制,只有当P2.6输出为0时,才能片选到该芯片8255A。最后我们可以计算得出PA、PB、PC及控制口对应的地址分别为BFF3H、BFF7H、BFFBH、和BFFFH。35出错报警系统流程图图3.6报警功能驱动程序流程图由找钱系统1图图见附录我们可以看到该芯片8255A的CS与8751的P2.6相连,A0、A1分别与74LS373的3Q、4Q相连。这个已经在上一章中已经说过了,在这里就不再画了。当的3Q、4Q输出不同组合时,

44、那么控制选择了8255A的PA、PB、PC口,当取10时对应PC口输入输出;由于也受到P2.6的控制,只有当P2.6输出为0时,才能片选到该芯片8255A。最后我们可以计算得出PA、PB、PC及控制口对应的地址分别为BFF3H、BFF7H、BFFBH、和BFFFH。第四章系统软、硬件设计实现 HYPERLINK l _Toc4420 1驱动程序由于时间关系,本次毕业设计的仿真结果就不再这里做详细的介绍了,现列出各软件的驱动程序如下:实现有效投币定时30秒以及累加计数程序: ORG1000HMONEYDATA2000HMOVIE,#8AHMOV TMOD,#04H;设置T1为定时工作方式0,T0

45、为计数工作方式0MOVTH0,#00H;置计数初值MOVTL0,#00HMOVTH1,#9EH;置计数初值MOVTL1,#58HSETBTR0;启动计数器SETBTR1;启动定时器MOVR0,#601LOOP1:DJNZR0,T1_END;循环600次,实现30秒计时MOVA,P3JBCACC.5,LP1LP1:JBCTF1,NEXT;查询计数溢出SJMPLP1NEXT:MOVTH1,#9EH;重新设置计数初值MOVTL1,#58HJMPLOOP1T1_END:MOVR1,TL0MOVMONEY,R1;将投入的货币累加数存入MONEYCLRAMOVTL0,AMOVTH0,ARET货物选择系统的

46、驱动程序VULE EQU40HMOVA,MONEYMOVB,ASJMPKEYKEY:MOVR2,#0FEH;设置键码存放器 ANLP1,#0F0H;设置初始扫描码 MOV A, P1;全扫描行线 CPL A ;取反ANLA,#0F0H ;屏蔽回扫值低4位 JZKEY3 ;无键闭合,返回 LCALLD10MS ;延时10ms去抖动 MOVR3,#04H ;设置扫描行数 ORL P1,#0FH4 ;位描行线全置高KEY1:MOVP1,R2 ;逐行扫描键盘 MOV A,P1 ;读入状态值 CPL A ;取反 ANL A,#0F0H ;屏蔽状态低4位 JNZ KEY2 ;有键闭合,转键处理 MOV A

47、,R1 ;无键闭合,继续扫描下一个按键 RL A;左移扫描码,指向下一行扫描线 MOV R2,A DJNZ R3,KEY1 ;逐行扫描未完成,继续 LJMP KEY3 ;本轮扫描无键闭合,返回KEY2:MOV A,P1 ;键处理 ORL A,#0FH;扫描码与状态值拼装成特征字节 ANLA,R2 CPLA;取反,特征字节变换成键位码 MOV VULE,A;保存键位码 LCALLKEYPCS ;用查表法查找键码WAIT: ANLP1,#0F0H ;判断键释放否? MOVA,P1 ANLA,#0F0H CPLA JNZWAIT RETKET3: MOV VULE,#0FFH;无键闭合,置无效码 R

48、ET查找键码子程序如下: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;找到键位码,键码装入键码存放器VULE MOV RET KEYP2: INC R5;键码计数器加1 INC DPTR;键码表地址加1 DJNZ R4,KEYP1;未查完16个按键,继续 MOV VULE,#0FFH;无键闭合,置无效码 RETKEYTAB: DB 11H;

49、键码 = 00H 对应键0 DB 21H ;键码 = 00H 对应键1 DB 41H ;键码 = 00H 对应键2 DB 81H ;键码 = 00H 对应键3 DB 12H ;键码 = 00H 对应键4 DB 22H ;键码 = 00H 对应键5 DB 42H ;键码 = 00H 对应键6 DB 82H ;键码 = 00H 对应键7 DB 14H ;键码 = 00H 对应键8 DB 24H ;键码 = 00H 对应键9 DB 44H ;键码 = 00H 对应键A DB 84H ;键码 = 00H 对应键B DB 18H ;键码 = 00H 对应键C DB 28H ;键码 = 00H 对应键D

50、DB 48H ;键码 = 00H 对应键E DB 88H ;键码 = 00H 对应键F MOV A,R5 MOV R6,A;将选物按键码存入R6中 ANL R0,#00H;R0清零 ANL R1,#00H;R1清零*选择1元钱的货物A*CJNEA,#00H,NEXTB;判断是否按下键0JMP1YUAN*选择1元钱的货物B*NEXTB:CJNEA,#01H,NEXTC;判断是否按下键1JMP1YUAN*选择1元钱的货物C*NEXTC:CJNEA,#02H,NEXTD;判断是否按下键2JMP1YUAN*选择1元钱的货物D*NEXTD:CJNEA,#03H,NEXTE;判断是否按下键31YUAN:M

51、OVA,B;将投入的货币累加数存入存放器BCJNEA,#01H,NEXTA1;判断投入的货币数是否为1元钱MOVR0,#01H;选择的货物数为1个LOOPA1:LCALLKEY;等待是否有键按下MOVA,R5CJNEA,#0FH,NEXTA2;按下确定键,所选货物掉出LJMPOUTGOODSNEXTA2:CJNEA,#0EH,VOICEA1;按下取消键MOVA,B;退还全部的钱JMPOUTMONEYVOICEA1:LCALLVOICE;选择按下其他键,报警JMPLOOPA1;返回,等到有键按下NEXTA1:JNCNEXTA3;投入的货币数小于所选择商品的预设价格JMPOUTMONEY;钱全部退

52、还NEXTA3:LCALLKEY;等待是否有键按下MOVA,R5CJNEA,#0CH,NEXTA4;选择一次性购置2个货物MOVA,BCJNZA,#02H,NEXTA5;判断投入的货币数是否为2元MOVR0,#02H;将选择的货物数量值存入R0LOOPA2:LCALLKEY;等待是否有键按下MOVA,R5CJNEA,#0FH,NEXTA6;按下确定键,所选货物掉出LJMPOUTGOODSNEXTA6:CJNEA,#0EH,VOICEA2MOVA,B;退还全部的钱JMPOUTMONEYVOICEA2:LCALLVOICE;选择按下其他键,报警JMPLOOPA2;返回,等到有键按下NEXTA5:J

53、NCNEXTA7;投入的货币数小于所选货物的预设价格JMPOUTMONEY;钱全部退还NEXTA7:LCALLKEY;等待是否有键按下MOVA,R5CJNEA,#0FH,NEXTA8;按下确定键,所选货物掉出MOVA,BSUBBA,#02HMOVR0,#02H;将选择的货物数量值存入R0MOVR1,A;将找钱数存入R1LCALLOUTMONEY;找钱JMPOUTGOODS;所选货物掉出NEXTA8:CJNEA,#0EH,VOICEA3MOVA,B;退还全部的钱JMPOUTMONEYVOICEA3:LCALLVOICE;选择按下其他键,报警JMPNEXTA7;返回,等到有键按NEXTA4:CJN

54、EA,#0DH,NEXTA9;选择一次性购置3个货物MOVA,BCJNEA,#03H,NEXTA10;判断投入的货币数是否为3元MOVR0,#03H;将选择的货物数量值存入R0LOOPA3:LCALLKEY;等待是否有键按下MOVA,R5CJNEA,#0FH,NEXTA11;按下确定键,所选货物掉出LJMPOUTGOODSNEXTA11:CJNEA,#0EH,VOICEA4MOVA,B;退还全部的钱JMPOUTMONEYVOICEA4:LCALLVOICE;选择按下其他键,报警JMPLOOPA3;返回,等到有键按下NEXTA10:JNCNEXTA12;投入的货币数小于所选货物的预设价格JMPO

55、UTMONEY;钱全部退还NEXTA12:LCALL KEY;等待是否有键按下MOVA,R5CJNEA,#0FH,NEXTA13;按下确定键,所选货物掉出MOVA,BSUBBA,#03HMOVR0,#03H;将选择的货物数量值存入R0MOVR1,A;将找钱数存入R1LCALLOUTMONEY;找钱JMPOUTGOODS;所选货物掉出NEXTA13:CJNEA,#0EH,VOICEA5MOVA,B;退还全部的钱JMPOUTMONEYVOICEA5:LCALLVOICE;选择按下其他键,报警JMPNEXTA12;返回,等到有键按NEXTA9:LCALL KEY;等待是否有键按下MOVA,R5CJN

56、EA,#0FH,NEXTA14;按下确定键,所选货物掉出MOVA,BSUBBA,#01HMOVR0,#01H;将选择的货物数量值存入R0MOVR1,A;将找钱数存入R1LCALLOUTMONEY;找钱JMPOUTGOODS;所选货物掉出NEXTA14:CJNEA,#0EH,VOICEA6MOVA,B;退还全部的钱JMPOUTMONEYVOICEA6:LCALLVOICE;选择按下其他键,报警JMPNEXTA9;返回,等到有键按下*出错报警*NEXYM:LCALLVOICE;报警JMPKEY报警系统的驱动程序VOICE:MOVDPTR,#BFFFH;控制口地址送数据指针MOVA,#80H; PC输出MOVXDPTR,A;将方式控制字写入8255A控制口,PC输出MOVXDPTR,#BFFBH;PC口地址送数据指针MOVA,#01HMOVXDPTR,A;PC0引脚输出一个高电平1,实现报警功能LCALLD10MS;延时10msANLA,#00HMOVXDPTR,A;报警取消RETD10MS:MOVR7,#0AH;延时10ms的驱动程序DL:MOVR6,#0FFHDL

温馨提示

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

评论

0/150

提交评论