某生产线控制系统设计资料Word下载.docx
- 文档编号:18626722
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:15
- 大小:227.66KB
某生产线控制系统设计资料Word下载.docx
《某生产线控制系统设计资料Word下载.docx》由会员分享,可在线阅读,更多相关《某生产线控制系统设计资料Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
摘要:
该项目主要是通过数码管模拟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定时计数器进行精确计时
三、程序执行流程图
四、接线图
5、实物接线图
1、8255A实物接线图
2、74LS138译码器实物接线图
3、8253定时计数器实物接线图
6、功能实现
通过二极管的1、2、3、4、6号灯分别模拟A、B、C、D、E五个工位的运行情况,8号灯与6号灯同时亮表示E工位误工。
本题通过8号开关模拟误工信号。
七段数码管的前四位显示所完成的工件数,后四位显示E工位误工数。
七、详细程序
.modelsmall
.stack
.data
chushudw10;
定义除数为10
shujudb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;
0——10所对应的七段数码管段码→shuju
gjsdw0h;
定义所完成工件数gjs
wgsdw0h;
定义误工数wgs
ge1db0h;
定义工件数个位ge1
shi1db0h;
定义工件数十位shi1
bai1db0h;
定义工件数百位bai1
ge2db0h;
定义误工数个位ge2
shi2db0h;
定义误工数十位shi2
bai2db0h;
定义误工数百位bai2
.code
start:
movax,@data
movds,ax;
初始化8255A
movdx,0f003h;
moval,10000001b
outdx,al
movdx,0e003h;
初始化8253
moval,00110000b
a0:
movdx,0f001h;
定义A工位
moval,11111110b
calldelay8s;
调用8S延时程序
a1:
movdx,0f002h
inal,dx;
返回计数器out0信号
andal,00000010b
jza1;
OUT0为低电平继续循环
OUT0为高电平则开始工位B
moval,11111101b
calldelay8s
b1:
inal,dx
testal,00000010b
jzb1
开始工位C
moval,11111011b
c1:
jzc1
开始工位D
moval,11110111b
d1:
jzd1
m:
开始工位E
moval,11011111b
calldelay13s;
调用13S延时程序
e1:
返回计时器OUT0信号
jze1;
若OUT0信号为低电平继续循环
e2:
movdx,0f002h;
若为高电平则检测误工情况
返回误工开关电平
testal,00000001b
jzcount;
误工信号为低电平,跳转至分支count
delay:
movdx,0f001h
moval,01011111b
outdx,al;
E工位和误工信号灯同时亮
delay1:
返回误工信号
jnzdelay;
若继续误工,则重复检验
movdx,0f001h
moval,11111111b
误工解除,信号灯全灭进行计数
incwgs;
误工数加一
count:
信号灯全灭,进行计数
incgjs;
工件数加一
calljisuan1;
调用计算工件数子程序jisuan1
calljisuan2;
调用计算误工数子程序jisuan2
movcx,3h;
设定数码管循环显示次数为3
show:
callledshow;
调用数码管显示子程序
loopshow;
循环显示
jmpa0;
调至程序开头,重新进行
movax,4c00h
int21h
jisuan1proc
pushax
pushdx
ge3:
movax,gjs;
工件数→AX
movdx,0;
dx清零
divchushu;
利用除十取余法取出个位
movge1,dl
shi:
movdx,0
divchushu
movshi1,dl;
继续除十取余取出十位
bai:
movbai1,dl;
取出百位
popcx
popdx
popax
ret
jisuan1endp
jisuan2proc
pushdx
ge0:
movax,wgs
movge2,dl
shi0:
movshi2,dl
bai0:
movbai2,dl
jisuan2endp
ledshowproc
pushbx
showbai1:
movbx,offsetshuju;
shuju偏移地址→bx
moval,bai1;
百位数字→al
xlat;
百位数字对应的数码管段码→al
movdx,0f000h
outdx,al;
写入段码
moval,11000000b
写入位码
showshi1:
显示工件数十位
moval,shi1
xlat
moval,10100000b
outdx,al
showge1:
显示工件数各位
moval,ge1
moval,10000000b
showbai2:
显示误工数百位
moval,bai2
moval,01000000b
showshi2:
显示误工数十位
moval,shi2
moval,00100000b
showge2:
显示误工数个位
moval,ge2
moval,00000000
popbx
ledshowendp
delay8sproc;
8s延时子程序
moval,08h
movdx,0e000h
写入计数值低字节
moval,3dh
写入计数值高字节
delay8sendp
delay13sproc;
13s延时子程序
moval,2dh
moval,63h
popax
delay13sendp
endstart
8、感言
经过一段时间的忙碌和纠结以后终于把项目如期完成了。
从一开始的满脑的茫然到后来的一知半解再到后来能自己独立完成这次项目,学到了许多。
不单单是汇编语言的编程知识、硬件的连线知识,更重要的是一种学习的态度和方法。
面对从未接触过的领域,大部分人肯定会十分茫然,但我们若是畏步不前,那我们就会毫无进步,唯有硬着头皮向上冲,方能学到自己该学到的东西。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 生产线 控制系统 设计 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)