Vous êtes sur la page 1sur 2

Exercícios: 0008| JNB P2.

1, LINHA2
000B| JNB P2.2, LINHA3
No link abaixo tem a descrição das instruções do
000E| JNB P2.3, LINHA4
8051
0011| JNB P2.4, LINHA5
http://www.win.tue.nl/~aeb/comp/8051/set8051.ht
0014| JNB P2.5, LINHA6
ml
0017| JNB P2.6, LINHA7
001A| JNB P2.7, LINHA8
01 - Execute o seguinte programa:
001D| JMP LOAD
;esse programa lê a chave P2.0 e P2.1;
; e direciona o movimento dos leds;
; para direita ou esquerda
001F| LINHA1: CLR P1.0
ORG 0000h; programa inicia no endereço 0000h
0021| CALL DELAY
0023| JMP LOAD
mov p1,#0ffh; apaga todos os leds
mov a,#0feh
0025| LINHA2: CLR P1.0
direita: jnb P2.0,esquerda
0027| CLR P1.1
;testa a porta p2.0 se
0029| CALL DELAY
;está com nível lógico 0
002B| JMP LOAD
; se sim pula para linha esquerda.
LINHA3:
mov p1,a
002D| CLR P1.0
call delay
002F| CLR P1.1
rr a
0031| CLR P1.2
sjmp direita
0033| CALL DELAY
0035| JMP LOAD
LINHA4:
esquerda: jnb P2.1,direita
0037| CLR P1.0
;testa a porta P2.1 se
0039| CLR P1.1
;está com nível lógico 0
003B| CLR P1.2
; se sim pula para linha direita.
003D| CLR P1.3
003F| CALL DELAY
mov p1,a
0041| JMP LOAD
call delay
rl a
LINHA5:
sjmp esquerda
0043| CLR P1.0
0045| CLR P1.1
0047| CLR P1.2
delay: MOV R0, #200
0049| CLR P1.3
DJNZ R0, $
004B| CLR P1.4
RET
004D| CALL DELAY
004F| JMP LOAD
Esse programa lê duas chaves como entrada (P2.1 e
P2.0) e rotaciona os leds para esquerda ou direita
LINHA6:
dependendo da chave pressionada.
0051| CLR P1.0
0053| CLR P1.1
A) Depois de executar esse programa, faça um outro
0055| CLR P1.2
programa que leia as chaves. Quando a chave p2.0 for
0057| CLR P1.3
acionada, acende-se o led 1 ; se a chave p2.1 for
0059| CLR P1.4
acionada, acende-se o led 1 e 2... até que se a chave
005B| CLR P1.5
sete for acionada acende-se os oito leds.
005D| CALL DELAY
005F| JMP LOAD
0000| MOV P1, #0ffh
0003| MOV A, #0feh
LINHA7:
LOAD:
0061| CLR P1.0
0063| CLR P1.1
0005| JNB P2.0, LINHA1
0065| CLR P1.2
0067| CLR P1.3
0069| CLR P1.4
006B| CLR P1.5
006D| CLR P1.6
006F| CALL DELAY
0071| JMP LOAD

LINHA8:
0073| CLR P1.0
0075| CLR P1.1
0077| CLR P1.2
0079| CLR P1.3
007B| CLR P1.4
007D| CLR P1.5
007F| CLR P1.6
0081| CLR P1.7
0083| CALL DELAY
0085| JMP LOAD

0087| DELAY: MOV R0, #10


0089| DJNZ R0, $
008B| RET

B) - Escreva um programa que controle os leds de 0 a


6 a partir das chaves de mesmo número. A chave 7
deve ser uma chave de controle, que determina como
os demais leds devem reagir às chaves: com a chave 7
aberta, os leds e as chaves de 0 a 6 devem se
comportar de forma que uma chave fechada
corresponda a um led aceso e uma chave aberta um
led apagado; com a chave 7 fechada, esta relação
deve se inverter. O led 7 deve ficar apagado quando a
chave 7 estiver aberta e acender quando ela for
fechada.

C) Faça um programa que acenda todos os LEDs por t1


segundos. Depois apague por t2 segundos. Acenda
novamente por t3 segundos e finalmente apague
todos.

Exercício 02: Explique o funcionamento do seguinte


código:

inicio:
mov a,#007h
mov b,#008h

subb a,b

jnz linha1
jz linha2

linha1: mov p1,#00fh


sjmp inicio

linha2: mov p1,#0f0h


sjmp inicio

Vous aimerez peut-être aussi