某生产线的计算机控制技术的实现系统设计.doc_第1页
某生产线的计算机控制技术的实现系统设计.doc_第2页
某生产线的计算机控制技术的实现系统设计.doc_第3页
某生产线的计算机控制技术的实现系统设计.doc_第4页
某生产线的计算机控制技术的实现系统设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

某生产线的计算机控制技术的实现班 级: 10级机控(1)班学 号: 100101010053姓 名: 卢彪课 程 名 称:16/32位微机原理,汇编语言及接口技术指 导 教 师: 李艳文2013年5月 15一、项目要求3二、 模拟方案3三、程序执行流程图4四、接线图5五、 实物接线图5六、 功能实现7七、详细程序7八、 感言12某生产线的计算机控制技术的实现 作者 卢彪 (燕山大学 机械工程学院)摘要:该项目主要是通过数码管模拟a,b,c,d,e五个工序的运行情况,用8253 定时计数器进行精确计时。用七段数码管的前4位记录完成的工件数,后四位记录误工数。通过用汇编语言的编程,基本实现a,b,c,d各运行8s, e运行13s,并对误工现象进行模拟、识别和记录功能。一、项目要求某生产线用于装配某机械产品,总共有5个工位,分别为a、b、c、d、e要求使用微机控制,总计45秒完成一个产品的装配。a、b、c、d各需要8秒,e工位需要13秒。其中e工位是关键控制工位,如果在e工位没有按照要求的时间完成就要将a工位暂停,直到e工位完成后给a一个完成信号重新启动a工位。要求记录完成的工件数和生产线发生故障的次数并显示。2、 模拟方案1、考虑采用二极管的亮灭代表a,b,c,d,e的运行与否以及误工情况2、采用七段数码管的前四位表示所生产的的工件数,后四位表示误工数3、用误工开关模拟e工位的误工情况4、采用8255a作为基本的输入输出接口,用pa口对数码管进行段控;用 pb口控制二极管的亮灭;pc0作为误工信号的输入接口,pc1作为计时 结束信号返回的接口,pc5,pc6,pc7用来控制74ls138译码器的a、 b、c端口。5、采用74ls138译码器的输出接口对七段数码管进行位控6、采用8253定时计数器进行精确计时三、程序执行流程图 工序b 工序c 工序d 工序e 工序a 判断故障 延时,故障数加一工件数加一,显示无故障有故障 四、接线图5、 实物接线图1、8255a实物接线图2、74ls138译码器实物接线图3、8253定时计数器实物接线图6、 功能实现 通过二极管的1、2、3、4、6号灯分别模拟a、b、c、d、e五个工位的运行情况,8号灯与6号灯同时亮表示e工位误工。本题通过8号开关模拟误工信号。七段数码管的前四位显示所完成的工件数,后四位显示e工位误工数。七、详细程序 .model small .stack .data chushu dw 10;定义除数为10 shuju db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;010所对应的七段数码管段码shuju gjs dw 0h;定义所完成工件数gjs wgs dw 0h;定义误工数wgs ge1 db 0h;定义工件数个位ge1 shi1 db 0h;定义工件数十位shi1 bai1 db 0h;定义工件数百位bai1 ge2 db 0h;定义误工数个位ge2 shi2 db 0h;定义误工数十位shi2 bai2 db 0h;定义误工数百位bai2 .code start: mov ax,data mov ds,ax;初始化8255a mov dx,0f003h; mov al,10000001b out dx,al mov dx,0e003h;初始化8253 mov al,00110000b out dx,al a0: mov dx,0f001h;定义a工位 mov al,11111110b out dx,al call delay8s;调用8s延时程序 a1: mov dx,0f002h in al,dx;返回计数器out0信号 and al,00000010b jz a1;out0为低电平继续循环 mov dx,0f001h;out0为高电平则开始工位b mov al,11111101b out dx,al call delay8s b1: mov dx,0f002h in al,dx test al,00000010b jz b1 mov dx,0f001h;开始工位c mov al,11111011b out dx,al call delay8s c1: mov dx,0f002h in al,dx test al,00000010b jz c1 mov dx,0f001h;开始工位d mov al,11110111b out dx,al call delay8s d1: mov dx,0f002h in al,dx test al,00000010b jz d1 m: mov dx,0f001h;开始工位e mov al,11011111b out dx,al call delay13s;调用13s延时程序 e1: mov dx,0f002h in al,dx;返回计时器out0信号 test al,00000010b jz e1;若out0信号为低电平继续循环 e2: mov dx,0f002h;若为高电平则检测误工情况 in al,dx;返回误工开关电平 test al,00000001b jz count;误工信号为低电平,跳转至分支count delay:mov dx,0f001h mov al,01011111b out dx,al;e工位和误工信号灯同时亮 delay1: mov dx,0f002h in al,dx;返回误工信号 test al,00000001b jnz delay;若继续误工,则重复检验 mov dx,0f001h mov al,11111111b out dx,al;误工解除,信号灯全灭进行计数 inc wgs;误工数加一 count: mov al,11111111b mov dx,0f001h out dx,al;信号灯全灭,进行计数 inc gjs;工件数加一 call jisuan1;调用计算工件数子程序jisuan1 call jisuan2;调用计算误工数子程序jisuan2 mov cx,3h;设定数码管循环显示次数为3 show: call ledshow ;调用数码管显示子程序 loop show;循环显示 jmp a0;调至程序开头,重新进行 mov ax,4c00h int 21h jisuan1 proc push ax push dx ge3: mov ax,gjs;工件数ax mov dx,0;dx清零 div chushu;利用除十取余法取出个位 mov ge1,dl shi: mov dx,0 div chushu mov shi1,dl;继续除十取余取出十位 bai: mov dx,0 div chushu mov bai1,dl ;取出百位 pop cx pop dx pop ax ret jisuan1 endp jisuan2 proc push ax push dx ge0: mov dx,0 mov ax,wgs div chushu mov ge2,dl shi0: mov dx,0 div chushu mov shi2,dl bai0: mov dx,0 div chushu mov bai2,dl pop dx pop ax ret jisuan2 endp ledshow proc push bx push ax push dx showbai1:mov bx,offset shuju;shuju偏移地址bx mov al,bai1;百位数字al xlat ;百位数字对应的数码管段码al mov dx,0f000h out dx,al;写入段码 mov al,11000000b mov dx,0f002h out dx,al;写入位码 showshi1:mov bx,offset shuju;显示工件数十位 mov al,shi1 xlat mov dx,0f000h out dx,al mov al,10100000b mov dx,0f002h out dx,al showge1:mov bx,offset shuju;显示工件数各位 mov al,ge1 xlat mov dx,0f000h out dx,al mov al,10000000b mov dx,0f002h out dx,al showbai2:mov bx,offset shuju;显示误工数百位 mov al,bai2 xlat mov dx,0f000h out dx,al mov al,01000000b mov dx,0f002h out dx,al showshi2:mov bx,offset shuju;显示误工数十位 mov al,shi2 xlat mov dx,0f000h out dx,al mov al,00100000b mov dx,0f002h out dx,al showge2:mov bx,offset shuju;显示误工数个位 mov al,ge2 xlat mov dx,0f000h out dx,al mov al,00000000 mov dx,0f002h out dx,al pop dx pop ax pop bx ret ledshow endp delay8s proc;8s延时子程序 push ax push dx mov al,08h mov dx,0e000h out dx,al;写入计数值低字节 mov al,3dh mov dx,0e000h out dx,al;写入计数值高字节 pop dx pop ax ret delay8s endp delay13s proc;13s延时子程序 push ax push dx mov al,2dh mov dx,0e000h out dx,al mov al,63h mov dx,0e000h out dx,al p

温馨提示

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

评论

0/150

提交评论