1、燕山大学微机原理三级项目汽车轮毂生产切削汽车轮毂生产专用夹具计算机控制技术的实现 班级:学 号:姓 名:课程名称:指导教师:2014年5月摘要 31 项目内容 32 设计思路 33 实验设备 54 接线图 55 项目实现的模拟功能 76 项目程序 87 程序结果及分析 148 项目不足 149 项目总结 14汽车轮毂生产专用夹具的控制系统设计摘要:本项目主要通过汇编语言进行编程,实现汽车轮毂生产专用夹具的控制系统的设计,主要的应用有8255芯片,数码管、蜂鸣器和开关,实现的是汽车轮毂生产的这个过程的模拟。主要包括上料,夹紧,定位,切削和技术五个过程,在整个过程中完成定位和夹紧力的实时监测和调整
2、。1 项目内容汽车轮毂生产的最后一序是数控车削,需要使用专用夹具,该夹具使用液压装置驱动,中心定位方式。具体的动作过程是:机器手上料送到-液压定位装置启动-中心定位(使用光电传感器检测中心孔定位是否准确)-若定位满足要求,驱动液压夹紧装置夹紧工件(使用压力传感器检测是否到达工作压力)-夹紧后启动车床主轴开始工作。要求具有计件功能,能够记录每班的生产件数并使用数码管显示。2 设计思路按照题目要求,完成此生产需要五步。上料,定位,加紧,车削,计数。具体流程图如下:Figure 1流程图第一步:机器手上料送到程序开始,需要用一个灯表示料已送到,这个过程之中要注意的是,灯一直是亮着的,表示程序一直在进
3、行。第二步:液压定位装置启动送料结束之后,相应的亮着灯熄灭,另一只灯开始亮,表示液压定位装置开始启动。第三步:中心定位定位结束之后,需要相应的灯熄灭,然后要用到的是传感器,在这个过程中,传感器可以用另一只灯表示。第四步:定位满足要求,驱动液压装置夹紧工件定位满足要求,启动液压装置,加紧主轴,若不满足要求,需要蜂鸣器进行报警,然后进行的是调整,调整合格进行下一步,不合格继续进行调整。第五步:夹紧后启动车床主轴开始工作液压装置夹紧工件之后,开始驱动主轴进行工作。在整个过程中对于主轴工作的次数进行计算,实现计数。通过8255向相应的灯发送信号,控制整个过程中灯的亮灭,向led控制灯发送相应的控制字,
4、表示相关的各个过程。将计数所得值转化相应的控制字发送给数码管显示加工的数量。3 实验设备表格1实验设备设备数量82551蜂鸣器1开关2发光二极管8Led数码管38088芯片1导线若干4 接线图Figure2接线方式主图1Figure3接线方式主图2表格2端口控制对象端口控制对象端口A发光二极管端口BLED端口C发光二极管和蜂鸣器控口端CS1表格3端口地址端口端口位置端口A0F000端口B0F001端口C0F002控口地址0F003Figure 4 8255内部线路Figure5数码管内部线路5 项目实现的模拟功能表格4项目实现的模拟功能实现功能现象计数功能数码管显示定位检测七号灯闪烁蜂鸣器间断
5、鸣叫报警夹紧检测八号灯闪烁蜂鸣器连续鸣叫报警整个工作流程一至五号灯亮6 项目程序.model small.stack.datanum dw 00hLED db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh.codestart:mov ax,datamov ds,axmov dx,0f003h ;写入方式控制字mov al,81hout dx,almov dx,0f002h;防止蜂鸣器空响mov al,11111111bout dx,alshangliao:mov dx,0f000h;上料开始,第一个灯亮mov al,11111110bout dx,alcall
6、 delaymov dx,0f000h;加紧开始,第二个灯亮mov al,11111101bout dx,alcall delaymov dx,0f002h;定位监测in al,dxtest al,02hjz baojing1;不符合要求,跳到报警jmp jiajin;符合要求,进行夹紧baojing1:call fengming1;报警,调用子程序jiajin:mov dx,0f000h;夹紧,第三个灯亮mov al,11111011bout dx,alcall delaymov dx,0f002h;夹紧监测in al,dxtest al,04hjz baojing2;jmp qiexue;
7、baojing2:call fengming2qiexue:mov dx,0f000h;切削,第四个灯亮mov al,11110111bout dx,alcall delaymov dx,0f000hmov al,11111111b;切削工作结束,第四个灯灭out dx,aladd num,01h;实现计数mov cx,02ffhosloy:mov ax,num mov bx,offset LED mov dl,0ah ;个位数显示div dl push ax mov al,ah xlat LED mov dx,0f001h out dx,al mov al,01111111b mov dx,
8、0f002h out dx,al call delay1 pop ax mov ah,0h ;十位数显示 mov dl,0ah div dl push ax mov al,ah xlat LED mov dx,0f001h out dx,al mov al,10111111b mov dx,0f002h out dx,al call delay1 pop ax mov ah,0h ;百位数显示 mov dl,0ah div dl push ax mov al,ah xlat LED mov dx,0f001h out dx,al mov al,11011111b mov dx,0f002h o
9、ut dx,al call delay1 pop axloop osloy mov al,11110111b;完成计数,第五个灯亮mov dx,0f000hout dx,al jmp shangliao;完成一个工作进程,跳回程序首部 fengming1 proc;定位监测报警程序push axpush bx push cxpush dx warn1:mov dx,0f002h mov al,0 out dx,al call delay mov dx,0f000h; mov al,10111111b out dx,al call delaymov dx,0f002h mov al,0 out
10、dx,al call delay mov dx,0f002hmov al,10111111bout dx,alcall delaymov dx,0f002hin al,dxtest al,02hjz warn1jmp next1next1: mov dx,0f000h; mov al,11111111b out dx,alpop dxpop cxpop bxpop ax endpretfengming2 proc;夹紧报警子程序push axpush bx push cxpush dx warn2: mov dx,0f000h; mov al,01111111b out dx,al call
11、delay mov dx,0f002h mov al,0 out dx,al call delay mov dx,0f000h; mov al,01111111b out dx,al call delay mov dx,0f002h mov al,0 out dx,al call delay mov dx,0f002hin al,dxtest al,04hjz warn2jmp next2next2:mov dx,0f000h; mov al,11111111b out dx,alpop dxpop cxpop bxpop ax retfengming2 endpdelay proc;可控延时
12、子程序 push ax push bx push cx mov cx,0ffffh again:nop loop again pop cx pop bx pop ax ret delay endp delay1 proc;可控延时子程序2 push ax push bx push cx mov cx,500 again1:nop loop again1 pop cx pop bx pop axret delay1 endpend start7 程序结果及分析在正常的工作进程中,程序实现了由一至五号灯的依次亮灭,最后计数器实现了准确计数。当将开关置于高电位时,模拟夹紧或者定位过程出现问题时,程序
13、能够实现预期的报警,将开关置于低电位,模拟调整结束,程序可以顺利向下进行,实现顺利的计数。整个计数的过程和预期的结果完全相同,达到实验要求。8 项目不足1、只能进行百位的计数,计数范围较小。主要原因是蜂鸣器的使用,使得端口c的输出电位减少了一个,将蜂鸣器报警和各自对应的灯亮灭进行结合改善,是可以实现更高位数计数的方法之一。2、由于检测报警的过程中,占用了端口C的两个端口,使得数码管显示过程中出现了干涉的问题。本程序调整了开关高低点位对应状态不同的调整,消除了干涉。应探讨一下是否还有其他更好的方法来进行调节。9 项目总结在做这个三级项目个总体过程中,我学到了很多。首先,我学会了课本中未介绍的蜂鸣
14、器和开关的使用,巩固了我在课本中学过的8255和数码管等很多的知识。我体会到了在实践中学习知识的乐趣。另外,在整个过程中,我觉得和同学们和老师的交流这个过程,使我受益颇多。比如蜂鸣器的使用过程中,在程序的设计过程中,有很多的程序段改变蜂鸣器的状态,使我总是不能很好的控制蜂鸣器的工作状态,在和老师交流个过程中,我发现原来可以在其他程序段产生了干涉之后,立即附加修正蜂鸣器的状态程序即可。再比如,最后数码管显示的过程中,我把cx赋值的程序写在了loop循环中,使得我的程序陷入了死循环,在同学的帮助下,我及时的发现和改正了这个错误,受益很大。老师指导,小组配合,互相探讨,通力合作,这个过程锻炼了我的耐心,增加了我的自信。虽然做程序比较繁琐,会出现各种各样的问题,但是在克服了所有困难,最后自己的程序能够顺利实现预期结果时,内心总会充满了成就感。感谢老师的指导,使我能够顺利完成项目,体会到学习的乐趣。参考文献:钱晓捷.16/32位微机原理、汇编语言及接口技术教程北京:机械工程出版社 2011.9