.cseg .org 0x00 rjmp Inicio rjmp Inicio rjmp Inicio ; ;Declaración de Puertos Inicio: LDI R16,0x00 LDI R17,0xFF LDI R18,0x03 OUT OUT SBI SBI
DDRD,R16 DDRB,R17 DDRC,0 DDRC,1
;Suma de los numeros Main: IN R19,PIND MOV R20,R19 ANDI R19,0x0F ANDI R20,0XF0 ROR ROR ROR ROR
R20 R20 R20 R20
ADD R19,R20 ;Valor de las decenas. CPI R19,0x1E BREQ treinta CPI R19,0x14 BRSH veinte CPI R19,0x0A BRSH dies CPI R19,0x00 BRSH zero ; Decenas en el primer display treinta: CALL DELAY SBI PORTC,1 CBI PORTC,0 ldi R21,0x4F out PORTB,r21 RCALL DELAY SBI PORTC,0 CBI PORTC,1 ldi R21,0x3F out PORTB,R21 rjmp Main
veinte: CALL DELAY SBI PORTC,1 CBI PORTC,0 ldi r21,0b01011011 out PORTB,r21 SUBI R19,0x14 jmp num dies: CALL DELAY SBI PORTC,1 CBI PORTC,0 ldi r21,0x06 out PORTB,r21 SUBI R19,0x0A jmp num zero: CALL DELAY SBI PORTC,1 CBI PORTC,0 ldi r21,0x3F out PORTB,r21 jmp num ;Unidades. num: CALL DELAY SBI PORTC,0 CBI PORTC,1 cpi r19,0x00 breq cero cpi r19,0x01 breq uno cpi r19,0x02 breq dos cpi r19,0x03 breq tres cpi r19,0x04 breq cuatro cpi r19,0x05 breq cinco cpi r19,0x06 breq seis cpi r19,0x07 breq siete cpi r19,0x08 breq ocho cpi r19,0x09
breq nueve ;Unidades en el segundo display cero: ldi r21,0b00111111 out PORTB,r21 jmp Main uno: ldi r21,0b00000110 out PORTB,r21 jmp Main dos: ldi r21,0b01011011 out PORTB,r21 jmp Main tres: ldi r21,0b01001111 out PORTB,r21 jmp Main cuatro: ldi r21,0b01100110 out PORTB,r21 jmp Main cinco: ldi r21,0b01101101 out PORTB,r21 jmp Main seis: ldi r21,0b01111101 out PORTB,r21 jmp Main siete: ldi r21,0b00000111 out PORTB,r21 jmp Main ocho: ldi r21,0b01111111 out PORTB,r21 jmp Main nueve: ldi r21,0b01100111 out PORTB,r21 jmp Main ;Retardo necesario para la visualización de ambos displays. DELAY: ldi R22,0xFF retraso: dec r22 brne retraso
RET