六、工作流程图
七、程序流程图
5
八、项目程序
.model small .stack .data en dw 00h
ledt db 001111111b,00000110b,11011010b,010111011b,01100110b db 01101101b,01111101b,00000111b,011111111b,01101111b ;数码管显示
count dw 0h ; 完成数量 .code
start: mov ax,@data mov ds,ax
mov dx,0f003h ;写入控制字 mov al,88h
out dx,al
mov dx,0f002h ;写入方式控制字 mov al,0ffh out dx,al
Step0: mov dx,0f002h ;机器手上料(一号灯亮) mov al,11111110b out dx,al call delay
Step1: mov dx,0f002h ;是否机器手上料送到
6
In al,dx
test al,10000000b ;开关K8 jz Step0 call delay
Step2: mov dx,0f002h ;中心孔定位(二号灯亮,定位指示灯亮) mov al,11111101b out dx,al call delay
Step3: mov dx,0f002h ; In al,dx
test al,01000000b ; jz Step2 call delay
Step4: mov dx,0f002h ; mov al,11111011b out dx,al call delay
Step5: mov dx,0f002h ; In al,dx
test al,00100000b ; jz Step4 call delay
Step6: mov dx,0f002h ; mov al,11110111b out dx,al call delay
mov al,11111111b ; out dx,al call delay
Step7: mov dx,0f002h ; In al,dx
test al,00010000b ; 是否定位准确 开关K7 压力传感器检测工作压力(三号灯亮) 是否夹紧 开关K6 车削(四号灯亮) 四号灯闪烁报警提示完成 是否进入下一工件加工 开关K5
7
jz Step6 call delay add count,01h call xian
xian proc ;显示子程序 mov en,20
again: mov dx,0f000h ;选中第一位数码管 mov al,01111111b out dx,al
mov bx,offset ledt mov ax,count mov dl,0ah div dl xlat
mov dx,0f001h out dx,al call belay
mov al,10111111b mov dx,0f000h out dx,al mov al,ah xlat
mov dx,0f001h out dx,al call belay dec en jnz again ret
xian endp jmp start
delay proc timer=65000
dimer=2600 push ax push bx mov cx,timer delay1: loop delay1
;延时子程序1 8
pop bx pop ax ret delay endp
belay proc ;延时子程序2 push ax push bx mov cx,dimer belay1: loop belay1 pop bx pop ax ret belay endp end start
九、成果展示
9