Beruflich Dokumente
Kultur Dokumente
main: reset://int0
rcall mostrar //borrar cuentas
clr digito_1
//Si uno llega a diez entonces se clr digito_2
acaba clr digito_3
CPI digito_1,10 clr digito_4
BREQ comp clr cont
CPI digito_2,10 //re habilitar interrupciones
BREQ comp LDI aux,0b0000_0010 //habilitando
CPI digito_3,10 el puerto A y B
BREQ comp STS PCICR,aux
CPI digito_4,10 LDI aux,0b0111_1000
BREQ comp STS pcmsk1,aux
rjmp main cbi portb,7
comp:
rcall comparar reti
rcall parar pausa://int1
SBI portB,7 push temp ; obligatorio se debe
salvar el estado
rjmp main in temp,SREG
push temp
inta: push aux
nop
reti LDI aux,0b0111_1000
EOR r1,aux
intb: Mov temp,r1
push temp ; obligatorio se debe STS pcmsk1,temp
salvar el estado
in temp,SREG
push temp pop aux
in temp,pinb pop temp;recupero estado
eor temp,ante out SREG,temp
in ante,pinB pop temp
reti
alerta://int2 //LDI control,0b1111_0010
cbi portb,7 LDI control,0b1111_1101
reti OUT portC,control
LDI zh,high(tabla<<1)
///////////////////////////////////////////// LDI zl,low(tabla<<1)
/////// //add zl,aux
add zl,digito_2
//Subrutinas lpm aux,z
out portA,aux
parar: call esperar
LDI aux,0b0000_0000 //habilitando clr aux
el puerto A y B OUT portA,aux
STS PCICR,aux
ret //LDI control,0b1111_0100
LDI control,0b1111_1011
player1: OUT portC,control
sbrc ante,3 LDI zh,high(tabla<<1)
INC digito_1 LDI zl,low(tabla<<1)
ret //add zl,aux
player2: add zl,digito_3
sbrc ante,4 lpm aux,z
INC digito_2 out portA,aux
ret call esperar
player3: clr aux
sbrc ante,5 OUT portA,aux
INC digito_3
ret //LDI control,0b1111_1000
player4: LDI control,0b1111_0111
sbrc ante,6 OUT portC,control
INC digito_4 LDI zh,high(tabla<<1)
ret LDI zl,low(tabla<<1)
//add zl,aux
add zl,digito_4
mostrar: lpm aux,z
out portA,aux
//LDI control,0b1111_0001 call esperar
LDI control,0b1111_1110 clr aux
OUT portC,control OUT portA,aux
LDI zh,high(tabla<<1)
LDI zl,low(tabla<<1) //LDI control,0b1111_0000
//add zl,aux LDI control,0b1111_1111
add zl,digito_1 OUT portC,control
lpm aux,z call esperar
out portA,aux //OUT portD,cont
call esperar
clr aux ret
OUT portA,aux esperar:
PUSH temp LDI digito_3,18
PUSH aux skip7:
IN temp,SREG
PUSH temp CPI digito_4,10
BRNE skip4
LDI temp,255 LDI digito_4,16
LDI aux,20 INC cont
rjmp skip8
lazo: skip4:
DEC temp LDI digito_4,18
BRNE lazo skip8:
MOV temp,aux
DEC aux //pasar empates
brne lazo CPI cont,2
BRSH ganadores
rjmp fin_1
POP temp ganadores:
POP aux CPI digito_1,16
OUT SREG,temp BRNE skip9
POP temp LDI digito_1,14
RET skip9: