- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理三级项目汇报
微机原理项目 某生产线控制系统设计 题目要求 某生产线用于装配某机械产品,总共有5个工位,分别为A、B、C、D、E要求使用微机控制,总计45秒完成一个产品的装配。A、B、C、D各需要8秒,E工位需要13秒。其中E工位是关键控制工位,如果在E工位没有按照要求的时间完成就要将A工位暂停,直到E工位完成后给A一个完成信号重新启动A工位。要求记录完成的工件数和生产线发生故障的次数并显示。 对题目的分析 生产线运行过程大致分为两个阶段: A 启动阶段 B连续工作阶段 在启动阶段,A~E工位一次进入作。 A - - - - A B - - - A B C - - A B C D - A B C D E - - - - E }8s }5s }8s }8s }8s 在连续工作阶段,A~D同时工作,工件在A~D依次被加工,最后到E工序。E工序与A~D同时开始,工作13秒,13秒后检查E工序是否完成。若完成则A~E在次同时开始工作;若未完成则继续E工序,直至E工序完成。为了避免死循环,在E工序持续一定时间后停止所有工作,并发出警报。 由以上分析可知:1.E完成后A才可从新启动 ;2.通过对工位E的考察来确定发生故障次数 具体方案 利用8088 ,8255, 灯,开关实现 接线方法: 8255 A口 C口 片选 A0 A1 L0~L4(模拟A~E) L7报警 +5v (手动开关,模拟传感器,关闭代表完成) L0~L4同时亮,并延时8s L0~L3灭,L4亮,并延时5s 完成工件数+1 开关关闭? 是 故障数+1 L0~L3灭,L4亮,延时2s CX=CX+1 CX5 ? 开关关闭? 是 跳出,并发出警报 否 是 否 否 程序编写如下: stack1 segment stack db 1024 dup (0) stack1 ends data segment shuj dw ? data ends code segment code assume cs:code,ds:data,ss:stack1 start: mov ax,data mov ds,ax ;初始工作状态 mov dx,0f003h mov al out dx,al ;程序 mov dx,0f000h mov al out dx,al call bdelay ;第一步 mov al out dx,al call bdelay ;第二步 mov al out dx,al call bdelay ;第三步 mov al out dx,al call bdelay ;第四步 ;以后进入连续工作状态 ;对8255进行初始化,片选端接cs1,则有A口端口地址0F000H,B口端口地址0F001H,C口端口地址0F003H。 ;设置方式字要求,A,B,C口均工作在第0号工作方式,A输出。C口输入。 ;程序 xor bx,bx next: mov dx,0f000h mov al out dx,al call bdelay mov al out dx,al call wdelay inc bl ;bl中存放完成工件数 mov dx,0f002h in al,dx and al,10h jz next inc bh ;bh中存放故障数 xor cx,cx again: mov dx,0f000h mov al out dx,al call edelay inc cx cmp cx,5 ;设置最高循环次数 ja stop mov dx,0f002h in al,dx and al,10h jz next jmp again stop: mov dx,0f000h mov al out dx,al ;停止所有工位,并发出警报 mov shuj,bx;将数据保存至寄存器 mov ax,4c00h int 21h ;子程序,程序名delay,需要延时的时间写在time wdelay proc push bx push cx mov bx,20 wdelay1: mov cx,0 wdelay2: loop wdelay2 dec bx jnz wdelay2 pop cx pop bx ret wdelay endp bdelay proc push bx push cx mov bx,32 bdel
文档评论(0)