汽车玻璃总成工装控制系统设计.docx
《汽车玻璃总成工装控制系统设计.docx》由会员分享,可在线阅读,更多相关《汽车玻璃总成工装控制系统设计.docx(20页珍藏版)》请在冰点文库上搜索。
汽车玻璃总成工装控制系统设计
前言
微机原理主要内容包括微型计算机体系结构、8088微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。
微机原理接口技术是一门实践性强的学科,不但要求较高的理论水平,而且还要求有实际的动手能力。
这次项目设计的主要目的是提高我们的实践能力,包括提高汇编语言都的编程能力,在进行项目设计的过程中,通过亲身体验、自己分析解决问题,从而系统地掌握微机原理的接口技术的相关知识。
项目设计使用星研集成环境软件和STARES598PCI试验仪进行仿真,包括程序输入、调试、运行,最后进行结果分析,验证程序的正确性。
该项目的实验题目为某生产线控制系统设计,实验过程中用到了8255A芯片,LED灯和LED显示管及开关,若干导线等。
通过该实验要了解8255A的工作原理,熟悉8255内部结构和与8088的接口逻辑,及其应用,学会初始化编程方法以及输入,输出程序设计技巧。
该项目的主要内容为工作运行阶段,A~E工位依次进行,然后检查E工序是否有故障。
若无,则进入A工位开始新一轮的工作;若有,则继续E工序,直至E工序完成。
同时记录完成的工件数和生产线发生故障的次数并显示。
汽车玻璃总成工装控制系统设计
摘要:
本项目报告主要描述了项目进行的全过程,主要包括以下几项设计初期的想法,设计过程中的改进和完善,设计完成后的检验,最后的感想,以及课本中没有介绍的知识等,都将一一介绍。
具体内容如下:
1.项目要求2.设计思路3.设计流程4.所用硬件及连线图5.程序代码6.实现的功能7项目总结8.参考文献9.感想
一、项目要求
汽车玻璃总成工装控制系统设计:
某生产线生产汽车玻璃,需要在某工步中装配两个插片,装配插片时需要一种自动化装置,要采用三个定位点检测,两个粘接动作和一个计数装置记录每班生产件数。
二、设计思路
拿到项目的第一步便是如何将项目要求具体化,我的设计思路如下:
1.生产线是自动的,为了防止生产线的误启动,在设置了电源开关后又设置了整个生产线的启动开关,电源接通后启动开关闭合生产线才可以启动。
2.要求有三点定位,并且三点都完成定位后才可以进行下一步,该处设置了三个开关表示三点定位,只有三个开关全部闭合才能进行下一步,否则不断检测三点定位情况。
3.装配插片动作是三点定位完成后进行的动作,两次贴片分步进行。
为精确的定位,这里采用的是步进电机。
4.贴片结束后,技术装置开始计数,计数总量为9999件,计数结束后,一班生产结束,生产线控制人员换班。
三、设计流程
为了设计过程中时刻有一个清晰的思路,也为了方便程序的阅读,简单做了一个设计流程图:
四、硬件与插口连线图
4.1.实验设备
设备
数量
8088CPU
1
8255A芯片
1
8155芯片
1
8253芯片
1
发光二极管
4
LED数码管
8
开关
5
4.2.本项目中用到了8255、8155、8253芯片以及异步电机、开关、指示灯和数码管,具体连线如下表所示:
8253
C5区:
CS、A0、A1
A3区:
CS3、A0、A1
C5区:
CLK0
B2区:
1953
C5区:
OUT0
B4区:
PC0
C5区:
GATE0
C1区:
VCC
8255
B4区:
CS、A0、A1
A3区:
CS1、A0、A1
B4区:
JP56(PA口)
G5区:
JP41
B4区:
JP53(PB口)
G5区:
JP42
8155
B4区:
CS、O/IM
A3区:
CS2、A8
B4区:
JP56
A3区:
JP51
B4区:
JP53
G6区:
JP80
电动机
E1区:
A、B、C、D
A3区:
P1.7、P1.6、P1.5、P1.4
指示灯
G6区:
DS35、DS36、DS37、DS38
A3区:
P1.0、P1.1、P1.2、P1.3
4.3.连线图
段选
位选
8255电路原理图
8155电路原理图
步进电机电路原理图
LED灯电路原理图
A:
按键的列线
B:
数码管段码
C:
数码管选择脚
D:
按键的行线
发光管电路原理图
JP65:
发光管控制接口,0-灯亮,1-灯灭
开关电路原理图
JP80:
开关控制接口;闭合-0信号,断开-1信号
五、程序代码
程序端口设置:
8255A
8155
A端口
0F000H
A端口
0E100H
B端口
0F001H
B端口
0E101H
C端口
0F002H
C端口
0E102H
控制寄存器
0F003H
控制寄存器
0E103H
详细程序代码如下:
Ø.modelsmall
Ø.stack
Ø.data
◆ledtbdb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
◆numdw0
◆qiandw1000
◆baidw100
◆shidb10
◆qianweidb0;用于存放num中千位上的数
◆baiweidb0;用于存放num中百位上的数
◆shiweidb0;用于存放num中十位上的数
◆geweidb0;用于存放num中个位上的数
Ø.code
Østart:
movax,@data
●movds,ax
●movdx,0f003h
●定义8255方式控制字
●outdx,al
Øagain:
movdx,0e100h
●moval,1;定义8155方式控制字
●outdx,al
●movdx,0e101h
●
●outdx,al
●movdx,0e102h
●inal,dx
●cmpal,00010000b;判断生产线开关是否打开
●jnzagain
●callbujin1;将工件输送到定点位置
●movdx,0e101h
●
●outdx,al
Øagain1:
movdx,0e102h
●inal,dx
●cmpal,00010111b;判断三点定位是否全部定位
●jnzagain1
Øqidong:
callbujin1
◆;粘胶过程开始
Øagain3:
movdx,0e100h
●moval,1
●outdx,al;写入8155方式控制字
●movdx,0e102h
●inal,dx
●cmpal,01110111b;判断粘胶是否粘好
●jnzagain3
●movdx,0e101h
●moval,01110001b
●outdx,al
●callbujin2
●incnum
●callxianshi;调用显示子程序
●cmpnum,9999
●jnzagain
●callclear
●movax,4c00h
●int21h
●;子程序
Ødelay5proc;延时程序
●pushax
●pushbx
●pushcx
●pushdx
●movcx,200
◆B:
movdi,30
◆A:
decdi
●jnzA
●loopB
●popdx
●popcx
●popbx
●popax
●ret
Ødelay5endp
Ødel1sproc;计时程序
●pushdx
●pushax
●movdx,0d003h
●moval,00110001b
●outdx,al
●movdx,0d000h
●movax,3906h
●outdx,al
●moval,ah
●outdx,al
Øagain4:
movdx,0f002h
●inal,dx
●andal,00000001b
●cmpal,0
●jzagain4
⏹popax
⏹popdx
⏹ret
Ødel1sendp
Øbujin1proc;步进电机逆时针转动子程序
●pushax
●pushbx
●pushcx
●pushdx
●movdx,0e100h
●moval,1
●outdx,al
●movcx,10
⏹ab:
movdx,0e101h
●moval,00010110b;给步进电机d口低脉冲
●outdx,al
●calldel1s
●moval,00100110b;给步进电机c口低脉冲
●outdx,al
●calldel1s
●moval,01000110b;给步进电机b口低脉冲
●outdx,al
●calldel1s
●给步进电机a口低脉冲
●outdx,al
●calldel1s
●loopab
●movdx,0e101h
●moval,01110111b;指示灯熄灭
●outdx,al
●popdx
●popcx
●popbx
●popax
●ret
Øbujin1endp
Øbujin2proc;步进电机顺时针转动子程序
●pushax
●pushbx
●pushcx
●pushdx
●movdx,0e100h
●moval,1
●outdx,al
●movcx,10
aa:
movdx,0e101h
●给步进电机a口低脉冲
●outdx,al
●calldel1s
●moval,01000110b;给步进电机b口低脉冲
●outdx,al
●calldel1s
●moval,00100110b;给步进电机c口低脉冲
●outdx,al
●calldel1s
●moval,00010110b;给步进电机d口低脉冲
●outdx,al
●calldel1s
●loopaa
●movdx,0e101h
●moval,01110111b
●outdx,al
●popdx
●popcx
●popbx
●popax
●ret
Øbujin2endp
Øxianshiproc;显示子程序
●pushcx
●pushax
●pushbx
●pushdx
●calljishu
●movcx,02fffh
Øagain7:
movbl,qianwei
●xorbh,bh
●moval,ledtb[bx]
●movdx,0f001h
●outdx,al
●movdx,0f000h
●
●outdx,al
●callclear
●movbl,baiwei
●xorbh,bh
●moval,ledtb[bx]
●movdx,0f001h
●outdx,al
●movdx,0f000h
●
●outdx,al
●callclear
●movbl,shiwei
●xorbh,bh
●moval,ledtb[bx]
●movdx,0f001h
●outdx,al
●movdx,0f000h
●
●outdx,al
●callclear
●movbl,gewei
●xorbh,bh
●moval,ledtb[bx]
●movdx,0f001h
●outdx,al
●movdx,0f000h
●
●outdx,al
●callclear
●loopagain7
◆popdx
◆popbx
◆popax
◆popcx
◆ret
Øxianshiendp
Øjishuproc;计数子程序
◆pushax
◆pushdx
◆movax,num
◆movdx,0h
◆divqian
◆movqianwei,al
◆movax,dx
◆movdx,0h
◆divbai
◆movbaiwei,al
◆movax,dx
◆divshi
◆movshiwei,al
◆movgewei,ah
◆popdx
◆popax
◆ret
Øjishuendp
Øclearproc;清除数码管位选子程序
◆pushax
◆pushdx
◆movdx,0f000h
◆
◆outdx,al
◆popdx
◆popax
◆ret
Øclearendp
Øendstart
六、实现的功能
1.程序调试情况
A.刚开始时只是简单的实现了基本的题目要求,只是用了8255A的三个端口,用了A、B端口非别控制位选和段选,用C端口作为输入,用来输入三点定位的信号,经过几次调试才把开关的输入信号输入到8255A中。
B.在实现了基本要求之后,之后添加异步电机和LED灯,发现输出端口和输入端口不够使用,于是之后加入了8155芯片,用了A端口作为输出,B端口作为输入,但是A端口还需要分别控制不同的硬件,所以把A端口又连到了A3区的端口来分开,从而达到了既控制异步电机也控制LED灯。
C.以上程序调试完发现异步电机转动几乎没有反应,想到需要有延时程序,想到用8253来即时,之后把8253加入到程序中。
比较幸运的是数码管一次性就成功了。
2.运行效果图
3.运行结果分析
运行程序,则首先看到电源指示灯亮,打开启动开关后,异步电机转动表示把工件运送到三点定位处的工位,之后三点定位完成把信号输入到8155芯片中,紧接着就是电机转动表示粘胶动作,粘胶完成闭合两个开关表示粘胶动作完成指示灯亮,继续下面的工序,数码管显示加工件数。
七、项目总结
几周的上机模拟,程序运行无误。
不可避免的模拟过程中也遇到了或多或少的问题:
1.程序在编辑的时候,由于有的逻辑上存在问题,即使编译连接无误仍无法得到预期的效果。
2.有的时候试验箱也会存在问题,也需要判断分析问题出在何处。
3.出的问题最多的就是PC指针超出范围,以及异步电机转动情况与输出的信号不符。
4.实验过程中大家一起讨论得出结论,收获很多。
八、感想与建议
经过近十周的微机原理课的学习,从头听到尾整体感觉是迷迷糊糊的,只是懂得了一些代码和程序以及芯片的工作方式,对于这些程序代码和芯片怎样去实现对一项生产过程的控制可以说一无所知,但是经过做这个项目,我才懂得怎样用他们去实现控制,让我学到了很多东西:
1.我们把理论与实践结合在一起。
大家都是第一次接触这样的项目,由于它给了我们更多的自由空间,这使过惯了思想受束缚的我们感到十分新颖,自然兴趣也被调动了起来,收获很多。
2.在项目设计的过程中,我们认识到团队合作的重要性,集思广益,一些问题很容易被解决,同时一些新颖的想法也很容易被发现,所以我认为这是这个项目给我们带来的最大的收益。
3.项目设计的过程中,遇到了很多问题,要排除问题就要从程序和实验箱入手,通过判断和测试确定问题的来源,并解决它。
从中学会如何去理智的分析、判断和解决问题。
4.建议学校能有更多的时间和课时能让同学们多实践,还有就是希望老师在验收时能耐心的听完学生的汇报,而不是听到一半而不耐烦的离去,能让真正付出的同学获得应有的回报。
总之,这次项目设计给了我们一个自由锻炼的机会,我们在设计中巩固知识的同时,学会了独立思考收获很多。
九、参考文献
【1】INBN978-7-111-15535-5:
钱晓婕陈涛.16/32位微机原理、汇编语言及接口技术[M].第二版,北京:
机械工程出版社,2005.2
【2】燕山大学机电实验室内部资料微机原理实验箱使用说明项目版