基于单片机的自动售货机设计毕业设计(编辑修改稿)内容摘要:
9C51 的 P1 的引脚上, 89C51 接收信号后,经过处理后,将会在货物输出端 产生与其相对应的信号输出,控制所选货物的掉出。 本次设计用 ~ 作为货物的输出端 ,在货物的输出端采用光电隔离技术 ,对于光电隔离技术这里不做介绍 ,在这里用一个 LED 指示灯代替货物的掉出情况 ,若有货物掉出则对应输出口为高电平 ,则指示灯亮,反之指示灯不亮。 由于这里P0 口作通用的 I/O 口输出,所以必须接上拉电阻,如图 所示。 图 出货程序流程 找钱系统 基于单片 机的自动售货机系统设计 第 28 页 共 62 页 本次设计中采用 ~ , ~ 1元找零口、 2元找零口、 2元找零口、 5元找零口。 这样设计的目的是方便实现不同数额的找零输出。 同出货系统一样,找钱系统也用 LED指示灯来表示找零,对应的端口上若指示灯亮则表示有零钱掉出。 图 找 钱程序流程图 四、设计仿真 Proteus 简介 基于单片 机的自动售货机系统设计 第 29 页 共 62 页 Proteus 嵌入式系统仿真与开发平台是英国 Labcenter 公司开发的,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台。 它是一种可视化的支持多种型号单片机(如 5 PIC、 AVR、 Motorola hcll 等),并且支持与当前流行的单片机开发环境( Keil、 MPLAB、 IAR)连接调试的软硬件仿真系统。 Proteus 除了具有和其他 EDA 工具一样的原理图、 PCB 自动或人工布线及电路仿真功能外,针对微控制系统与外设的混合电路的电路仿真、软件仿真、系统协同仿真也做到了一体化和互动效果,是目前电子设计爱好者广泛使用的电子线路设计与仿真软件 Proteus 和 Multisim 功能的联合和进一步发展。 Proteus 软件已有近 20 年的历史,在全球拥有庞大的企业用户群,是目前唯一能够对 各种处理器进行实时仿真、调试与测试的 EDA 工具,真正实现了在没有目标原型时就可对系统进行设计、测试与验证。 由于 Proteus 软件包括逼真的协同仿真功能,得到了包括剑桥大学在内的众多大学用户作为电子学或嵌入式系统的课程教学、实验和水平考试平台。 目前,Proteus 在国内单片机开发者及单片机爱好者之中已开始普及,有很多开发者已经开始用此开发环境进行仿真。 ]5[ 仿真电路 用 Keil 软件仿真的结果如图所示 : 基于单片 机的自动售货机系统设计 第 30 页 共 62 页 图 Ke il 仿真 基于单片 机的自动售货机系统设计 第 31 页 共 62 页 假如投入 5 元钱货币 ,操作依次为按 2 元货物选择键、确定键 ,则在 proteus 里的仿真结果如下图所示: 基于单片 机的自动售货机系统设计 第 32 页 共 62 页 基于单片 机的自动售货机系统设计 第 33 页 共 62 页 基于单片 机的自动售货机系统设计 第 34 页 共 62 页 基于单片 机的自动售货机系统设计 第 35 页 共 62 页 基于单片 机的自动售货机系统设计 第 36 页 共 62 页 基于单片 机的自动售货机系统设计 第 37 页 共 62 页 附录 本次设计的完整程序 MONEY EQU 0040H ;定义投币显示存储单元 RS EQU RW EQU E EQU ************** 投币总数 LCD 显示程序 ************* MAIN: MOV MONEY,01H ;赋予 MONEY 单元初值为 1 START: ACALL DELAY ;调用延时程序 MOV P2,01H。 写指令 01H,清屏 LCALL ENABLE MOV P2,38H。 写指令 38H,设定 LCD 为 16*2 显示, 5*7 点阵, 8 位数据接口 LCALL ENABLE MOV P2,0FH。 写指令 0FH,显示 ON,光标 ON,闪烁 ON LCALL ENABLE MOV P2,06H。 写指令 06H,光标输入方式增量移位 LCALL ENABLE MOV P2,80H。 第一行起始字符地址 LCALL ENABLE MOV DPTR,TABLE。 显示字符表头地址 LCALL DISP。 显示第一行数据 RET。 返回 基于单片 机的自动售货机系统设计 第 38 页 共 62 页 ENABLE: CLR RS。 写指令子程序 CLR RW CLR E LCALL DELAY SETB E RET DISP: MOV R4,6。 准备显示一行 6 个字符 LOOP1: MOV A,00H。 投币数送 A MOV R1,MONEY L1: ADD A,06H ;设置偏移量为 6 DJNZ R1,L1 MOVC A,@A+DPTR。 查表取得要显示的数据 LCALL DISPF。 写入一个数据 INC DPTR。 数据表指针加 1,准备取下一个数据 DJNZ R4,LOOP1。 一行没有显示完就继续 JMP INSERT DISPF: MOV P2,A。 写 1 字节数据到显示端口 SETB RS。 写数据时序 (请参照 1602LCD 使用说明书 ) CLR RW CLR E LCALL DELAY SETB E RET TABLE: DB 0 YUAN 基于单片 机的自动售货机系统设计 第 39 页 共 62 页 DB 0 YUAN DB 1 YUAN DB 2 YUAN DB 3 YUAN DB 4 YUAN DB 5 YUAN DB 6 YUAN DB 7 YUAN DB 8 YUAN DB 9 YUAN DB 10YUAN DB 11YUAN DB 12YUAN DB 13YUAN DB 14YUAN DB 15YUAN **************** 投币 口程序 *************** INSERT:MOV A,P3。 投币口检测 CPL A JBC ,S1。 P3 口有键按下转 S1 LCALL KEY MOV A,R5 CJNE A,0FFH,CHECK。 货物选择键盘有键按下转 CHECK 程序 AJMP INSERT 基于单片 机的自动售货机系统设计 第 40 页 共 62 页 S1: LCALL D10MS。 延时消抖 MOV A,P3 CPL A JBC ,S2 S2: MOV R1,MONEY INC R1 MOV MONEY,R1 WAIT1: MOV A,P3 CPL A JBC ,WAIT1 投币开关未松开继续等待,否则返回 START AJMP START ;返回 ************* *** 键盘程序 ***************** KEY: MOV A,P1 ;读 P1 口 CPL A JNZ KEY2。 A 不等零说明有键按下转 KEY2 MOV R5,0FFH RET KEY2: LCALL D10MS。 延时消抖 MOV A,P1 CPL A JNZ KEY3 MOV R5,0FFH RET KEY3: JNB ,K1 基于单片 机的自动售货机系统设计 第 41 页 共 62 页 MOV R5,00H LCALL WAIT RET K1: JNB ,K2 MOV R5,01H LCALL WAIT RET K2: JNB ,K3 MOV R5,02H LCALL WAIT RET K3: JNB ,K4 MOV R5,03H LCALL WAIT RET K4: JNB ,K5 MOV R5,04H LCALL WAIT RET K5: JNB ,K6 MOV R5,05H LCALL WAIT RET K6: MOV R5,06H 基于单片 机的自动售货机系统设计 第 42 页 共 62 页 LCALL WAIT RET WAIT: MOV A,P1 CPL A JNZ WAIT RET *************** 货物选择程序 **************** CHECK: MOV A,R5 MOV R6,A MOV A,MONEY DEC A。 因为之前给 MONEY 的初值是 1,所以计算投币总数时应该减去 1 MOV B,A ;将投币总数送入 B MOV A,R6 CJNE A,00H,NEXTB。 判断是否按下键 39。 039。 LJMP TWOYUAN NEXTB: CJNE A,01H,NEXTC。 判断是否按下键 39。 139。 LJMP THREEYUAN NEXTC: CJNE A,02H,NEXTD1。 判断是否按下键 39。 239。 LJMP FOURYUAN NEXTD1: MOV A,B。 按其他键时退币 LCALL OUTMONEY JMP MAIN TWOYUAN: MOV A,B。 将投入的货币累加数存入寄存器 B CJNE A,02H,NEXTE1。 判断投入的货币数是否为 2 元钱 基于单片 机的自动售货机系统设计 第 43 页 共 62 页 MOV R0,01H。 选择的货物数为 1 个 LOOPE1: LCALL KEY。 等待是否有键按下 MOV A,R5 CJNE A,0FFH,PRESS2 SJMP LOOPE1 PRESS2: CJNE A,05H,NEXTE2。 按下确定键 ,所选货物掉出 LCALL OUTGOODS。基于单片机的自动售货机设计毕业设计(编辑修改稿)
相关推荐
于景区的发射,发射芯片要一直工作,而且景区内的景点不用发送的地址也不能相同,如下图发射电路所示的 A8, A9, A10, A11脚接开关控制发射地址码和数据, VT 脚就一直处于发送状态 [11]。 由于 SC2262的外接震荡电阻要与 SC2272相匹配,所以 OSC1和 OSC2的电阻选用 , SC2272选用外接震荡电阻 200K[12]。 由于在景区的景点比较多,本系统假设有景点 9个
常熟理工学院毕业设计(论文) 9 2 PLC 控制系统设计 邮件分拣系统 PLC 控制硬件部分 PLC 控制范围及要求: (1)自动准确识别邮政编码。 对邮政编码不符合规格的邮件进行处理 (剔除 ),并根据邮政编码的不同加以分类,实现邮件的准确自动分拣; (2)自动分拣。 硬件部分的分拣机是将软件识别出的邮政编码的编码信息随传送带分拣入各个代表唯一地址的邮箱中
是内部 含有 上拉电阻的 8 位双向 通行的 I/O 口, P2 输出 的 缓冲级可 以 驱动( 即 吸收 或输出电流) 4 个 双极型逻辑集成电路。 对 其 写 “1” ,通过 自带 的上拉电阻 将 端口拉到高电平, 这 时可 将其 作输入口, 当 作 为 输入口 来 使用时,因为内部 有 上拉电阻, 当外部信号引脚被拉低 时会输出一个电流 (IIL)。 在访问外部 的 程序 memory 或
功能单元大量涌现,使 PLC 渗透到了位置控制、温度控制、 CNC 等各种工业控制中。 加上 PLC 通信能力的增强及人机界面技术的发展,使用 PLC 组成各种控制系统变得非常容易。 (3)易学易用,深受工程技术人员欢迎 2 PLC 作为通用工业控制计算机,是面向工矿企业的工控设备。 它接 口容易,编程语言易于为工程技术人员接受。 梯形图语言的图形符号与表达方式和继电器电路图相当接近,只用
5 RESET: 单片机 AT89S52 的重置引脚,复位输入,高电平有效。 EA/VPP: 当 EA 保持低电平时,使用外部程序存储器。 当 EA 保持高电平时,则使用内部程序存储器。 ALE/PROG: 当访问外部存储器时用来锁存地址的地位字节。 PSEN: 是外部程序存储器的选通信号。 PORT0( ~ ) :端口 0 是一个 8 位宽的开路汲极 ( Open Drain) 双向输出入端口
est 操作后执行 .如果被选的卡片的系列号已知,可 以不用执行此操作 SELECT 控制单元 射频卡 Command: 0x93 Len: 6 Data[0]: 0x70 Data[1]: _Snr(LL) Data[2]: _Snr(LH) Data[3]: _Snn(HL) Data[4]: _Snr(HH) 卡片系列号 (UID) Data[5]: BCC 射频卡 控制单元 Len: 1