[学士]单片机控制自动售货机_secret(073522025)_第1页
[学士]单片机控制自动售货机_secret(073522025)_第2页
[学士]单片机控制自动售货机_secret(073522025)_第3页
[学士]单片机控制自动售货机_secret(073522025)_第4页
[学士]单片机控制自动售货机_secret(073522025)_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

目 录 摘 要 VIII Abstract IX 绪论 1 第一章 自动售货机的系统结构 3 1 1 自动售货机的系统概述 3 1 1 1 自动售货过程的控制子系统简述 4 1 1 2 自动售货过程的通讯子系统简述 5 自动售货机的功能简介 6 1 此次设计的自动售货机的功能简介 6 实现自动售货机的功能的设计思路 6 论文的内容及拟解决的问题 7 第二章 自动售货机的系统硬件电路设计 8 2 1 自动售货机中央控制元件 8751 的介绍 8 2 2 货币识别系统 9 2 3 货物选择系统 11 2 4 出货及显示花钱数系统 11 2 5 找钱及显示找钱数系统 14 2 6 出错报警系统简述 14 第三章 自动售货机的系统软件程序设计 15 自动售货机货币识别系统程序流程图 15 自动售货机货物选择系统的程序流程图 16 自动售货机出货 显示花钱数系统流程图 19 4 自动售货机找钱 显示找钱数系统流程图 20 3 5 出错报警系统流程图 21 第四章 系统软 硬件设计实现 23 1 驱动程序 23 4 1 1 实现有效投币定时 30 秒以及累加计数程序 23 4 1 2 货物选择系统的驱动程序 23 4 1 3 报警系统的驱动程序 29 第五章 结束语 30 参考文献 31 致 谢 32 附 录 33 自动售货机控制器设计 摘 要 自动售货机是劳动密集型的产业构造向技术密集型社会转变的产物 本文设计 了一种以 INTEL 公司的 8751 单片机为核心 的自动售货机装置的控制系统 详细 介绍了自动售货机系统的方案设计 硬件选择 软件规划和编写 并重点描述了自 动售货机系统的工作原理 系统设计 软件编程的原则和技巧 该系统以单片机 8751 芯片为核心 采用集中控制方式实现了对自动售货机全过程的自动控制 本 系统选择 4 4 矩阵式键盘按键作为货物选择端 采用了2 个可编程并行接口 8255A 实现并行接口的扩展 解决了单片机8751 芯片输入 输出口引脚紧张的问 题 实现了货物的掉出以及货币数的显示功能 此外 系统程序采用keil 软件 进行程序的编写和编译 该软件具有编程简单 查错方便 阅读容易等特点 汇编 语言是程序的基本语言 具有容易理解 便于记忆和使用等特点 关键词 自动售货机 控制系统 8751 单片机 系统程序 The new business tax under the Ordinance Analysis of Tax Planning Abstract The 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 principle 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 tensional 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 绪 论 从自动售货机的发展趋势来看 它的出现是由于劳动密集型的产业构造向技术密 集型社会转变的产物 大量生产 大量消费以及消费模式和销售环境的变化 要求出 现新的流通渠道 而相对的超市 百货购物中心等新的流通渠道的产生 人工费用也 不断上升 再加上场地的局限性以及购物的便利性等这些因素的制约 无人自动售货 机作为一种必须的机器便应运而生了 从广义来讲投入硬币 纸币 信用卡等后便可以销售商品的机械 从狭义来讲就 是自动销售商品的机械 从供给的条件看 自动售货机可以充分补充人力资源的不足 适应消费环境和消费模式的变化 24 小时无人售货的系统可以更省力 运营时需要的 资本少 面积小 有吸引人们购买好奇心的自身性能 可以很好地解决人工费用上升 的问题等各项优点 自动售货机是以单片机为核心的自动化控制装置 它集按键选择技术 单片机 技术和显示技术于一体 具有功能强大 可靠性高 使用方便 维护简单等特点 因此 在商业 生活中得到了广泛的应用 有些 自动售货机不仅能够自动识别 1 元 5 角硬币 而且能够自动识别20 元 10 元 5 元纸币 还会自动找零 人 机对话的应用性提高使自动售货机在国内大面积普及成为可能 随着科技的发展及人们生活水平的提高 自动售货机市场的发展越来越呈现出 多元化及个性化的需求 通过自动售货机进行自助购物正逐渐成为市民的一种新 的消费时尚 快捷方便的购物方式满足了人们在当今科技高速发展的现代社会追求 高品质生活的需要 自动售货机在城市商业区 写字楼大厅 风景区 车站 码头 繁华街道等公共场所的布设能够美化亮化城市环境 方便群众生活 已经成为城市 各角落的一道亮丽风景线 自动售货机必将在国内普及 并成为城市现代文明程度 的一种象征性标志 本文详细介绍了如何控制 要求进行自动售货机系统的方案设计 硬件选择 软件规划和编写 并重点描述了自动售货机系统的工作原理 系统设计 软件编程 的原则和技巧 本文共分为五章 系统介绍了自动售货机系统从控制方案 操作逻辑到系统软 件等各个环节的设计及系统调试的方法和原则 第一章简单介绍了自动售货机的系 统结构 第二章介绍了自动售货机的系统硬件电路设计 第三章介绍了自动售货机 的系统软件程序设计及分析 第四章主要介绍了自动售货机的系统软件驱动程序实 现 第一章 自动售货机的系统结构 1 1自动售货机的系统概述 自动售货机是集光 机 电一体化的独立机构 它只需要顾客投币和按购物键 选择即可自动售货及退找零钱 其工作程序如下图1 1 图 1 1 自动售货机工作时序图 售货机的工作原理是 1 从投币口送入货币 然后通过传感器采集数据 识别器判断货币的真伪并判 别面值 2 识别器把信息数据传给通信模块 3 通信模块与售货机的主控系统通信 主控系统显示面值 启动售货机的面板 键 显示出哪个货道有货 哪个货道已经售完 并等待顾客按键选择商品 4 顾客选择商品后 售货机自动把商品送出 等待顾客取走 5 显示余额 如果金额足够多 顾客可以选择找币或者继续买商品 如果款 机器自动计数 顾客投入货币 顾客按动按钮 顾客取出余币 机器将余币送出 顾客取出商品 机器送出选定商品 额不够 售 货机经过延时予以退币 退币分为两种情况 一种是由货币识别器 完成退纸币 另一种是由硬币的通信模块完成退硬币 6 系统复零 完成售货 自动售货机的硬件原理构成如下图2 2 所示 图 1 2 自动售货机硬件结构图 综合所述 售货机系统可以分为三部分组成 即自动售货机的控制子系统 通 讯子系统 硬币器子系统以及纸币器子系统 其中控制子系统是本设计研究重点 这些内容在下文中进一步介绍 1 1 1 自动售货过程的控制子系统简述 控制子系统由以下四个部分组成 分别是预设自动售货机系统 金额累计 可 售指示和退币系统 售完检测系统 售出累计及自测功能系统 1 预设自动售货机系统 自动售货机售出的同类商品可分为若干品种 其售前设 定价格须预先寄存在控制系统内 售货机的价格设置由按键和存储器组成 通过按 键选择被设价商品的种类及价格 并将价格写入存储器中 该存储器本身具有掉电 保护功能 属于软件设置方式 此外 在简易售货机中 由于出售商品的种类少 价格变化下 使用币种单一 也可以用硬件设置价格 才用拨码开关对应方式 结 构简单 操作方便 2 金额累计 可售指示和退币系统 控制系统的核心CPU 对识币 退币 无货 检验及购货信号进行循环检查 当有识币信号后 将金额数值送入金额累计存储器 中进行累计 并通过串行接口使可售指示灯亮 提示购货 此时可以按下购货 识币器无货检测 并行输入接口扩展自动复位线路 CPU设置 T1 为定时工作方式 0 T0 为计数 工作方式 0 MOVTH0 00H 置计数初值 MOVTL0 00H MOVTH1 9EH 置计数初值 MOVTL1 58H SETBTR0 启动计数器 SETBTR1 启动定时器 MOVR0 601 LOOP1 DJNZR0 T1 END 循环 600 次 实现 30 秒计时 MOVA P3 JBCACC 5 LP1 LP1 JBCTF1 NEXT 查询计数溢出 SJMPLP1 NEXT MOVTH1 9EH 重新设置计数初值 MOVTL1 58H JMPLOOP1 T1 END MOVR1 TL0 MOVMONEY R1 将投入的货币累加数存入 MONEY CLRA MOVTL0 A MOVTH0 A RET 4 1 2 货物选择系统的驱动程序 VULE EQU40H MOVA MONEY MOVB A SJMPKEY KEY MOVR2 0FEH 设置键码寄存器 ANLP1 0F0H 设置初始扫描码 MOV A P1 全扫描行线 CPL A 取反 ANLA 0F0H 屏蔽回扫值低 4 位 JZKEY3 无键闭合 返回 LCALL D10MS 延时 10ms 去抖动 MOVR3 04H 设置扫描行数 ORL P1 0FH4 位描行线全置高 KEY1 MOVP1 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 扫描码与状态值拼装成特征字节 ANLA R2 CPLA 取反 特征字节变换成键位码 MOV VULE A 保存键位码 LCALL KEYPCS 用查表法查找键码 WAIT ANL P1 0F0H 判断键释放否 MOV A P1 ANLA 0F0H CPLA JNZWAIT RET KET3 MOV VULE 0FFH 无键闭合 置无效码 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 找到键位码 键码装入键码寄存器 VULE MOV RET KEYP2 INC R5 键码计数器加 1 INC DPTR 键码表地址加 1 DJNZ R4 KEYP1 未查完 16 个按键 继续 MOV VULE 0FFH 无键闭合 置无效码 RET KEYTAB DB 11H 键码 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 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 判断是否按下键 0 JMP1YUAN 选择 1 元钱的货物 B NEXTB CJNEA 01H NEXTC 判断是否按下键 1 JMP1YUAN 选择 1 元钱的货物 C NEXTC CJNEA 02H NEXTD 判断是否按下键 2 JMP1YUAN 选择 1 元钱的货物 D NEXTD CJNEA 03H NEXTE 判断是否按下键 3 1YUAN MOVA B 将投入的货币累加数存入寄存器 B CJNEA 01H NEXTA1 判断投入的货币数是否为 1 元钱 MOVR0 01H 选择的货物数为 1 个 LOOPA1 LCALLKEY 等待是否有键按下 MOVA R5 CJNEA 0FH NEXTA2 按下确定键 所选货物掉出 LJMPOUTGOODS NEXTA2 CJNE A 0EH VOICEA1 按下取消键 MOVA B 退还全部的钱 JMPOUTMONEY VOICEA1 LCALLVOICE 选择按下其他键 报警 JMPLOOPA1 返回 等到有键按下 NEXTA1 JNCNEXTA3 投入的货币数小于所选择商品的预设价格 JMPOUTMONEY 钱全部退还 NEXTA3 LCALLKEY 等待是否有键按下 MOVA R5 CJNEA 0CH NEXTA4 选择一次性购买 2 个货物 MOVA B CJNZA 02H NEXTA5 判断投入的货币数是否为 2 元 MOVR0 02H 将选择的货物数量值存入 R0 LOOPA2 LCALLKEY 等待是否有键按下 MOVA R5 CJNEA 0FH NEXTA6 按下确定键 所选货物掉出 LJMPOUTGOODS NEXTA6 CJNE A 0EH VOICEA2 MOVA B 退还全部的钱 JMPOUTMONEY VOICEA2 LCALLVOICE 选择按下其他键 报警 JMPLOOPA2 返回 等到有键按下 NEXTA5 JNCNEXTA7 投入的货币数小于所选货物的预设价格 JMPOUTMONEY 钱全部退还 NEXTA7 LCALLKEY 等待是否有键按下 MOVA R5 CJNEA 0FH NEXTA8 按下确定键 所选货物掉出 MOVA B SUBBA 02H MOVR0 02H 将选择的货物数量值存入 R0 MOVR1 A 将找钱数存入 R1 LCALL OUTMONEY 找钱 JMPOUTGOODS 所选货物掉出 NEXTA8 CJNE A 0EH VOICEA3 MOVA B 退还全部的钱 JMPOUTMONEY VOICEA3 LCALLVOICE 选择按下其他键 报警 JMPNEXTA7 返回 等到有键按 NEXTA4 CJNE A 0DH NEXTA9 选择一次性购买 3 个货物 MOVA B CJNEA 03H NEXTA10 判断投入的货币数是否为 3 元 MOVR0 03H 将选择的货物数量值存入 R0 LOOPA3 LCALLKEY 等待是否有键按下 MOVA R5 CJNEA 0FH NEXTA11 按下确定键 所选货物掉出 LJMPOUTGOODS NEXTA11 CJNEA 0EH VOICEA4 MOVA B 退还全部的钱 JMPOUTMONEY VOICEA4 LCALLVOICE 选择按下其他键 报警 JMPLOOPA3 返回 等到有键按下 NEXTA10 JNC NEXTA12 投入的货币数小于所选货物的预设价格 JMPOUTMONEY 钱全部退还 NEXTA12 LCALL KEY 等待是否有键按下 MOVA R5 CJNEA 0FH NEXTA13 按下确定键 所选货物掉出 MOVA B SUBBA 03H MOVR0 03H 将选择的货物数量值存入 R0 MOVR1 A 将找钱数存入 R1 LCALL OUTMONEY 找钱 JMPOUTGOODS 所选货物掉出 NEXTA13 CJNEA 0EH VOICEA5 MOVA B 退还全部的钱 JMPOUTMONEY VOICEA5 LCALLVOICE 选择按下其他键 报警 JMPNEXTA12 返回 等到有键按 NEXTA9 LCALL KEY 等待是否有键按下 MOVA R5 CJNEA 0FH NEXTA14 按下确定键 所选货物掉出 MOVA B SUBBA 01H MOVR0 01H 将选择的货物数量值存入 R0 MOVR1 A 将找钱数存入 R1 LCALL OUTMONEY 找钱 JMPOUTGOODS 所选货物掉出 NEXTA14 CJNEA 0EH VOICEA6 MOVA B 退还全部的钱 JMPOUTMONEY VOICEA6 LCALLVOICE 选择按下其他键 报警 JMPNEXTA9 返回 等到有键按下 出错报警 NEXYM LCALLVOICE 报警 JMPKEY 4 1 3报警系统的驱动程序 VOICE MOVDPTR BFFFH 控制口地址送数据指针 MOVA 80H PC输出 MOVX DPTR A 将方式控制字写入8255A控制口 PC输 出 MOVX DPTR BFFBH PC口地址送数据指针 MOVA 01H MOVX DPTR A PC0引脚输出一个高电平 1 实现 报警功能 LCALL D10MS 延时10ms ANLA 00H MOVX DPTR A 报警取消 RET D10MS MOVR7 0AH 延时10ms的驱动程序 DL MOVR6 0FFH DL6 DJNZR6 DL6 DJNZR7 DL RET 第五章 结束语 通过这次毕业设计 使我得到了一次用专业知识 专业技能分析和解决问题全 面系统的锻炼 使我在单片机的基本原理 单片机应用系统开发过程 以及在常用 编程设计思路技巧 特别是汇编语言 的掌握方面都能向前迈了一大步 为日后成 为合格的应用型人才打下良好的基础 经过这几个月的学习 研究以及 老师的细心指导 终于按时完成了毕业设计 本文 中 自动售货机控制器系统就是利用了8751 和 8255A 芯片的 I O 引角 系统统 采用 MSC 51 系列单片机 Intel8751 和可编程并行 I O 接口芯片 8255A 为中心器 件来设计自动售货机的控制器 实现了能根据计量投入货币的累加大小 选择 12 种不同的货物 可以同时购买2 个或 3 个 显示花钱数以及找钱数的功能 显 示数值直接通过 8255A 的 PB 输出 本文系统设计简便 实用性强 操作简单 程 序设计简便 由于时间等多方面的原因 本次毕业设计的仿真结果没有在论文中做详 细具体的介绍 此后我将会继续研究力求更加圆满地完成此次设计 这次的毕业设计是我学生生涯最后一次也是非常难得的一次理论与实际相结合的 机会 我摆脱了单纯的理论知识学习状态 理论知识和实际设计的结合锻炼了我的综 合运用所学专业基础知识的能力 同时也提高我查阅文献资料 设计规范以及电脑制 图等其他专业能力水平 而且通过对整体的掌控 对局部的取舍 以及对细节的斟酌 处理 都使我的能力得

温馨提示

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

评论

0/150

提交评论