Está en la página 1de 2

.include "m8def.

inc";TIPO DE MICROPROCESADOR
.cseg
.org 0x000
rjmp inicio

inicio:
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16

ldi r16,255 ;cargar la constante 255 al registro r16


out ddrd,r16 ;declarar el purto d como salida
out ddrc,r16 ;declarar el purto c como salida
sbi ddrb,pb0 ;poner el bit pb0 como salida
sbi ddrb,pb1 ;poner el bit pb1 como salida
sbi ddrb,pb2 ;poner el bit pb2 como salida
sbi ddrb,pb3 ;poner el bit pb3 como salida
cbi ddrb,pb7 ;poner el bit pb7 como entrada
ldi r17,0 ;cargar la constante 0 en el registro r17
salto3:
out portb,r17; inicialmente mostrar por el purto "b" el valor de 0
ldi r18,0 ;cargar el valor de 0 en r18

salto2:
out portc,r17;inicialmente mostrar por el purto "c" el valor de 0
ldi r19,0 ;cargar el valor de 0 en r18

salto1:
out portd,r17 ;inicialmente mostrar por el purto "d" el valor de 0
rcall delay;llamado a la subrutina delay

ldi r20,0 ;cargar el valor de 0 en r18


interruptor:
sbic pinb,pb7;si el bit pb0 esta en cero salta a la siguiente instruccion
rjmp interruptor; salto relativo a interruptor

unidades:
inc r20 ;incrementar en 1 r20
cpi r20,10 ;comparar r20 con 10
brsh decenas;si r20 es mayor o igual a 10 salta a decenas
out portd,r20;murstra por el puerto d el valor de r20
rcall delay
rcall soltar_pulsador
rjmp interruptor;salto relativo hacia interruptor

soltar_pulsador:
sbis pinb,pb7
rjmp soltar_pulsador
rjmp interruptor
decenas:
inc r19 ;incrementar en 1 r19
cpi r19,10 ;comparar r19 con 10
brsh centenas;si r20 es mayor o igual a 10 salta a centenas
out portc,r19;murstra por el puerto c el valor de r19
rjmp salto1;salto relativo hacia salto1
centenas:
inc r18 ;incrementar en 1 r18
cpi r18,10 ;comparar r18 con 10
brsh salto3;si r20 es mayor o igual a 10 salta a salto3
out portb,r18;murstra por el puerto b el valor de r18
rjmp salto2;salto relativo hacia salto2
//----------------------------------------------------

//-------------------------------

delay:

ldi r21,50
x3:ldi r22,40
x2:ldi r23,40
x1:dec r23
brne x1
dec r22
brne x2
dec r21
brne x3
ret

También podría gustarte