Vistas de página en total

jueves, 25 de agosto de 2011

INDEXADO_02

En lenguaje ASSEMBLER

;====================================================================
; Programa principal
;====================================================================
ABC 
movf  PORTA,W 
andlw b'00000111' 
addwf PCL,F 
goto  VACIO 
goto  LLENANDOSE 
goto  ALARMA_A 
goto  LLENO 
goto  ALARMA_B 
goto  ALARMA_C 
goto  ALARMA_D 
goto  REBOSE 


VACIO 
movlw b'1100001' 
goto  XYZ  


LLENANDOSE 
movlw b'1100010' 
goto  XYZ 


ALARMA_A 
movlw b'10000' 
goto  XYZ 


LLENO 
movlw b'100100' 
goto  XYZ 


ALARMA_B 
movlw b'10000' 
goto  XYZ 


ALARMA_C 
movlw b'10000' 
goto  XYZ 


ALARMA_D 
movlw b'10000' 
goto  XYZ 


REBOSE 
movlw b'1000' 


XYZ 
movwf PORTB 
goto  ABC



DE OTRA MANERA:
; Definiciones y Equivalencias
;====================================================================
#DEFINE SV PORTA,0 ;SV es RA0 
#DEFINE SLL PORTA,1 ;SLL es RA1
#DEFINE SR PORTA,2 ;SR es RA2
#DEFINE VACIO PORTB,0 ;VACIO es la pata RB0
#DEFINE LLENANDOSE PORTB,1 ;LLENANDOSE es RB1
#DEFINE REBOSE PORTB,2 ;REBOSE es RB2
#DEFINE LLENO PORTB,3 ;LLENO es RB3
#DEFINE ALARMA PORTB,4 ;ALARMA es RB4
#DEFINE BOMBA1 PORTB,5 ;BOMBA1 es RB5
#DEFINE BOMBA2 PORTB,6 ;BOMBA2 es RB6


;====================================================================
; Programa principal
;====================================================================
ABC 


VACIADO
btfsc SR ;Verifica el estado de SR para ver si esta en 0
goto REBOSE1
btfsc SLL ;Verifica si SLL esta en 0
goto LLENO1
btfsc SV ;Verifica el estado de SV para ver si esta en 0
goto LLENADO
bsf VACIO ;deja en 1 a VACIO
bsf BOMBA1 ;activa la bomba 1
bsf BOMBA2 ;activa la bomba 2


LLENADO
    clrf    PORTB ;Deja todo el PUERTOB en 0
btfsc SV ;Verifica si SV esta en 0
goto    LLENO1
bcf VACIO ;Deja a VACIO en 0
bsf BOMBA1 ;Activa la bomba 1
bsf BOMBA2 ;Activa la bomba 2
bsf LLENANDOSE ;Activa LLENANDOSE


LLENO1
btfsc SLL ;Verifica si SLL esta en 0
goto REBOSE1
bcf LLENANDOSE ;Apaga LLENANDOSE
bsf BOMBA1 ;Prende bomba 1
bcf BOMBA2 ;Apaga bomba 2
bsf LLENO

REBOSE1
btfsc SR ;Verifica si ST esta en 0
goto ALARMA1
bcf BOMBA1 ;Apaga bomba 1
bcf LLENO ;apaga LLENO
bsf REBOSE ;Prende REBOSE
goto ABC


ALARMA1
bsf ALARMA ;Enciende ALARMA
bcf BOMBA1 ;Apaga bomba 1
bcf BOMBA2 ;Apaga bomba 2


;====================================================================
END ;Directiva que indica la finalización del pgm





En lenguaje C




#include "C:\Problema\problema.h"




void main()
{
while(1){


switch (input_a()){
   case 0:
    output_b(0b01100001);
    break
   case 1:
    output_b(0b01100010);
    break
   case 2:
    output_b(0b00010000);
    break
   case 3:
    output_b(0b00100100);
    break
   case 4:
    output_b(0b00010000);
   case 5:
    output_b(0b00010000);
    break
   case 6:
     output_b(0b00010000);
    break
   case 7:
    output_b(0b00001000);
    break


}

No hay comentarios:

Publicar un comentario