Académique Documents
Professionnel Documents
Culture Documents
#include <avr/io.h>
.section .text
.global main
cbi _SFR_IO_ADDR(PORTE), 4
cbi _SFR_IO_ADDR(PORTG), 5
cbi _SFR_IO_ADDR(PORTB), 4
cbi _SFR_IO_ADDR(PORTG), 5
cbi _SFR_IO_ADDR(PORTB), 4
call tempo
call off
call on
sbi _SFR_IO_ADDR(PORTG), 5
cbi _SFR_IO_ADDR(PORTB), 4
call tempo
call off
call on
cbi _SFR_IO_ADDR(PORTG), 5
sbi _SFR_IO_ADDR(PORTB), 4
call tempo
call off
call on
rjmp etatA
rjmp fin
on :
in R17,_SFR_IO_ADDR(PINB) //save la valeur de B6 dans R17
/*on veut decaler R12 pour que le bit 5 entre dans le carry et le declache */
lsl R17
lsl R17
brcs on
ret
off :
/*on veut decaler R12 pour que le bit 5 entre dans le carry et le declache */
lsl R17
lsl R17
brcc off
ret
tempo:
push R25
push R24
push R23
ldi R25,61
boucle3:ldi R24,255
boucle2:ldi R23,225
nop
brne boucle1
subi R24,1
brne boucle2
subi R25,1
brne boucle3
pop R23
pop R24
pop R25
#include <avr/io.h>
.section .text
.global main
main:
sbi _SFR_IO_ADDR(DDRB),4
cbi _SFR_IO_ADDR(PORTE), 4
cbi _SFR_IO_ADDR(PORTG), 5
cbi _SFR_IO_ADDR(PORTB), 4
debut:
//nôtre automate est particulier parce qu'il a en realiter par de depart prédefinie
//donc on veux lire les deux bit d'entré (les deux bits de poids fort)
//on enregistre le port B dans un registre R17 par exemple et on fait un masquage sur R17 pour ne
garder que le bit 7 et le bit 6
call lecture
mov R17,R16
mov R18,R16
mov R19
inc R18
dec R17
cbi _SFR_IO_ADDR(PORTE), 4
cbi _SFR_IO_ADDR(PORTG), 5
cbi _SFR_IO_ADDR(PORTB), 4
call lecture
cp R17,R19
brne etat1
cp R17,R18
brne etat4
call lecture
mov R17,R16
mov R18,R16
mov R19
inc R18
dec R17
etat2:
sbi _SFR_IO_ADDR(PORTE), 4
cbi _SFR_IO_ADDR(PORTG), 5
cbi _SFR_IO_ADDR(PORTB), 4
call lecture
cp R17,R19
brne etat2
cp R17,R18
brne etat1
call lecture
mov R17,R16
mov R18,R16
mov R19
inc R18
dec R17
etat3:
sbi _SFR_IO_ADDR(PORTE), 4
sbi _SFR_IO_ADDR(PORTG), 5
cbi _SFR_IO_ADDR(PORTB), 4
call lecture
cp R17,R19
brne etat3
cp R17,R18
brne etat2
call lecture
mov R17,R16
mov R18,R16
mov R19
inc R18
dec R17
etat4:
sbi _SFR_IO_ADDR(PORTE), 4
sbi _SFR_IO_ADDR(PORTG), 5
sbi _SFR_IO_ADDR(PORTB), 4
call lecture
cp R17,R19
brne etat4
cp R17,R18
brne etat1
rjmp
andi R17,11000000
ret
.end