Cómo modificar el programa de la lavadora Little Swan
Los dos siguientes son programas automáticos de lavadora que puedes modificar según los siguientes procedimientos: ORG 0000H START: AJMP MAIN; Inicialización ORG 0003H AJMP INT0; ; Dispositivo de sincronización 0 vector de interrupción ORG 0013H AJMP INT1; Abra la cubierta, vector de interrupción desequilibrado ORG 0030H PRINCIPAL: MOV P1, #0F0H; El programa principal inicia MOV P3, #7FH MOV SP, #35H MOV 56H, #0F0H; marca de drenaje (Especifique 56H como unidad de bandera) MOV 57H, #03; bandera del programa de lavado estándar de lavadora (especifique 57H) MOV 54H, #40 Asignación de lavado intenso de 4 segundos (especifique 54H para almacenamiento) MOV 55H, #10; Asigne un valor para 1 segundo entre lavados fuertes (especifique 55H para almacenamiento) MOV 58H, #06; Asigne un valor para 6 minutos de enjuague (especifique 58H para almacenamiento) CLR ET0 SETB EA; ; Establezca las interrupciones externas 0 y 1 en un nivel bajo para activar CLR IT1 SETB PX0 Establezca el nivel de prioridad de interrupción SETB PT0 SETB PX1 MOV TL0, #0B0H Establezca la constante de tiempo de interrupción de 100 MS MOV TH0, #3CH MOV TMOD, #01H KA: JNB P1.4, X1; el siguiente es el programa de escaneo de claves AJMP KB X1: ACALL K1 KB: JNB P1.5, X2 AJMP KC Dispositivo 0 interrupción SETB TR0 Iniciar temporizador 0 SETB P3.5 SETB EX0 CLR P3.4 MOV; A, 57H CJNE A, #00H, XY; ¿Es un programa de drenaje? AJMP BSH1; en caso afirmativo, pase al programa de drenaje; ¿Hay algún problema con el sistema de entrada de agua? AJMP FW; en caso afirmativo, salte al programa de manejo de fallas L1: JB P3.5, L0; ¿La entrada de agua alcanza el nivel de agua predeterminado? CLR P1.0 Una vez completada la entrada de agua, cierre la válvula de entrada de agua MOV 70H, #00 MOV 71H, #00 MOV 72H, #00 L: MOV 50H, #00 El siguiente es el procedimiento de trabajo de lavado/enjuague SETB; P1.2; rotación hacia adelante Unidad de lavado/enjuague MOV A, 50H CJNE A, 50H, $ CLR P1.2; P1.3; unidad de lavado/enjuague inverso MOV A, 54H CJNE A, 50H, $ CLR P1.3; 72H, L; Lavado / ¿Ha terminado el trabajo de enjuague? BSH: MOV A, 56H CJNE A, #0F0h, PBSH Se completó el trabajo de lavado/enjuague, ¿se drena el agua? DIC 57H; tiempos del ciclo de lavado
Cuenta menos 1 BSH1: SetB P1.1; operación de drenaje, abra la válvula de drenaje MOV 70H, #00 MOV 51H, #00 MOV A, #60 BSH2: CJNE A, 51H, BSH3; AJMP FW; en caso afirmativo, salte al controlador de fallas BSH3: JNB P3.5, BSH2; ¿El nivel del agua cae al nivel predeterminado? MOV A, 51H ADD A, #50 MOV 70H, #00 MOV 51H, #00 CJNE A, 51H, $; extensión del tiempo de drenaje D + 50 segundos MOV 73H, #00; Abra la tapa, no active el contacto de solicitud de interrupción de equilibrio SETB EX1 Durante la deshidratación, apertura de la tapa, activación de interrupción de desequilibrio BSH4: MOV 50H, #00 SETB P1.2 Unidad de deshidratación durante 5 segundos MOV A, #50 CJNE A, 50H, $ CLR P1.2 ; Intervalo de deshidratación 2 segundos MOV A, #20 MOV 50H, #00 CJNE A, 50H, $ INC 73H MOV A, 73H CJNE A, #17, BSH4 ¿Tiempo de deshidratación de hasta 2 minutos? CLR P1.1 SETB P3.5 CLR EX1; Se completa la deshidratación, se prohíbe la apertura de la tapa, se interrumpe la interrupción del desequilibrio MOV A, 57H CJNE A, #00, BSH5; AJMP PBSH; finalizar salto, finalizar programa de alarma BSH5: MOV A, 58H SUBB A, #2; Disminuir el tiempo de lavado/enjuague en 2 minutos MOV 58H, A AJMP XY El trabajo de lavado no ha terminado, continúa con el siguiente ciclo PBSH: MOV 74H, # 00; programa de alarma de fin de lavado JK: MOV 50H, #00 BJ1: SETB P3.7 MOV A, 50H CJNE A, #10, BJ1 MOV 50H, #00 BJ2: CLR P3.7 MOV A, 50H CJNE A, #10, BJ2 INC 74H MOV A, 74H CJNE A, #3, JK AJMP MAIN; Se completa el trabajo de lavandería, regrese al programa principal: CLR EX1; CLR P1.0 CLR P1.1 CLR P1 2 CLR P1.3 FW1: MOV 50H, #00 FW2: SETB P3.7 JNB P1.4, FW4 MOV A, 50H CJNE A, #10, FW2 MOV 50H, #. 00 FW3: CLR P3.7 JNB P1.4, FW4 MOV A, 50H CJNE A, #20, FW3 AJMP FW1 FW4: CLR P3.7 ACALL FZH JNB P1.4, $ AJMP MAIN: PUSH A; es la rutina de servicio de interrupción de pausa PUSH PSW PUSH DPH PUSH DPL SETB P3.4 Cancelar esta señal de solicitud de interrupción ACALL FZH MOV A, P1 MOV R1, A Guardar estado del puerto P1 ANL A, #0F0H MOV P1, A; suspende varias operaciones * JB P3.4, $ Esperando inicio Pulsación de tecla ACALL FZH MOV A, R1 MOV P1, A Restaura los datos originales del puerto P1 POP DPL POP DPH POP PSW POP A CLR P3.4 RETI; ; T0: PUSH A; Programa de servicio de interrupción temporizada del temporizador 0 PUSH DPH PUSH D
PL PUSH PSW INC 50H INC 70H; la unidad 100MS acumula 1 MOV A, 70H CJNE A, #0AH, LL ¿El tiempo llega a 1 segundo? MOV 70H, #00 INC 51H INC 71H; El tiempo llega a 1 segundo, luego la segunda unidad acumula 1 MOV A, 71H CJNE A, #3CH, LL; MOV 71H, #00H INC 52H INC 72H; cuando el tiempo llegue a 1 minuto, la unidad acumulará 1 LL: POP PSW POP DPL POP DPH POP A RETI: PUSH A; interrumpir la rutina de servicio PUSH PSW PUSH DPH PUSH DPL SETB P3.5; cancelar esta señal de solicitud de interrupción CLR P1.1; detener el drenaje de agua* para CLR P1.2; detener la deshidratación* para CLR ET0; P1.6 , $; Espere a que se abra la tapa o desaparezca la señal de interrupción de desequilibrio SETB P1.1; Reanudar el drenaje* como SETB P1.2 Reanudar la deshidratación* como POP DPL POP DPH POP PSW POP A CLR P3.5 SETB; ET0; se permite la interrupción del temporizador 0 RETI; retorno de interrupción; K1: ACALL DEL10; el siguiente es el programa de procesamiento de claves de selección fuerte y débil JNB P1.4, X4 AJMP EXIT1 MOV 55H, #20 AJMP EXIT1 J1: SETB P1.7 MOV 54H, #40 MOV 55H, #10 EXIT1: JNB P1.4, EXIT1 RET; K2: ACALL DEL10; El siguiente es el programa de procesamiento de claves de selección de programa de lavandería JNB P1, X5 AJMP X9 X5: ACALL FZH MOV A, 57H. CJNE A, #00, , #03, X7 SETB P3.0; Asignación de programa de trabajo económico de lavandería CLR P3.1 MOV 57H, #02 MOV 56H, #0F0H AJMP SETB P3.1 MOV 57H, #01 MOV 56H, #00 AJMP X9 X8: CJNE A, #01, : JNB P1.5, #64H DLL: NOP NOP NOP DJNZ R7, DLL DJNZ R6, D1MS RET Este TXT se descarga de "文库宝"