Professional Documents
Culture Documents
1) Suma 25+50
list p=16f84A
include <p16f84A.INC>
cblock 0x0C
respaldo
endc
ORG 0X00
CLRF TRISB
;codigo
L1
Movlw .25
addlw .50
movwf respaldo
btfss STATUS,C
goto mostrar
movlw B'00001111'
movwf PORTB
movlw B'00000000'
movwf PORTB
goto fin
mostrar
movf respaldo,w
movwf PORTB
fin
END
2) Haga un programa en assembler que sume dos números de 4 bits introducidos por el
puerto A utilizando dipswitch (utilice los primeros cuatro bits para el número y el bit más
significativo como botón enter el cuál indicará que ya el usuario terminó de digitar cada
número). El resultado debe multiplicarlo por 5 y mostrarlo por el puerto B.
Num1=Num2=2 , resultado=20
list p=16f84A
include <p16f84A.INC>
CBLOCK 0x0C
RESULTADO
NUM1
ENDC
ORG 0X00
CLRF TRISB
CLRF PORTB
INICIO
CLRF RESULTADO
CLRF NUM1
;CODIGO
P1 BTFSS PORTA,RA4
GOTO P1
P2 BTFSC PORTA,RA4
GOTO P2
MOVF PORTA,W
MOVWF NUM1
P3 BTFSS PORTA,RA4
GOTO P3
P4 BTFSC PORTA,RA4
GOTO P4
;RESULTADOS
ADDWF RESULTADO,F
ADDWF RESULTADO,F
ADDWF RESULTADO,F
ADDWF RESULTADO,F
MOVWF PORTB
GOTO INICIO
END
3) Haga un programa en assembler que reste dos números digitados por software. Si el
resultado es positivo lo debe multiplicar por 4 mostrarlo por el PORTB, si es negativo
aplíquele el complemento A2, muéstrelo por el PORTB y active un led conectado al pin
RA1 que indicará que el resultado es negativo.
list p=16f84A
include <p16f84A.INC>
cblock 0x0C
RS
endc
ORG 0X00
CLRF TRISB
CLRF TRISA
CLRF PORTB
CLRF PORTA
;CODIGO
INICIO
BCF STATUS,C
BCF STATUS,Z
MOVLW .50
SUBLW .25
MOVWF RS
BTFSC STATUS,Z
BTFSS STATUS,C
;RESULTADO POSITIVO
MOVF RS,W
ADDWF RS,F
ADDWF RS,F
ADDWF RS,F
MOVF RS,W
MOVWF PORTB
GOTO INICIO
NEGATIVO
COMF RS,W
MOVWF PORTB
BSF PORTA,RA1
GOTO INICIO
CERO
MOVF RS,W
MOVWF RS
GOTO INICIO
END
4)
list p=16f84A
include <p16f84A.INC>
cblock 0x0C
NUM
CONTADOR
RESULTADO
endc
ORG 0X00
CLRF TRISB
BCF STATUS, RP0
CLRF PORTB
;CODIGO
INICIO
BCF STATUS,Z
CLRF CONTADOR
CLRF NUM
CLRF RESULTADO
P1 BTFSS PORTA,RA4
GOTO P1
P2 BTFSC PORTA,RA4
GOTO P2
MOVF PORTA,W
MOVWF CONTADOR
P3 BTFSS PORTA,RA4
GOTO P3
P4 BTFSC PORTA,RA4
GOTO P4
MOVF PORTA,W
MOVWF NUM
MOVF CONTADOR,W
SUBLW .0
BTFSC STATUS,Z
GOTO CONT_CERO
;NO ES CERO
SEGUIR
MOVF NUM,W
ADDWF RESULTADO,F
DECFSZ CONTADOR,F
GOTO SEGUIR
MOVF RESULTADO,W
MOVWF PORTB
GOTO INICIO
CONT_CERO
MOVF NUM,W
MOVWF PORTB
GOTO INICIO
END