程序单附件.doc

饮料自动售卖机设计

收藏

资源目录
跳过导航链接。
饮料自动售卖机设计.rar
最终打印版
图纸
程序仿真
优化后控制程序.a51
优化后控制程序.asm
优化后控制程序.bin
优化后控制程序.err
优化后控制程序.lst
优化后控制程序.lt
硬币退收控制程序.a51
硬币退收控制程序.ASM
硬币退收控制程序.bin
硬币退收控制程序.err
硬币退收控制程序.lst
硬币退收控制程序.lt
论文文档
部分需要的图
压缩包内文档预览:
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:38577064    类型:共享资源    大小:14.28MB    格式:RAR    上传时间:2020-01-09 上传人:遗**** IP属地:湖北
30
积分
关 键 词:
饮料 自动 售卖 设计
资源描述:
饮料自动售卖机设计,饮料,自动,售卖,设计
内容简介:
桂林电子科技大学毕业设计(论文)报告用纸 共27页 编号: 毕业设计(论文)说明书附 件 题 目: 饮料自动售卖机设计 院 (系): 机电工程学院 专 业:机械设计制造及其自动化学生姓名: 方赏华 学 号: 0600110204 指导教师单位: 机电工程学院 姓 名: 龙向前 职 称: 实验师 题目类型:理论研究 实验研究 工程设计 工程技术研究 软件开发 2010年4月10日程序单1. 程序1(纸杯选择控制程序):按照逆时针B-BC-C-CA-A-AB-B-BC-C通电,每相邻一拍延时0.2s,最后一拍完成后延时10s电机顺时针转延 时 10s 钟电机逆时针转静止并锁定P1.2P1.1P1.0置为“010”保持P1.2P1.1P1.0始终不变 步进电机转回最初位置并锁定位置步进电机控制程序P1.4P1.3=01P1.4P1.3=11P1.4P1.3=10P1.1置为“1”按照逆时针B-BA-A-AC-C-CB-B-BA-A通电,每相邻一拍延时0.2s,最后一拍完成后延时10sP1.5=1?即发现假币否?保持静止并锁定YESNO#include sbit L0=P10; /定义端口,A相;sbit L1=P11;/B相;sbit L2=P12;/C相;sbit L3=P13;sbit L4=P14;sbit L5= P15;sbit L6=P16;void delay10s(void) /延时10秒子程序unsigned char i,j,k;for(i=019H;i0;i-)for(j=085H;j0;j-)for(k=0FAH;k0;k-);void delay02s(void) /延时0.2秒子程序unsigned char i,j,k;for(i=20;i0;i-)for(j=20;j0;j-)for(k=248;k0;k-);void main(void)while(L5=0)if(L4=1)&(L3=1)/选择1.5元的纸杯L1=1; /顺时针方向转过15L2=1;L0=0;Delay02s();L1=0; / 顺时针方向转过15L2=1;L0=0;Delay02s();L0=1; / 顺时针方向转过15 L1=0; L2=1;Delay02s();L0=1; / 顺时针方向转过15 L1=0; L2=0; Delay02s();L0=1; / 顺时针方向转过15 L1=1; L2=0; Delay02s();L0=0; / 顺时针方向转过15 L1=1; L2=0; Delay02s();L0=0; / 顺时针方向转过15 L1=1; L2=1; Delay02s();L0=0; / 继续顺时针方向转过15并锁定等待挖纸杯 L1=0; L2=1; L6=1; Delay02s(); /预留6ms的时间给螺线管挖纸杯Delay02s();Delay02s();L6=0; L1=1; /逆时针方向转过15 L2=1; L0=0;Delay02s();L1=1; /逆时针方向转过15 L2=0;L0=0;Delay02s();L0=1; /逆时针方向转过15 L1=1; L2=0;Delay02s(); L0=1; /逆时针方向转过15 L1=0; L2=0;Delay02s(); L0=1; /逆时针方向转过15 L1=0; L2=1;Delay02s(); L0=0; /逆时针方向转过15 L1=0; L2=1;Delay02s(); L0=0; /逆时针方向转过15 L1=1; L2=1;Delay02s(); L0=0; /逆时针方向转过15并锁定 L1=1; L2=0; Else if(L4=0)&(L3=1)/选择0.5元的纸杯L1=1; /逆时针方向转过15 L2=0; L0=1;Delay02s();L1=0; /逆时针方向转过15 L2=0;L0=1;Delay02s();L0=1; /逆时针方向转过15 L1=0; L2=1;Delay02s(); L0=0; /逆时针方向转过15 L1=0; L2=1;Delay02s(); L0=0; /逆时针方向转过15 L1=1; L2=1;Delay02s(); L0=0; /逆时针方向转过15 L1=1; L2=0;Delay02s(); L0=1; /逆时针方向转过15 L1=1; L2=0;Delay02s(); L0=1; /逆时针方向转过15并锁定等待挖纸杯 L1=0; L2=0; L6=1; Delay02s();/预留6ms的时间给螺线管挖纸杯Delay02s();Delay02s();L6=0;L1=1; /顺时针方向转过15L2=0;L0=1;Delay02s();L1=1; / 顺时针方向转过15L2=0;L0=0;Delay02s();L0=0; / 顺时针方向转过15 L1=1; L2=1;Delay02s();L0=0; / 顺时针方向转过15 L1=0; L2=1; Delay02s();L0=1; / 顺时针方向转过15 L1=0; L2=1; Delay02s();L0=1; / 顺时针方向转过15 L1=0; L2=0; Delay02s();L0=1; / 顺时针方向转过15 L1=1; L2=0; Delay02s();L0=0; / 继续顺时针方向转过15并锁定 L1=1; L2=0; Else if(L4=1)&(L3=0)/选择1.0元的纸杯并挖出纸杯 L6=1; Delay02s(); /预留6ms的时间给螺线管挖纸杯Delay02s();Delay02s();L6=0; Else() /其他情况下锁定在B相位置 L0=0; L1=1; L2=0;2. 程序2(硬币去留控制程序):开始发现假币信号否?即P1.0=1?发现退币否?即P1.1=1?NO电机正转(逆时针)收取硬币电机逆转(顺时针)退币NOYESYES发现抽饮料按钮信号否?即P1.3=1?等待2分钟,并不断检查抽饮料按钮信号NO YES;*步进电机的驱动; DESIGN BY BENLADN911 FOSC = 12MHz 2010.05.10; -; 步进电机的驱动信号必须为脉冲信号! 转动的速度和脉冲的频率成正比!; 本步进电机步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成!; A组线圈对应 P2.4; B组线圈对应 P2.5; C组线圈对应 P2.6; D组线圈对应 P2.7; 正转次序: AB组-BC组-CD组-DA组 (即一个脉冲,正转 7.5 度);硬币识别装置发现假币则发出“0”信号; - ORG 0000H LJMP MAINORG 0100HMAIN: ORL P2,#30H ;为控制做准备ANL P1,#03H ;为检查控制条件做准备MOV A,P1JB ACC.1,LOOP4 ;如果发现假币则自动退币,否则等待抽饮料按钮信号 SJMP LOOP3 ;如果P1.0=0则跳到LOOP3等待 JB ACC.0,LOOP4 ;如果发现退币信号则退币;-正转(逆时针)收取硬币-LOOP1: MOV R3,#48 ;正转 1圈共48 脉冲START:MOV R0,#00HSTART1:MOV P2,#00HMOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRJZ START ;对 A 的判断,当 A = 0 时则转到 STARTMOV P2,ALCALL DELAYINC R0DJNZ R3,START1MOV P2,#00HLCALL DELAY1LJMP MAIN;-反转(顺时针)退币-LOOP3: JB ACC.2,LOOP1 ; 2分钟内等到抽饮料按钮信号则收取硬币,否则退币 JNB ACC.0,LOOP3 ;如果P1.0=0则跳到LOOP3继续检查 SJMP LOOP4LOOP2: LCALL DELAY2 ; 等待延时2分钟LOOP4: MOV R3,#48; 反转一圈共 48个脉冲START2:MOV P2,#00HMOV R0,#05START3:MOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRJZ START2MOV P2,ALCALL DELAYINC R0DJNZ R3,START3MOV P2,#00HLCALL DELAY1LJMP MAINDELAY: MOV R7,#40 ;步进电机的转速M3: MOV R6,#248 DJNZ R6,$ DJNZ R7,M3 RETDELAY1:MOV R4,#20 ;2S 延时子程序DEL2:MOV R3,#200DEL3:MOV R2,#250DJNZ R2,$DJNZ R3,DEL3DJNZ R4,DEL2RETDELAY2: ;误差 0us,2min延时子程序 MOV R6,#0F0HDL0: MOV R5,#0F8H DJNZ R5,$ DJNZ R6,DL0 NOP RETTABLE:DB 30H,60H,0C0H,90H ;正转表DB 00 ;正转结束DB 30H,90H,0C0H,60H ;反转表DB 00 ;反转结束END3. 程序3(饮料抽取量控制程序):准备开始发现出饮料信号否,即P1.6=1?发现假币否?没发现抽饮料信号?即P1.7=0?检测硬币投入量的多少,即检查P1.4P1.3=?按硬币投入量控制电机开启时间,并根据饮料桶中信号的反馈随时等待使电机停转!开启电机,即使P1.5=1维持电机停转维持电机停转使电机停转YESNOYESNONOYES开始检测硬币量仅检测到0.5元硬币信号,即P1.4P1.3=01仅检测到1.5元硬币信号,即P1.4P1.3=11仅检测到1.0元硬币信号,即P1.4P1.3=10100ml铜电极通电否,即P1.0=1?300ml铜电极通电否,即P1.2=1?200ml铜电极通电否,即P1.1=1?开启电机,即使得P1.5=1并维持状态使电机停转并维持,即使得P1.5-0维持等待下次交易YESYESYESNONONO#include sbit L0=P10; /定义端口sbit L1=P11; sbit L2=P12; sbit L3=P13; sbit L4=P14; sbit L5=P15; sbit L6=P16; sbit L7=P17;void delay1s(void) /延时1.0秒子程序unsigned char i,j,k;for(i=50;i0;i-)for(j=40;j0;j-)for(k=248;k0;k-);void main(void) sbit L5=1;/初始化,确保电机在停转状态while (L7=0 ) /如果L7=0维持电机停转状态L5=1; while (L6=0 ) while (L7=1 ) while (L0=0) /检查容器中液位到了50ml否 if(L4=0&L3=1) L5=0; /开启电机并延时1.0s Delay1s();L5=1; while (L1=0 ) /检查容器中液位到了100ml否 if (L4=1&L3=0 ) L5=0;/开启电机并延时2.0sDelay1s(); Delay1s();L5=1; while (L2=0 ) /检查容器中液位到了150ml否 if (L4=1&L3=1 ) L5=0; /开启电机并延时3.0sDelay1s(); Delay1s(); Delay1s(); L5=1; L5=1; /如果检查到假币信号或者没有按下抽饮料按钮的信号就保持电机停转状态L5=1; /如果检查到出饮料按钮信号就马上停止电机4. 单片机组优化后的电路、控制流程图及其程序设计思路分析:硬币检测装置在检测到假币的时候发出“1”信号,检测到0.5元硬币的时候发出“1”信号并传送到P1.3端口,检测到1.0元或两枚0.5元硬币的时候发出“1”信号并传送到P1.4端口。如上面电路所示,硬币真假识别信号经非门负变之后与抽饮料按钮信号相与,如果硬币识别装置没检测到假币,而消费者并不按下抽饮料按钮,收取硬币的电机和抽饮料的电机并不动作,而是保持原状态并等待2分钟,若没等到抽饮料按钮信号则自动退币,否则两电机都动作实现收取硬币和抽饮料的目的。在电路中我们还看到硬币真假识别信号与退币按钮信号相或,只要消费者按下退币按钮或者硬币检测装置检测到假币就马上退币。上面电路中我们另一个至关重要的是出饮料按钮电路。我们该怎么让出饮料按钮信号对单片机起控制作用呢?投机取巧的消费者可能会因为偶然机会发现边抽饮料边出饮料会得到多一点。为了防止这种投机取巧的行为,我们可以将出饮料按钮信号电路经非门负变之后与抽饮料按钮信号和硬币真假信号相与再连接到P1.0端口或者直接把出饮料按钮信号连接到P1.2口,我们选择的是后者,如此一来一旦消费者按下出饮料按钮信号售货机便停止抽饮料。上面电路中我们没有画出螺线管的连接电路,我们将其驱动电路连接在P0.0口。具体的程序及其流程图如下面所示。准备开始发现假币否初始化各电机,使各电机都保持停转状态检测硬币的总投入量发现退币信号否发现抽饮料信号否开启收硬币电机收取硬币和抽饮料电机抽取饮料NONO, 等待2分钟 YES开启电机退币YESYESNO检查出饮料信号,按下了否?开启收硬币电机收取硬币和抽饮料电机抽取饮料继续抽饮料,直到结束并停止电机中断抽饮料电机等待下次交易YESNO开始检测硬币量仅检测到0.5元硬币信号,即P1.4P1.3=01仅检测到1.5元硬币信号,即P1.4P1.3=11仅检测到1.0元硬币信号,即P1.4P1.3=10100ml铜电极通电否,即P1.7=1?300ml铜电极通电否,即P1.5=1?200ml铜电极通电否,即P1.6=1?开启电机,即使得P3.7=1并维持状态使电机停转并维持,即使得P3.7=0维持等待下次交易YESYESYESNONONOORG 0000H LJMP MAINORG 0100HMAIN: ANL P3,#23H ;初始化电机状态,使两电机保持停转和锁定状态ANL P1,#FFH ;为检测外部输入的控制信号做准备MOV A,P1JB ACC.1,LOOP2 ;如果发现假币或退币信号则自动退币,否则等抽饮料按钮信号JNB ACC.0,LOOP0 ;如果P1.0=0则跳到LOOP0等待2分钟 JB ACC.3,AP2 ;P1.3=1 跳转到AP2 JNB ACC.4,LOOP11 ;P1.4=1,P1.3=0则跳转LOOP11挖1元相应纸杯 AP2: JB ACC.4,LOOP6 ;P1.4=1则跳转到LOOP6出售1.5元相应纸杯SJMP LOOP4 ;P1.4P1.3=01则跳转LOOP4出售0.5元相应纸杯;-硬币去留电机正转(逆时针)收取硬币-LOOP1: MOV R3,#48 ;正转 1圈共48 脉冲START:MOV R0,#00HSTART1:MOV P3#00HMOV A,R0MOV DPTR,#TABLE1MOVC A,A+DPTRJZ START ;对 A 的判断,当 A = 0 时则转到 STARTMOV P3,ALCALL DELAYINC R0DJNZ R3,START1MOV P3,#00HLCALL DELAY1SJMP AP1;-硬币去留电机反转(顺时针)退币-LOOP0: LCALL DELAY2 ;延时等待2分钟 LOOP2: JB ACC.0,LOOP1 ;2分钟内等到抽饮料按钮信号则收取硬币,否则退币 MOV R3,#48 ;反转一圈共 48个脉冲START2:MOV P3,#00HMOV R0,#05START3:MOV A,R0MOV DPTR,#TABLE1MOVC A,A+DPTRJZ START2MOV P3,ACALL DELAY INC R0DJNZ R3,START3MOV P3,#00HLCALL DELAY1SJMP MAIN ;-纸杯电机正转(逆时针)出售0.5元对应的纸杯-LOOP4: MOV R3,#8 ;正转 1/3圈共8 脉冲START4: MOV R0,#00HSTART5: MOV P3,#00H MOV A,R0 MOV DPTR,#TABLE2 ,查表程序 MOVC A,A+DPTR JZ START4 ;对 A 的判断,当 A = 0 时则转到 START MOV P3,A LCALL DELAY INC R0 DJNZ R3,START5 MOV P3,#20H LCALL DELAY1;-挖出0.5元纸杯- Loop13: ORL P0,#80H ;使P0.0=1,其他位不变LCALL DELAY3ANL P0,7FH ;使P0.0=0,其他位不变;-纸杯电机反转复位锁定-LOOP5: MOV R3,#8 ;反转1/3圈共 8个脉冲START6: MOV P3,#00H MOV R0,#07HSTART7: MOV A,R0 MOV DPTR,#TABLE2 ;查表程序 MOVC A,A+DPTR JZ START6 MOV P3,A LCALL DELAY INC R0 DJNZ R3,START7 MOV P3,#20H ;返回到原始位置锁定电机 LCALL DELAY1 SJMP LOOP8 ;纸杯销售完后马上抽200ml饮料;-纸杯电机反转销售1.5元相应的纸杯-LOOP6: MOV R3,#8 ;反转1/3圈共 8个脉冲START8: MOV P3,#00H MOV R0,#07HSTART9: MOV A,R0 MOV DPTR,#TABLE2 MOVC A,A+DPTR JZ START8 MOV P3,A LCALL DELAY INC R0 DJNZ R3,START9 MOV P3,#20H LCALL DELAY1;-挖出1.5元纸杯- LOOP12: ORL P0,#80H ;使P0.0=1,其他位不变进行挖纸杯动作LCALL DELAY3ANL P0,7FH ;使P0.0=0,其他位不变;-纸杯电机正转(逆时针)复位锁定-LOOP14: MOV R3,#8 ;正转 1/3圈共8 脉冲START10: MOV R0,#00HSTART11: MOV P3,#00H MOV A,R0 MOV DPTR,#TABLE2 MOVC A,A+DPTR JZ START10 ;对 A 的判断,当 A = 0 时则转到 START10 MOV P3,A LCALL DELAY INC R0 DJNZ R3,START11 MOV P3,#20H LCALL DELAY1 SJMP LOOP9 ;纸杯销售完后马上抽300ml饮料;-挖出1.0元纸杯- LOOP11: ORL P0,#80H ;使P0.0=1,其他位不变LCALL DELAY3ANL P0,7FH ;使P0.0=0,其他位不变SJMP LOOP10 ;纸杯销售完后马上抽200ml饮料;-抽饮料- LOOP8: ORL P3,80H ;抽100ml饮料 JB ACC.2,TZ JB ACC.6,MAIN ;检查容器中液位达到100ml否LCALL DELAY3 ;延时0.5S SJMP FW ;抽完饮料就等待下次交易 LOOP9: ORL P3,80H ;抽300
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:饮料自动售卖机设计
链接地址:https://www.renrendoc.com/p-38577064.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!