Suma y Resta Embebidos

Trabajo de sistemas embebidos. Integrantes: Anderson Ojeda Gina rodríguez Profesor: José Caicedo. Haga un programa en

Views 189 Downloads 10 File size 280KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Trabajo de sistemas embebidos.

Integrantes: Anderson Ojeda Gina rodríguez

Profesor: José Caicedo.

Haga un programa en assembler que sume dos números cualquiera entre si comprendidos entre 1 y 255 el resultado debe ser guardado en un registro llamado respaldo, por último, este valor debe ser mostrado por el puerto B utilizando leds.

1) Suma 25+50 list p=16f84A include cblock 0x0C respaldo endc ORG 0X00 BSF STATUS, RP0 CLRF TRISB BCF STATUS, RP0

;codigo L1 Movlw .25 addlw .50 movwf respaldo

btfss STATUS,C goto mostrar ;resultado mayor que 255 prendera el nibble bajo de portb ;y apagara los leds conectados al nibble bajo de ;portb para indicar quela suma es suerior a 255 ;que es el maximo numero que se uede representar con 8 bits 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 CBLOCK 0x0C RESULTADO NUM1 ENDC ORG 0X00 BSF STATUS, RP0 CLRF TRISB BCF STATUS, RP0 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 MOVF PORTA,W ;NUM2-->W

;RESULTADOS ADDWF NUM1,W ;NUM2+NUM1 --->W MOVWF RESULTADO ;W-->RESULTADO

ADDWF RESULTADO,F ADDWF RESULTADO,F ADDWF RESULTADO,F ADDWF RESULTADO,F MOVF RESULTADO,W ;SUMA 5 VECES RESULTADO 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 cblock 0x0C RS endc ORG 0X00 BSF STATUS, RP0 CLRF TRISB CLRF TRISA BCF STATUS, RP0 CLRF PORTB CLRF PORTA

;CODIGO INICIO BCF STATUS,C BCF STATUS,Z MOVLW .50 SUBLW .25 MOVWF RS BTFSC STATUS,Z GOTO CERO ;SI EL RESULTADO ES CERO BTFSS STATUS,C GOTO NEGATIVO ;RESULTADO NEGATIVO ;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 ADDLW .1 ;COMP A2-->W MOVWF PORTB BSF PORTA,RA1

GOTO INICIO

CERO BSF PORTA,RA2 ;PRENDERA RA2 SI EL RESULTADO ES CERO MOVF RS,W MOVWF RS GOTO INICIO END

CASO: RESULTADO = -25 (NEGATIVO)

CASO :RESULTADO=30 (POSITIVO )

CASO: RESULTADO =0 (NEUTRO)

4) CASO: CONTADOR=NUM=15 , RESULTADO =15*15=225

CASO: CONT=0 Y NUM=2 (RESULTADO=2)

*SE INGRESA PRIMERO EL CONTADOR

list p=16f84A include cblock 0x0C NUM CONTADOR RESULTADO endc ORG 0X00 BSF STATUS, RP0 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