瓶装饮料生产线传送系统_第1页
瓶装饮料生产线传送系统_第2页
瓶装饮料生产线传送系统_第3页
瓶装饮料生产线传送系统_第4页
瓶装饮料生产线传送系统_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、瓶装饮料生产线传送系统的计算机控制技术实现班 级:机设2班学 号:姓 名: 课 程 名 称:微机原理及其应用 指 导 教 师: 2014年5月171.项目设计任务:。错误!未定义书签。2.项目所用的元件。错误!未定义书签。3项目流程图。错误!未定义书签。4电路接线图.。55项目程序。66效果图。137感想与总结。15瓶装饮料生产线传送控制系统设计杜金峰(燕山大学 机械工程学院)摘 要: 本系统旨在实现瓶装饮料生产线的自动化控制,减少人力劳动强度,提高生产效率。基本目标有:饮料空箱传送,饮料装箱,满箱传送的自动化满箱数目的实时显示生产线可以随时人为停下并再次开始。功能实现用到了8088,8255

2、A,8155芯片以及步进电机,直流电机,LED指示灯,数码管,开关等。以步进电机驱动空箱传送带,以LED灯闪烁次数为装瓶次数示意,以直流电机驱动满箱传送带,以8位数码管显示已到位满箱数(最大显示数:99999999),基本实现了目标功能。1 设计任务某厂生产瓶装保健饮品,每10瓶装一箱,要求箱满时,启动送箱装置,先送走满箱到位(延时一定时间),再送来空箱到位(延时一定时间),满箱和空箱分别在两个不同的传送带上传送。能人为控制生产线的启动和停止(比如键盘上,按某一键启动,启动后按任意键停止)。能在数码管上显示当时已装满送出的箱数。 项目分析 经过观察试验箱与分析任务,提出以下方案: 以步进电机驱

3、动传送空箱的传送带 空箱到位后,开始装箱,每装一瓶,LED灯闪烁1次 箱子装满10瓶后,送上满箱传送带,直流电机转动送走满箱 满箱到位,数码管显示数加1,步进电机送下一空箱 开关控制生产线开始与停止2 项目所用元件8088,8255A,8155芯片;步进电机,直流电机,数码管,开关,LED灯,导线若干3 项目流程图初始化8255A,8155开关打开?NY数码管显示数目加1直流电机转,送走满箱空箱到位,开始装箱,LED等闪10次延时,直到空箱到位步进电机转动,送空箱4 电路接线图 8088 A0 A1P1.0 P1.0-P1.7 A8 CS1 CS2 CS1 CS1 ABCD 步进电机 LED灯

4、 直流电机开关8155 CS IO/M PA0 IPA7 5 项目程序 .MODEL SMALL .STACK .DATA COUNT DD 4515454 ;存放满箱数目 WEI DB 8 DUP(0) ;存放数码各位要显示的数字 ledtb db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;数字0-9对应数码管段选.CODESTART:CALL INIT_8255 ;8255初始化CALL INIT_8155 ;8155初始化CALL NUM ;将当前满箱数(十进制)的各位上的数存入变量 CALL START_STOP;判断开关状态,开关打开则生产线开始

5、运行RESTART:CALL EMPTY_TRANS;第一个传送带送空箱(步进电机转动来模拟)CALL DELAY_A;空箱上槽轮机构,消耗一定时间CALL FILL_UP;装箱(用灯闪次模拟)CALL DELAY_A;满箱送到第二的传送带CALL FULL_TRANS;送走满箱(直流电机转动一定时间来模拟)CALL NUM_INC ;满箱数目加CALL NUM ;新的满箱数目(十进制)各位存入变量CALL DISP_NUM;显示新的满箱数JMP RESTART;跳到 MOV AX,4C00H INT 21HSTART_STOP PROC;开始停止子程序PUSH AXPUSH BXPUSH D

6、XMOV DX,0F002HIN AL,DXMOV BL,AL;保存当前口数据check:MOV DX,0E101HIN AL,DX;读入当前开关状态(表示开始,表示停止)TEST AL,01HJZ ON;开关在,则跳到MOV DX,0F002HMOV AL,11011111BOUT DX ,AL;开关在,则停止当前动作CALL DISP_NUM;动作停止时数码管仍正常示数JMP check;继续监测开关状态ON:MOV DX,0F003H MOV AL,BL OUT DX,AL ;恢复动作停止前状态 END_Z: POP DX POP BX POP AX RET START_STOP END

7、P EMPTY_TRANS PROC ; 传送带传送空箱(用步进电机模拟) PUSH AXPUSH DXPUSH CXMOV CX,20H MOV DX,0F002H ;PC口D0-D3控制步进电机EMPTY1: MOV AL,11011110B ;轮番给步进电机ABCD端口低电平 OUT DX,AL ;实现步进电机连续均匀转动 CALL DELAY1 mov al,11011101b OUT DX,AL MOV AL,11011011b OUT DX,AL CALL DELAY1 MOV AL,11010111b OUT DX,AL CALL DELAY1 LOOP EMPTY1 MOV D

8、X,0F002H MOV AL,11011111B OUT DX,AL POP CX POP DX POP AX RETEMPTY_TRANS ENDP FILL_UP PROC PUSH AX PUSH CX PUSH DX MOV CX,10 MOV DX,0f003h ;开始装箱 灯闪十次TEN: MOV AL,00001000b OUT DX,AL CALL DELAY2 MOV AL,00001001b OUT DX,AL CALL DELAY2LOOP TENPOP DXPOP CXPOP AXRET FILL_UP ENDP FULL_TRANS PROC PUSH AX PUS

9、H DX MOV DX,0f003h ;启动直流电机,送满箱 MOV AL,00001011b OUT DX,AL CALL DELAY3 MOV AL,00001010b ;满箱到位,关闭直流电机 OUT DX,AL POP DX POP AX RETFULL_TRANS ENDP NUM_INC PROC ;满箱数目加1 PUSH AX PUSH DX MOV AX,WORD PTR COUNT ;取COUNT低字数据给AX MOV DX,WORD PTR COUNT+2 ;取COUNT高字数据给DX ADD AX,1 ADC DX,0 MOV WORD PTR COUNT,AX MOV

10、WORD PTR COUNT+2,DX ;COUNT加1后存回原位置 POP DX POP AX RET NUM_INC ENDPNUM PROC ;将COUNT十进制的各位存入变量WEI中 PUSH SI PUSH AX PUSH BX PUSH DX MOV AX,WORD PTR COUNT ;AX存COUNT低字部分 MOV DX,WORD PTR COUNT+2 ;DX存COUNT高字部分 MOV BX,10000 DIV BX ;无符号字除,高四位入AX,低四位入DX XCHG DX,AX ;AX,DX交换数值 MOV SI,OFFSET WEI ;SI取得WEI首地址 MOV B

11、L,100 DIV BL ;COUNT低四位(AX)再除以100 PUSH AX ;保护AX寄存器(保护COUNT的百位和千位) XCHG AH,AL ;交换AH与AL,AH存百位千位,AL存十位个位 MOV AH,0 ;AH清零 MOV BL,10 DIV BL ; AX除10后,AL存入COUNT的十位,AH得其个位 MOV SI,AH ;个位存入WEI0 INC SI MOV SI,AL ;十位存入WEI1 POP AX ;AX恢复,AL中存着COUNT千位百位 MOV AH,0 ;AH清零 MOV BL,10 DIV BL ;AX除以10,AL得COUNT千位,AH得其百位 INC S

12、I MOV SI,AH ;COUNT的百位存入COUNT2 INC SI MOV SI,AL ;COUNT的千位存入COUNT3 MOV AX,DX ;COUNT(十进制)高四位赋给AX MOV BL,100 DIV BL ;AX除以100 PUSH AX ;AX入栈,保护COUNT千万位和百万位 XCHG AH,AL ;AH,AL交换,AL存十万位和万位 MOV AH,0 MOV BL,10 DIV BL INC SI MOV SI,AH ;COUNT万位存入WEI4 INC SI MOV SI,AL ;COUNT十万位存入WEI5 POP AX ;AX恢复 MOV AH,0 MOV BL,

13、10 DIV BL ;AX除以10 INC SI MOV SI,AH ;COUNT百万位存入WEI6 INC SI MOV SI,AL ;COUNT千万位存入WEI7 POP DX POP BX POP AX POP SI RET NUM ENDP DISP_NUM proc ; 数码管显示子程序,前导0不显示 PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI MOV CX,8 ;从高位到低位检测各位是否为零,最大循环次数8 MOV DL,0 ;DL存AH移位参数,以确定数码管从哪一位开始显示 MOV AH,01111111b ;AH初值指示数码管位选初值(最高位

14、) MOV si,offset WEI add si,7 ;SI初值为WEI7地址 CMP_: MOV DH,SI CMP DH,0 ;检测SI是否为0 JNZ GH dec SI ;SI不为0,则SI减一继续判断 INC DL ;SI=0,移位参数加1 LOOP CMP_ ;继续判断下一位 GH: MOV CL,DL ;移位参数赋给CL cmp cl,8 jnz rorr dec cl ;若COUNT=0,最后一个0仍需显示 rorr: ROR AH,CL ;从不为0的最高位开始位选 DISP_1: MOV DX,0F000H MOV AL,AH OUT DX,AL ;位选 MOV DX,0

15、f001h ;B端口段选 MOV AL,SI MOV BX,offset LEDtb ;取led灯段首地址 xlat ;AL=DS:BX+AL OUT DX,AL ;段选输出 CALL DELAY0 ;短暂延时 CMP AH,11111110B ;判断是否已显示到各位 JE DISP_END ROR AH,1 ;位选码右移一位 DEC SI ; 对应要显示的位左移一位 jmp disp_1 ;继续显示下一位DISP_END:POP SI ;已显示到个位则结束显示子程序 POP DX POP CX POP BX POP AX RETDISP_NUM ENDP DELAY0 proc ;数码管各位

16、显示之间的延时 PUSH CXMOV CX,100J0:LOOP j0POP CX RET DELAY0 ENDP DELAY proc ;延时基准子程序PUSH CXMOV CX,1j1: CALL DISP_NUM CALL START_STOP LOOP j1 POP CX RET DELAY ENDPDELAY1 PROC ;步进电机两个低电平之间的延时PUSH CXMOV CX,10j2: CALL DELAY LOOP J2 POP CX RET DELAY1 ENDP DELAY2 proc ;两次装瓶动作直接的延时PUSH CXMOV CX,100j3:CALL DELAY L

17、OOP j3POP CX RET DELAY2 ENDPDELAY3 PROC ;送满箱所需时间 PUSH CX MOV CX,500j4: CALL DELAY LOOP j4 POP CX RETDELAY3 ENDPDELAY_A PROC ;步进电机停到开始装瓶之间的时间PUSH CXMOV CX,500j2_: CALL DELAY LOOP J2 POP CX RET DELAY_A ENDP INIT_8155 PROC ;8155初始化PUSH AXPUSH DXMOV DX,0E100H MOV AL,00HOUT DX,AL ;PA,PB用于输入 POP DXPOP AXI

18、NIT_8155 ENDPINIT_8255 PROC ;8255A初始化 MOV AL,10000000b MOV DX,0f003h OUT DX,AL ;PA,PB,PC均用来输出 MOV DX,0f002h MOV AL,00011111b OUT DX,AL ;PC口初始化 MOV DX,0F000H MOV AL,0FFH OUT DX,AL ;PA口初始化 MOV DX,0F001H MOV AL,0FFH OUT DX,AL ;PB口初始化 RET INIT_8255 ENDP END START6 效果图6 感想 在做这个项目的过程中,我们将书本上的理论实实在在地运用到项目的设计中去,动手做项目让我们把知识掌握得更加牢固,真正了解和掌握了汇编语言

温馨提示

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

评论

0/150

提交评论