当前位置:文档之家› 微机原理三级项目

微机原理三级项目

瓶装饮料生产线传送控制系统的计算机控制技术的实现课程名称:微机原理班级:机制2班学号:130105060042姓名:刘明川指导教师:陈子明2016年5月16日瓶装饮料生产线传送控制系统设计刘明川(燕山大学机械工程学院)摘要:此项目旨为利用STAR实验仪中的模块来模拟瓶装饮料生产线传送控制系统。

我们小组成员通过重复的探讨,模拟调试,反馈,修改再调试的方法,决定了各自使用的模块以及各模块模拟的实际过程。

我们用到了8253芯片、8255芯片、8155芯片、步进电机、逻辑笔、LED灯、数码管等模块,最终成功模拟了瓶装饮料生产线传送控制的过程。

2前言:随着科学技术的发展以及计算机的应用,生产线自动化的程度在逐渐提高,自动控制系统是自动化过程中不可缺少的部分,自动控制体统的使用不仅节省了劳动力,而且提高了生产效率,对降低企业生产成本起着重要的作用。

本实验使用了STAR实验仪中的部分模块,模拟了瓶装饮料生产线传送控制系统的控制过程,实现了生产的要求。

3目录1.正文: (5)1.1项目的描述及要求 (5)1.2项目的模拟方案 (5)1.2.1使用的硬件 (5)1.2.2电路图 (5)1.2.3系统连线图 (7)1.3控制程序 (8)1.3.1程序框图 (8)1.3.2详细程序 (8)1.4模拟的实验结果 (16)1.5项目的结论 (16)2 .主要参考文献 (16)3.感想 (17)41.正文:1.1项目的描述及要求某厂生产瓶装保健饮品,每10瓶装一箱,要求箱满时,启动送箱装置,选送走满箱到位(延时一定时间),再送来空箱到位(延时一定时间),满箱和空箱分别在两个不同的传送带上传送。

能认为控制生产线的启动和停止(比如键盘上按某一键启动,启动后按任意键停止),能在数码管上显示当前已装满送出的箱数。

1.2项目的模拟方案1.2.1使用的硬件本实验用8255芯片、8155芯片、8253芯片、开关、LED灯、数码管、步进电机、逻辑笔等设备,采用汇编语言编程,最终实现控制要求,完成实验模拟。

1.2.2电路图1)连线说明52)电路图8255芯片:8253芯片:68155芯片:1.2.3系统连线图71.3控制程序1.3.1程序框图1.3.2详细程序.model small ;微小型模式.stack ;定义堆栈段.data ;定义数据段num dw 00h ;变量num赋值00h led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh bai dw 100 ;8shi db 10 ;baiw db 0 ;shiw db 0 ;gew db 0 ;.code ;定义代码段start: mov ax,@data ;程序开始mov ds,ax ;mov dx,0f003h ;mov al,10001000b ;out dx,al ;在8255端口地址输入方式控制字mov dx,0f000h ;8255芯片A端口工作mov al,11111111b ;out dx,al ;用A端口控制LED灯全灭mov cx,999 ;循环次数999test1:mov dx,0f002h ;in al,dx ;test al,10h ;检测启动开关是否打开,打开后执行下一步,jnz test1 ;没打开,继续检测one:mov dx,0b003h ;mov al,01110111b ;out dx,al ;在8253端口地址输入方式控制字mov dx,0b001h ;计数器1工作mov ax,1953h ;out dx,al ;利用方式3对输入频率降频9mov al,ah ;高字节输出out dx,al ;call delay025 ;call delay025 ;call delay025 ;延迟call delay025 ;call delay025 ;call delay025 ;mov dx,0b003h ;mov al,00010001b ;out dx,al ;重新在8253端口地址输入方式控制字mov dx,0b000h ;计数器0工作在方式0mov al,10h ;输入10以控制10瓶装一箱out dx,al ;mov dx,0f000h ;mov al,11111101b ;out dx,al ;满箱后8255A端口控制第二展等亮call xianshi ;调显示子程序,用数码管记录送走的箱数call xianshi ;call xianshi ;call xianshi ;call bujin ;步进电机转表示满箱运走inc num ;要记的箱数加1call xianshi ;重新显示call delay025 ;延时10mov al,00h ;out dx,al ;数码管全灭test2: call xianshi ;mov dx,0f002h ;in al,dx ;test al,30h ;检测工作停止控制等是否开启jz test2 ;开启则继续检测mov dx,0f000h ;mov al,11111011b ;8255芯片A端口控制第三展灯亮out dx,al ;call xianshi ;数码管显示call xianshi ;call xianshi ;call xianshi ;call bujin ;第三展灯亮时步进电机转表示空箱运来push cx ;将CX压入堆栈mov cx,100 ;循环100次l2:call delay025 ;延时loop l2 ;pop cx ;jmp one ;正个程序循环表示生产线不断装箱计数xianshi proc ;显示的子程序push ax ;push bx ;11push dx ;将AX,BX,CX,DX压入堆栈call shuzi ;调子程序设置各位置要显示的数字mov cx,800 ;数码管循环点亮以显示多位again1:mov bl,baiw ;xor bh,bh ;mov al,led[bx] ;利用寻址找到百位相应的数字mov dx,0f001h ;out dx,al ;数码管位控mov dx,0f002h ;mov al,11111101b ;out dx,al ;数码管段控显示百位数字call clear ;mov bl,shiw ;xor bh,bh ;mov al,led[bx] ;利用寻址找到十位相应的数字mov dx,0f001h ;out dx,al ;数码管位控mov dx,0f002h ;mov al,11111011b ;out dx,al ;数码管段控显示十位数字call clear ;mov bl,gew ;xor bh,bh ;mov al,led[bx] ;利用寻址找到个位相应的数字12out dx,al ;数码管位控mov dx,0f002h ;mov al,11110111b ;out dx,al ;数码管段控显示个位数字call clear ;loop again1 ;利用循环动态显示pop dx ;pop cx ;pop bx ;pop ax ;AX,BX,CX,DX出栈ret ;xianshi endp ;显示子程序结束clear proc ;清除子程序push ax ;push dx ;将AX,DX压入堆栈mov dx,0f002h ;C端口控制位选mov al,11111111b ;数码管全灭out dx,al ;pop dx ;pop ax ;AX,DX出栈ret ;clear endp ;子程序结束shuzi proc ;数字子程序push ax ;13push dx ;将AX,DX压入堆栈mov ax,num ;mov dx,0h ;div bai ;以送走的箱数除以100来设置百位的数字mov baiw,al ;mov ax,dx ;将DX中的余数给了AXdiv shi ;用余数除以10来设置十位数字mov shiw,al ;mov gew,ah ;ah中的余数即为个位数字pop dx ;pop ax ;AX,DX出栈ret ;shuzi endp ;数字子程序结束bujin proc ;步进电机子程序push ax ;push bx ;push cx ;push dx ;将AX,BX,CX,DX压入堆栈mov cx,10 ;循环次数10mov dx,0e100h ;8155芯片控制端口地址mov al,00000001b ;方式控制字out dx,al ;A端口输出mov dx,0e101h ;read1:mov al,00000001b ;out dx,al ;给步进电机A端口一个高电平14call delay025 ;延时mov al,00000010b ;out dx,al ;给步进电机B端口一个高电平call delay025 ;延时mov al,00000100b ;out dx,al ;给步进电机C端口一个高电平call delay025 ;延时mov al,00001000b ;out dx,al ;给步进电机D端口一个高电平call delay025 ;延时loop read1 ;循环,使步进电机转动pop dx ;pop cx ;pop bx ;pop ax ;ret ;AX,BX,CX,DX出栈bujin endp ;子程序结束delay025 proc ;延时程序push bx ;push cx ;将BX,CX压入堆栈mov bx,1 ;delay1:mov cx,10000 ;循环次数delay2:loop delay2 ;dec bx ;jnz delay1 ;循环15pop cx ;pop bx ;CX,BX出栈ret ;delay025 endp ;子程序结束end start ;全部程序结束1.4模拟的实验结果当开关5闭合时,程序启动,开始装箱,用8253芯片计数器0的方式0开始计数,5秒后,计数结束,输出高电平,逻辑笔绿灯亮,装满10瓶,LED灯第二展灯亮,步进电转动,满箱送走,数码管计数加1,LED灯第三展灯亮,步进电机转动,表示空箱运来,程序循环,继续装箱计数;当开关6闭合时,程序暂定,生产线暂停,实现人为控制。

1.5项目的结论这次项目使用实验箱模拟完成了瓶装饮料生产线传送控制系统的计算机控制,达到了预期效果;但是对于实际生产线还有许多要改进的地方,比如,此系统缺少报警装置,在实际生产中若某环节发生故障或者程序运行出错,我们不能及时知晓,可能会发生危险。

另外,此系统没有设计检测装置,不能保证每箱是否真的装了10瓶,若出现没有装够10箱的情况,将会有损顾客利益,被顾客投诉还能有损企业的声誉。

相关主题