饮料包装流水线
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
data segment
ioport equ 2400h-280h
io8255a equ ioport+288h
io8255c equ ioport+28Ah
io8255ctr equ ioport+28bh
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
time db '0','$'
time_1 db '0','$'
time_2 db '0','$'
time_3 db '0','$'
time_4 db '0','$'
time_5 db '0','$'
time_6 db '0','$'
ten db 10
num db 0
num1 db 0
temp db 12
temp1 db '0','$'
temp2 db 0
temp3 db 0
mess db 'Press Q to EXIT',0ah,0dh,'$'
xiang db 'CASE','$'
ping db '12 BOTTLE Date:','$'
waittime db 'wait 5s packing...',0ah,0dh,'$'
time_ok db 'packing is finished!',0ah,0dh,'$'
wrong db 'marchine is broken!',0ah,0dh,'$'
right db 'machine is ok now!',0ah,0dh,'$'
run db 'machine is running...',0ah,0dh,'$'
data ends
code segment
main proc far
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov dx,offset mess ;显示提示信息
mov ah,09h
int 21h
mov dx, io8255ctr ;将8255设为A口输出,c口4-7输入0-3输出mov al,10001000b
out dx,al
mov dx,2403h ;开始对8253进行初始化
mov al,00010000b;计数器0方式0低八位二进制
out dx,al
mov dx,2400h
mov al,12
out dx,al ;设置计数初值
mov dx, io8255ctr ;c口第四位pc4置0,默认无故障mov al,00001000b
out dx,al
mov dx,offset run;显示machine is running
mov ah,09h
int 21h
ll:
mov dx,io8255c
mov al,00001000b
out dx,al
mov dx,io8255c
in al,dx
and al,00010000b ;检测PC4
jz a ;转到a
mov dx,offset wrong;marchine is broken
mov ah,09h
int 21h
mov dx,io8255ctr;出现故障,则需要将pc3即运行灯关掉
mov al,00000110b
out dx,al
guzhang:
mov dx,io8255c ;循环判断机器是否还是处在故障中
in al,dx
and al,00010000b
jz guzhang;
mov dx,offset right;machine is ok now
mov ah,09h
int 21h
mov dx,io8255a ;故障处理完后,机器进入正常运行态
mov al,00000111b;PC3正常运行点亮
out dx,al
mov dx,offset run;machine is running
mov ah,09h
a:
mov dx,2400h ;将2400口(计数器0)的数据打到dx in al,dx
;cmp al,-1
;jle a;结果小于或等于-1转移a
mov bl,temp ;12
sub bl,al ;bl中的内容减去al中的,并重新放入bl中mov al,bl ;将16进制转换成10进制
add al,1
mov temp3,al
mov ah,0 ;高位清零
div ten
mov temp1,ah ;将个位放入temp1中
mov bx,offset led ;bx为数码表的起始地址
xlat ;求出相应的段码
mov dx, io8255a
out dx,al;送给数码管
mov dx, io8255c
mov al,02h;十位数码管
out dx,al
mov al,0
mov dx, io8255a
out dx,al
mov dx, io8255c
mov al,01h;个位数码管
out dx,al
mov al,temp1;个位
xlat ;求出相应的段码
mov dx, io8255a
out dx,al ;显示个位
mov dx, io8255c
mov al,01h
out dx,al
mov al,0
mov dx, io8255a;显示十位
out dx,al
mov dx, io8255c
mov al,02h
out dx,al
cmp temp3,13;不相等转t