test al,02h
jz j12 ;判断气源压力是否正常 call yu11 ;显示“气源压力正常” call delaytime mov dx,0e003h mov al,00000010b
out dx,al ;使第二个灯亮 jmp j21
j12:call yu12 ;显示“气源压力异常” call delaytime mov dx,0e003h mov al,00000011b
out dx,al ;使第二个灯灭 j21:mov dx,0e000h in al,dx test al,01h
jz ting ;读入A口状态,再次判断总开关是否开启,未开启则跳到不工作的程
序
test al,04h
jz j22 ;判断液压压力是否正常 call yu21 ;显示液压压力正常 call delaytime mov dx,0e003h mov al,00000100b
out dx,al ;使第三个灯亮 jmp j31
j22:call yu22 ;显示液压压力正常 call delaytime mov dx,0e003h mov al,00000101b
out dx,al ;使第三个灯灭 j31:mov dx,0e000h in al,dx test al,01h
jz j61 ;读入A口状态,再次判断总开关是否开启,未开启则跳到不工作的
程序
test al,08h
jz j32 ;判断安全门是否关闭 call yu31 ;显示安全阀门正常 call delaytime
mov dx,0e003h mov al,00000110b
out dx,al ;使第四个灯亮 jmp j41
j32:call yu32 ;显示安全阀门异常 call delaytime mov dx,0e003h mov al,00000111b
out dx,al ;使第四个灯灭 j41:mov dx,0e000h in al,dx test al,01h
jz j61 ;读入A口状态,再次判断总开关是否开启,未开启则跳到不工作的
程序
test al,10h
jz j42 ;判断机械装备是否正常 call yu41 ;显示机械装备正常 call delaytime mov dx,0e003h mov al,00001000b
out dx,al ;使第五个灯亮 jmp j51
j42:call yu42 ;显示机械装备异常 call delaytime mov dx,0e003h mov al,00001001b
out dx,al ;使第五个灯灭 j51:mov dx,0e000h in al,dx test al,01h
jz j61 ;读入A口状态,再次判断总开关是否开启,未开启则跳到不工作的
程序
and al,00011110b cmp al,00011110b
jnz j62 ;判断所有检测项是否均正常 mov dx,0e003h mov al,00001101b
out dx,al ;所有检测项均正常后,电机启动 mov dx,0e003h mov al,00001011b
out dx,al ;蜂鸣器不响 jmp begin j61:mov al,10111111b mov dx,0e002h
out dx,al ;总开关未开启,使灯全灭,电机不转,蜂鸣器不响 jmp begin j62:mov al,00001010b mov dx,0e003h
out dx,al ;存在检测项不正常,使蜂鸣器报警 mov al,00001100b mov dx,0e003h
out dx,al ;电机停 jmp begin mov ax,4c00h int 21h
;显示日期的子程序
riqi proc push ax push cx push dx push bx
;8155设置,A端口输出,B端口输出
mov dx,0D100h mov al,03h out dx,al mov cx,02ffh shuma:push cx
mov bx,offset LEDtb mov al,2 xlat
mov dx,0d102h out dx,al mov al,01111111b mov dx,0d101h out dx,al call delaytime4 mov al,0 xlat
mov dx,0d102h out dx,al
mov al,10111111b mov dx,0d101h out dx,al call delaytime4 mov al,1 xlat
mov dx,0d102h out dx,al mov al,11011111b mov dx,0d101h out dx,al call delaytime4 mov al,2 xlat
mov dx,0d102h out dx,al mov al,11101111b mov dx,0d101h out dx,al call delaytime4 mov al,0 xlat
mov dx,0d102h out dx,al mov al,11110111b mov dx,0d101h out dx,al call delaytime4 jmp shuma5 shuma1: jmp shuma pop cx dec cx push cx shuma5: mov al,5 xlat
mov dx,0d102h out dx,al mov al,11111011b
mov dx,0d101h out dx,al call delaytime4 mov al,0 xlat
mov dx,0d102h out dx,al mov al,11111101b mov dx,0d101h out dx,al call delaytime4 mov al,6 xlat
mov dx,0d102h out dx,al mov al,11111110b mov dx,0d101h out dx,al call delaytime4 call clear pop cx loop shuma1 pop bx pop dx pop cx pop ax ret riqi endp
;清除数码管位选子程序
clear proc push ax push dx mov dx,0d101h mov al,11111111b out dx,al pop dx pop ax ret clear endp
;延时程序